@calmabacus/pi-web 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +66 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +189 -0
- package/.next/react-loadable-manifest.json +2367 -0
- package/.next/required-server-files.js +387 -0
- package/.next/required-server-files.json +387 -0
- package/.next/routes-manifest.json +505 -0
- package/.next/server/app/_global-error/page.js +31 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +27 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +1 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +27 -0
- package/.next/server/app/_not-found.rsc +23 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +23 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +29 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/events/route.js +3 -0
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -0
- package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -0
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/running/route.js +1 -0
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/app-update/route.js +1 -0
- package/.next/server/app/api/app-update/route.js.nft.json +1 -0
- package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/providers/route.js +1 -0
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/default-cwd/route.js +1 -0
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/file-index/route.js +1 -0
- package/.next/server/app/api/file-index/route.js.nft.json +1 -0
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +49 -0
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/diff/route.js +6 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/status/route.js +6 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/home/route.js +1 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/image-generation/route.js +1 -0
- package/.next/server/app/api/image-generation/route.js.nft.json +1 -0
- package/.next/server/app/api/image-generation/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/image-generation/settings/connections/route.js +1 -0
- package/.next/server/app/api/image-generation/settings/connections/route.js.nft.json +1 -0
- package/.next/server/app/api/image-generation/settings/connections/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/image-generation/settings/route.js +1 -0
- package/.next/server/app/api/image-generation/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/image-generation/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/picker/route.js +1 -0
- package/.next/server/app/api/models-config/picker/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/picker/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -0
- package/.next/server/app/api/models-config/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/runtime/route.js +1 -0
- package/.next/server/app/api/models-config/runtime/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/runtime/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/test/route.js +1 -0
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/check/route.js +1 -0
- package/.next/server/app/api/plugins/check/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/project-trust/route.js +1 -0
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -0
- package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/push/config/route.js +1 -0
- package/.next/server/app/api/push/config/route.js.nft.json +1 -0
- package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/push/subscribe/route.js +1 -0
- package/.next/server/app/api/push/subscribe/route.js.nft.json +1 -0
- package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +10 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js +56 -0
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/outline/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/outline/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/outline/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/route.js +1 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/search/route.js +1 -0
- package/.next/server/app/api/sessions/search/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/check/route.js +1 -0
- package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/install/route.js +1 -0
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/route.js +4 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/search/route.js +1 -0
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/update/route.js +1 -0
- package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/[id]/route.js +1 -0
- package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/profiles/route.js +1 -0
- package/.next/server/app/api/subagents/profiles/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/settings/route.js +1 -0
- package/.next/server/app/api/subagents/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/[id]/events/route.js +4 -0
- package/.next/server/app/api/terminal/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/[id]/route.js +1 -0
- package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/route.js +1 -0
- package/.next/server/app/api/terminal/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/tools/settings/route.js +1 -0
- package/.next/server/app/api/tools/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-auth/route.js +1 -0
- package/.next/server/app/api/web-auth/route.js.nft.json +1 -0
- package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/route.js +1 -0
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
- package/.next/server/app/favicon.ico/route.js +1 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +21 -0
- package/.next/server/app/index.rsc +24 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +29 -0
- package/.next/server/app/index.segments/_full.segment.rsc +24 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +9 -0
- package/.next/server/app/login/page.js +3 -0
- package/.next/server/app/login/page.js.nft.json +1 -0
- package/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/login.html +1 -0
- package/.next/server/app/login.meta +26 -0
- package/.next/server/app/login.rsc +27 -0
- package/.next/server/app/login.segments/_full.segment.rsc +27 -0
- package/.next/server/app/login.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +33 -0
- package/.next/server/app/manifest.webmanifest/route.js +17 -0
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -0
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
- package/.next/server/app/manifest.webmanifest.body +1 -0
- package/.next/server/app/manifest.webmanifest.meta +1 -0
- package/.next/server/app/page.js +254 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +66 -0
- package/.next/server/chunks/1094.js +160 -0
- package/.next/server/chunks/1515.js +1 -0
- package/.next/server/chunks/1555.js +1 -0
- package/.next/server/chunks/1601.js +24 -0
- package/.next/server/chunks/1625.js +1 -0
- package/.next/server/chunks/1800.js +1 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/1860.js +1 -0
- package/.next/server/chunks/2075.js +23 -0
- package/.next/server/chunks/2106.js +1 -0
- package/.next/server/chunks/2169.js +36 -0
- package/.next/server/chunks/2190.js +1 -0
- package/.next/server/chunks/2243.js +1 -0
- package/.next/server/chunks/2325.js +82 -0
- package/.next/server/chunks/2349.js +1 -0
- package/.next/server/chunks/2408.js +1 -0
- package/.next/server/chunks/2430.js +193 -0
- package/.next/server/chunks/2452.js +93 -0
- package/.next/server/chunks/2744.js +1 -0
- package/.next/server/chunks/2903.js +1 -0
- package/.next/server/chunks/295.js +1 -0
- package/.next/server/chunks/3012.js +1 -0
- package/.next/server/chunks/3186.js +86 -0
- package/.next/server/chunks/3379.js +1 -0
- package/.next/server/chunks/3383.js +27 -0
- package/.next/server/chunks/3569.js +1 -0
- package/.next/server/chunks/3618.js +1 -0
- package/.next/server/chunks/3869.js +8 -0
- package/.next/server/chunks/3894.js +1 -0
- package/.next/server/chunks/426.js +14 -0
- package/.next/server/chunks/4267.js +1 -0
- package/.next/server/chunks/4315.js +1 -0
- package/.next/server/chunks/4367.js +1 -0
- package/.next/server/chunks/4372.js +1 -0
- package/.next/server/chunks/4538.js +24 -0
- package/.next/server/chunks/4548.js +1 -0
- package/.next/server/chunks/4563.js +38 -0
- package/.next/server/chunks/4674.js +1 -0
- package/.next/server/chunks/4741.js +165 -0
- package/.next/server/chunks/4980.js +1 -0
- package/.next/server/chunks/5029.js +1 -0
- package/.next/server/chunks/5318.js +1 -0
- package/.next/server/chunks/5582.js +8 -0
- package/.next/server/chunks/5974.js +77 -0
- package/.next/server/chunks/6052.js +141 -0
- package/.next/server/chunks/611.js +1 -0
- package/.next/server/chunks/6253.js +104 -0
- package/.next/server/chunks/6337.js +1 -0
- package/.next/server/chunks/6366.js +80 -0
- package/.next/server/chunks/6429.js +29 -0
- package/.next/server/chunks/673.js +287 -0
- package/.next/server/chunks/6759.js +1 -0
- package/.next/server/chunks/6916.js +226 -0
- package/.next/server/chunks/703.js +1 -0
- package/.next/server/chunks/7233.js +1 -0
- package/.next/server/chunks/7265.js +215 -0
- package/.next/server/chunks/7307.js +1 -0
- package/.next/server/chunks/7561.js +1 -0
- package/.next/server/chunks/7710.js +1 -0
- package/.next/server/chunks/7744.js +64 -0
- package/.next/server/chunks/7790.js +1 -0
- package/.next/server/chunks/7799.js +34 -0
- package/.next/server/chunks/7872.js +1 -0
- package/.next/server/chunks/8106.js +1 -0
- package/.next/server/chunks/8294.js +1 -0
- package/.next/server/chunks/8333.js +79 -0
- package/.next/server/chunks/835.js +1 -0
- package/.next/server/chunks/8397.js +41 -0
- package/.next/server/chunks/8604.js +115 -0
- package/.next/server/chunks/8679.js +1 -0
- package/.next/server/chunks/8713.js +148 -0
- package/.next/server/chunks/8782.js +153 -0
- package/.next/server/chunks/8920.js +62 -0
- package/.next/server/chunks/922.js +5 -0
- package/.next/server/chunks/9280.js +255 -0
- package/.next/server/chunks/9486.js +1 -0
- package/.next/server/chunks/9509.js +1 -0
- package/.next/server/chunks/9510.js +90 -0
- package/.next/server/chunks/974.js +1 -0
- package/.next/server/functions-config-manifest.json +26 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +163 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +53 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/LkMtlo9B5W74YX7J-8ccI/_buildManifest.js +1 -0
- package/.next/static/LkMtlo9B5W74YX7J-8ccI/_ssgManifest.js +1 -0
- package/.next/static/chunks/103.23142a67b02246a8.js +215 -0
- package/.next/static/chunks/1032.12b382a9096ab2a4.js +1 -0
- package/.next/static/chunks/1063.775c442bdbeef08b.js +1 -0
- package/.next/static/chunks/1278-b81177f3a674e4e0.js +1 -0
- package/.next/static/chunks/1327.09252bb80616cc3a.js +1 -0
- package/.next/static/chunks/1708.d029f8776e4578de.js +1 -0
- package/.next/static/chunks/1781.866132cea8e77cd0.js +1 -0
- package/.next/static/chunks/1ba63609.b2ae90f43319a29e.js +153 -0
- package/.next/static/chunks/2081.47b6e9391094055f.js +1 -0
- package/.next/static/chunks/2181.ba21239d3ac39f81.js +1 -0
- package/.next/static/chunks/2258.4defa30121ef44a5.js +1 -0
- package/.next/static/chunks/2325.23caf22075e51aa5.js +1 -0
- package/.next/static/chunks/2356.523277bb8c6bf72a.js +23 -0
- package/.next/static/chunks/2418.b5d9e177e10a686e.js +1 -0
- package/.next/static/chunks/2480.cf27ca02e5b19761.js +24 -0
- package/.next/static/chunks/2539.c5a4f2fd8e421c70.js +41 -0
- package/.next/static/chunks/2619.9431a3f48da8eef4.js +1 -0
- package/.next/static/chunks/268.72794ee2773c2060.js +80 -0
- package/.next/static/chunks/2695.6f49435bae1e6f33.js +90 -0
- package/.next/static/chunks/2703.495a65ed14b2f094.js +36 -0
- package/.next/static/chunks/2821.934bcf60fbdc28c6.js +1 -0
- package/.next/static/chunks/3251.0dce7a0a0ff67235.js +1 -0
- package/.next/static/chunks/3308.be8762955e7155d1.js +73 -0
- package/.next/static/chunks/3336.a76f9485fe7cb762.js +1 -0
- package/.next/static/chunks/370.8e8f3cf8eb0e29dd.js +1 -0
- package/.next/static/chunks/3716.72bf4c9d7325debd.js +1 -0
- package/.next/static/chunks/3794-d29203733ca4633c.js +52 -0
- package/.next/static/chunks/398.ffa02af9062a3950.js +77 -0
- package/.next/static/chunks/3995.eca0f5bef1fc3ae5.js +38 -0
- package/.next/static/chunks/4004.74b9bcf5478b1663.js +160 -0
- package/.next/static/chunks/4202.8440832386f023c7.js +226 -0
- package/.next/static/chunks/4238.6f102dcbcf2ae339.js +141 -0
- package/.next/static/chunks/4405.7a19458960a1058e.js +287 -0
- package/.next/static/chunks/4424.fd0c93a807a333e1.js +1 -0
- package/.next/static/chunks/4866.d1060b4faf2ae1e2.js +1 -0
- package/.next/static/chunks/4970.8a63b4953b0e4946.js +1 -0
- package/.next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js +1 -0
- package/.next/static/chunks/5020.9ac8d0dc8390bb6e.js +1 -0
- package/.next/static/chunks/5137.f163e94c74a94d01.js +1 -0
- package/.next/static/chunks/5242.7b643c6b3394cac1.js +1 -0
- package/.next/static/chunks/5361.afc00ab2626bacbf.js +1 -0
- package/.next/static/chunks/5521.cfdf2cfc6db31407.js +1 -0
- package/.next/static/chunks/5526.ff46471041fdcb79.js +86 -0
- package/.next/static/chunks/5681.dd0e66b0de16e54b.js +27 -0
- package/.next/static/chunks/5772-ddd18c0d4b7715e5.js +3 -0
- package/.next/static/chunks/6121.eb9023b1cbc78ee2.js +1 -0
- package/.next/static/chunks/6161.4836cd7d031026bf.js +1 -0
- package/.next/static/chunks/6195.1153369f5f8b13a2.js +24 -0
- package/.next/static/chunks/6294.24f510c0c3e3714c.js +1 -0
- package/.next/static/chunks/6654.16f727522ec47f5a.js +1 -0
- package/.next/static/chunks/6794.f746d8fbbf248ecf.js +93 -0
- package/.next/static/chunks/7256.e07cf52d87d40252.js +1 -0
- package/.next/static/chunks/7268.236544be8e242c16.js +1 -0
- package/.next/static/chunks/7331.2add3c4e125a2dba.js +104 -0
- package/.next/static/chunks/7543.89f7b805ed0f2901.js +1 -0
- package/.next/static/chunks/8200.a36b9f8c983c6b9e.js +5 -0
- package/.next/static/chunks/869.7152372b662e31af.js +1 -0
- package/.next/static/chunks/8863.fa0320ea586efb3b.js +1 -0
- package/.next/static/chunks/8885.cf60cac98bf8b70c.js +79 -0
- package/.next/static/chunks/8901.e117d206a917bda0.js +1 -0
- package/.next/static/chunks/90542734.ae439f2382f58c51.js +1 -0
- package/.next/static/chunks/918.6a9bbe564e4a2d0f.js +115 -0
- package/.next/static/chunks/934.9006461bd0548660.js +1 -0
- package/.next/static/chunks/9445-fde6feabcb39142c.js +7 -0
- package/.next/static/chunks/9522.c7c6e9c330f9ba6b.js +1 -0
- package/.next/static/chunks/9614.3221013d7f0af27f.js +64 -0
- package/.next/static/chunks/9698.4d09a99b9d99f3e5.js +148 -0
- package/.next/static/chunks/9705.40a82b97f214e28b.js +1 -0
- package/.next/static/chunks/973.88e865b52eff479a.js +8 -0
- package/.next/static/chunks/9764.2669775c6e107a01.js +62 -0
- package/.next/static/chunks/9793.4567af813117ad25.js +1 -0
- package/.next/static/chunks/993e5495.8797001fcfcf2889.js +62 -0
- package/.next/static/chunks/9974.9a0f79beca65e8c4.js +34 -0
- package/.next/static/chunks/app/_global-error/page-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/_not-found/page-d1e0360401438077.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/lease/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/home/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/image-generation/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/image-generation/settings/connections/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/image-generation/settings/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/picker/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/runtime/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/push/config/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/push/subscribe/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/outline/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/skills/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/layout-f900e4d3794672ad.js +1 -0
- package/.next/static/chunks/app/login/page-4d08a41789f24789.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/app/page-3c64134d63e2eff9.js +232 -0
- package/.next/static/chunks/bf2ff291.3a109dffc1fe84af.js +122 -0
- package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
- package/.next/static/chunks/da12927c.476aa688a637649c.js +82 -0
- package/.next/static/chunks/db9d41be.e72ce090a86a3691.js +1 -0
- package/.next/static/chunks/e868780c-1584512c612787d7.js +18 -0
- package/.next/static/chunks/framework-b33a8f5d57cd8d87.js +1 -0
- package/.next/static/chunks/main-app-5f091d229b1e5a0e.js +1 -0
- package/.next/static/chunks/main-dac5ab3797407fcb.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-ae6c57598b75d8bb.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-24ad8f9c794ebb73.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-25464d90fe89e601.js +1 -0
- package/.next/static/css/2ac0338d70747eca.css +1 -0
- package/.next/static/css/2f46e0db0d4a3aed.css +1 -0
- package/.next/static/css/444123c292add02f.css +1 -0
- package/.next/static/css/58d019c61385df31.css +1 -0
- package/.next/static/css/89aae141d5b3edde.css +1 -0
- package/.next/static/css/fddca953485158e4.css +1 -0
- package/.next/static/media/01bdb1c2bb2f530a-s.woff2 +0 -0
- package/.next/static/media/060fd7a2ba6f57dc-s.woff2 +0 -0
- package/.next/static/media/06d755a5cd3e2b96-s.woff2 +0 -0
- package/.next/static/media/09341845bc7215c3-s.woff2 +0 -0
- package/.next/static/media/09d8b46d011a8a55-s.woff2 +0 -0
- package/.next/static/media/0ac3ab6b6a54cd96-s.woff2 +0 -0
- package/.next/static/media/0cb7a0edc360425e-s.woff2 +0 -0
- package/.next/static/media/0de82041d2acf4c3-s.woff2 +0 -0
- package/.next/static/media/1249fbbadbb69451-s.woff2 +0 -0
- package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
- package/.next/static/media/182682366c265526-s.woff2 +0 -0
- package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
- package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
- package/.next/static/media/246116fa49278f72-s.woff2 +0 -0
- package/.next/static/media/2ad4a039dd2c0f35-s.woff2 +0 -0
- package/.next/static/media/2cd94acf7f6a8cd1-s.woff2 +0 -0
- package/.next/static/media/30af2a5bc088caeb-s.woff2 +0 -0
- package/.next/static/media/3117748ae3be552d-s.woff2 +0 -0
- package/.next/static/media/373befd5a68230ff-s.woff2 +0 -0
- package/.next/static/media/37ae20ae1d329cc2-s.woff2 +0 -0
- package/.next/static/media/3832bef2caf4f297-s.woff2 +0 -0
- package/.next/static/media/3b6ebd4dd223d8c1-s.woff2 +0 -0
- package/.next/static/media/3da25081fc21e3b2-s.woff2 +0 -0
- package/.next/static/media/3eb545844a1630b6-s.woff2 +0 -0
- package/.next/static/media/41870aeb5505be99-s.woff2 +0 -0
- package/.next/static/media/45c8f5377f81d417-s.woff2 +0 -0
- package/.next/static/media/48d86e2f8821c61e-s.woff2 +0 -0
- package/.next/static/media/4957022da3161c6e-s.woff2 +0 -0
- package/.next/static/media/4be71ddc6c749643-s.woff2 +0 -0
- package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
- package/.next/static/media/4dc4381bbf526d04-s.woff2 +0 -0
- package/.next/static/media/4eb0814ea9e22f45-s.woff2 +0 -0
- package/.next/static/media/4f86cf50532e0e9b-s.woff2 +0 -0
- package/.next/static/media/5022b11bb4a81e48-s.woff2 +0 -0
- package/.next/static/media/5080c55e2dccd63d-s.woff2 +0 -0
- package/.next/static/media/5348b1e69a651725-s.woff2 +0 -0
- package/.next/static/media/54c50561be23e605-s.woff2 +0 -0
- package/.next/static/media/567d6f765096ee76-s.woff2 +0 -0
- package/.next/static/media/58045d1f8695a418-s.woff2 +0 -0
- package/.next/static/media/5a274ddc03d9a5ab-s.woff2 +0 -0
- package/.next/static/media/5feee92221bb8605-s.woff2 +0 -0
- package/.next/static/media/6067d3f78ecc4535-s.woff2 +0 -0
- package/.next/static/media/61a11ca45429493a-s.woff2 +0 -0
- package/.next/static/media/63d030730737efae-s.woff2 +0 -0
- package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
- package/.next/static/media/6bd056ddce336924-s.woff2 +0 -0
- package/.next/static/media/6dc0bae4a5666821-s.woff2 +0 -0
- package/.next/static/media/7513cc52807669ca-s.woff2 +0 -0
- package/.next/static/media/75ae81fea4aec8c5-s.woff2 +0 -0
- package/.next/static/media/77f6534b6a3eb37a-s.woff2 +0 -0
- package/.next/static/media/782d4006a26041e7-s.woff2 +0 -0
- package/.next/static/media/7d509f4f988023eb-s.woff2 +0 -0
- package/.next/static/media/7d58f39a50828c68-s.woff2 +0 -0
- package/.next/static/media/7db71cc013812f1c-s.woff2 +0 -0
- package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
- package/.next/static/media/7eb3f914ae6dd7a0-s.woff2 +0 -0
- package/.next/static/media/8051eb8307aa13c8-s.woff2 +0 -0
- package/.next/static/media/829dca987e1e010e-s.woff2 +0 -0
- package/.next/static/media/842f675c7a332a48-s.woff2 +0 -0
- package/.next/static/media/866e2e7b0cbc2cb4-s.woff2 +0 -0
- package/.next/static/media/86b38dc7f713ddda-s.woff2 +0 -0
- package/.next/static/media/8a3a66ae6bb27151-s.woff2 +0 -0
- package/.next/static/media/8b56b70f6d577d9f-s.woff2 +0 -0
- package/.next/static/media/8d93dbb77672da11-s.woff2 +0 -0
- package/.next/static/media/8f5c2d0a25b8f50c-s.woff2 +0 -0
- package/.next/static/media/966e6d14b6c229fc-s.woff2 +0 -0
- package/.next/static/media/9877fefe733dd250-s.woff2 +0 -0
- package/.next/static/media/9c57f4420502d43a-s.woff2 +0 -0
- package/.next/static/media/9cedd2ad7b0bcf3d-s.woff2 +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/.next/static/media/a00fb5ef1ca68e5d-s.woff2 +0 -0
- package/.next/static/media/a171b1d72388367c-s.woff2 +0 -0
- package/.next/static/media/a310fb84e6868735-s.woff2 +0 -0
- package/.next/static/media/a53504b22c396db6-s.woff2 +0 -0
- package/.next/static/media/aabb87babcdda375-s.woff2 +0 -0
- package/.next/static/media/afe75c8050c8fd4e-s.woff2 +0 -0
- package/.next/static/media/b201193f76404e13-s.woff2 +0 -0
- package/.next/static/media/b20daecae68a588f-s.woff2 +0 -0
- package/.next/static/media/b2574bc564dca98d-s.woff2 +0 -0
- package/.next/static/media/b6a1339c290590d0-s.woff2 +0 -0
- package/.next/static/media/b6fe4b2295863fe4-s.woff2 +0 -0
- package/.next/static/media/bb8ff9c700288292-s.woff2 +0 -0
- package/.next/static/media/bc1ccfae4ae17995-s.woff2 +0 -0
- package/.next/static/media/be15c189f996aeb2-s.woff2 +0 -0
- package/.next/static/media/c0d1f6928a1dbc31-s.woff2 +0 -0
- package/.next/static/media/c36d8bb68a53eb60-s.woff2 +0 -0
- package/.next/static/media/c5db947ee2561e06-s.woff2 +0 -0
- package/.next/static/media/c77ac7f613b44045-s.woff2 +0 -0
- package/.next/static/media/ca73d0c74010e612-s.woff2 +0 -0
- package/.next/static/media/cfbad6ceeeca5c58-s.woff2 +0 -0
- package/.next/static/media/d24aebb82f01e48d-s.woff2 +0 -0
- package/.next/static/media/d2c6107607eb7d44-s.woff2 +0 -0
- package/.next/static/media/d2c7d5e8db7ce20a-s.woff2 +0 -0
- package/.next/static/media/d51f7558abc55aa6-s.woff2 +0 -0
- package/.next/static/media/da718921282f76d0-s.woff2 +0 -0
- package/.next/static/media/dae37106d788c7c9-s.woff2 +0 -0
- package/.next/static/media/e0d4cd45847004a4-s.woff2 +0 -0
- package/.next/static/media/e100c7a7874aebd9-s.woff2 +0 -0
- package/.next/static/media/e26dff18031f4a7e-s.woff2 +0 -0
- package/.next/static/media/e5b759c1d5c42d99-s.woff2 +0 -0
- package/.next/static/media/ea21a07081db26d0-s.woff2 +0 -0
- package/.next/static/media/eaee7682c49bd1c2-s.woff2 +0 -0
- package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
- package/.next/static/media/ec408158b9e08aea-s.woff2 +0 -0
- package/.next/static/media/ee5d9aad76ea4c0a-s.woff2 +0 -0
- package/.next/static/media/efdbc7cff3271ee9-s.woff2 +0 -0
- package/.next/static/media/f128be4e72405705-s.woff2 +0 -0
- package/.next/static/media/fb6cfff6119f26e8-s.woff2 +0 -0
- package/.next/static/media/fd516adbc3328c82-s.woff2 +0 -0
- package/.next/trace +7 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/events/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/lease/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/route.ts +353 -0
- package/.next/types/app/api/agent/new/route.ts +353 -0
- package/.next/types/app/api/agent/running/route.ts +353 -0
- package/.next/types/app/api/app-update/route.ts +353 -0
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/login/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/logout/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/providers/route.ts +353 -0
- package/.next/types/app/api/cwd/browse/route.ts +353 -0
- package/.next/types/app/api/cwd/validate/route.ts +353 -0
- package/.next/types/app/api/default-cwd/route.ts +353 -0
- package/.next/types/app/api/file-index/route.ts +353 -0
- package/.next/types/app/api/files/[...path]/route.ts +353 -0
- package/.next/types/app/api/git/diff/route.ts +353 -0
- package/.next/types/app/api/git/status/route.ts +353 -0
- package/.next/types/app/api/home/route.ts +353 -0
- package/.next/types/app/api/image-generation/route.ts +353 -0
- package/.next/types/app/api/image-generation/settings/connections/route.ts +353 -0
- package/.next/types/app/api/image-generation/settings/route.ts +353 -0
- package/.next/types/app/api/models/route.ts +353 -0
- package/.next/types/app/api/models-config/catalog/route.ts +353 -0
- package/.next/types/app/api/models-config/discover/route.ts +353 -0
- package/.next/types/app/api/models-config/picker/route.ts +353 -0
- package/.next/types/app/api/models-config/route.ts +353 -0
- package/.next/types/app/api/models-config/runtime/route.ts +353 -0
- package/.next/types/app/api/models-config/test/route.ts +353 -0
- package/.next/types/app/api/plugins/check/route.ts +353 -0
- package/.next/types/app/api/plugins/route.ts +353 -0
- package/.next/types/app/api/project-trust/route.ts +353 -0
- package/.next/types/app/api/push/config/route.ts +353 -0
- package/.next/types/app/api/push/subscribe/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/context/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/export/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/outline/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/state/route.ts +353 -0
- package/.next/types/app/api/sessions/route.ts +353 -0
- package/.next/types/app/api/sessions/search/route.ts +353 -0
- package/.next/types/app/api/skills/check/route.ts +353 -0
- package/.next/types/app/api/skills/install/route.ts +353 -0
- package/.next/types/app/api/skills/route.ts +353 -0
- package/.next/types/app/api/skills/search/route.ts +353 -0
- package/.next/types/app/api/skills/update/route.ts +353 -0
- package/.next/types/app/api/subagents/[id]/route.ts +353 -0
- package/.next/types/app/api/subagents/profiles/route.ts +353 -0
- package/.next/types/app/api/subagents/settings/route.ts +353 -0
- package/.next/types/app/api/terminal/[id]/events/route.ts +353 -0
- package/.next/types/app/api/terminal/[id]/route.ts +353 -0
- package/.next/types/app/api/terminal/route.ts +353 -0
- package/.next/types/app/api/tools/settings/route.ts +353 -0
- package/.next/types/app/api/web-auth/route.ts +353 -0
- package/.next/types/app/api/worktrees/route.ts +353 -0
- package/.next/types/app/layout.ts +89 -0
- package/.next/types/app/login/page.ts +89 -0
- package/.next/types/app/page.ts +89 -0
- package/.next/types/cache-life.d.ts +146 -0
- package/.next/types/package.json +1 -0
- package/.next/types/root-params.d.ts +3 -0
- package/.next/types/routes.d.ts +131 -0
- package/.next/types/validator.ts +601 -0
- package/LICENSE +22 -0
- package/README.md +64 -0
- package/bin/node-version.js +24 -0
- package/bin/pi-web-options.js +87 -0
- package/bin/pi-web.js +132 -0
- package/bin/prepare-terminal.js +14 -0
- package/bin/process-lifecycle.js +81 -0
- package/next.config.ts +73 -0
- package/package.json +95 -0
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/catppuccin/LICENSE +22 -0
- package/public/icons/catppuccin/README.md +9 -0
- package/public/icons/catppuccin/latte/_file.svg +3 -0
- package/public/icons/catppuccin/latte/_folder.svg +3 -0
- package/public/icons/catppuccin/latte/_folder_open.svg +3 -0
- package/public/icons/catppuccin/latte/bash.svg +7 -0
- package/public/icons/catppuccin/latte/bun-lock.svg +8 -0
- package/public/icons/catppuccin/latte/config.svg +3 -0
- package/public/icons/catppuccin/latte/css.svg +6 -0
- package/public/icons/catppuccin/latte/database.svg +3 -0
- package/public/icons/catppuccin/latte/docker.svg +3 -0
- package/public/icons/catppuccin/latte/env.svg +3 -0
- package/public/icons/catppuccin/latte/eslint.svg +6 -0
- package/public/icons/catppuccin/latte/git.svg +6 -0
- package/public/icons/catppuccin/latte/go.svg +3 -0
- package/public/icons/catppuccin/latte/graphql.svg +3 -0
- package/public/icons/catppuccin/latte/html.svg +6 -0
- package/public/icons/catppuccin/latte/javascript-react.svg +8 -0
- package/public/icons/catppuccin/latte/javascript.svg +6 -0
- package/public/icons/catppuccin/latte/json.svg +3 -0
- package/public/icons/catppuccin/latte/lock.svg +3 -0
- package/public/icons/catppuccin/latte/markdown.svg +3 -0
- package/public/icons/catppuccin/latte/ms-word.svg +6 -0
- package/public/icons/catppuccin/latte/next.svg +6 -0
- package/public/icons/catppuccin/latte/npm-lock.svg +7 -0
- package/public/icons/catppuccin/latte/pdf.svg +3 -0
- package/public/icons/catppuccin/latte/python.svg +8 -0
- package/public/icons/catppuccin/latte/rust.svg +6 -0
- package/public/icons/catppuccin/latte/sass.svg +3 -0
- package/public/icons/catppuccin/latte/terraform.svg +3 -0
- package/public/icons/catppuccin/latte/toml.svg +3 -0
- package/public/icons/catppuccin/latte/typescript-react.svg +8 -0
- package/public/icons/catppuccin/latte/typescript.svg +6 -0
- package/public/icons/catppuccin/latte/yaml.svg +3 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/offline.html +83 -0
- package/public/provider-icons.svg +54 -0
- package/public/sw.js +145 -0
- package/public/sw.test.mjs +141 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";exports.id=8604,exports.ids=[8604],exports.modules={68604:(a,b,c)=>{c.d(b,{diagram:()=>ab});var d=c(71904),e=c(64922),f=c(45313),g=c(58715),h=c(95097),i=c(69085),j=c(67821),k=c(61255),l=c(30089),m=function(){var a=(0,h.K)(function(a,b,c,d){for(c=c||{},d=a.length;d--;c[a[d]]=b);return c},"o"),b=[6,11,13,14,15,17,19,20,23,24],c=[1,12],d=[1,13],e=[1,14],f=[1,15],g=[1,16],i=[1,19],j=[1,20],k={trace:(0,h.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:(0,h.K)(function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 3:d.setDirection("LR");break;case 4:d.setDirection("TD");break;case 5:case 9:case 10:this.$=[];break;case 6:f[h-1].push(f[h]),this.$=f[h-1];break;case 7:case 8:this.$=f[h];break;case 11:d.getCommonDb().setDiagramTitle(f[h].substr(6)),this.$=f[h].substr(6);break;case 12:this.$=f[h].trim(),d.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=f[h].trim(),d.getCommonDb().setAccDescription(this.$);break;case 15:d.addSection(f[h].substr(8)),this.$=f[h].substr(8);break;case 18:d.addTask(f[h],0,""),this.$=f[h];break;case 19:d.addEvent(f[h].substr(2)),this.$=f[h]}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},a(b,[2,5],{5:6}),a(b,[2,2]),a(b,[2,3]),a(b,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:c,15:d,17:e,19:f,20:g,21:17,22:18,23:i,24:j},a(b,[2,10],{1:[2,1]}),a(b,[2,6]),{12:21,14:c,15:d,17:e,19:f,20:g,21:17,22:18,23:i,24:j},a(b,[2,8]),a(b,[2,9]),a(b,[2,11]),{16:[1,22]},{18:[1,23]},a(b,[2,14]),a(b,[2,15]),a(b,[2,16]),a(b,[2,17]),a(b,[2,18]),a(b,[2,19]),a(b,[2,7]),a(b,[2,12]),a(b,[2,13])],defaultActions:{},parseError:(0,h.K)(function(a,b){if(b.recoverable)this.trace(a);else{var c=Error(a);throw c.hash=b,c}},"parseError"),parse:(0,h.K)(function(a){var b=this,c=[0],d=[],e=[null],f=[],g=this.table,i="",j=0,k=0,l=0,m=f.slice.call(arguments,1),n=Object.create(this.lexer),o={};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(o[p]=this.yy[p]);n.setInput(a,o),o.lexer=n,o.parser=this,void 0===n.yylloc&&(n.yylloc={});var q=n.yylloc;f.push(q);var r=n.options&&n.options.ranges;function s(){var a;return"number"!=typeof(a=d.pop()||n.lex()||1)&&(a instanceof Array&&(a=(d=a).pop()),a=b.symbols_[a]||a),a}"function"==typeof o.parseError?this.parseError=o.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,h.K)(function(a){c.length=c.length-2*a,e.length=e.length-a,f.length=f.length-a},"popStack"),(0,h.K)(s,"lex");for(var t,u,v,w,x,y,z,A,B,C={};;){if(v=c[c.length-1],this.defaultActions[v]?w=this.defaultActions[v]:(null==t&&(t=s()),w=g[v]&&g[v][t]),void 0===w||!w.length||!w[0]){var D="";for(y in B=[],g[v])this.terminals_[y]&&y>2&&B.push("'"+this.terminals_[y]+"'");D=n.showPosition?"Parse error on line "+(j+1)+":\n"+n.showPosition()+"\nExpecting "+B.join(", ")+", got '"+(this.terminals_[t]||t)+"'":"Parse error on line "+(j+1)+": Unexpected "+(1==t?"end of input":"'"+(this.terminals_[t]||t)+"'"),this.parseError(D,{text:n.match,token:this.terminals_[t]||t,line:n.yylineno,loc:q,expected:B})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+v+", token: "+t);switch(w[0]){case 1:c.push(t),e.push(n.yytext),f.push(n.yylloc),c.push(w[1]),t=null,u?(t=u,u=null):(k=n.yyleng,i=n.yytext,j=n.yylineno,q=n.yylloc,l>0&&l--);break;case 2:if(z=this.productions_[w[1]][1],C.$=e[e.length-z],C._$={first_line:f[f.length-(z||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(z||1)].first_column,last_column:f[f.length-1].last_column},r&&(C._$.range=[f[f.length-(z||1)].range[0],f[f.length-1].range[1]]),void 0!==(x=this.performAction.apply(C,[i,k,j,o,w[1],e,f].concat(m))))return x;z&&(c=c.slice(0,-1*z*2),e=e.slice(0,-1*z),f=f.slice(0,-1*z)),c.push(this.productions_[w[1]][0]),e.push(C.$),f.push(C._$),A=g[c[c.length-2]][c[c.length-1]],c.push(A);break;case 3:return!0}}return!0},"parse")};function l(){this.yy={}}return k.lexer={EOF:1,parseError:(0,h.K)(function(a,b){if(this.yy.parser)this.yy.parser.parseError(a,b);else throw Error(a)},"parseError"),setInput:(0,h.K)(function(a,b){return this.yy=b||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,h.K)(function(){var a=this._input[0];return this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a,a.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},"input"),unput:(0,h.K)(function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this.yyleng=this.yytext.length,this},"unput"),more:(0,h.K)(function(){return this._more=!0,this},"more"),reject:(0,h.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,h.K)(function(a){this.unput(this.match.slice(a))},"less"),pastInput:(0,h.K)(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,h.K)(function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,h.K)(function(){var a=this.pastInput(),b=Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},"showPosition"),test_match:(0,h.K)(function(a,b){var c,d,e;if(this.options.backtrack_lexer&&(e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(e.yylloc.range=this.yylloc.range.slice(0))),(d=a[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,b,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack)for(var f in e)this[f]=e[f];return!1},"test_match"),next:(0,h.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a,b,c,d,e=this._currentRules(),f=0;f<e.length;f++)if((c=this._input.match(this.rules[e[f]]))&&(!b||c[0].length>b[0].length)){if(b=c,d=f,this.options.backtrack_lexer){if(!1!==(a=this.test_match(c,e[f])))return a;if(!this._backtrack)return!1;b=!1;continue}if(!this.options.flex)break}return b?!1!==(a=this.test_match(b,e[d]))&&a:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,h.K)(function(){var a=this.next();return a||this.lex()},"lex"),begin:(0,h.K)(function(a){this.conditionStack.push(a)},"begin"),popState:(0,h.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,h.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,h.K)(function(a){return(a=this.conditionStack.length-1-Math.abs(a||0))>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:(0,h.K)(function(a){this.begin(a)},"pushState"),stateStackSize:(0,h.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,h.K)(function(a,b,c,d){switch(c){case 0:case 1:case 3:case 4:break;case 2:return 13;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}},(0,h.K)(l,"Parser"),l.prototype=k,k.Parser=l,new l}();m.parser=m;var n={};(0,h.V)(n,{addEvent:()=>C,addSection:()=>y,addTask:()=>B,addTaskOrg:()=>D,clear:()=>v,default:()=>F,getCommonDb:()=>u,getDirection:()=>x,getSections:()=>z,getTasks:()=>A,setDirection:()=>w});var o="",p=0,q="LR",r=[],s=[],t=[],u=(0,h.K)(()=>f.Wt,"getCommonDb"),v=(0,h.K)(function(){r.length=0,s.length=0,o="",t.length=0,q="LR",(0,f.IU)()},"clear"),w=(0,h.K)(function(a){q=a},"setDirection"),x=(0,h.K)(function(){return q},"getDirection"),y=(0,h.K)(function(a){o=a,r.push(a)},"addSection"),z=(0,h.K)(function(){return r},"getSections"),A=(0,h.K)(function(){let a=E(),b=0;for(;!a&&b<100;)a=E(),b++;return s.push(...t),s},"getTasks"),B=(0,h.K)(function(a,b,c){let d={id:p++,section:o,type:o,task:a,score:b||0,events:c?[c]:[]};t.push(d)},"addTask"),C=(0,h.K)(function(a){t.find(a=>a.id===p-1).events.push(a)},"addEvent"),D=(0,h.K)(function(a){let b={section:o,type:o,description:a,task:a,classes:[]};s.push(b)},"addTaskOrg"),E=(0,h.K)(function(){let a=(0,h.K)(function(a){return t[a].processed},"compileTask"),b=!0;for(let[c,d]of t.entries())a(c),b=b&&d.processed;return b},"compileTasks"),F={clear:v,getCommonDb:u,getDirection:x,setDirection:w,addSection:y,getSections:z,getTasks:A,addTask:B,addTaskOrg:D,addEvent:C},G=0,H=(0,h.K)(function(a,b){let c=a.append("rect");return c.attr("x",b.x),c.attr("y",b.y),c.attr("fill",b.fill),c.attr("stroke",b.stroke),c.attr("width",b.width),c.attr("height",b.height),c.attr("rx",b.rx),c.attr("ry",b.ry),void 0!==b.class&&c.attr("class",b.class),c},"drawRect"),I=(0,h.K)(function(a,b){let c=a.append("circle").attr("cx",b.cx).attr("cy",b.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),d=a.append("g");function e(a){let c=(0,i.JLW)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);a.append("path").attr("class","mouth").attr("d",c).attr("transform","translate("+b.cx+","+(b.cy+2)+")")}function f(a){let c=(0,i.JLW)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);a.append("path").attr("class","mouth").attr("d",c).attr("transform","translate("+b.cx+","+(b.cy+7)+")")}function g(a){a.append("line").attr("class","mouth").attr("stroke",2).attr("x1",b.cx-5).attr("y1",b.cy+7).attr("x2",b.cx+5).attr("y2",b.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return d.append("circle").attr("cx",b.cx-5).attr("cy",b.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),d.append("circle").attr("cx",b.cx+5).attr("cy",b.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),(0,h.K)(e,"smile"),(0,h.K)(f,"sad"),(0,h.K)(g,"ambivalent"),b.score>3?e(d):b.score<3?f(d):g(d),c},"drawFace"),J=(0,h.K)(function(a,b){let c=b.text.replace(/<br\s*\/?>/gi," "),d=a.append("text");d.attr("x",b.x),d.attr("y",b.y),d.attr("class","legend"),d.style("text-anchor",b.anchor),void 0!==b.class&&d.attr("class",b.class);let e=d.append("tspan");return e.attr("x",b.x+2*b.textMargin),e.text(c),d},"drawText"),K=-1,L=(0,h.K)(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),M=function(){function a(a,b,c,e,f,g,h,i){d(b.append("text").attr("x",c+f/2).attr("y",e+g/2+5).style("font-color",i).style("text-anchor","middle").text(a),h)}function b(a,b,c,e,f,g,h,i,j){let{taskFontSize:k,taskFontFamily:l}=i,m=a.split(/<br\s*\/?>/gi);for(let a=0;a<m.length;a++){let i=a*k-k*(m.length-1)/2,n=b.append("text").attr("x",c+f/2).attr("y",e).attr("fill",j).style("text-anchor","middle").style("font-size",k).style("font-family",l);n.append("tspan").attr("x",c+f/2).attr("dy",i).text(m[a]),n.attr("y",e+g/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),d(n,h)}}function c(a,c,e,f,g,h,i,j){let k=c.append("switch"),l=k.append("foreignObject").attr("x",e).attr("y",f).attr("width",g).attr("height",h).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");l.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(a),b(a,k,e,f,g,h,i,j),d(l,i)}function d(a,b){for(let c in b)c in b&&a.attr(c,b[c])}return(0,h.K)(a,"byText"),(0,h.K)(b,"byTspan"),(0,h.K)(c,"byFo"),(0,h.K)(d,"_setTextAttrs"),function(d){return"fo"===d.textPlacement?c:"old"===d.textPlacement?a:b}}(),N=(0,h.K)(function(a,b){G=0,K=-1,a.append("defs").append("marker").attr("id",b+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function O(a,b){a.each(function(){var a,c=(0,i.Ltv)(this),d=c.text().split(/(\s+|<br>)/).reverse(),e=[],f=c.attr("y"),g=parseFloat(c.attr("dy")),h=c.text(null).append("tspan").attr("x",0).attr("y",f).attr("dy",g+"em");for(let g=0;g<d.length;g++)a=d[d.length-1-g],e.push(a),h.text(e.join(" ").trim()),(h.node().getComputedTextLength()>b||"<br>"===a)&&(e.pop(),h.text(e.join(" ").trim()),e="<br>"===a?[""]:[a],h=c.append("tspan").attr("x",0).attr("y",f).attr("dy","1.1em").text(a))})}(0,h.K)(O,"wrap");var P=(0,h.K)(function(a,b,c,d,e,f=!1){let{theme:g,look:h}=d,j=g?.includes("redux"),k=c%(d?.themeVariables?.THEME_COLOR_LIMIT??12)-1,l=a.append("g");b.section=k,l.attr("class",(b.class?b.class+" ":"")+"timeline-node section-"+k);let m=l.append("g"),n=l.append("g"),o=n.append("text").text(b.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(O,b.width).node().getBBox(),p=d.fontSize?.replace?d.fontSize.replace("px",""):d.fontSize;if(b.height=o.height+1.1*p*.5+b.padding,b.height=Math.max(b.height,b.maxHeight),b.width=b.width+2*b.padding,n.attr("transform","translate("+b.width/2+", "+b.padding/2+")"),j&&n.attr("transform",`translate(${b.width/2}, ${f?b.padding/2+3:b.padding})`),R(m,b,k,e,d),"neo"===h&&(l.attr("data-look","neo"),j)){let b=g.includes("dark"),c=a.node()?.ownerSVGElement??a.node(),d=(0,i.Ltv)(c),e=d.attr("id")??"",f=e?`${e}-drop-shadow`:"drop-shadow";if(d.select(`#${f}`).empty()){let a=d.select("defs");(a.empty()?d.append("defs"):a).append("filter").attr("id",f).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",b?"0.2":"0.06").attr("flood-color",b?"#FFFFFF":"#000000")}}return b},"drawNode"),Q=(0,h.K)(function(a,b,c){let d=a.append("g"),e=d.append("text").text(b.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(O,b.width).node().getBBox(),f=c.fontSize?.replace?c.fontSize.replace("px",""):c.fontSize;return d.remove(),e.height+1.1*f*.5+b.padding},"getVirtualNodeHeight"),R=(0,h.K)(function(a,b,c,d,e){let{theme:f}=e,g=5*!f?.includes("redux"),h=g>0?`M0 ${b.height-5} v${-b.height+10} q0,-${g},${g},-${g} h${b.width-10} q${g},0,${g},${g} v${b.height-5} H0 Z`:`M0 ${b.height-5} v${-(b.height-5)} h${b.width} v${b.height} H0 Z`;a.append("path").attr("id",d+"-node-"+G++).attr("class","node-bkg node-"+b.type).attr("d",h),f?.includes("redux")||a.append("line").attr("class","node-line-"+c).attr("x1",0).attr("y1",b.height).attr("x2",b.width).attr("y2",b.height)},"defaultBkg"),S=(0,h.K)(function(a,b,c,d){let e,h=(0,f.D7)(),{look:j,theme:k,themeVariables:l}=h,{useGradient:m,gradientStart:n,gradientStop:o}=l,p=h.timeline?.leftMargin??50;g.R.debug("timeline",d.db);let q=h.securityLevel;"sandbox"===q&&(e=(0,i.Ltv)("#i"+b));let r=("sandbox"===q?(0,i.Ltv)(e.nodes()[0].contentDocument.body):(0,i.Ltv)("body")).select("#"+b);r.append("g");let s=d.db.getTasks(),t=d.db.getCommonDb().getDiagramTitle();g.R.debug("task",s),N(r,b);let u=d.db.getSections();g.R.debug("sections",u);let v=0,w=0,x=0,y=0,z=50+p,A=50;y=50;let B=0,C=!0;u.forEach(function(a){let b=Q(r,{number:B,descr:a,section:B,width:150,padding:20,maxHeight:v},h);g.R.debug("sectionHeight before draw",b),v=Math.max(v,b+20)});let D=0,E=0;for(let[a,b]of(g.R.debug("tasks.length",s.length),s.entries())){let c=Q(r,{number:a,descr:b,section:b.section,width:150,padding:20,maxHeight:w},h);g.R.debug("taskHeight before draw",c),w=Math.max(w,c+20),D=Math.max(D,b.events.length);let d=0;for(let a of b.events)d+=Q(r,{descr:a,section:b.section,number:b.section,width:150,padding:20,maxHeight:50},h);b.events.length>0&&(d+=(b.events.length-1)*10),E=Math.max(E,d)}g.R.debug("maxSectionHeight before draw",v),g.R.debug("maxTaskHeight before draw",w),u&&u.length>0?u.forEach(a=>{let c=s.filter(b=>b.section===a),d={number:B,descr:a,section:B,width:200*Math.max(c.length,1)-50,padding:20,maxHeight:v};g.R.debug("sectionNode",d);let e=r.append("g"),f=P(e,d,B,h,b);g.R.debug("sectionNode output",f),e.attr("transform",`translate(${z}, ${y})`),A+=v+50,c.length>0&&T(r,c,B,z,A,w,h,D,E,v,!1,b),z+=200*Math.max(c.length,1),A=y,B++}):(C=!1,T(r,s,B,z,A,w,h,D,E,v,!0,b));let F=r.node().getBBox();if(g.R.debug("bounds",F),t&&r.append("text").text(t).attr("x","neo"===j?2*F.x+p:F.width/2-p).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),x=C?v+w+150:w+100,r.append("g").attr("class","lineWrapper").append("line").attr("x1",p).attr("y1",x).attr("x2",F.width+3*p).attr("y2",x).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${b}-arrowhead)`),"neo"===j&&m&&"neutral"!==k){let a=r.select("defs"),b=(a.empty()?r.append("defs"):a).append("linearGradient").attr("id",r.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");b.append("stop").attr("offset","0%").attr("stop-color",n).attr("stop-opacity",1),b.append("stop").attr("offset","100%").attr("stop-color",o).attr("stop-opacity",1)}(0,f.ot)(void 0,r,h.timeline?.padding??50,h.timeline?.useMaxWidth??!1)},"draw"),T=(0,h.K)(function(a,b,c,d,e,f,h,i,j,k,l,m){for(let i of b){let b={descr:i.task,section:c,number:c,width:150,padding:20,maxHeight:f};g.R.debug("taskNode",b);let k=a.append("g").attr("class","taskWrapper"),n=P(k,b,c,h,m).height;if(g.R.debug("taskHeight after draw",n),k.attr("transform",`translate(${d}, ${e})`),f=Math.max(f,n),i.events){let b=a.append("g").attr("class","lineWrapper");e+=100,U(a,i.events,c,d,e,h,m),e-=100,b.append("line").attr("x1",d+95).attr("y1",e+f).attr("x2",d+95).attr("y2",e+f+100+j+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${m}-arrowhead)`).attr("stroke-dasharray","5,5")}d+=200,l&&!h.timeline?.disableMulticolor&&c++}},"drawTasks"),U=(0,h.K)(function(a,b,c,d,e,f,h){let i=0,j=e;for(let j of(e+=100,b)){let b={descr:j,section:c,number:c,width:150,padding:20,maxHeight:50};g.R.debug("eventNode",b);let k=a.append("g").attr("class","eventWrapper"),l=P(k,b,c,f,h,!0).height;i+=l,k.attr("transform",`translate(${d}, ${e})`),e=e+10+l}return e=j,i},"drawEvents"),V={setConf:(0,h.K)(()=>{},"setConf"),draw:S},W=(0,h.K)(function(a,b,c,h){let i=(0,f.D7)(),j=i.timeline?.leftMargin??50;g.R.debug("timeline",h.db);let k=(0,d.D)(b);k.append("g");let l=h.db.getTasks(),m=h.db.getCommonDb().getDiagramTitle();g.R.debug("task",l),N(k);let n=h.db.getSections();g.R.debug("sections",n);let o=0,p=0,q=50,r=230,s=0,t=n&&n.length>0,u=50+j+r,v=Math.max(50,r+360-10);n.forEach(function(a){let b=Q(k,{number:s,descr:a,section:s,width:v,padding:5,maxHeight:o},i);g.R.debug("sectionHeight before draw",b),o=Math.max(o,b)});let w=0;for(let[a,b]of(g.R.debug("tasks.length",l.length),l.entries())){let c=Q(k,{number:a,descr:b,section:b.section,width:200,padding:5,maxHeight:p},i);g.R.debug("taskHeight before draw",c),p=Math.max(p,c);let d=0;for(let a of b.events)d+=Q(k,{descr:a,section:b.section,number:b.section,width:300,padding:5,maxHeight:50},i);b.events.length>0&&(d+=(b.events.length-1)*10),w=Math.max(w,d)+0}g.R.debug("maxSectionHeight before draw",o),g.R.debug("maxTaskHeight before draw",p);let x=Math.max(p,w)+30;t?n.forEach(a=>{let b=l.filter(b=>b.section===a),c={number:s,descr:a,section:s,width:v,padding:5,maxHeight:o};g.R.debug("sectionNode",c);let d=k.append("g"),e=P(d,c,s,i);g.R.debug("sectionNode output",e);let f=u-r;d.attr("transform",`translate(${f}, ${q})`);let h=q+e.height+20;b.length>0&&X(k,b,s,u,h,p,i,x,!1);let j=b.length,m=e.height+20+x*Math.max(j,1)-60*(j>0);q+=m,s++}):X(k,l,s,u,q,p,i,x,!0);let y=k.node()?.getBBox();if(!y)throw Error("bbox not found");if(g.R.debug("bounds",y),m){if(k.append("text").text(m).attr("x",y.width/2-j).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),!(y=k.node()?.getBBox()))throw Error("bbox not found");g.R.debug("bounds after title",y)}let[z]=(0,e.I5)(i.fontSize),A=k.append("g").attr("class","lineWrapper");A.append("line").attr("x1",u).attr("y1",50-(z??16)*2).attr("x2",u).attr("y2",y.y+y.height+((z??16)*.5+20)).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),A.lower(),(0,f.ot)(void 0,k,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),X=(0,h.K)(function(a,b,c,d,e,f,h,i,j){for(let k of b){let b={descr:k.task,section:c,number:c,width:200,padding:5,maxHeight:f};g.R.debug("taskNode",b);let l=a.append("g").attr("class","taskWrapper"),m=P(l,b,c,h),n=m.height;g.R.debug("taskHeight after draw",n);let o=d-20-m.width;if(l.attr("transform",`translate(${o}, ${e})`),f=Math.max(f,n),k.events&&k.events.length>0){let b=e,f=d+50;Y(a,k.events,c,d,f,b,h)}e+=i,j&&!h.timeline?.disableMulticolor&&c++}},"drawTasks"),Y=(0,h.K)(function(a,b,c,d,e,f,h){let i=f;for(let f of b){let b={descr:f,section:c,number:c,width:300,padding:5,maxHeight:0};g.R.debug("eventNode",b);let j=a.append("g").attr("class","eventWrapper"),k=P(j,b,c,h).height;j.attr("transform",`translate(${e}, ${i})`);let l=a.append("g").attr("class","lineWrapper"),m=i+k/2;l.append("line").attr("x1",d).attr("y1",m).attr("x2",e).attr("y2",m).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),i=i+k+10}return i-f},"drawEvents"),Z={setConf:(0,h.K)(()=>{},"setConf"),draw:W},$=(0,h.K)(a=>{let{theme:b}=(0,f.zj)(),c=b?.includes("dark"),d=b?.includes("color"),e=a.svgId?.replace(/^#/,"")??"",g=e?`url(#${e}-drop-shadow)`:a.dropShadow??"none",h="";for(let b=0;b<a.THEME_COLOR_LIMIT;b++){let e=`${17-3*b}`,f=d?a.borderColorArray[b]:a.mainBkg,i=d?a.borderColorArray[b]:a.nodeBorder;h+=`
|
|
2
|
+
.section-${b-1} rect,
|
|
3
|
+
.section-${b-1} path,
|
|
4
|
+
.section-${b-1} circle {
|
|
5
|
+
fill: ${c&&d?a.mainBkg:f};
|
|
6
|
+
stroke: ${i};
|
|
7
|
+
stroke-width: ${a.strokeWidth};
|
|
8
|
+
filter: ${g};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.section-${b-1} text {
|
|
12
|
+
fill: ${a.nodeBorder};
|
|
13
|
+
font-weight: ${a.fontWeight}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.node-icon-${b-1} {
|
|
17
|
+
font-size: 40px;
|
|
18
|
+
color: ${a["cScaleLabel"+b]};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.section-edge-${b-1} {
|
|
22
|
+
stroke: ${a["cScale"+b]};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.edge-depth-${b-1} {
|
|
26
|
+
stroke-width: ${e};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.section-${b-1} line {
|
|
30
|
+
stroke: ${a["cScaleInv"+b]};
|
|
31
|
+
stroke-width: 3;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.lineWrapper line {
|
|
35
|
+
stroke: ${a.nodeBorder};
|
|
36
|
+
stroke-width:${a.strokeWidth}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.disabled,
|
|
40
|
+
.disabled circle,
|
|
41
|
+
.disabled text {
|
|
42
|
+
fill: ${a.tertiaryColor??"lightgray"};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.disabled text {
|
|
46
|
+
fill: ${a.clusterBorder??"#efefef"};
|
|
47
|
+
}
|
|
48
|
+
`}return h},"genReduxSections"),_=(0,h.K)(a=>{let b="";for(let b=0;b<a.THEME_COLOR_LIMIT;b++)a["lineColor"+b]=a["lineColor"+b]||a["cScaleInv"+b],(0,j.A)(a["lineColor"+b])?a["lineColor"+b]=(0,k.A)(a["lineColor"+b],20):a["lineColor"+b]=(0,l.A)(a["lineColor"+b],20);for(let c=0;c<a.THEME_COLOR_LIMIT;c++){let d=""+(17-3*c);b+=`
|
|
49
|
+
.section-${c-1} rect, .section-${c-1} path, .section-${c-1} circle, .section-${c-1} path {
|
|
50
|
+
fill: ${a["cScale"+c]};
|
|
51
|
+
}
|
|
52
|
+
.section-${c-1} text {
|
|
53
|
+
fill: ${a["cScaleLabel"+c]};
|
|
54
|
+
}
|
|
55
|
+
.node-icon-${c-1} {
|
|
56
|
+
font-size: 40px;
|
|
57
|
+
color: ${a["cScaleLabel"+c]};
|
|
58
|
+
}
|
|
59
|
+
.section-edge-${c-1}{
|
|
60
|
+
stroke: ${a["cScale"+c]};
|
|
61
|
+
}
|
|
62
|
+
.edge-depth-${c-1}{
|
|
63
|
+
stroke-width: ${d};
|
|
64
|
+
}
|
|
65
|
+
.section-${c-1} line {
|
|
66
|
+
stroke: ${a["cScaleInv"+c]} ;
|
|
67
|
+
stroke-width: 3;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.lineWrapper line{
|
|
71
|
+
stroke: ${a["cScaleLabel"+c]} ;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.disabled, .disabled circle, .disabled text {
|
|
75
|
+
fill: ${a.tertiaryColor??"lightgray"};
|
|
76
|
+
}
|
|
77
|
+
.disabled text {
|
|
78
|
+
fill: ${a.clusterBorder??"#efefef"};
|
|
79
|
+
}
|
|
80
|
+
`}return b},"genSections"),aa=(0,h.K)(a=>{let{theme:b}=(0,f.zj)(),c=b?.includes("redux"),d="neutral"===b,e=a.svgId?.replace(/^#/,"")??"",g="";if(a.useGradient&&e&&a.THEME_COLOR_LIMIT&&!d)for(let b=0;b<a.THEME_COLOR_LIMIT;b++)g+=`
|
|
81
|
+
.section-${b-1}[data-look="neo"] rect,
|
|
82
|
+
.section-${b-1}[data-look="neo"] path,
|
|
83
|
+
.section-${b-1}[data-look="neo"] circle {
|
|
84
|
+
fill: ${a.mainBkg};
|
|
85
|
+
stroke: url(#${e}-gradient);
|
|
86
|
+
stroke-width: 2;
|
|
87
|
+
}
|
|
88
|
+
.section-${b-1}[data-look="neo"] line {
|
|
89
|
+
stroke: url(#${e}-gradient);
|
|
90
|
+
stroke-width: 2;
|
|
91
|
+
}`;return`
|
|
92
|
+
.edge {
|
|
93
|
+
stroke-width: 3;
|
|
94
|
+
}
|
|
95
|
+
${c?$(a):_(a)}
|
|
96
|
+
${g}
|
|
97
|
+
.section-root rect, .section-root path, .section-root circle {
|
|
98
|
+
fill: ${a.git0};
|
|
99
|
+
}
|
|
100
|
+
.section-root text {
|
|
101
|
+
fill: ${a.gitBranchLabel0};
|
|
102
|
+
}
|
|
103
|
+
.icon-container {
|
|
104
|
+
height:100%;
|
|
105
|
+
display: flex;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
align-items: center;
|
|
108
|
+
}
|
|
109
|
+
.edge {
|
|
110
|
+
fill: none;
|
|
111
|
+
}
|
|
112
|
+
.eventWrapper {
|
|
113
|
+
filter: brightness(120%);
|
|
114
|
+
}
|
|
115
|
+
`},"getStyles"),ab={db:n,renderer:{setConf:(0,h.K)(()=>{},"setConf"),draw:(0,h.K)((a,b,c,d)=>"TD"===(d?.db?.getDirection?.()??"LR")?Z.draw(a,b,c,d):V.draw(a,b,c,d),"draw")},parser:m,styles:aa}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=8679,exports.ids=[8679],exports.modules={1924:a=>{a.exports={style:{fontFamily:"'Noto Sans Mono', 'Noto Sans Mono Fallback'",fontStyle:"normal"},className:"__className_66b8ca",variable:"__variable_66b8ca"}},14574:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},19102:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{PwaRegistration:()=>d}),c(67484)},25319:()=>{},32056:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,metadata:()=>j,viewport:()=>k});var d=c(5735),e=c(1924),f=c.n(e),g=c(88275),h=c.n(g),i=c(81276);c(25319),c(82704),c(77261);let j={title:"Pi Web",description:"Pi Web interface for the pi coding agent",applicationName:"Pi Web",manifest:"/manifest.webmanifest",icons:{icon:[{url:"/icons/icon-192.png",sizes:"192x192",type:"image/png"}],apple:[{url:"/icons/apple-touch-icon.png",sizes:"180x180",type:"image/png"}]},appleWebApp:{capable:!0,statusBarStyle:"black-translucent",title:"Pi Web"},formatDetection:{telephone:!1}},k={width:"device-width",initialScale:1,viewportFit:"cover",interactiveWidget:"resizes-content",themeColor:"#f5f5f5"};function l({children:a}){return(0,d.jsxs)("html",{lang:"en",translate:"no",className:`${f().variable} ${h().variable} notranslate`,suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("meta",{name:"google",content:"notranslate"}),(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:'(function(){try{var t=localStorage.getItem("pi-theme");var dark=t==="dark"||((t==null||t===""||t==="auto")&&window.matchMedia("(prefers-color-scheme: dark)").matches);if(dark)document.documentElement.classList.add("dark");var c=dark?"#242424":"#f5f5f5";var ms=document.querySelectorAll(\'meta[name="theme-color"]\');if(ms.length===0){var m=document.createElement("meta");m.name="theme-color";m.content=c;document.head.appendChild(m)}else{for(var i=0;i<ms.length;i++){ms[i].removeAttribute("media");ms[i].content=c}}}catch(e){}})();'}})]}),(0,d.jsxs)("body",{translate:"no",className:"notranslate",suppressHydrationWarning:!0,children:[a,(0,d.jsx)(i.PwaRegistration,{})]})]})}},46055:(a,b,c)=>{"use strict";function d(){return[{type:"image/x-icon",sizes:"512x512",url:"/favicon.ico?c16c14206ecd3374"}]}c.r(b),c.d(b,{default:()=>d})},55091:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}});let d=c(5735),e=c(22675);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},69987:(a,b,c)=>{Promise.resolve().then(c.bind(c,81276))},77261:()=>{},77622:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},78335:()=>{},81276:(a,b,c)=>{"use strict";c.d(b,{PwaRegistration:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call PwaRegistration() from the server but PwaRegistration is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/opt/pi-web/components/PwaRegistration.tsx","PwaRegistration")},81996:(a,b,c)=>{"use strict";function d(a,b,c,e={}){let f=c[a]?.[b]??c.en?.[b];return void 0===f?b:function(a,b={}){return a.replace(/\{([\w.-]+)\}/g,(a,c)=>{let d=b[c];return void 0===d?a:String(d)})}(f,e)}function e(a,b,c=new Date){let d=a instanceof Date?a:new Date(a),f=Math.max(0,Math.floor((c.getTime()-d.getTime())/6e4)),g=b.startsWith("zh");if(f<1)return g?"zh-TW"===b?"剛剛":"刚刚":"now";if(f<60)return g?`${f}${"zh-TW"===b?"分鐘":"分钟"}`:`${f}m`;let h=Math.floor(f/60);if(h<24)return g?`${h}${"zh-TW"===b?"小時":"小时"}`:`${h}h`;let i=Math.floor(h/24);return g?`${i}天`:`${i}d`}function f(a,b,c=new Date){let d=(a instanceof Date?a:new Date(a)).getTime()-c.getTime(),e=Math.abs(d),[g,h]=e<6e4?["second",1e3]:e<36e5?["minute",6e4]:e<864e5?["hour",36e5]:["day",864e5],i=Math.round(d/h);return new Intl.RelativeTimeFormat(b,{numeric:"always"}).format(i,g)}c.d(b,{fw:()=>f,u0:()=>d,wA:()=>e})},82704:()=>{},84059:(a,b,c)=>{Promise.resolve().then(c.bind(c,19102))},86364:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},88275:a=>{a.exports={style:{fontFamily:"'Noto Serif SC', 'Noto Serif SC Fallback'",fontStyle:"normal"},className:"__className_877630",variable:"__variable_877630"}},93080:(a,b,c)=>{"use strict";c.d(b,{I18nProvider:()=>k,s:()=>l});var d=c(48249),e=c(67484);let f=[{id:"en",label:"English",messages:{"common.ok":"OK","common.language":"Language","common.models":"Models","common.skills":"Skills","common.agents":"Sub-agents","common.plugins":"Plugins","common.settings":"Settings","settings.title":"Settings","settings.general":"General","settings.appearance":"Appearance","settings.chatContentWidth":"Chat content width","settings.chatContentFontSize":"Content font size","settings.resetChatContentWidth":"Reset chat content width","settings.resetChatContentFontSize":"Reset content font size","settings.themeLight":"Light","settings.themeDark":"Dark","settings.themeSystem":"System","settings.thinkingExpandedDefault":"Expand thinking blocks by default","settings.autoSessionTitle":"Automatically name new sessions","settings.chat":"Chat","settings.shiftEnterToSend":"Send with Shift+Enter","settings.quoteSelection":"Show actions for selected text","settings.browserNotifications":"Browser notifications","settings.browserNotificationsEnable":"Enable","settings.browserNotificationsOn":"On","settings.browserNotificationsBlocked":"Blocked in browser","settings.pushPermission":"Background push","settings.pushPermissionDescription":"Lock-screen alerts for the iOS home-screen app. Re-register if they stop arriving.","settings.pushRegister":"Register push","settings.pushRegisterLoading":"Registering…","settings.pushRegistered":"Push registered — background notifications are ready.","settings.pushRegisterFailed":"Registration failed:","auth.prompt":"Sign in to continue","auth.password":"Password","auth.logIn":"Log in","auth.loggingIn":"Logging in...","auth.invalidPassword":"Incorrect password","auth.loginFailed":"Could not log in. Try again.","auth.logOut":"Log out","auth.loggingOut":"Logging out...","auth.logoutFailed":"Could not log out. Try again.","settings.typography":"Monospace & Geometric Alignment","settings.typographyDescription":"Code blocks, terminals, and ASCII diagrams prioritize Sarasa Term SC / Nerd and Maple Mono. Installing them locally provides exact 2:1 geometric alignment between CJK and Latin characters.","settings.fontMonoDownload":"Get Sarasa Term SC","settings.shellTool":"Shell tool","settings.shellToolDescription":"Choose which shell the model uses for commands. Direct ! and !! commands still use Bash.","settings.usePowerShell":"Use PowerShell instead of Bash","settings.projectRequired":"Open a project to configure this section","settings.images":"Images","settings.imagesDescription":"Adds an image button and the generate_image tool. Built-in connections need a signed-in account.","settings.imagesEnabled":"Enable image generation","settings.imagesBuiltin":"Built-in","settings.imagesCustom":"Custom","settings.imagesLabel":"Name","settings.imagesProvider":"Provider","settings.imagesModel":"Model","settings.imagesNoProviders":"Add a provider in Models first.","settings.imagesOtherModel":"Other model","settings.imagesSignedOut":"Not signed in","settings.imagesNotConfigured":"Provider has no key","skills.scope.global":"global","skills.scope.project":"project","skills.scope.path":"path","agents.close":"Close","agents.builtInTitle":"Enable Pi Web built-in sub-agents","agents.builtInDescription":"Provides Pi Web's integrated Agent tools and disables a conflicting pi-subagents extension.","agents.maxConcurrent":"Concurrent sub-agents","agents.maxConcurrentDescription":"Maximum prompts running at once per parent session.","agents.reloadRequired":"Reload the current session to apply this change.","agents.reloadSession":"Reload session","agents.reloading":"Reloading...","agents.loading":"Loading sub-agents...","agents.new":"New sub-agent","agents.empty":"Select or create a sub-agent profile","agents.saveScope":"Save to","agents.name":"Sub-agent ID","agents.displayName":"Display name","agents.description":"Description","agents.prompt":"System instructions","agents.tools":"Tools","agents.resources":"Resources","agents.loadSkills":"Load skills","agents.loadExtensions":"Load extensions","agents.model":"Model override","agents.modelsLoading":"Loading models...","agents.modelUnavailable":"{model} (unavailable)","agents.thinking":"Thinking","agents.maxTurns":"Max turns","agents.inherit":"Parent default","agents.enable":"Enable sub-agent","agents.disable":"Disable sub-agent","agents.builtinPath":"Built-in profile","agents.inheritContext":"Inherit parent context","agents.background":"Run in background by default","agents.duplicate":"Duplicate","agents.copyName":"{name} copy","agents.delete":"Delete","agents.deleteConfirm":"Delete {name}?","agents.save":"Save","agents.saving":"Saving...","agents.scope.builtin":"built-in","agents.scope.global":"global","agents.scope.workspace":"workspace","agents.scope.project":"project","agents.overridden":"Overridden","subagent.open":"Open sub-agent session","subagent.notificationSingle":"Sub-agent result ready","subagent.notificationMany":"{count} sub-agent results ready","agentSwitcher.title":"Agents","agentSwitcher.main":"Main agent","agentSwitcher.backToMain":"Back to main agent","agentSwitcher.subagent":"Sub-agent","agentSwitcher.current":"Current","agentSwitcher.count":"{count} sub-agents","agentSwitcher.runningCount":"{count} running","agentSwitcher.search":"Search agents","agentSwitcher.noMatches":"No matching agents","agentSwitcher.status.starting":"Starting","agentSwitcher.status.running":"Running","agentSwitcher.status.queued":"Queued","agentSwitcher.status.completed":"Completed","agentSwitcher.status.failed":"Failed","agentSwitcher.status.aborted":"Aborted","agentSwitcher.status.interrupted":"Interrupted","appUpdate.releaseNotes":"Pi Web v{version} is available. View release notes","sidebar.hide":"Hide sidebar","sidebar.show":"Show sidebar","history.full":"Full history","history.unsaved":"Full history is available after the session is saved","history.menu":"History and export","history.exportMarkdown":"Export Q&A","history.exportMarkdownTitle":"Download the current conversation as Markdown, without tools or thinking","history.exportEmpty":"This conversation has no Q&A to export","history.exportFailed":"Could not export Markdown","system.prompt":"System prompt","system.empty":"System prompt is empty (tools are disabled)","system.load":"System prompt has not loaded yet","system.loading":"Loading system prompt…","tools.title":"Tool definitions","tools.details":"Tool definition details","tools.load":"Tool definitions have not loaded yet","tools.loading":"Loading tool definitions…","tools.noTools":"No active tools","tools.description":"Description","tools.parameters":"Parameters","tools.parameterCount":"{count} parameters","tools.noParameters":"No parameters","tools.required":"Required","tools.optional":"Optional","tools.allowedValues":"Allowed","tools.defaultValue":"Default","tools.guidelines":"Prompt guidelines","session.info":"Session info","session.name":"Name","session.file":"Session File","session.id":"ID","session.user":"User","session.assistant":"Assistant","session.toolCalls":"Tool Calls","session.total":"Total","session.input":"Input","session.output":"Output","session.cacheRead":"Cache Read","session.context":"Context","session.activeContext":"Active Context","session.cumulativeTokens":"Session Cumulative Traffic","session.contextRemaining":"Remaining","session.contextWindow":"Window Limit","session.contextUsed":"Used","session.cacheHitRate":"Avg cache hit rate","session.copy":"Copy {value}","session.copied":"Copied","session.title":"Session info","session.load":"Send a message or run /session to load session info","session.infoSection":"Session Info","session.messages":"Messages","session.copyFile":"Copy file path","session.copyId":"Copy session ID","session.copyProjectDir":"Copy project directory","session.copyGitBranch":"Copy git branch","session.copyGitWorktree":"Copy worktree path","workspace.opening":"Opening workspace...","workspace.unable":"Unable to open workspace","files.hidePanel":"Hide file panel","files.showPanel":"Show file panel","files.noneOpen":"No file open","layout.resizeSidebar":"Resize sidebar","layout.resizeFilePanel":"Resize file panel","layout.resizeHint":"Drag to resize. Double-click or press Enter to reset.","sidebar.new":"New","sidebar.newSessionTitle":"New session in {path}","sidebar.refresh":"Refresh","sidebar.selectProject":"Select project…","sidebar.filterProjects":"Filter projects…","sidebar.noMatchingProjects":"No matching projects","sidebar.useDefaultDirectory":"Use default directory","sidebar.customPath":"Custom path…","directoryPicker.selectDirectory":"Select directory","directoryPicker.goToParent":"Go to parent directory","directoryPicker.directoryPath":"Directory path","directoryPicker.goToDirectory":"Go to directory","directoryPicker.go":"Go","directoryPicker.loadingDirectories":"Loading directories…","directoryPicker.noSubdirectories":"No subdirectories","directoryPicker.openBeforeSelecting":"Open this path before selecting it","directoryPicker.selectCurrentDirectory":"Select current directory","directoryPicker.selectThisFolder":"Select this folder","directoryPicker.noDrives":"No drives found","sidebar.checking":"Checking…","sidebar.open":"Open","sidebar.cancel":"Cancel","sidebar.openRepoRoot":"Open repo root","sidebar.openRepoRootTitle":"Open the repository root to manage worktrees.","sidebar.gitRepoRootOnly":"Git repo root only","sidebar.gitRepoRootOnlyTitle":"Worktrees are available in Git repository roots.","sidebar.worktrees":"Worktrees...","sidebar.checkingWorktrees":"Checking worktrees for this directory.","sidebar.filterWorktrees":"Filter worktrees…","sidebar.noMatchingWorktrees":"No matching worktrees","sidebar.switchWorktree":"Switch worktree","sidebar.switchWorktreeTitle":"Switch worktree: {path}","sidebar.main":"main","sidebar.forceRemoveCheckout":"Uncommitted changes. Force remove checkout?","sidebar.force":"Force","sidebar.createWorktreeTitle":"Create a worktree checkout for a branch","sidebar.newWorktree":"New worktree…","sidebar.branchName":"branch name","sidebar.creating":"Creating…","sidebar.create":"Create","sidebar.uploadFilesTitle":"Upload files to project root","sidebar.uploadFiles":"Upload files","sidebar.refreshExplorer":"Refresh explorer","sidebar.searchFiles":"Search files","sidebar.searchFilesPlaceholder":"Search files…","sidebar.searchingFiles":"Searching…","sidebar.noMatchingFiles":"No matching files","sidebar.clearSearch":"Clear search","sidebar.searchSessions":"Search all conversations...","sidebar.toggleSessionSearch":"Search conversations","sidebar.sessionSearching":"Searching...","sidebar.sessionSearchEmpty":"No matching conversations","sidebar.sessionSearchCount":"{count} matching conversations","sidebar.sessionSearchPartial":"Search limit reached. Results may be incomplete.","sidebar.sessionSearchFailed":"Could not search conversations","sidebar.changedFiles":"{count} changed files","sidebar.noSessions":"No sessions found","sidebar.agentRunning":"Agent running…","sidebar.newSessionActivity":"New session activity","sidebar.deleteSession":"Delete {title}?","sidebar.rename":"Rename","sidebar.delete":"Delete","sidebar.deleteWithShiftClick":"Delete (Shift+click to delete without confirmation)","sidebar.expandSubagents":"Expand subagents","sidebar.collapseSubagents":"Collapse subagents","sidebar.removeWorktreeTitle":"Remove worktree checkout {path}; the branch is kept","files.modified":"Modified","files.added":"Added","files.deleted":"Deleted","files.renamed":"Renamed","files.untracked":"Untracked","files.conflict":"Conflict","files.newlyUploaded":"Newly uploaded","files.containsChangedFiles":"Contains changed files","files.insertPath":"Insert path into chat","files.mention":"mention","files.download":"Download file","files.dismissError":"Dismiss error","files.addUploadedFile":"Add uploaded file to chat","files.addAllUploadedFiles":"Add all uploaded files to chat","files.dismissUploadResults":"Dismiss upload results","files.noFiles":"No files found","files.explorer":"Explorer","files.changedCount":"{count} files","files.changeStats":"{count} changed files, {additions} lines added, {deletions} lines deleted","files.conflictSummary":"{count} file{countSuffix} already exist: {files}","files.cannotReplace":"Cannot replace: {files}","files.replace":"Replace","files.skipExisting":"Skip existing","files.cancel":"Cancel","files.checking":"Checking files","files.uploading":"Uploading, {progress}%","files.loadFailedRetry":"Failed to load \xb7 Retry","files.gitStatusFailed":"Failed to load Git status","chat.loadingSession":"Loading session...","chat.scrollToBottom":"Scroll to latest","chat.generatingToolInput":"Generating parameters...","chat.agentWorking":"Agent is working","chat.ttft":"TTFT {duration}","chat.tokensPerSecond":"{throughput} tok/s","chat.decodeSeconds":"{seconds}s","chat.decodeMinutes":"{minutes}m{seconds}s","chat.thinking":"Thinking...","chat.message":"message","chat.step":"step","chat.steps":"steps","chat.workedFor":"Worked for {duration}","chat.workedForSteps":"Worked for {duration} \xb7 {count} {steps}","chat.collapseProcess":"Collapse process details","chat.expandProcess":"Expand process details","chat.filesWritten":"Files changed","chat.openWrittenFile":"Open {name}","chat.loadEarlier":"Scroll up to load earlier messages","chat.extensionRequest":"extension request","chat.extensionExpiresIn":"expires in {seconds}s","chat.extensionPending":"Awaiting response","chat.extensionCollapse":"Collapse","chat.extensionExpand":"Expand","chat.cancel":"Cancel","chat.confirm":"Confirm","chat.submit":"Submit","chat.extensionInput":"Extension terminal input","chat.extensionPanel":"Extension panel","chat.close":"Close","chat.queued":"Queued \xb7 {count}","chat.recall":"Recall to input","chat.recallTitle":"Remove all queued messages and put them back into the input box for editing","chat.retrying":"Retrying ({attempt}/{max})…","chat.loadingCommands":"Loading commands...","chat.slashCommands":"Slash commands \xb7 {label}","chat.tabEnter":"Tab / Enter","chat.noCommands":"No extension, prompt, or skill commands found","chat.match":"1 match","chat.matches":"{count} matches","chat.command":"1 command","chat.commands":"{count} commands","chat.loadingFiles":"Loading files...","chat.files":"Files \xb7 {label}{hint}","chat.searching":"Searching…","chat.noMatchingFiles":"No matching files","chat.searchingAll":" \xb7 searching all files…","chat.indexTruncated":" \xb7 index truncated","chat.changeWorkingDirectory":"Change working directory","chat.steer":"Steer","chat.followUp":"Follow-up","chat.steerHint":"Interrupt the current run and inject this message now","chat.followUpHint":"Queue this message after the agent finishes","chat.inputHistory":"Input history","chat.modelError":"Model error","chat.modelScopeWarning":"Model scope warning","chat.modelScopeWarnings":"Model scope warnings","chat.send":"Send","chat.askSelection":"Ask about selected text","chat.askInCurrent":"Ask here","chat.askInNewChat":"Ask in new chat","chat.newQuoteChat":"New chat about selected text","chat.quoteIntro":"About this passage:","chat.quoteQuestion":"My question:","chat.quoteForkFailed":"Unable to create a branch from this message.","chat.attachImage":"Attach image","chat.previewImage":"Preview image","chat.imagePreviewUnavailable":"Image preview unavailable","image.title":"Generate image","image.editTitle":"Edit image","image.editPromptPlaceholder":"Describe the change","image.editSource":"Original","image.prompt":"Prompt","image.promptPlaceholder":"Describe the image to generate","image.connection":"Connection","image.aspect":"Aspect","image.aspectAuto":"Auto","image.aspectSquare":"Square","image.aspectPortrait":"Portrait","image.aspectLandscape":"Landscape","image.resolution":"Resolution","image.quality":"Quality","image.qualityAuto":"Auto","image.qualityLow":"Low","image.qualityMedium":"Medium","image.qualityHigh":"High","image.edit":"Edit","image.quote":"Quote","image.generate":"Generate","image.generating":"Generating…","chat.moreControls":"More controls","chat.inputOptions":"Options","chatTabs.label":"Chat Tabs","chatTabs.newTab":"New chat tab","chatTabs.closeTab":"Close tab","chatTabs.splitView":"Split right","chatTabs.closeSplit":"Close split","chatTabs.openInNewTab":"Open in new tab","chatTabs.pinTab":"Pin tab","chatTabs.previewTabHint":"Preview tab — double-click to pin","chatTabs.unsentDraft":"Unsent draft","chatTabs.discardDraft":"Discard this unsent draft?","chatTabs.allTabs":"All chat tabs","chat.draftPageOnly":"This draft is only saved on this page; refreshing will discard it.","chat.collapseControls":"Collapse controls","chat.shell":"Shell","terminal.title":"Terminal","terminal.tabLabel":"Terminal: {name}","terminal.open":"Open workspace terminal","terminal.close":"Terminate terminal","terminal.restart":"Restart terminal","terminal.reconnect":"Reconnect terminal","terminal.connecting":"Connecting","terminal.ready":"Connected","terminal.exited":"Terminal closed","terminal.error":"Connection error","terminal.exitCode":"Process exited with code {code}","chat.outputLocal":"output stays local","chat.outputModel":"output sent to model","chat.chatOnly":"Chat only","chat.readOnlyTools":"{count} read-only built-in tools","chat.builtInTools":"{count} built-in tools","chat.allBuiltInTools":"All built-in tools","chat.changeReasoning":"Change reasoning level: {level}","chat.changeReasoningLabel":"Change reasoning level","chat.changeToolPreset":"Change tool preset","chat.stopCompaction":"Stop compaction","chat.compactContext":"Compact context","chat.compacting":"Compacting…","chat.compact":"Compact","chat.contextUsage":"Context usage","chat.contextRemaining":"Remaining","chat.contextHighWarning":"Context near limit, compaction recommended","chat.stopAgent":"Stop agent","chat.stop":"Stop","chat.locateNotFound":"Could not locate this message.","chat.locateOtherBranch":"This match is on another branch of the session.","chat.locateLoadFailed":"Could not load this message. Please try again.","chat.locateHistoryStalled":"History did not advance. Please try again.","chat.disableSound":"Disable completion sound","chat.enableSound":"Enable completion sound","chat.thinkingUseDefault":"Use pi default","chat.thinkingOff":"Reasoning off","chat.thinkingMinimal":"Minimal reasoning","chat.thinkingLow":"Low reasoning","chat.thinkingMedium":"Medium reasoning","chat.thinkingHigh":"High reasoning","chat.thinkingXhigh":"Extra-high reasoning","chat.thinkingMax":"Max reasoning","chat.builtIn":"Built-in","chat.extensions":"Extensions","chat.prompts":"Prompts","chat.skills":"Skills","chat.dormant":"dormant","chat.commandCompact":"Compress context, optionally with instructions","chat.commandReload":"Reload extensions, skills, prompts, and tools","chat.commandName":"Set the session display name","chat.commandSession":"Show session message, token, and cost stats","chat.commandCopy":"Copy the last assistant message","chat.commandClone":"Clone the current branch into a new session","chat.compacted":"Compacted","chat.imageNotSupportedTitle":"Images may not be sent","chat.imageNotSupportedBody":"The selected model ({model}) does not support image input. The attached images will likely be ignored.","chat.tooManyImagesTitle":"Too many images to send","chat.tooManyImagesBody":"This draft has {count} images. Remove extras until {max} or fewer remain; nothing was discarded.","chat.tokensSaved":"{saved} saved","chatMinimap.userOutline":"Questions","chatMinimap.jumpFailed":"Jump failed: ","chatMinimap.retry":"Retry","i18n.close":"Close","i18n.copy":"Copy","i18n.copied":"Copied","i18n.cancel":"Cancel","i18n.save":"Save","i18n.saving":"Saving…","i18n.saved":"Saved","i18n.remove":"Remove","i18n.removing":"Removing…","i18n.delete":"Delete","i18n.loading":"Loading...","i18n.search":"Search","i18n.refresh":"Refresh","i18n.update":"Update","i18n.updating":"Updating...","i18n.check":"Check","i18n.checking":"Checking...","i18n.install":"Install","i18n.installing":"Installing...","i18n.searchProviders":"Search providers…","i18n.noProviders":"No providers match","i18n.newModel":"new model","i18n.addProvider":"Add provider","i18n.selectProviderModel":"Select a provider or model","i18n.visibleInPrompt":"Visible in model prompt — click to disable","i18n.hiddenFromPrompt":"Hidden from model prompt — click to enable","i18n.hiddenButInvocable":"Hidden from model, still manually invocable","i18n.skillSearchPlaceholder":"e.g. react, testing, deploy","i18n.searching":"Searching…","i18n.noSkills":"No skills found","i18n.checkUpdates":"Check updates","i18n.updates":"updates","i18n.noResolvedResources":"No resolved resources","i18n.enablePackage":"Enable package","i18n.disablePackage":"Disable package","i18n.filtered":"filtered","i18n.openSessionToReload":"Open a session to reload","i18n.notFound":"Not found","trust.resourcesNotLoaded":"Restricted mode","trust.trustProject":"Trust project","trust.trusting":"Trusting...","trust.cancel":"Cancel","trust.dialogTitle":"Trust this project?","trust.dialogBody":"Project resources can run local code. Trust only projects whose contents you know.","trust.skillsNotLoaded":"Project skills are not loaded because this project is not trusted.","trust.pluginsNotLoaded":"Project plugins are not loaded because this project is not trusted.","trust.projectScopeUnavailable":"Project installs are unavailable while project resources are not loaded.","i18n.creatingSession":"Creating new session…","i18n.creating":"Creating…","i18n.subscription":"Subscription","i18n.subscriptions":"Subscriptions","i18n.customEndpoint":"Custom endpoint format","i18n.noChanges":"No changes","i18n.branches":"Branches","i18n.noActiveSession":"No active session","i18n.noBranches":"This session has no branches","i18n.source":"Source","i18n.preview":"Preview","i18n.outline":"Outline","i18n.diff":"Diff","i18n.downloadFile":"Download file","i18n.liveSync":"Live sync active","i18n.notWatching":"Not watching","i18n.fileViewMode":"File view mode","i18n.compareHead":"Compare working tree with HEAD","i18n.mentionSelectedLines":"Mention selected lines","i18n.disableWrap":"Disable word wrap","i18n.enableWrap":"Enable word wrap","i18n.loadMore":"Load more","i18n.htmlPreview":"HTML preview","i18n.previewFile":"Preview {file}","i18n.invalidMermaid":"Invalid Mermaid diagram","i18n.renderingMermaid":"Rendering Mermaid diagram","i18n.previewAfterStreaming":"Preview available after streaming","i18n.showMermaidSource":"Show Mermaid source","i18n.previewMermaid":"Preview Mermaid diagram","i18n.openMermaidViewer":"Open diagram viewer","i18n.mermaidViewer":"Mermaid diagram viewer","i18n.mermaidDiagram":"Mermaid diagram","i18n.zoomOut":"Zoom out","i18n.zoomIn":"Zoom in","i18n.fitToWidth":"Fit to width","models.discoveryFetching":"Importing models…","models.discoveryFetch":"Import models…","models.discoveryFilterPlaceholder":"Filter {count} models…","models.discoveryFilter":"Filter upstream models","models.discoverySelectShown":"Select shown","models.discoveryNoMatches":"No matching models.","models.discoveryAdded":"added","models.discoveryShowing":"Showing first {shown} of {total}","models.discoveryFetched":"{count} models fetched","models.discoveryAddSelected":"Add selected","models.discoveryAddSelectedCount":"Add selected ({count})","models.catalogSource":"source: models.dev ↗","models.catalogFilling":"Filling details…","models.catalogFill":"Fill model details","models.catalogFilled":"{count} fields filled","models.catalogNoEmptyFields":"No empty fields to fill","models.catalogNoExactMatch":"No exact models.dev match","models.catalogPriceProvider":"Price matched Provider {provider}","models.catalogPriceBaseUrl":"Price matched Base URL to {provider}","models.catalogPriceConsensus":"Price agreed by {support}/{total} records","models.catalogPriceUnreliable":"No reliable price found","models.catalogUndo":"Undo","models.inPicker":"Show in chat model picker","models.catalogShelf":"Available models","models.updateKey":"Update key","models.replaceKeyPlaceholder":"Enter new key to replace…","models.saveModelsJson":"Save models.json","models.endpoint":"Endpoint","models.pickerMaterializeConfirm":"Hiding a model pins the current visible list in settings.json. Newly connected models will stay hidden until you add them. Continue?","models.pickerProjectOverride":"This workspace overrides enabledModels in .pi/settings.json. Edit that file instead.","models.pickerGlobManaged":"This model is included by an enabledModels glob. Edit ~/.pi/agent/settings.json.","models.pickerLastModel":"The picker must keep at least one model.","models.pickerError":"Could not update the model picker","models.capabilities":"Capabilities","models.reasoning":"Reasoning / thinking","models.imageInput":"Image input","models.modelSpecs":"Model specifications","models.contextWindow":"Context window (tokens)","models.maxOutputTokens":"Max output tokens","models.costPerMillion":"Cost per million tokens","models.costInput":"Input","models.costOutput":"Output","models.costCacheRead":"Cache read","models.costCacheWrite":"Cache write","models.notProvided":"Not provided","models.editCosts":"Edit prices","models.finishEditingCosts":"Done","models.costAllRequired":"Enter a valid non-negative price; blank fields are saved as 0.","models.advancedSettings":"Advanced settings","models.providerDefaults":"Using provider defaults","models.headersSummary":"Headers: {count}","models.compatSummary":"Compatibility: {count}","models.thinkingSummary":"Thinking levels: {count}","models.apiOverride":"API override","models.headers":"Headers","models.headersHelp":"Added to this model's requests and overrides provider headers.","models.compatibility":"Compatibility","models.deepSeekThinkingCompat":"DeepSeek thinking compatibility","models.developerRole":"Use the developer role for the system prompt","models.thinkingLevelMap":"Thinking level map","models.clearAll":"Clear all","i18n.testingModel":"Testing model connection...","i18n.connected":"Connected","i18n.failed":"Failed","i18n.test":"Test","i18n.testConnection":"Test model connection","i18n.provider":"Provider","i18n.model":"Model","i18n.providerName":"Provider name","i18n.rename":"Rename","i18n.default":"Default","i18n.disabled":"Disabled","i18n.noResources":"No resources","i18n.unknown":"Unknown","i18n.installedVersion":"installed {version}","i18n.configuredVersion":"configured {version}","i18n.extensions":"Extensions","i18n.prompts":"Prompts","i18n.themes":"Themes","i18n.resourceCount":"{count} {label}","i18n.extensionShort":"ext","i18n.skillShort":"skills","i18n.promptShort":"prompts","i18n.themeShort":"themes","i18n.custom":"Custom","i18n.connectedSuccessfully":"Connected successfully.","i18n.notConnected":"not connected","i18n.configured":"configured","i18n.notConfigured":"not configured","i18n.openingBrowser":"Opening browser…","i18n.submit":"Submit","i18n.login":"Login","i18n.relogin":"Re-login","i18n.disconnect":"Disconnect","i18n.networkError":"Network error","i18n.skills":"Skills","i18n.addSkill":"Add skill","i18n.addPlugin":"Add plugin","i18n.selectSkill":"Select a skill","i18n.selectPackage":"Select a package","i18n.updateAvailable":"Update available","i18n.upToDate":"Up to date","i18n.automaticChecksUnavailable":"Automatic checks unavailable","i18n.checkFailed":"Check failed","i18n.installed":"Installed","i18n.status":"Status","i18n.version":"Version","i18n.package":"Package","i18n.resources":"Resources","i18n.installedPath":"Installed path","i18n.cwd":"CWD","i18n.resolvedResources":"Resolved Resources","i18n.reloadSession":"Reload session","i18n.reloading":"Reloading...","i18n.packagesUpdated":"Packages updated.","i18n.updateAllPlugins":"Update all","i18n.updateAllPluginsHint":"Updates all configured plugins","i18n.packageDisabled":"Package disabled.","i18n.thinking":"Thinking","i18n.largeMessageReveal":"Message content is very large ({size}). Click to view as plain text — markdown rendering is disabled to keep the page responsive.","i18n.loadingThinking":"Loading thinking...","i18n.copyMessage":"Copy message","i18n.editFromHere":"Edit from here","i18n.editFromHereTitle":"Edit from here — branches within this session","i18n.newSession":"New session","i18n.newSessionTitle":"New session — creates an independent copy from here","i18n.noOutput":"(no output)","i18n.noSummary":"(no summary)","i18n.conversationCompacted":"Conversation compacted","i18n.compactionDescription":"The conversation history before this point was compacted into the following summary:","i18n.fileContext":"File context: {details}","i18n.readFiles":"Read files","i18n.modifiedFiles":"Modified files","i18n.hiddenExtensionMessage":"hidden extension message","i18n.noMessage":"(no message)","i18n.showExtensionMessage":"Show extension message","i18n.collapse":"Collapse","i18n.expand":"Expand","i18n.hideDetails":"Hide details","i18n.showDetails":"Show details","i18n.thinkingUnavailable":"Thinking content unavailable","i18n.before":"Before","i18n.after":"After","i18n.sessionComplete":"Session complete","i18n.taskFinished":"Task finished.","i18n.attentionNeeded":"Pi needs your attention","i18n.extensionInputNeeded":"An extension is waiting for your input."}},{id:"zh-CN",label:"简体中文",messages:{"common.ok":"确定","common.language":"语言","common.models":"模型","common.skills":"技能","common.agents":"子代理","common.plugins":"插件","common.settings":"设置","settings.title":"设置","settings.general":"常规","settings.appearance":"外观","settings.chatContentWidth":"聊天内容宽度","settings.chatContentFontSize":"正文字体大小","settings.resetChatContentWidth":"重置聊天内容宽度","settings.resetChatContentFontSize":"重置正文字体大小","settings.themeLight":"浅色","settings.themeDark":"深色","settings.themeSystem":"跟随系统","settings.thinkingExpandedDefault":"默认展开思考块","settings.autoSessionTitle":"自动为新会话生成标题","settings.chat":"对话","settings.shiftEnterToSend":"用 Shift+Enter 发送","settings.quoteSelection":"选中文字时显示提问浮窗","settings.browserNotifications":"浏览器通知","settings.browserNotificationsEnable":"开启","settings.browserNotificationsOn":"已开启","settings.browserNotificationsBlocked":"已在浏览器中关闭","settings.pushPermission":"后台推送","settings.pushPermissionDescription":"用于 iOS 主屏应用的锁屏通知。收不到时在此重新注册。","settings.pushRegister":"注册推送","settings.pushRegisterLoading":"注册中…","settings.pushRegistered":"推送已注册,后台通知就绪。","settings.pushRegisterFailed":"注册失败:","auth.prompt":"登录后继续使用","auth.password":"密码","auth.logIn":"登录","auth.loggingIn":"正在登录...","auth.invalidPassword":"密码不正确","auth.loginFailed":"登录失败,请重试。","auth.logOut":"退出登录","auth.loggingOut":"正在退出...","auth.logoutFailed":"退出失败,请重试。","settings.typography":"等宽字体与几何对齐","settings.typographyDescription":"代码块、终端与 ASCII 架构图优先匹配更纱黑体(Sarasa Term SC / Nerd)与 Maple Mono。在本地系统安装该字体后,即可自动实现中英文 2:1 像素级几何等宽对齐。","settings.fontMonoDownload":"获取更纱黑体 Term SC","settings.shellTool":"Shell 工具","settings.shellToolDescription":"选择模型执行命令时使用的 Shell。直接输入的 ! 和 !! 命令仍使用 Bash。","settings.usePowerShell":"使用 PowerShell 替代 Bash","settings.projectRequired":"打开项目后才能配置此项","settings.images":"生图","settings.imagesDescription":"打开后显示生图按钮并注册 generate_image。内置连接需要已登录的对应账号。","settings.imagesEnabled":"启用生图","settings.imagesBuiltin":"内置","settings.imagesCustom":"自定义","settings.imagesLabel":"名称","settings.imagesProvider":"Provider","settings.imagesModel":"模型","settings.imagesNoProviders":"请先在模型设置里添加 provider。","settings.imagesOtherModel":"其他模型","settings.imagesSignedOut":"未登录","settings.imagesNotConfigured":"未配置密钥","skills.scope.global":"全局","skills.scope.project":"项目","skills.scope.path":"路径","agents.close":"关闭","agents.builtInTitle":"启用 Pi Web 内置子代理","agents.builtInDescription":"提供 Pi Web 集成的 Agent 工具,并停用发生冲突的 pi-subagents 扩展。","agents.maxConcurrent":"并发子代理数","agents.maxConcurrentDescription":"每个父会话同时运行的最大任务数。","agents.reloadRequired":"重新加载当前会话后生效。","agents.reloadSession":"重新加载会话","agents.reloading":"正在重新加载...","agents.loading":"正在加载子代理...","agents.new":"新建子代理","agents.empty":"选择或创建一个子代理配置","agents.saveScope":"保存到","agents.name":"子代理 ID","agents.displayName":"显示名称","agents.description":"描述","agents.prompt":"系统指令","agents.tools":"工具","agents.resources":"资源","agents.loadSkills":"加载技能","agents.loadExtensions":"加载扩展","agents.model":"指定模型","agents.modelsLoading":"正在加载模型...","agents.modelUnavailable":"{model}(不可用)","agents.thinking":"思考级别","agents.maxTurns":"最大轮次","agents.inherit":"跟随父会话","agents.enable":"启用子代理","agents.disable":"停用子代理","agents.builtinPath":"内置配置","agents.inheritContext":"继承父会话上下文","agents.background":"默认在后台运行","agents.duplicate":"创建副本","agents.copyName":"{name} 副本","agents.delete":"删除","agents.deleteConfirm":"删除 {name}?","agents.save":"保存","agents.saving":"正在保存...","agents.scope.builtin":"内置","agents.scope.global":"全局","agents.scope.workspace":"工作区","agents.scope.project":"项目","agents.overridden":"被覆盖","subagent.open":"打开子代理会话","subagent.notificationSingle":"子代理结果待处理","subagent.notificationMany":"{count} 个子代理结果待处理","agentSwitcher.title":"Agents","agentSwitcher.main":"主 Agent","agentSwitcher.backToMain":"返回主 Agent","agentSwitcher.subagent":"子 Agent","agentSwitcher.current":"当前","agentSwitcher.count":"{count} 个子 Agent","agentSwitcher.runningCount":"{count} 个运行中","agentSwitcher.search":"搜索 Agents","agentSwitcher.noMatches":"没有匹配的 Agent","agentSwitcher.status.starting":"正在启动","agentSwitcher.status.running":"运行中","agentSwitcher.status.queued":"排队中","agentSwitcher.status.completed":"已完成","agentSwitcher.status.failed":"失败","agentSwitcher.status.aborted":"已中止","agentSwitcher.status.interrupted":"已中断","appUpdate.releaseNotes":"Pi Web v{version} 可用,查看更新说明","sidebar.hide":"隐藏侧边栏","sidebar.show":"显示侧边栏","history.full":"完整历史","history.unsaved":"会话保存后才能查看完整历史","history.menu":"历史与导出","history.exportMarkdown":"导出问答","history.exportMarkdownTitle":"下载当前对话为 Markdown(不含工具与思考)","history.exportEmpty":"当前对话没有可导出的问答","history.exportFailed":"导出 Markdown 失败","system.prompt":"系统提示词","system.empty":"系统提示词为空(工具已禁用)","system.load":"系统提示词尚未加载","system.loading":"正在加载系统提示词…","tools.title":"工具定义","tools.details":"工具定义详情","tools.load":"工具定义尚未加载","tools.loading":"正在加载工具定义…","tools.noTools":"没有启用的工具","tools.description":"描述","tools.parameters":"参数","tools.parameterCount":"{count} 个参数","tools.noParameters":"无参数","tools.required":"必填","tools.optional":"可选","tools.allowedValues":"可选值","tools.defaultValue":"默认值","tools.guidelines":"提示词规则","session.info":"会话信息","session.name":"名称","session.file":"会话文件","session.id":"ID","session.user":"用户","session.assistant":"助手","session.toolCalls":"工具调用","session.total":"总计","session.input":"输入","session.output":"输出","session.cacheRead":"缓存读取","session.context":"上下文","session.activeContext":"当前上下文","session.cumulativeTokens":"全会话累计流量","session.contextRemaining":"剩余可用","session.contextWindow":"窗口上限","session.contextUsed":"当前已用","session.cacheHitRate":"平均缓存命中率","session.copy":"复制{value}","session.copied":"已复制","session.title":"会话信息","session.load":"发送消息或运行 /session 以加载会话信息","session.infoSection":"会话信息","session.messages":"消息","session.copyFile":"复制文件路径","session.copyId":"复制会话 ID","session.copyProjectDir":"复制项目目录","session.copyGitBranch":"复制 Git 分支","session.copyGitWorktree":"复制 Worktree 路径","workspace.opening":"正在打开工作区...","workspace.unable":"无法打开工作区","files.hidePanel":"隐藏文件面板","files.showPanel":"显示文件面板","files.noneOpen":"没有打开的文件","layout.resizeSidebar":"调整侧边栏宽度","layout.resizeFilePanel":"调整文件面板宽度","layout.resizeHint":"拖动调整宽度。双击或按 Enter 恢复默认值。","sidebar.new":"新建","sidebar.newSessionTitle":"在 {path} 中新建会话","sidebar.refresh":"刷新","sidebar.selectProject":"选择项目…","sidebar.filterProjects":"筛选项目…","sidebar.noMatchingProjects":"没有匹配的项目","sidebar.useDefaultDirectory":"使用默认目录","sidebar.customPath":"自定义路径…","directoryPicker.selectDirectory":"选择目录","directoryPicker.goToParent":"转到上级目录","directoryPicker.directoryPath":"目录路径","directoryPicker.goToDirectory":"转到目录","directoryPicker.go":"转到","directoryPicker.loadingDirectories":"正在加载目录…","directoryPicker.noSubdirectories":"没有子目录","directoryPicker.openBeforeSelecting":"选择前请先打开此路径","directoryPicker.selectCurrentDirectory":"选择当前目录","directoryPicker.selectThisFolder":"选择此文件夹","directoryPicker.noDrives":"未找到盘符","sidebar.checking":"检查中…","sidebar.open":"打开","sidebar.cancel":"取消","sidebar.openRepoRoot":"打开仓库根目录","sidebar.openRepoRootTitle":"打开仓库根目录以管理 worktree。","sidebar.gitRepoRootOnly":"仅 Git 仓库根目录","sidebar.gitRepoRootOnlyTitle":"只能在 Git 仓库根目录使用 worktree。","sidebar.worktrees":"Worktrees...","sidebar.checkingWorktrees":"正在检查此目录的 worktree。","sidebar.filterWorktrees":"筛选 worktree…","sidebar.noMatchingWorktrees":"没有匹配的 worktree","sidebar.switchWorktree":"切换 worktree","sidebar.switchWorktreeTitle":"切换 worktree:{path}","sidebar.main":"主分支","sidebar.forceRemoveCheckout":"存在未提交的更改。强制移除 checkout?","sidebar.force":"强制移除","sidebar.createWorktreeTitle":"为分支创建 worktree checkout","sidebar.newWorktree":"新建 worktree…","sidebar.branchName":"分支名称","sidebar.creating":"创建中…","sidebar.create":"创建","sidebar.uploadFilesTitle":"将文件上传到项目根目录","sidebar.uploadFiles":"上传文件","sidebar.refreshExplorer":"刷新文件浏览器","sidebar.searchFiles":"搜索文件","sidebar.searchFilesPlaceholder":"搜索文件…","sidebar.searchingFiles":"搜索中…","sidebar.noMatchingFiles":"没有匹配的文件","sidebar.clearSearch":"清除搜索","sidebar.searchSessions":"搜索所有对话...","sidebar.toggleSessionSearch":"搜索对话","sidebar.sessionSearching":"搜索中...","sidebar.sessionSearchEmpty":"没有匹配的对话","sidebar.sessionSearchCount":"{count} 个匹配的对话","sidebar.sessionSearchPartial":"已达到搜索上限,结果可能不完整。","sidebar.sessionSearchFailed":"无法搜索对话","sidebar.changedFiles":"{count} 个变更文件","sidebar.noSessions":"未找到会话","sidebar.agentRunning":"Agent 运行中…","sidebar.newSessionActivity":"会话有新活动","sidebar.deleteSession":"删除 {title}?","sidebar.rename":"重命名","sidebar.delete":"删除","sidebar.deleteWithShiftClick":"删除(按住 Shift 点击可跳过确认)","sidebar.expandSubagents":"展开子智能体","sidebar.collapseSubagents":"折叠子智能体","sidebar.removeWorktreeTitle":"移除 worktree checkout {path};保留分支","files.modified":"已修改","files.added":"已添加","files.deleted":"已删除","files.renamed":"已重命名","files.untracked":"未跟踪","files.conflict":"冲突","files.newlyUploaded":"刚上传","files.containsChangedFiles":"包含已更改文件","files.insertPath":"将路径插入聊天","files.mention":"提及","files.download":"下载文件","files.dismissError":"关闭错误","files.addUploadedFile":"将上传的文件添加到聊天","files.addAllUploadedFiles":"将所有上传的文件添加到聊天","files.dismissUploadResults":"关闭上传结果","files.noFiles":"未找到文件","files.explorer":"文件浏览器","files.changedCount":"{count} 个文件","files.changeStats":"{count} 个变更文件,新增 {additions} 行,删除 {deletions} 行","files.conflictSummary":"已有 {count} 个文件:{files}","files.cannotReplace":"无法替换:{files}","files.replace":"替换","files.skipExisting":"跳过已有文件","files.cancel":"取消","files.checking":"正在检查文件","files.uploading":"正在上传,{progress}%","files.loadFailedRetry":"加载失败 \xb7 重试","files.gitStatusFailed":"Git 状态加载失败","chat.loadingSession":"正在加载会话...","chat.scrollToBottom":"回到最新位置","chat.generatingToolInput":"正在生成参数...","chat.agentWorking":"Agent 正在处理","chat.ttft":"首字 {duration}","chat.tokensPerSecond":"{throughput} tok/s","chat.decodeSeconds":"{seconds}秒","chat.decodeMinutes":"{minutes}分{seconds}秒","chat.thinking":"正在思考...","chat.message":"条消息","chat.step":"步操作","chat.steps":"步操作","chat.workedFor":"处理了 {duration}","chat.workedForSteps":"处理了 {duration} \xb7 {count} {steps}","chat.collapseProcess":"收起处理详情","chat.expandProcess":"展开处理详情","chat.filesWritten":"改动的文件","chat.openWrittenFile":"打开 {name}","chat.loadEarlier":"向上滚动以加载更早的消息","chat.extensionRequest":"扩展请求","chat.extensionExpiresIn":"{seconds} 秒后过期","chat.extensionPending":"待回答","chat.extensionCollapse":"收起","chat.extensionExpand":"展开","chat.cancel":"取消","chat.confirm":"确认","chat.submit":"提交","chat.extensionInput":"扩展终端输入","chat.extensionPanel":"扩展面板","chat.close":"关闭","chat.queued":"已排队 \xb7 {count}","chat.recall":"移回输入框","chat.recallTitle":"移除所有排队消息并将其放回输入框编辑","chat.retrying":"正在重试({attempt}/{max})…","chat.loadingCommands":"正在加载命令...","chat.slashCommands":"斜杠命令 \xb7 {label}","chat.tabEnter":"Tab / Enter","chat.noCommands":"未找到扩展、提示词或技能命令","chat.match":"1 个匹配项","chat.matches":"{count} 个匹配项","chat.command":"1 个命令","chat.commands":"{count} 个命令","chat.loadingFiles":"正在加载文件...","chat.files":"文件 \xb7 {label}{hint}","chat.searching":"搜索中…","chat.noMatchingFiles":"未找到匹配的文件","chat.searchingAll":" \xb7 正在搜索所有文件…","chat.indexTruncated":" \xb7 索引不完整","chat.changeWorkingDirectory":"更换工作目录","chat.steer":"引导","chat.followUp":"后续消息","chat.steerHint":"中断当前运行并立即注入此消息","chat.followUpHint":"在 Agent 完成后排队此消息","chat.inputHistory":"输入历史","chat.modelError":"模型错误","chat.modelScopeWarning":"模型范围警告","chat.modelScopeWarnings":"模型范围警告","chat.send":"发送","chat.askSelection":"询问选中的文字","chat.askInCurrent":"在当前对话询问","chat.askInNewChat":"在新对话询问","chat.newQuoteChat":"关于选中文字的新对话","chat.quoteIntro":"关于这段内容:","chat.quoteQuestion":"我的问题是:","chat.quoteForkFailed":"无法从这条消息创建分支。","chat.attachImage":"附加图片","chat.previewImage":"预览图片","chat.imagePreviewUnavailable":"图片预览不可用","image.title":"生成图片","image.editTitle":"修改图片","image.editPromptPlaceholder":"描述要改的地方","image.editSource":"原图","image.prompt":"提示词","image.promptPlaceholder":"描述要生成的图片","image.connection":"连接","image.aspect":"比例","image.aspectAuto":"自动","image.aspectSquare":"正方形","image.aspectPortrait":"竖屏","image.aspectLandscape":"横屏","image.resolution":"分辨率","image.quality":"质量","image.qualityAuto":"自动","image.qualityLow":"低","image.qualityMedium":"中","image.qualityHigh":"高","image.edit":"改图","image.quote":"引用","image.generate":"生成","image.generating":"生成中…","chat.moreControls":"更多控件","chat.inputOptions":"选项","chatTabs.label":"对话标签","chatTabs.newTab":"新建对话标签","chatTabs.closeTab":"关闭标签","chatTabs.splitView":"向右分屏","chatTabs.closeSplit":"关闭分屏","chatTabs.openInNewTab":"在新标签页打开","chatTabs.pinTab":"固定标签","chatTabs.previewTabHint":"预览标签,双击固定","chatTabs.unsentDraft":"未发送草稿","chatTabs.discardDraft":"要丢弃这个未发送草稿吗?","chatTabs.allTabs":"所有对话标签","chat.draftPageOnly":"此草稿目前仅保存在本页,刷新后会丢失。","chat.collapseControls":"收起控件","chat.shell":"Shell","terminal.title":"终端","terminal.tabLabel":"终端:{name}","terminal.open":"打开工作区终端","terminal.close":"终止终端","terminal.restart":"重启终端","terminal.reconnect":"重新连接终端","terminal.connecting":"连接中","terminal.ready":"已连接","terminal.exited":"终端已关闭","terminal.error":"连接错误","terminal.exitCode":"进程已退出,退出码 {code}","chat.outputLocal":"输出保留在本地","chat.outputModel":"输出发送给模型","chat.chatOnly":"仅聊天","chat.readOnlyTools":"{count} 个只读内置工具","chat.builtInTools":"{count} 个内置工具","chat.allBuiltInTools":"全部内置工具","chat.changeReasoning":"更改推理级别:{level}","chat.changeReasoningLabel":"更改推理级别","chat.changeToolPreset":"更改工具预设","chat.stopCompaction":"停止压缩","chat.compactContext":"压缩上下文","chat.compacting":"正在压缩…","chat.compact":"压缩","chat.contextUsage":"上下文占用","chat.contextRemaining":"剩余可用","chat.contextHighWarning":"上下文接近上限,建议压缩","chat.stopAgent":"停止 Agent","chat.stop":"停止","chat.locateNotFound":"无法定位到这条消息。","chat.locateOtherBranch":"该匹配位于此会话的其他分支。","chat.locateLoadFailed":"无法加载这条消息,请重试。","chat.locateHistoryStalled":"历史记录未继续前进,请重试。","chat.disableSound":"关闭完成提示音","chat.enableSound":"开启完成提示音","chat.thinkingUseDefault":"使用 pi 默认设置","chat.thinkingOff":"关闭推理","chat.thinkingMinimal":"最低限度推理","chat.thinkingLow":"低强度推理","chat.thinkingMedium":"中等强度推理","chat.thinkingHigh":"高强度推理","chat.thinkingXhigh":"超高强度推理","chat.thinkingMax":"最高强度推理","chat.builtIn":"内置","chat.extensions":"扩展","chat.prompts":"提示词","chat.skills":"技能","chat.dormant":"休眠","chat.commandCompact":"压缩上下文,可选附加说明","chat.commandReload":"重新加载扩展、技能、提示词和工具","chat.commandName":"设置会话显示名称","chat.commandSession":"显示会话消息、Token 和费用统计","chat.commandCopy":"复制最后一条助手消息","chat.commandClone":"将当前分支复制为独立新会话","chat.compacted":"已压缩","chat.imageNotSupportedTitle":"图片可能无法发送","chat.imageNotSupportedBody":"当前选择的模型({model})不支持图片输入,附加的图片可能会被忽略。","chat.tooManyImagesTitle":"图片数量超出发送限制","chat.tooManyImagesBody":"当前草稿有 {count} 张图片。请删到不超过 {max} 张后再发送;已恢复的附件不会被丢弃。","chat.tokensSaved":"节省 {saved}","chatMinimap.userOutline":"提问","chatMinimap.jumpFailed":"跳转失败:","chatMinimap.retry":"重试","i18n.close":"关闭","i18n.copy":"复制","i18n.copied":"已复制","i18n.cancel":"取消","i18n.save":"保存","i18n.saving":"保存中…","i18n.saved":"已保存","i18n.remove":"移除","i18n.removing":"移除中…","i18n.delete":"删除","i18n.loading":"加载中...","i18n.search":"搜索","i18n.refresh":"刷新","i18n.update":"更新","i18n.updating":"更新中...","i18n.check":"检查","i18n.checking":"检查中...","i18n.install":"安装","i18n.installing":"安装中...","i18n.searchProviders":"搜索 Provider…","i18n.noProviders":"没有匹配的 Provider","i18n.newModel":"新模型","i18n.addProvider":"添加 Provider","i18n.selectProviderModel":"选择 Provider 或模型","i18n.visibleInPrompt":"在模型提示词中可见,点击以禁用","i18n.hiddenFromPrompt":"在模型提示词中隐藏,点击以启用","i18n.hiddenButInvocable":"对模型隐藏,仍可手动调用","i18n.skillSearchPlaceholder":"例如 react、testing、deploy","i18n.searching":"搜索中…","i18n.noSkills":"未找到技能","i18n.checkUpdates":"检查更新","i18n.updates":"项更新","i18n.noResolvedResources":"没有已解析资源","i18n.enablePackage":"启用包","i18n.disablePackage":"禁用包","i18n.filtered":"已筛选","i18n.openSessionToReload":"打开会话后才能重新加载","i18n.notFound":"未找到","trust.resourcesNotLoaded":"受限模式","trust.trustProject":"信任项目","trust.trusting":"正在信任...","trust.cancel":"取消","trust.dialogTitle":"信任此项目?","trust.dialogBody":"项目资源可以运行本地代码。请仅信任你了解其内容的项目。","trust.skillsNotLoaded":"此项目尚未受信任,项目技能未加载。","trust.pluginsNotLoaded":"此项目尚未受信任,项目插件未加载。","trust.projectScopeUnavailable":"项目资源未加载时,无法安装到项目范围。","i18n.creatingSession":"正在创建新会话…","i18n.creating":"创建中…","i18n.subscription":"订阅","i18n.subscriptions":"订阅服务","i18n.customEndpoint":"自定义端点格式","i18n.noChanges":"没有更改","i18n.branches":"分支","i18n.noActiveSession":"没有活动会话","i18n.noBranches":"此会话没有分支","i18n.source":"源代码","i18n.preview":"预览","i18n.outline":"目录","i18n.diff":"Diff","i18n.downloadFile":"下载文件","i18n.liveSync":"实时同步已启用","i18n.notWatching":"未监视","i18n.fileViewMode":"文件视图模式","i18n.compareHead":"比较工作区与 HEAD","i18n.mentionSelectedLines":"提及所选行","i18n.disableWrap":"禁用自动换行","i18n.enableWrap":"启用自动换行","i18n.loadMore":"加载更多","i18n.htmlPreview":"HTML 预览","i18n.previewFile":"预览 {file}","i18n.invalidMermaid":"Mermaid 图表无效","i18n.renderingMermaid":"正在渲染 Mermaid 图表","i18n.previewAfterStreaming":"流式输出完成后可预览","i18n.showMermaidSource":"显示 Mermaid 源码","i18n.previewMermaid":"预览 Mermaid 图表","i18n.openMermaidViewer":"打开图表查看器","i18n.mermaidViewer":"Mermaid 图表查看器","i18n.mermaidDiagram":"Mermaid 图表","i18n.zoomOut":"缩小","i18n.zoomIn":"放大","i18n.fitToWidth":"适应宽度","models.discoveryFetching":"正在导入模型…","models.discoveryFetch":"导入模型…","models.discoveryFilterPlaceholder":"筛选 {count} 个模型…","models.discoveryFilter":"筛选上游模型","models.discoverySelectShown":"选择当前结果","models.discoveryNoMatches":"没有匹配的模型。","models.discoveryAdded":"已添加","models.discoveryShowing":"显示前 {shown} 个,共 {total} 个","models.discoveryFetched":"已获取 {count} 个模型","models.discoveryAddSelected":"添加所选模型","models.discoveryAddSelectedCount":"添加所选模型({count})","models.catalogSource":"来源:models.dev ↗","models.catalogFilling":"正在填入模型信息…","models.catalogFill":"填入模型信息","models.catalogFilled":"已填入 {count} 个字段","models.catalogNoEmptyFields":"没有需要填入的空字段","models.catalogNoExactMatch":"models.dev 中没有精确匹配","models.catalogPriceProvider":"价格已匹配 Provider {provider}","models.catalogPriceBaseUrl":"价格已按 Base URL 匹配 {provider}","models.catalogPriceConsensus":"价格得到 {support}/{total} 条记录支持","models.catalogPriceUnreliable":"未找到可靠价格","models.catalogUndo":"撤销","models.inPicker":"显示在聊天模型选择器中","models.catalogShelf":"可用模型","models.updateKey":"更新密钥","models.replaceKeyPlaceholder":"输入新密钥以替换…","models.saveModelsJson":"保存 models.json","models.endpoint":"端点","models.pickerMaterializeConfirm":"隐藏模型会把当前可见列表写入 settings.json。之后新接入的模型不会自动出现,需要再勾选。继续?","models.pickerProjectOverride":"当前工作区在 .pi/settings.json 覆盖了 enabledModels,请改那个文件。","models.pickerGlobManaged":"该模型由 enabledModels 的 glob 规则包含,请改 ~/.pi/agent/settings.json。","models.pickerLastModel":"选择器至少要保留一个模型。","models.pickerError":"无法更新模型选择器","models.capabilities":"能力","models.reasoning":"推理 / 思考","models.imageInput":"图片输入","models.modelSpecs":"模型规格","models.contextWindow":"上下文窗口(tokens)","models.maxOutputTokens":"最大输出 tokens","models.costPerMillion":"每百万 tokens 价格","models.costInput":"输入","models.costOutput":"输出","models.costCacheRead":"缓存读取","models.costCacheWrite":"缓存写入","models.notProvided":"未提供","models.editCosts":"编辑价格","models.finishEditingCosts":"完成","models.costAllRequired":"请输入有效的非负价格;留空项将按 0 保存。","models.advancedSettings":"高级设置","models.providerDefaults":"沿用 Provider 默认设置","models.headersSummary":"Headers:{count}","models.compatSummary":"兼容性:{count}","models.thinkingSummary":"思考等级:{count}","models.apiOverride":"API 覆盖","models.headers":"Headers","models.headersHelp":"仅添加到该模型的请求中,并覆盖 Provider 的同名 Header。","models.compatibility":"兼容性","models.deepSeekThinkingCompat":"DeepSeek 思考兼容","models.developerRole":"使用 developer role 传递系统提示词","models.thinkingLevelMap":"思考等级映射","models.clearAll":"全部清除","i18n.testingModel":"正在测试模型连接...","i18n.connected":"已连接","i18n.failed":"失败","i18n.test":"测试","i18n.testConnection":"测试模型连接","i18n.provider":"Provider","i18n.model":"模型","i18n.providerName":"Provider 名称","i18n.rename":"重命名","i18n.default":"默认","i18n.disabled":"已禁用","i18n.noResources":"没有资源","i18n.unknown":"未知","i18n.installedVersion":"已安装 {version}","i18n.configuredVersion":"已配置 {version}","i18n.extensions":"扩展","i18n.prompts":"提示词","i18n.themes":"主题","i18n.resourceCount":"{count}{label}","i18n.extensionShort":"扩展","i18n.skillShort":"技能","i18n.promptShort":"提示词","i18n.themeShort":"主题","i18n.custom":"自定义","i18n.connectedSuccessfully":"连接成功。","i18n.notConnected":"未连接","i18n.configured":"已配置","i18n.notConfigured":"未配置","i18n.openingBrowser":"正在打开浏览器…","i18n.submit":"提交","i18n.login":"登录","i18n.relogin":"重新登录","i18n.disconnect":"断开连接","i18n.networkError":"网络错误","i18n.skills":"技能","i18n.addSkill":"添加技能","i18n.addPlugin":"添加插件","i18n.selectSkill":"选择技能","i18n.selectPackage":"选择包","i18n.updateAvailable":"有可用更新","i18n.upToDate":"已是最新","i18n.automaticChecksUnavailable":"自动检查不可用","i18n.checkFailed":"检查失败","i18n.installed":"已安装","i18n.status":"状态","i18n.version":"版本","i18n.package":"包","i18n.resources":"资源","i18n.installedPath":"安装路径","i18n.cwd":"CWD","i18n.resolvedResources":"已解析资源","i18n.reloadSession":"重新加载会话","i18n.reloading":"重新加载中...","i18n.packagesUpdated":"所有插件已更新。","i18n.updateAllPlugins":"更新全部","i18n.updateAllPluginsHint":"更新所有已配置的插件","i18n.packageDisabled":"包已禁用。","i18n.thinking":"思考","i18n.largeMessageReveal":"消息内容过大({size})。点击以纯文本查看 — 已禁用 markdown 渲染以避免页面卡顿。","i18n.loadingThinking":"正在加载思考内容...","i18n.copyMessage":"复制消息","i18n.editFromHere":"从此处编辑","i18n.editFromHereTitle":"从此处编辑,此会话内创建分支","i18n.newSession":"新会话","i18n.newSessionTitle":"新会话,从此处创建独立副本","i18n.noOutput":"(无输出)","i18n.noSummary":"(无摘要)","i18n.conversationCompacted":"会话已压缩","i18n.compactionDescription":"此处之前的会话历史已压缩为以下摘要:","i18n.fileContext":"文件上下文:{details}","i18n.readFiles":"读取的文件","i18n.modifiedFiles":"修改的文件","i18n.hiddenExtensionMessage":"隐藏的扩展消息","i18n.noMessage":"(无消息)","i18n.showExtensionMessage":"显示扩展消息","i18n.collapse":"收起","i18n.expand":"展开","i18n.hideDetails":"隐藏详情","i18n.showDetails":"显示详情","i18n.thinkingUnavailable":"思考内容不可用","i18n.before":"之前","i18n.after":"之后","i18n.sessionComplete":"任务完成","i18n.taskFinished":"任务已完成。","i18n.attentionNeeded":"Pi 需要你的操作","i18n.extensionInputNeeded":"扩展正在等待你的输入。"}},{id:"zh-TW",label:"繁體中文",messages:{"common.ok":"確定","common.language":"語言","common.models":"模型","common.skills":"技能","common.agents":"子代理","common.plugins":"外掛","common.settings":"設定","settings.title":"設定","settings.general":"一般","settings.appearance":"外觀","settings.chatContentWidth":"聊天內容寬度","settings.chatContentFontSize":"正文字體大小","settings.resetChatContentWidth":"重設聊天內容寬度","settings.resetChatContentFontSize":"重設正文字體大小","settings.themeLight":"淺色","settings.themeDark":"深色","settings.themeSystem":"跟隨系統","settings.thinkingExpandedDefault":"預設展開思考區塊","settings.autoSessionTitle":"自動為新工作階段產生標題","settings.chat":"對話","settings.shiftEnterToSend":"用 Shift+Enter 傳送","settings.quoteSelection":"選取文字時顯示提問浮窗","settings.browserNotifications":"瀏覽器通知","settings.browserNotificationsEnable":"開啟","settings.browserNotificationsOn":"已開啟","settings.browserNotificationsBlocked":"已在瀏覽器中關閉","settings.pushPermission":"背景推送","settings.pushPermissionDescription":"用於 iOS 主畫面應用的鎖定畫面通知。收不到時在此重新註冊。","settings.pushRegister":"註冊推送","settings.pushRegisterLoading":"註冊中…","settings.pushRegistered":"推送已註冊,背景通知就緒。","settings.pushRegisterFailed":"註冊失敗:","auth.prompt":"登入後繼續使用","auth.password":"密碼","auth.logIn":"登入","auth.loggingIn":"正在登入...","auth.invalidPassword":"密碼不正確","auth.loginFailed":"登入失敗,請再試一次。","auth.logOut":"登出","auth.loggingOut":"正在登出...","auth.logoutFailed":"登出失敗,請再試一次。","settings.typography":"等寬字型與幾何對齊","settings.typographyDescription":"代碼塊、終端機與 ASCII 架構圖優先配對更紗黑體(Sarasa Term SC / Nerd)與 Maple Mono。於本機系統安裝該字型後,即可自動達成中英文 2:1 像素級幾何等寬對齊。","settings.fontMonoDownload":"取得更紗黑體 Term SC","settings.shellTool":"Shell 工具","settings.shellToolDescription":"選擇模型執行命令時使用的 Shell。直接輸入的 ! 和 !! 命令仍使用 Bash。","settings.usePowerShell":"使用 PowerShell 取代 Bash","settings.projectRequired":"開啟專案後才能設定此項","settings.images":"生圖","settings.imagesDescription":"開啟後顯示生圖按鈕並註冊 generate_image。內建連線需要已登入的對應帳號。","settings.imagesEnabled":"啟用生圖","settings.imagesBuiltin":"內建","settings.imagesCustom":"自訂","settings.imagesLabel":"名稱","settings.imagesProvider":"Provider","settings.imagesModel":"模型","settings.imagesNoProviders":"請先在模型設定裡新增 provider。","settings.imagesOtherModel":"其他模型","settings.imagesSignedOut":"未登入","settings.imagesNotConfigured":"未設定金鑰","skills.scope.global":"全域","skills.scope.project":"專案","skills.scope.path":"路徑","agents.close":"關閉","agents.builtInTitle":"啟用 Pi Web 內建子代理","agents.builtInDescription":"提供 Pi Web 整合的 Agent 工具,並停用發生衝突的 pi-subagents 擴充功能。","agents.maxConcurrent":"並行子代理數","agents.maxConcurrentDescription":"每個父工作階段同時執行的最大任務數。","agents.reloadRequired":"重新載入目前工作階段後生效。","agents.reloadSession":"重新載入工作階段","agents.reloading":"正在重新載入...","agents.loading":"正在載入子代理...","agents.new":"新增子代理","agents.empty":"選擇或建立子代理設定檔","agents.saveScope":"儲存至","agents.name":"子代理 ID","agents.displayName":"顯示名稱","agents.description":"描述","agents.prompt":"系統指令","agents.tools":"工具","agents.resources":"資源","agents.loadSkills":"載入技能","agents.loadExtensions":"載入擴充功能","agents.model":"指定模型","agents.modelsLoading":"正在載入模型...","agents.modelUnavailable":"{model}(無法使用)","agents.thinking":"思考層級","agents.maxTurns":"最大輪次","agents.inherit":"沿用父工作階段","agents.enable":"啟用子代理","agents.disable":"停用子代理","agents.builtinPath":"內建設定檔","agents.inheritContext":"繼承父工作階段上下文","agents.background":"預設在背景執行","agents.duplicate":"建立副本","agents.copyName":"{name} 副本","agents.delete":"刪除","agents.deleteConfirm":"刪除 {name}?","agents.save":"儲存","agents.saving":"正在儲存...","agents.scope.builtin":"內建","agents.scope.global":"全域","agents.scope.workspace":"工作區","agents.scope.project":"專案","agents.overridden":"已被覆寫","subagent.open":"開啟子代理工作階段","subagent.notificationSingle":"子代理結果待處理","subagent.notificationMany":"{count} 個子代理結果待處理","agentSwitcher.title":"Agents","agentSwitcher.main":"主 Agent","agentSwitcher.backToMain":"返回主 Agent","agentSwitcher.subagent":"子 Agent","agentSwitcher.current":"目前","agentSwitcher.count":"{count} 個子 Agent","agentSwitcher.runningCount":"{count} 個執行中","agentSwitcher.search":"搜尋 Agents","agentSwitcher.noMatches":"找不到相符的 Agent","agentSwitcher.status.starting":"正在啟動","agentSwitcher.status.running":"執行中","agentSwitcher.status.queued":"排隊中","agentSwitcher.status.completed":"已完成","agentSwitcher.status.failed":"失敗","agentSwitcher.status.aborted":"已中止","agentSwitcher.status.interrupted":"已中斷","appUpdate.releaseNotes":"Pi Web v{version} 已推出,查看版本資訊","sidebar.hide":"隱藏側邊欄","sidebar.show":"顯示側邊欄","history.full":"完整紀錄","history.unsaved":"工作階段儲存後才能查看完整紀錄","history.menu":"紀錄與匯出","history.exportMarkdown":"匯出問答","history.exportMarkdownTitle":"下載目前對話為 Markdown(不含工具與思考)","history.exportEmpty":"目前對話沒有可匯出的問答","history.exportFailed":"匯出 Markdown 失敗","system.prompt":"系統提示詞","system.empty":"系統提示詞為空(工具已停用)","system.load":"系統提示詞尚未載入","system.loading":"正在載入系統提示詞…","tools.title":"工具定義","tools.details":"工具定義詳細資料","tools.load":"工具定義尚未載入","tools.loading":"正在載入工具定義…","tools.noTools":"沒有啟用的工具","tools.description":"描述","tools.parameters":"參數","tools.parameterCount":"{count} 個參數","tools.noParameters":"無參數","tools.required":"必填","tools.optional":"選填","tools.allowedValues":"允許值","tools.defaultValue":"預設值","tools.guidelines":"提示詞規則","session.info":"工作階段資訊","session.name":"名稱","session.file":"工作階段檔案","session.id":"ID","session.user":"使用者","session.assistant":"助理","session.toolCalls":"工具呼叫","session.total":"總計","session.input":"輸入","session.output":"輸出","session.cacheRead":"快取讀取","session.context":"上下文","session.activeContext":"目前上下文","session.cumulativeTokens":"全工作階段累計流量","session.contextRemaining":"剩餘可用","session.contextWindow":"視窗上限","session.contextUsed":"目前已用","session.cacheHitRate":"平均快取命中率","session.copy":"複製{value}","session.copied":"已複製","session.title":"工作階段資訊","session.load":"傳送訊息或執行 /session 以載入工作階段資訊","session.infoSection":"工作階段資訊","session.messages":"訊息","session.copyFile":"複製檔案路徑","session.copyId":"複製工作階段 ID","session.copyProjectDir":"複製專案目錄","session.copyGitBranch":"複製 Git 分支","session.copyGitWorktree":"複製 Worktree 路徑","workspace.opening":"正在開啟工作區...","workspace.unable":"無法開啟工作區","files.hidePanel":"隱藏檔案面板","files.showPanel":"顯示檔案面板","files.noneOpen":"沒有開啟的檔案","layout.resizeSidebar":"調整側邊欄寬度","layout.resizeFilePanel":"調整檔案面板寬度","layout.resizeHint":"拖曳以調整寬度。按兩下或按 Enter 鍵即可重設。","sidebar.new":"新增","sidebar.newSessionTitle":"在 {path} 中新增工作階段","sidebar.refresh":"重新整理","sidebar.selectProject":"選擇專案…","sidebar.filterProjects":"篩選專案…","sidebar.noMatchingProjects":"找不到相符的專案","sidebar.useDefaultDirectory":"使用預設目錄","sidebar.customPath":"自訂路徑…","directoryPicker.selectDirectory":"選擇目錄","directoryPicker.goToParent":"前往上一層目錄","directoryPicker.directoryPath":"目錄路徑","directoryPicker.goToDirectory":"前往目錄","directoryPicker.go":"前往","directoryPicker.loadingDirectories":"正在載入目錄…","directoryPicker.noSubdirectories":"沒有子目錄","directoryPicker.openBeforeSelecting":"選擇前請先開啟此路徑","directoryPicker.selectCurrentDirectory":"選擇目前目錄","directoryPicker.selectThisFolder":"選擇此資料夾","directoryPicker.noDrives":"找不到磁碟機代號","sidebar.checking":"檢查中…","sidebar.open":"開啟","sidebar.cancel":"取消","sidebar.openRepoRoot":"開啟儲存庫根目錄","sidebar.openRepoRootTitle":"開啟儲存庫根目錄以管理 worktree。","sidebar.gitRepoRootOnly":"僅限 Git 儲存庫根目錄","sidebar.gitRepoRootOnlyTitle":"worktree 只能在 Git 儲存庫根目錄使用。","sidebar.worktrees":"Worktrees...","sidebar.checkingWorktrees":"正在檢查此目錄的 worktree。","sidebar.filterWorktrees":"篩選 worktree…","sidebar.noMatchingWorktrees":"找不到相符的 worktree","sidebar.switchWorktree":"切換 worktree","sidebar.switchWorktreeTitle":"切換 worktree:{path}","sidebar.main":"主分支","sidebar.forceRemoveCheckout":"有未提交的變更。要強制移除 checkout 嗎?","sidebar.force":"強制移除","sidebar.createWorktreeTitle":"為分支建立 worktree checkout","sidebar.newWorktree":"新增 worktree…","sidebar.branchName":"分支名稱","sidebar.creating":"建立中…","sidebar.create":"建立","sidebar.uploadFilesTitle":"將檔案上傳到專案根目錄","sidebar.uploadFiles":"上傳檔案","sidebar.refreshExplorer":"重新整理檔案瀏覽器","sidebar.searchFiles":"搜尋檔案","sidebar.searchFilesPlaceholder":"搜尋檔案…","sidebar.searchingFiles":"搜尋中…","sidebar.noMatchingFiles":"找不到相符的檔案","sidebar.clearSearch":"清除搜尋","sidebar.searchSessions":"搜尋所有對話...","sidebar.toggleSessionSearch":"搜尋對話","sidebar.sessionSearching":"搜尋中...","sidebar.sessionSearchEmpty":"找不到相符的對話","sidebar.sessionSearchCount":"{count} 個相符的對話","sidebar.sessionSearchPartial":"已達搜尋上限,結果可能不完整。","sidebar.sessionSearchFailed":"無法搜尋對話","sidebar.changedFiles":"{count} 個已變更檔案","sidebar.noSessions":"找不到工作階段","sidebar.agentRunning":"Agent 執行中…","sidebar.newSessionActivity":"工作階段有新活動","sidebar.deleteSession":"刪除 {title}?","sidebar.rename":"重新命名","sidebar.delete":"刪除","sidebar.deleteWithShiftClick":"刪除(按住 Shift 點選可跳過確認)","sidebar.expandSubagents":"展開子代理","sidebar.collapseSubagents":"摺疊子代理","sidebar.removeWorktreeTitle":"移除 worktree checkout {path};保留分支","files.modified":"已修改","files.added":"已新增","files.deleted":"已刪除","files.renamed":"已重新命名","files.untracked":"未追蹤","files.conflict":"衝突","files.newlyUploaded":"剛上傳","files.containsChangedFiles":"包含已變更的檔案","files.insertPath":"將路徑插入聊天","files.mention":"提及","files.download":"下載檔案","files.dismissError":"關閉錯誤訊息","files.addUploadedFile":"將上傳的檔案加入聊天","files.addAllUploadedFiles":"將所有上傳的檔案加入聊天","files.dismissUploadResults":"關閉上傳結果","files.noFiles":"找不到檔案","files.explorer":"檔案瀏覽器","files.changedCount":"{count} 個檔案","files.changeStats":"{count} 個變更檔案,新增 {additions} 行,刪除 {deletions} 行","files.conflictSummary":"{count} 個檔案已存在:{files}","files.cannotReplace":"無法取代:{files}","files.replace":"取代","files.skipExisting":"略過現有檔案","files.cancel":"取消","files.checking":"正在檢查檔案","files.uploading":"正在上傳,{progress}%","files.loadFailedRetry":"載入失敗 \xb7 重試","files.gitStatusFailed":"Git 狀態載入失敗","chat.loadingSession":"正在載入工作階段...","chat.scrollToBottom":"回到最新位置","chat.generatingToolInput":"正在產生參數...","chat.agentWorking":"Agent 正在處理","chat.ttft":"首字 {duration}","chat.tokensPerSecond":"{throughput} tok/s","chat.decodeSeconds":"{seconds}秒","chat.decodeMinutes":"{minutes}分{seconds}秒","chat.thinking":"正在思考...","chat.message":"則訊息","chat.step":"步操作","chat.steps":"步操作","chat.workedFor":"處理了 {duration}","chat.workedForSteps":"處理了 {duration} \xb7 {count} {steps}","chat.collapseProcess":"收起處理詳細資料","chat.expandProcess":"展開處理詳細資料","chat.filesWritten":"已變更的檔案","chat.openWrittenFile":"開啟 {name}","chat.loadEarlier":"向上捲動以載入較早的訊息","chat.extensionRequest":"擴充功能請求","chat.extensionExpiresIn":"{seconds} 秒後過期","chat.extensionPending":"待回答","chat.extensionCollapse":"收起","chat.extensionExpand":"展開","chat.cancel":"取消","chat.confirm":"確認","chat.submit":"送出","chat.extensionInput":"擴充功能終端輸入","chat.extensionPanel":"擴充功能面板","chat.close":"關閉","chat.queued":"已排入佇列 \xb7 {count}","chat.recall":"移回輸入框","chat.recallTitle":"將所有佇列中的訊息移回輸入框以便編輯","chat.retrying":"正在重試({attempt}/{max})…","chat.loadingCommands":"正在載入命令...","chat.slashCommands":"斜線命令 \xb7 {label}","chat.tabEnter":"Tab / Enter","chat.noCommands":"找不到擴充功能、提示詞或技能命令","chat.match":"1 個相符項目","chat.matches":"{count} 個相符項目","chat.command":"1 個命令","chat.commands":"{count} 個命令","chat.loadingFiles":"正在載入檔案...","chat.files":"檔案 \xb7 {label}{hint}","chat.searching":"搜尋中…","chat.noMatchingFiles":"找不到相符的檔案","chat.searchingAll":" \xb7 正在搜尋所有檔案…","chat.indexTruncated":" \xb7 索引已截斷","chat.changeWorkingDirectory":"更換工作目錄","chat.steer":"引導","chat.followUp":"後續訊息","chat.steerHint":"中斷目前的執行並立即注入此訊息","chat.followUpHint":"在 Agent 完成後排入此訊息","chat.inputHistory":"輸入紀錄","chat.modelError":"模型錯誤","chat.modelScopeWarning":"模型範圍警告","chat.modelScopeWarnings":"模型範圍警告","chat.send":"傳送","chat.askSelection":"詢問選取的文字","chat.askInCurrent":"在目前對話詢問","chat.askInNewChat":"在新對話詢問","chat.newQuoteChat":"關於選取文字的新對話","chat.quoteIntro":"關於這段內容:","chat.quoteQuestion":"我的問題是:","chat.quoteForkFailed":"無法從這則訊息建立分支。","chat.attachImage":"附加圖片","chat.previewImage":"預覽圖片","chat.imagePreviewUnavailable":"圖片預覽無法使用","image.title":"生成圖片","image.editTitle":"修改圖片","image.editPromptPlaceholder":"描述要改的地方","image.editSource":"原圖","image.prompt":"提示詞","image.promptPlaceholder":"描述要生成的圖片","image.connection":"連線","image.aspect":"比例","image.aspectAuto":"自動","image.aspectSquare":"正方形","image.aspectPortrait":"直式","image.aspectLandscape":"橫式","image.resolution":"解析度","image.quality":"品質","image.qualityAuto":"自動","image.qualityLow":"低","image.qualityMedium":"中","image.qualityHigh":"高","image.edit":"改圖","image.quote":"引用","image.generate":"生成","image.generating":"生成中…","chat.moreControls":"更多控制項","chat.inputOptions":"選項","chatTabs.label":"對話分頁","chatTabs.newTab":"新建對話分頁","chatTabs.closeTab":"關閉分頁","chatTabs.splitView":"向右分螢幕","chatTabs.closeSplit":"關閉分螢幕","chatTabs.openInNewTab":"在新分頁開啟","chatTabs.pinTab":"固定標籤","chatTabs.previewTabHint":"預覽標籤,雙擊固定","chatTabs.unsentDraft":"未傳送草稿","chatTabs.discardDraft":"要捨棄這個未傳送草稿嗎?","chatTabs.allTabs":"所有對話分頁","chat.draftPageOnly":"此草稿目前僅儲存在本頁,重新整理後會遺失。","chat.collapseControls":"收起控制項","chat.shell":"Shell","terminal.title":"終端機","terminal.tabLabel":"終端機:{name}","terminal.open":"開啟工作區終端機","terminal.close":"終止終端機","terminal.restart":"重新啟動終端機","terminal.reconnect":"重新連線終端機","terminal.connecting":"連線中","terminal.ready":"已連線","terminal.exited":"終端機已關閉","terminal.error":"連線錯誤","terminal.exitCode":"程序已結束,結束代碼 {code}","chat.outputLocal":"輸出保留在本地","chat.outputModel":"輸出會傳送給模型","chat.chatOnly":"僅聊天","chat.readOnlyTools":"{count} 個只讀內建工具","chat.builtInTools":"{count} 個內建工具","chat.allBuiltInTools":"全部內建工具","chat.changeReasoning":"變更推理層級:{level}","chat.changeReasoningLabel":"變更推理層級","chat.changeToolPreset":"更改工具預設","chat.stopCompaction":"停止壓縮","chat.compactContext":"壓縮上下文","chat.compacting":"正在壓縮…","chat.compact":"壓縮","chat.contextUsage":"上下文佔用","chat.contextRemaining":"剩餘可用","chat.contextHighWarning":"上下文接近上限,建議壓縮","chat.stopAgent":"停止 Agent","chat.stop":"停止","chat.locateNotFound":"無法定位到這則訊息。","chat.locateOtherBranch":"此相符結果位於此工作階段的其他分支。","chat.locateLoadFailed":"無法載入這則訊息,請重試。","chat.locateHistoryStalled":"歷史紀錄未繼續前進,請重試。","chat.disableSound":"關閉完成提示音","chat.enableSound":"開啟完成提示音","chat.thinkingUseDefault":"使用 pi 預設設定","chat.thinkingOff":"關閉推理","chat.thinkingMinimal":"最低程度推理","chat.thinkingLow":"低程度推理","chat.thinkingMedium":"中等程度推理","chat.thinkingHigh":"高程度推理","chat.thinkingXhigh":"超高程度推理","chat.thinkingMax":"最高程度推理","chat.builtIn":"內建","chat.extensions":"擴充功能","chat.prompts":"提示詞","chat.skills":"技能","chat.dormant":"休眠","chat.commandCompact":"壓縮上下文,可附加說明","chat.commandReload":"重新載入擴充功能、技能、提示詞和工具","chat.commandName":"設定工作階段顯示名稱","chat.commandSession":"顯示工作階段的訊息、Token 和費用統計","chat.commandCopy":"複製最後一則助理訊息","chat.commandClone":"將目前分支複製為獨立新工作階段","chat.compacted":"已壓縮","chat.imageNotSupportedTitle":"圖片可能無法傳送","chat.imageNotSupportedBody":"目前選擇的模型({model})不支援圖片輸入,附加的圖片可能會被忽略。","chat.tooManyImagesTitle":"圖片數量超出傳送限制","chat.tooManyImagesBody":"目前草稿有 {count} 張圖片。請刪到不超過 {max} 張後再傳送;已還原的附件不會被丟棄。","chat.tokensSaved":"已節省 {saved}","chatMinimap.userOutline":"提問","chatMinimap.jumpFailed":"跳轉失敗:","chatMinimap.retry":"重試","i18n.close":"關閉","i18n.copy":"複製","i18n.copied":"已複製","i18n.cancel":"取消","i18n.save":"儲存","i18n.saving":"儲存中…","i18n.saved":"已儲存","i18n.remove":"移除","i18n.removing":"移除中…","i18n.delete":"刪除","i18n.loading":"載入中...","i18n.search":"搜尋","i18n.refresh":"重新整理","i18n.update":"更新","i18n.updating":"更新中...","i18n.check":"檢查","i18n.checking":"檢查中...","i18n.install":"安裝","i18n.installing":"安裝中...","i18n.searchProviders":"搜尋 Provider…","i18n.noProviders":"找不到相符的 Provider","i18n.newModel":"新模型","i18n.addProvider":"新增 Provider","i18n.selectProviderModel":"選擇 Provider 或模型","i18n.visibleInPrompt":"會顯示在模型提示詞中,點選以停用","i18n.hiddenFromPrompt":"不會顯示在模型提示詞中,點選以啟用","i18n.hiddenButInvocable":"對模型隱藏,仍可手動呼叫","i18n.skillSearchPlaceholder":"例如 react、testing、deploy","i18n.searching":"搜尋中…","i18n.noSkills":"找不到技能","i18n.checkUpdates":"檢查更新","i18n.updates":"項更新","i18n.noResolvedResources":"沒有已解析資源","i18n.enablePackage":"啟用套件","i18n.disablePackage":"停用套件","i18n.filtered":"已篩選","i18n.openSessionToReload":"開啟工作階段後才能重新載入","i18n.notFound":"找不到","trust.resourcesNotLoaded":"受限模式","trust.trustProject":"信任專案","trust.trusting":"正在信任...","trust.cancel":"取消","trust.dialogTitle":"信任此專案?","trust.dialogBody":"專案資源可以執行本機程式碼。請只信任內容來源可靠的專案。","trust.skillsNotLoaded":"此專案尚未受信任,專案技能未載入。","trust.pluginsNotLoaded":"此專案尚未受信任,專案外掛未載入。","trust.projectScopeUnavailable":"專案資源未載入時,無法安裝到專案範圍。","i18n.creatingSession":"正在建立新工作階段…","i18n.creating":"建立中…","i18n.subscription":"訂閱","i18n.subscriptions":"訂閱方案","i18n.customEndpoint":"自訂端點格式","i18n.noChanges":"沒有更改","i18n.branches":"分支","i18n.noActiveSession":"沒有作用中的工作階段","i18n.noBranches":"此工作階段沒有分支","i18n.source":"原始碼","i18n.preview":"預覽","i18n.outline":"目錄","i18n.diff":"Diff","i18n.downloadFile":"下載檔案","i18n.liveSync":"即時同步已啟用","i18n.notWatching":"未監看","i18n.fileViewMode":"檔案檢視模式","i18n.compareHead":"比較工作目錄與 HEAD","i18n.mentionSelectedLines":"引用選取的行","i18n.disableWrap":"停用自動換行","i18n.enableWrap":"啟用自動換行","i18n.loadMore":"載入更多","i18n.htmlPreview":"HTML 預覽","i18n.previewFile":"預覽 {file}","i18n.invalidMermaid":"Mermaid 圖表無效","i18n.renderingMermaid":"正在繪製 Mermaid 圖表","i18n.previewAfterStreaming":"串流輸出完成後可預覽","i18n.showMermaidSource":"顯示 Mermaid 原始碼","i18n.previewMermaid":"預覽 Mermaid 圖表","i18n.openMermaidViewer":"開啟圖表檢視器","i18n.mermaidViewer":"Mermaid 圖表檢視器","i18n.mermaidDiagram":"Mermaid 圖表","i18n.zoomOut":"縮小","i18n.zoomIn":"放大","i18n.fitToWidth":"符合寬度","models.discoveryFetching":"正在匯入模型…","models.discoveryFetch":"匯入模型…","models.discoveryFilterPlaceholder":"篩選 {count} 個模型…","models.discoveryFilter":"篩選上游模型","models.discoverySelectShown":"選取目前顯示的項目","models.discoveryNoMatches":"找不到相符的模型。","models.discoveryAdded":"已新增","models.discoveryShowing":"顯示前 {shown} 個,共 {total} 個","models.discoveryFetched":"已取得 {count} 個模型","models.discoveryAddSelected":"新增所選模型","models.discoveryAddSelectedCount":"新增所選模型({count})","models.catalogSource":"來源:models.dev ↗","models.catalogFilling":"正在填入模型詳細資料…","models.catalogFill":"填入模型詳細資料","models.catalogFilled":"已填入 {count} 個欄位","models.catalogNoEmptyFields":"沒有需要填入的空欄位","models.catalogNoExactMatch":"models.dev 中沒有完全相符的項目","models.catalogPriceProvider":"價格與 Provider {provider} 相符","models.catalogPriceBaseUrl":"價格依 Base URL 與 {provider} 相符","models.catalogPriceConsensus":"共有 {support}/{total} 筆紀錄採用此價格","models.catalogPriceUnreliable":"找不到可靠的價格","models.catalogUndo":"復原","models.inPicker":"顯示在聊天模型選擇器中","models.catalogShelf":"可用模型","models.updateKey":"更新金鑰","models.replaceKeyPlaceholder":"輸入新金鑰以取代…","models.saveModelsJson":"儲存 models.json","models.endpoint":"端點","models.pickerMaterializeConfirm":"隱藏模型會把目前可見清單寫入 settings.json。之後新接入的模型不會自動出現,需要再勾選。繼續?","models.pickerProjectOverride":"目前工作區在 .pi/settings.json 覆寫了 enabledModels,請改那個檔案。","models.pickerGlobManaged":"此模型由 enabledModels 的 glob 規則包含,請改 ~/.pi/agent/settings.json。","models.pickerLastModel":"選擇器至少要保留一個模型。","models.pickerError":"無法更新模型選擇器","models.capabilities":"能力","models.reasoning":"推理 / 思考","models.imageInput":"圖片輸入","models.modelSpecs":"模型規格","models.contextWindow":"上下文視窗(Token)","models.maxOutputTokens":"最大輸出 Token 數","models.costPerMillion":"每百萬 Token 費用","models.costInput":"輸入","models.costOutput":"輸出","models.costCacheRead":"快取讀取","models.costCacheWrite":"快取寫入","models.notProvided":"未提供","models.editCosts":"編輯價格","models.finishEditingCosts":"完成","models.costAllRequired":"請輸入有效的非負價格;空白欄位將儲存為 0。","models.advancedSettings":"進階設定","models.providerDefaults":"沿用 Provider 預設設定","models.headersSummary":"Headers:{count}","models.compatSummary":"相容性:{count}","models.thinkingSummary":"思考等級:{count}","models.apiOverride":"API 覆寫","models.headers":"Headers","models.headersHelp":"加入此模型的請求,並覆寫 Provider 的同名 Header。","models.compatibility":"相容性","models.deepSeekThinkingCompat":"DeepSeek 思考相容性","models.developerRole":"使用 developer role 傳遞系統提示詞","models.thinkingLevelMap":"思考層級對應","models.clearAll":"全部清除","i18n.testingModel":"正在測試模型連線...","i18n.connected":"已連線","i18n.failed":"失敗","i18n.test":"測試","i18n.testConnection":"測試模型連線","i18n.provider":"Provider","i18n.model":"模型","i18n.providerName":"Provider 名稱","i18n.rename":"重新命名","i18n.default":"預設","i18n.disabled":"已停用","i18n.noResources":"沒有資源","i18n.unknown":"未知","i18n.installedVersion":"已安裝 {version}","i18n.configuredVersion":"已設定 {version}","i18n.extensions":"擴充功能","i18n.prompts":"提示詞","i18n.themes":"主題","i18n.resourceCount":"{count} 個{label}","i18n.extensionShort":"擴充功能","i18n.skillShort":"技能","i18n.promptShort":"提示詞","i18n.themeShort":"主題","i18n.custom":"自訂","i18n.connectedSuccessfully":"連線成功。","i18n.notConnected":"未連線","i18n.configured":"已設定","i18n.notConfigured":"未設定","i18n.openingBrowser":"正在開啟瀏覽器…","i18n.submit":"送出","i18n.login":"登入","i18n.relogin":"重新登入","i18n.disconnect":"中斷連線","i18n.networkError":"網路錯誤","i18n.skills":"技能","i18n.addSkill":"新增技能","i18n.addPlugin":"新增外掛","i18n.selectSkill":"選擇技能","i18n.selectPackage":"選擇套件","i18n.updateAvailable":"有可用更新","i18n.upToDate":"已是最新","i18n.automaticChecksUnavailable":"無法自動檢查","i18n.checkFailed":"檢查失敗","i18n.installed":"已安裝","i18n.status":"狀態","i18n.version":"版本","i18n.package":"套件","i18n.resources":"資源","i18n.installedPath":"安裝路徑","i18n.cwd":"CWD","i18n.resolvedResources":"已解析資源","i18n.reloadSession":"重新載入工作階段","i18n.reloading":"重新載入中...","i18n.packagesUpdated":"所有外掛已更新。","i18n.updateAllPlugins":"全部更新","i18n.updateAllPluginsHint":"更新所有已設定的外掛","i18n.packageDisabled":"套件已停用。","i18n.thinking":"思考","i18n.largeMessageReveal":"訊息內容過大({size})。點選即可用純文字查看;為保持頁面流暢,已停用 Markdown 轉譯。","i18n.loadingThinking":"正在載入思考內容...","i18n.copyMessage":"複製訊息","i18n.editFromHere":"從此處編輯","i18n.editFromHereTitle":"從此處編輯,並在這個工作階段中建立分支","i18n.newSession":"新增工作階段","i18n.newSessionTitle":"新增工作階段,從此處建立獨立副本","i18n.noOutput":"(無輸出)","i18n.noSummary":"(無摘要)","i18n.conversationCompacted":"對話已壓縮","i18n.compactionDescription":"此處之前的對話紀錄已壓縮為以下摘要:","i18n.fileContext":"檔案上下文:{details}","i18n.readFiles":"讀取的檔案","i18n.modifiedFiles":"修改的檔案","i18n.hiddenExtensionMessage":"隱藏的擴充功能訊息","i18n.noMessage":"(無訊息)","i18n.showExtensionMessage":"顯示擴充功能訊息","i18n.collapse":"收起","i18n.expand":"展開","i18n.hideDetails":"隱藏詳細資料","i18n.showDetails":"顯示詳細資料","i18n.thinkingUnavailable":"思考內容不可用","i18n.before":"變更前","i18n.after":"變更後","i18n.sessionComplete":"工作階段已完成","i18n.taskFinished":"任務已完成。","i18n.attentionNeeded":"Pi 需要你處理","i18n.extensionInputNeeded":"擴充功能正在等待你的輸入。"}}];function g(a){return f.find(b=>b.id===a)}function h(){return f.map(a=>a.id)}var i=c(81996);let j=(0,e.createContext)(null);function k({children:a}){let[b,c]=(0,e.useState)("en"),[f,l]=(0,e.useState)(!1),m=(0,e.useMemo)(()=>h().map(a=>g(a)).filter(a=>!!a),[]),n=(0,e.useMemo)(()=>Object.fromEntries(h().flatMap(a=>{let b=g(a);return b?[[a,b.messages]]:[]})),[]),o=(0,e.useCallback)(a=>{if(g(a)){c(a),document.documentElement.lang=a;try{window.localStorage.setItem("pi-locale",a)}catch{}}},[]),p=(0,e.useCallback)((a,c)=>(0,i.u0)(b,a,n,c),[b,n]),q=(0,e.useMemo)(()=>({locale:f?b:"en",setLocale:o,t:p,supportedLocales:m}),[f,b,o,p,m]);return(0,d.jsx)(j.Provider,{value:q,children:a})}function l(){let a=(0,e.useContext)(j);if(!a)throw Error("useI18n must be used inside I18nProvider");return a}},96092:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},96487:()=>{}};
|