@wangjian2254/pi-web 1.0.12 → 1.0.13

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.
Files changed (36) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/required-server-files.js +1 -1
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +3 -3
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  16. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  17. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/index.html +1 -1
  19. package/.next/server/app/index.rsc +5 -5
  20. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  21. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  22. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/page.js +1 -1
  24. package/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app-paths-manifest.json +3 -3
  26. package/.next/server/chunks/6429.js +1 -1
  27. package/.next/server/middleware-build-manifest.js +1 -1
  28. package/.next/server/pages/404.html +1 -1
  29. package/.next/server/pages/500.html +1 -1
  30. package/.next/static/chunks/app/{layout-a1fbf45edaa84d63.js → layout-85ab5d23cbd7ddc8.js} +1 -1
  31. package/.next/static/chunks/app/{page-5a8466cd9366b579.js → page-a36115f8e364e036.js} +1 -1
  32. package/.next/trace +6 -6
  33. package/.next/trace-build +1 -1
  34. package/package.json +1 -1
  35. /package/.next/static/{k-Awh0ZC8h_W7h_ScdjP- → qTo6drNBNcWgvsp6BSZsp}/_buildManifest.js +0 -0
  36. /package/.next/static/{k-Awh0ZC8h_W7h_ScdjP- → qTo6drNBNcWgvsp6BSZsp}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/pi-web/_next/"},"ssrModuleMapping":{"5057":{"*":{"id":"35697","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"78776":{"*":{"id":"31427","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/BasePathInit.tsx":{"id":5057,"name":"*","chunks":["7177","static/chunks/app/layout-a1fbf45edaa84d63.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-a1fbf45edaa84d63.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-a1fbf45edaa84d63.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-a1fbf45edaa84d63.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-a1fbf45edaa84d63.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/AppShell.tsx":{"id":78776,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","3249","static/chunks/3249-d891ccff87c62b6d.js","8974","static/chunks/app/page-5a8466cd9366b579.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","3249","static/chunks/3249-d891ccff87c62b6d.js","8974","static/chunks/app/page-5a8466cd9366b579.js"],"async":false}},"entryCSSFiles":{"/var/lib/jenkins/workspace/pi-web-publish/pi-web/":[],"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/layout":[{"inlined":false,"path":"static/css/3ae3dcdf2647ca9d.css"},{"inlined":false,"path":"static/css/ea09f86b1855180e.css"}],"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/page":[{"inlined":false,"path":"static/css/4cbedad236d913cb.css"}]},"rscModuleMapping":{"5057":{"*":{"id":"85411","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"81276","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"78776":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/pi-web/_next/"},"ssrModuleMapping":{"5057":{"*":{"id":"35697","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"78776":{"*":{"id":"31427","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/BasePathInit.tsx":{"id":5057,"name":"*","chunks":["7177","static/chunks/app/layout-85ab5d23cbd7ddc8.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-85ab5d23cbd7ddc8.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-85ab5d23cbd7ddc8.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-85ab5d23cbd7ddc8.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-85ab5d23cbd7ddc8.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/components/AppShell.tsx":{"id":78776,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","3249","static/chunks/3249-d891ccff87c62b6d.js","8974","static/chunks/app/page-a36115f8e364e036.js"],"async":false},"/var/lib/jenkins/workspace/pi-web-publish/pi-web/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","3249","static/chunks/3249-d891ccff87c62b6d.js","8974","static/chunks/app/page-a36115f8e364e036.js"],"async":false}},"entryCSSFiles":{"/var/lib/jenkins/workspace/pi-web-publish/pi-web/":[],"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/layout":[{"inlined":false,"path":"static/css/3ae3dcdf2647ca9d.css"},{"inlined":false,"path":"static/css/ea09f86b1855180e.css"}],"/var/lib/jenkins/workspace/pi-web-publish/pi-web/app/page":[{"inlined":false,"path":"static/css/4cbedad236d913cb.css"}]},"rscModuleMapping":{"5057":{"*":{"id":"85411","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"81276","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"78776":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -30,12 +30,12 @@
30
30
  "/api/agent/new/route": "app/api/agent/new/route.js",
31
31
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
32
32
  "/api/default-session/route": "app/api/default-session/route.js",
33
- "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
34
33
  "/api/models-config/route": "app/api/models-config/route.js",
34
+ "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
35
35
  "/api/models-config/catalog/route": "app/api/models-config/catalog/route.js",
36
36
  "/api/models-config/discover/route": "app/api/models-config/discover/route.js",
37
- "/api/models-config/test/route": "app/api/models-config/test/route.js",
38
37
  "/api/models/route": "app/api/models/route.js",
38
+ "/api/models-config/test/route": "app/api/models-config/test/route.js",
39
39
  "/api/project-trust/route": "app/api/project-trust/route.js",
40
40
  "/api/sessions/route": "app/api/sessions/route.js",
41
41
  "/api/skills/check/route": "app/api/skills/check/route.js",
@@ -43,7 +43,7 @@
43
43
  "/api/skills/route": "app/api/skills/route.js",
44
44
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
45
45
  "/api/skills/update/route": "app/api/skills/update/route.js",
46
- "/api/skills/search/route": "app/api/skills/search/route.js",
47
46
  "/page": "app/page.js",
47
+ "/api/skills/search/route": "app/api/skills/search/route.js",
48
48
  "/api/plugins/route": "app/api/plugins/route.js"
49
49
  }
@@ -1,3 +1,3 @@
1
- "use strict";exports.id=6429,exports.ids=[6429],exports.modules={5498:(a,b,c)=>{c.d(b,{H:()=>g});var d=c(84229);let e=d.ZUJ.Optional(d.ZUJ.Union([d.ZUJ.Literal("normal"),d.ZUJ.Literal("pivot"),d.ZUJ.Literal("pivot_charts")])),f=d.ZUJ.Union([d.ZUJ.Literal("normal"),d.ZUJ.Literal("pivot"),d.ZUJ.Literal("pivot_charts")]),g=[{name:"view_capability",toolName:"page_view_capability",label:"判断页面能否配置视图",description:"判断宿主应用当前页面(通用V2)是否支持配置指定类型的视图(标准/透视表/透视图),返回页面标识、启用的视图类型、视图权限与现有视图数量。当用户要求新建/查看/跳转视图,需要先确认页面支持性时调用。",promptGuidelines:["view_type 可选 normal(标准)/ pivot(透视表)/ pivot_charts(透视图),省略时返回全部","supported=false 时按 reason 如实告知用户,不要尝试继续创建"],parameters:{view_type:e}},{name:"view_config_data",toolName:"page_view_config_data",label:"获取视图配置所需数据",description:"获取宿主应用当前页面配置指定类型视图所需的基础数据:列字段清单(columns)、搜索字段(search_config)、当前视图配置、现有视图列表(view_list)、数据样例。构造视图配置(view_data)或跳转视图前必须调用,字段名必须取自该返回值,不要臆造。",promptGuidelines:["view_type 必填: normal / pivot / pivot_charts","构造 view_data 的所有字段名/枚举必须来自本次返回的 columns / search_config","view_list 包含现有视图(uid/name),创建前先检查是否已有同名视图,或提示用户复用","如需跳转已有视图,可在回复中输出 ly_action 代码块(见系统说明)生成跳转按钮"],parameters:{view_type:f}},{name:"view_get",toolName:"page_view_get",label:"读取已有视图配置",description:"读取宿主应用当前页面指定类型下单个已有视图的完整配置数据(与 getViewData 同构),用于基于旧视图修改后创建新视图,或向用户说明已有视图内容。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","返回的 data 可直接作为 view_data 的基底,修改字段后调用 page_view_add 创建新视图"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())}},{name:"view_add",toolName:"page_view_add",label:"创建视图",description:"在宿主应用当前页面创建指定类型的新视图。宿主会校验 view_data 格式(结构/字段存在性/枚举/表达式),失败返回具体错误信息,修正后重试;成功返回视图 id/uid/name,并默认切换到该视图。",promptGuidelines:["view_type 必填;name 为视图名称;view_data 的字段必须来自 page_view_config_data 返回的清单","is_system=true 需要 view_system_edit 权限,失败时改用个人/公共视图","visibility 可选 personal(默认)/ public;activate=false 时创建后不切换","调用前应先与用户确认意图(创建视图是写操作)"],parameters:{view_type:f,name:d.ZUJ.String(),view_data:d.ZUJ.Any(),is_system:d.ZUJ.Optional(d.ZUJ.Boolean()),visibility:d.ZUJ.Optional(d.ZUJ.Union([d.ZUJ.Literal("personal"),d.ZUJ.Literal("public")])),activate:d.ZUJ.Optional(d.ZUJ.Boolean())},timeoutMs:6e4,write:!0},{name:"view_rename",toolName:"page_view_rename",label:"重命名视图",description:"重命名宿主应用当前页面指定类型下的某个已有视图。目标视图按 uid 或 name 定位。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先);new_name 为新的视图名称","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户","调用前应先与用户确认意图(重命名是写操作)"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String()),new_name:d.ZUJ.String()},write:!0},{name:"view_delete",toolName:"page_view_delete",label:"删除视图",description:"删除宿主应用当前页面指定类型下的某个已有视图(删除后不可恢复)。目标视图按 uid 或 name 定位。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","删除前必须与用户明确确认(删除不可恢复);若目标是当前正在使用的视图,删除后会回到默认视图","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())},write:!0},{name:"view_set_default",toolName:"page_view_set_default",label:"设为默认视图",description:"把宿主应用当前页面指定类型下的某个已有视图设为默认视图(打开页面时自动应用)。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户","调用前应先与用户确认意图(设默认是写操作)"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())},write:!0}]},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{I:()=>j,p:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function i(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();!function(a,b){for(let c of a){if(c.includes("*")||c.includes("?")||c.includes("["))continue;let a=h(c,b);if(0===a.length){let d=c.lastIndexOf(":"),e=d>=0?c.slice(d+1):"";k.has(e)&&(a=h(c.slice(0,d),b))}if(a.length>1){let b=a.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${c}" matches multiple models: ${b}. Use provider/modelId.`)}}}(c,d);let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),i=g.map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:i};let j={};for(let a of f)a.thinkingLevel&&(j[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:j,warnings:i}}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},30590:(a,b,c)=>{c.d(b,{o:()=>d});async function d(a,b,c){if(!b.model&&!b.thinkingLevel)return{modelDefaultChanged:!1};let d=!1;return b.model&&c.model&&b.model.provider===c.model.provider&&b.model.modelId===c.model.modelId&&(a.setDefaultModelAndProvider(c.model.provider,c.model.modelId),d=!0),b.thinkingLevel&&(c.supportsThinking||"off"!==c.thinkingLevel)&&a.setDefaultThinkingLevel(c.thinkingLevel),await a.flush(),{modelDefaultChanged:d}}},53303:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ds:()=>j,J1:()=>h,eD:()=>i});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let k="pi-web-project-command-environment",l=`<inline:${k}>`;function h(a={}){let{agentBinDir:b=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:c=process.env,localOperations:d=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:g=process.platform}=a;return{exec(a,e,f){var h;let i,j,k,l=(h=function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}(f.env??c,g),i="win32"===g?Object.keys(h).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",j="win32"===g?";":":",(k=h[i]??"").split(j).filter(Boolean).includes(b)||(h[i]=[b,k].filter(Boolean).join(j)),h);return d.exec(a,e,{...f,env:l})}}}function i(a){return{name:k,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:h({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function j(a){let b=a.extensions.findIndex(a=>a.path===l);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==l||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bp:()=>z,Fn:()=>E,HG:()=>C,OF:()=>G,_I:()=>A,oA:()=>B});var e=c(75430),f=c(84229),g=c(29862),h=c(55511),i=c(29021),j=c(33873),k=c(78970),l=c(28967),m=c(18904),n=c(53303),o=c(40402),p=c(72498),q=c(30590),r=c(71069),s=c(5498),t=a([e,g,m,n,o,p]);[e,g,m,n,o,p]=t.then?(await t)():t;let H=new Set(["agent_start","agent_end","agent_settled","auto_compaction_start","auto_compaction_end","compaction_start","compaction_end"]),I=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),J=["read","bash","edit","write","grep","find","ls"];class K extends e.Theme{constructor(){super({thinkingXhigh:"",searchMatchText:""},{selectedBg:""},"truecolor")}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let L=new K,M=new g.KeybindingsManager(g.TUI_KEYBINDINGS),N="get_page_content";function u(a,b){if(0===b.length)return[];let c=new Set(J),d=a.getAllTools().map(a=>a.name).filter(a=>!c.has(a));return[...new Set([...b,...d])]}let O="你叫「AI助手」,是伽伽系统的 AI 助手。回答时请始终以「AI助手」自称;不要提及 pi、pi-web、pi-coding-agent 等内部产品名、代号或实现细节。";class P{constructor(a){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.activeExtensionWidgets=new Map,this.extensionWidgetGenerations=new Map,this.extensionWidgetsResetting=!1,this.pendingPromptCount=0,this.promptAdmissionTail=Promise.resolve(),this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this._alive=!0}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}get streamingMessage(){return this.inner.agent.state?.streamingMessage}get isStreaming(){return this.inner.isStreaming}isAlive(){return this._alive}isRunning(){return this._alive&&(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)}start(){this.unsubscribe=this.inner.subscribe(a=>{"agent_end"===a.type&&(0,o.mD)(),I.has(a.type)&&this.resetIdleTimer(),this.emit(a),H.has(a.type)&&F()}),this.resetIdleTimer(),F()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[pi-web] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}async getPageContent(a=8e3){return await this.requestExtensionUi({method:"get_page_content"},null,a=>"content"in a&&"string"==typeof a.content?a.content:null,a)||"浏览器未返回页面内容"}async callPageAbility(a,b,c=8e3){let d=await this.requestExtensionUi({method:"page_ability",ability:a,params:b},null,a=>"data"in a?a.data:void 0,c);return d&&"object"==typeof d&&"ok"in d?{ok:!!d.ok,data:d.data,error:d.error}:{ok:!1,error:"浏览器未返回有效数据"}}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{if(!this._alive)return;let a=this.createExtensionUiContext();if("function"==typeof this.inner.bindExtensions){let b=this.inner.bindExtensions;await b.call(this.inner,{uiContext:a,mode:"rpc",commandContextActions:this.createExtensionCommandContextActions(),shutdownHandler:()=>this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in Pi Web."}),onError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})})}else this.inner.extensionRunner.setUIContext?.(a,"rpc");this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[pi-web] session_start dispatched to extensions for session ${this.inner.sessionId}`)})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"get_commands"===a||"get_state"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer(),F()}}applyForcedEmptySystemPrompt(){if(this.forceEmptySystemPrompt&&this.inner.agent.state){this.inner.agent.state.systemPrompt="";return}this.applyAiAssistantIdentity()}applyAiAssistantIdentity(){let a=this.inner.agent.state;!a?.systemPrompt||a.systemPrompt.includes(O)||(a.systemPrompt=`${a.systemPrompt}
1
+ "use strict";exports.id=6429,exports.ids=[6429],exports.modules={5498:(a,b,c)=>{c.d(b,{H:()=>g});var d=c(84229);let e=d.ZUJ.Optional(d.ZUJ.Union([d.ZUJ.Literal("normal"),d.ZUJ.Literal("pivot"),d.ZUJ.Literal("pivot_charts")])),f=d.ZUJ.Union([d.ZUJ.Literal("normal"),d.ZUJ.Literal("pivot"),d.ZUJ.Literal("pivot_charts")]),g=[{name:"view_capability",toolName:"page_view_capability",label:"判断页面能否配置视图",description:"判断宿主应用当前页面(通用V2)是否支持配置指定类型的视图(标准/透视表/透视图),返回页面标识、启用的视图类型、视图权限与现有视图数量。当用户要求新建/查看/跳转视图,需要先确认页面支持性时调用。",promptGuidelines:["view_type 可选 normal(标准)/ pivot(透视表)/ pivot_charts(透视图),省略时返回全部","supported=false 时按 reason 如实告知用户,不要尝试继续创建"],parameters:{view_type:e}},{name:"view_config_data",toolName:"page_view_config_data",label:"获取视图配置所需数据",description:"获取宿主应用当前页面配置指定类型视图所需的基础数据:列字段清单(columns)、搜索字段(search_config)、当前视图配置、现有视图列表(view_list)、数据样例。构造视图配置(view_data)或跳转视图前必须调用,字段名必须取自该返回值,不要臆造。",promptGuidelines:["view_type 必填: normal / pivot / pivot_charts","构造 view_data 的所有字段名/枚举必须来自本次返回的 columns / search_config","view_list 包含现有视图(uid/name),创建前先检查是否已有同名视图,或提示用户复用","如需跳转已有视图,可在回复中输出 ly_action 代码块(见系统说明)生成跳转按钮"],parameters:{view_type:f}},{name:"view_get",toolName:"page_view_get",label:"读取已有视图配置",description:"读取宿主应用当前页面指定类型下单个已有视图的完整配置数据(与 getViewData 同构),用于基于旧视图修改后创建新视图,或向用户说明已有视图内容。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","返回的 data 可直接作为 view_data 的基底,修改字段后调用 page_view_add 创建新视图"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())}},{name:"view_add",toolName:"page_view_add",label:"创建视图",description:"在宿主应用当前页面创建指定类型的新视图。宿主会校验 view_data 格式(结构/字段存在性/枚举/表达式),失败返回具体错误信息,修正后重试;成功返回视图 id/uid/name,并默认切换到该视图。",promptGuidelines:["view_type 必填;name 为视图名称;view_data 的字段必须来自 page_view_config_data 返回的清单","is_system=true 需要 view_system_edit 权限,失败时改用个人/公共视图","visibility 可选 personal(默认)/ public;activate=false 时创建后不切换","调用前应先与用户确认意图(创建视图是写操作)"],parameters:{view_type:f,name:d.ZUJ.String(),view_data:d.ZUJ.Any(),is_system:d.ZUJ.Optional(d.ZUJ.Boolean()),visibility:d.ZUJ.Optional(d.ZUJ.Union([d.ZUJ.Literal("personal"),d.ZUJ.Literal("public")])),activate:d.ZUJ.Optional(d.ZUJ.Boolean())},timeoutMs:6e4,write:!0},{name:"view_update",toolName:"page_view_update",label:"更新视图配置",description:"覆盖更新宿主应用当前页面指定类型下某个已有视图的配置数据(view_data)。宿主会校验格式,并弹窗请用户确认(覆盖不可撤销,用户取消则返回失败)。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先);view_data 为新的完整视图配置","如需基于旧视图修改,先调 page_view_get 读取原配置再修改字段","宿主会弹窗确认,用户取消时返回失败,如实告知用户即可","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户","调用前应先与用户确认意图(覆盖是写操作)"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String()),view_data:d.ZUJ.Any(),is_system:d.ZUJ.Optional(d.ZUJ.Boolean())},timeoutMs:6e4,write:!0},{name:"view_rename",toolName:"page_view_rename",label:"重命名视图",description:"重命名宿主应用当前页面指定类型下的某个已有视图。目标视图按 uid 或 name 定位。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先);new_name 为新的视图名称","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户","调用前应先与用户确认意图(重命名是写操作)"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String()),new_name:d.ZUJ.String()},write:!0},{name:"view_delete",toolName:"page_view_delete",label:"删除视图",description:"删除宿主应用当前页面指定类型下的某个已有视图(删除后不可恢复)。目标视图按 uid 或 name 定位。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","删除前必须与用户明确确认(删除不可恢复);若目标是当前正在使用的视图,删除后会回到默认视图","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())},write:!0},{name:"view_set_default",toolName:"page_view_set_default",label:"设为默认视图",description:"把宿主应用当前页面指定类型下的某个已有视图设为默认视图(打开页面时自动应用)。",promptGuidelines:["view_type 必填;uid 或 name 至少提供一个(uid 优先)","系统视图(is_system)需要 view_system_edit 权限,失败时提示用户","调用前应先与用户确认意图(设默认是写操作)"],parameters:{view_type:f,uid:d.ZUJ.Optional(d.ZUJ.String()),name:d.ZUJ.Optional(d.ZUJ.String())},write:!0}]},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{I:()=>j,p:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function i(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();!function(a,b){for(let c of a){if(c.includes("*")||c.includes("?")||c.includes("["))continue;let a=h(c,b);if(0===a.length){let d=c.lastIndexOf(":"),e=d>=0?c.slice(d+1):"";k.has(e)&&(a=h(c.slice(0,d),b))}if(a.length>1){let b=a.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${c}" matches multiple models: ${b}. Use provider/modelId.`)}}}(c,d);let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),i=g.map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:i};let j={};for(let a of f)a.thinkingLevel&&(j[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:j,warnings:i}}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},30590:(a,b,c)=>{c.d(b,{o:()=>d});async function d(a,b,c){if(!b.model&&!b.thinkingLevel)return{modelDefaultChanged:!1};let d=!1;return b.model&&c.model&&b.model.provider===c.model.provider&&b.model.modelId===c.model.modelId&&(a.setDefaultModelAndProvider(c.model.provider,c.model.modelId),d=!0),b.thinkingLevel&&(c.supportsThinking||"off"!==c.thinkingLevel)&&a.setDefaultThinkingLevel(c.thinkingLevel),await a.flush(),{modelDefaultChanged:d}}},53303:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ds:()=>j,J1:()=>h,eD:()=>i});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let k="pi-web-project-command-environment",l=`<inline:${k}>`;function h(a={}){let{agentBinDir:b=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:c=process.env,localOperations:d=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:g=process.platform}=a;return{exec(a,e,f){var h;let i,j,k,l=(h=function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}(f.env??c,g),i="win32"===g?Object.keys(h).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",j="win32"===g?";":":",(k=h[i]??"").split(j).filter(Boolean).includes(b)||(h[i]=[b,k].filter(Boolean).join(j)),h);return d.exec(a,e,{...f,env:l})}}}function i(a){return{name:k,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:h({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function j(a){let b=a.extensions.findIndex(a=>a.path===l);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==l||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bp:()=>z,Fn:()=>E,HG:()=>C,OF:()=>G,_I:()=>A,oA:()=>B});var e=c(75430),f=c(84229),g=c(29862),h=c(55511),i=c(29021),j=c(33873),k=c(78970),l=c(28967),m=c(18904),n=c(53303),o=c(40402),p=c(72498),q=c(30590),r=c(71069),s=c(5498),t=a([e,g,m,n,o,p]);[e,g,m,n,o,p]=t.then?(await t)():t;let H=new Set(["agent_start","agent_end","agent_settled","auto_compaction_start","auto_compaction_end","compaction_start","compaction_end"]),I=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),J=["read","bash","edit","write","grep","find","ls"];class K extends e.Theme{constructor(){super({thinkingXhigh:"",searchMatchText:""},{selectedBg:""},"truecolor")}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let L=new K,M=new g.KeybindingsManager(g.TUI_KEYBINDINGS),N="get_page_content";function u(a,b){if(0===b.length)return[];let c=new Set(J),d=a.getAllTools().map(a=>a.name).filter(a=>!c.has(a));return[...new Set([...b,...d])]}let O="你叫「AI助手」,是伽伽系统的 AI 助手。回答时请始终以「AI助手」自称;不要提及 pi、pi-web、pi-coding-agent 等内部产品名、代号或实现细节。";class P{constructor(a){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.activeExtensionWidgets=new Map,this.extensionWidgetGenerations=new Map,this.extensionWidgetsResetting=!1,this.pendingPromptCount=0,this.promptAdmissionTail=Promise.resolve(),this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this._alive=!0}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}get streamingMessage(){return this.inner.agent.state?.streamingMessage}get isStreaming(){return this.inner.isStreaming}isAlive(){return this._alive}isRunning(){return this._alive&&(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)}start(){this.unsubscribe=this.inner.subscribe(a=>{"agent_end"===a.type&&(0,o.mD)(),I.has(a.type)&&this.resetIdleTimer(),this.emit(a),H.has(a.type)&&F()}),this.resetIdleTimer(),F()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[pi-web] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}async getPageContent(a=8e3){return await this.requestExtensionUi({method:"get_page_content"},null,a=>"content"in a&&"string"==typeof a.content?a.content:null,a)||"浏览器未返回页面内容"}async callPageAbility(a,b,c=8e3){let d=await this.requestExtensionUi({method:"page_ability",ability:a,params:b},null,a=>"data"in a?a.data:void 0,c);return d&&"object"==typeof d&&"ok"in d?{ok:!!d.ok,data:d.data,error:d.error}:{ok:!1,error:"浏览器未返回有效数据"}}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{if(!this._alive)return;let a=this.createExtensionUiContext();if("function"==typeof this.inner.bindExtensions){let b=this.inner.bindExtensions;await b.call(this.inner,{uiContext:a,mode:"rpc",commandContextActions:this.createExtensionCommandContextActions(),shutdownHandler:()=>this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in Pi Web."}),onError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})})}else this.inner.extensionRunner.setUIContext?.(a,"rpc");this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[pi-web] session_start dispatched to extensions for session ${this.inner.sessionId}`)})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"get_commands"===a||"get_state"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer(),F()}}applyForcedEmptySystemPrompt(){if(this.forceEmptySystemPrompt&&this.inner.agent.state){this.inner.agent.state.systemPrompt="";return}this.applyAiAssistantIdentity()}applyAiAssistantIdentity(){let a=this.inner.agent.state;!a?.systemPrompt||a.systemPrompt.includes(O)||(a.systemPrompt=`${a.systemPrompt}
2
2
 
3
3
  ${O}`)}emit(a){for(let b of this.listeners)try{b(a)}catch(b){console.error(`[pi-web] failed to deliver ${a.type} event:`,b instanceof Error?b.message:b)}}async acquirePromptAdmission(){let a,b=this.promptAdmissionTail;return this.promptAdmissionTail=new Promise(b=>{a=b}),await b,a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}persistBashOnlySession(){let a=this.inner.sessionManager,b=a.getSessionFile();if(!b||(0,i.existsSync)(b))return;let c=a.getHeader();if(!c)return;let d=[c,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,i.writeFileSync)(b,d,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,o.O8)(this.inner.sessionId,b)}onEvent(a){for(let b of(this.listeners.push(a),this.pendingUiRequests.values()))a(b);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;if(this.shouldWaitForExtensions(b)&&await this.waitForExtensionsBound(),"prompt"===b||"steer"===b||"follow_up"===b){let b=(0,k.kc)(a.images);if(b)throw Error(b)}switch(b){case"prompt":{let b=await this.acquirePromptAdmission();try{let b,c,d;if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");let e=a.images,f=a.streamingBehavior,g=!1,h=!1,i=!1,j=new Promise((a,d)=>{b=()=>{g=!0,h||(h=!0,a())},c=a=>{h||(h=!0,d(a))}}),k=()=>{i||(i=!0,this.pendingPromptCount=Math.max(0,this.pendingPromptCount-1),this.resetIdleTimer(),F())};this.pendingPromptCount+=1,F();try{d=this.inner.prompt(a.message,{...e?.length?{images:e}:{},...f?{streamingBehavior:f}:{},source:"rpc",preflightResult:a=>{a&&b()}})}catch(a){throw k(),a}return d.then(()=>{b(),k(),f||this.emit({type:"prompt_done"})},a=>{c(a),k(),(0,o.mD)(),g&&(this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),f||this.emit({type:"prompt_done"}))}).catch(a=>{console.error("[pi-web] prompt completion handler failed:",a instanceof Error?a.message:a)}),await j,null}finally{b()}}case"abort":return await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.pendingPromptCount>0,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.pendingMessageCount,queuedMessages:{steering:[...this.inner.getSteeringMessages()],followUp:[...this.inner.getFollowUpMessages()]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:this.inner.agent.state?.systemPrompt??"",thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets()}}case"set_model":{let{provider:b,modelId:c}=a,d=this.inner.modelRuntime.getModel(b,c);if(d||(await this.inner.modelRuntime.refresh({allowNetwork:!1}),d=this.inner.modelRuntime.getModel(b,c)),!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),(0,l.kn)(),(0,o.mD)(),{id:d.id,provider:d.provider}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=a.entryId,d=this.inner.sessionManager,f=this.inner.sessionFile;if(!d.isPersisted())return{cancelled:!0};if(!f)throw Error("Persisted session is missing a session file");let g=d.getEntry(c);if(!g)throw Error("Invalid entry ID for forking");let h=d.getSessionDir();if(g.parentId){let a=e.SessionManager.open(f,h).createBranchedSession(g.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=e.SessionManager.create(d.getCwd(),h);a.newSession({parentSession:f}),b=a.getSessionFile()}let i=e.SessionManager.open(b,h).getSessionId();return(0,o.O8)(i,b),(0,o.mD)(),await this.shutdown(),{cancelled:!1,newSessionId:i}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,o.mD)(),null}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,o.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return this.inner.setSessionName(b),(0,o.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"get_commands":{let a=[];for(let b of this.inner.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of this.inner.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt",sourceInfo:b.sourceInfo});for(let b of this.inner.resourceLoader.getSkills().skills)a.push({name:`skill:${b.name}`,description:b.description,source:"skill",sourceInfo:b.sourceInfo});return{commands:a}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),this.inner.setActiveToolsByName(u(this.inner,b)),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload(),"function"!=typeof this.inner.bindExtensions&&this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc"),this.applyForcedEmptySystemPrompt(),(0,l.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext,operations:(0,n.J1)({shellPath:this.inner.settingsManager.getShellPath()})});F();try{let a=await b;return this.persistBashOnlySession(),a}finally{this.resetIdleTimer(),(0,o.mD)(),F()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear(),this.clearExtensionWidgets(!1);try{this.inner.dispose()}finally{try{this.onDestroyCallback?.()}finally{F()}}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}nextExtensionWidgetGeneration(a){let b=(this.extensionWidgetGenerations.get(a)??0)+1;return this.extensionWidgetGenerations.set(a,b),b}disposeExtensionWidgetComponent(a){if(!a||"object"!=typeof a&&"function"!=typeof a)return;let b=a.dispose;if("function"==typeof b)try{b.call(a)}catch{}}emitExtensionWidgetClear(a){this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:void 0,widgetPlacement:void 0})}clearExtensionWidget(a,b=!0){let c=this.nextExtensionWidgetGeneration(a),d=this.activeExtensionWidgets.get(a);return this.activeExtensionWidgets.delete(a),this.extensionWidgets.delete(a),d&&this.disposeExtensionWidgetComponent(d.component),this.extensionWidgetGenerations.get(a)!==c||b&&this.emitExtensionWidgetClear(a),c}clearExtensionWidgets(a){for(let b of new Set([...this.extensionWidgets.keys(),...this.activeExtensionWidgets.keys()]))this.clearExtensionWidget(b,a)}resetExtensionWidgetsForReload(){this.extensionWidgetsResetting=!0;try{for(let a of[...this.activeExtensionWidgets.keys()])this.clearExtensionWidget(a);this.extensionWidgets.clear()}finally{this.extensionWidgetsResetting=!1}}emitExtensionWidgetError(a,b){this.emit({type:"extension_error",extensionPath:`extension-widget:${a}`,event:"setWidget",error:b instanceof Error?b.message:String(b)})}failExtensionWidget(a,b,c,d,e){if(this.extensionWidgetGenerations.get(a)!==b)return void this.disposeExtensionWidgetComponent(e);let f=this.activeExtensionWidgets.get(a),g=!d;f?.generation===b?(g=f.rendered||!f.clearEmitted,this.activeExtensionWidgets.delete(a),this.disposeExtensionWidgetComponent(f.component)):this.disposeExtensionWidgetComponent(e),this.extensionWidgetGenerations.get(a)!==b||(this.extensionWidgets.delete(a),g&&this.emitExtensionWidgetClear(a)),this.emitExtensionWidgetError(a,c)}renderExtensionWidget(a){let b;if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;try{b=a.component.render(r.p1)}catch(b){this.failExtensionWidget(a.key,a.generation,b,a.clearEmitted);return}if(!Array.isArray(b)||!b.every(a=>"string"==typeof a))return void this.failExtensionWidget(a.key,a.generation,Error("Extension widget render must return string[]"),a.clearEmitted);if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;let c=b;this.extensionWidgets.set(a.key,{key:a.key,lines:c,placement:a.placement}),a.rendered=!0,this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"setWidget",widgetKey:a.key,widgetLines:c,widgetPlacement:a.placement})}setExtensionWidgetFactory(a,b,c){let d,e=this.extensionWidgets.has(a)||this.activeExtensionWidgets.has(a),f=this.clearExtensionWidget(a,e);if(this.extensionWidgetGenerations.get(a)!==f)return;let g=(0,r.TQ)(()=>{let b=this.activeExtensionWidgets.get(a);b?.generation===f&&this.renderExtensionWidget(b)},r.p1);try{d=b(g,L)}catch(b){this.failExtensionWidget(a,f,b,e);return}if(this.extensionWidgetGenerations.get(a)!==f)return void this.disposeExtensionWidgetComponent(d);if(!d||"object"!=typeof d&&"function"!=typeof d||"function"!=typeof d.render)return void this.failExtensionWidget(a,f,Error("Extension widget factory must return a component with render(width)"),e,d);let h={key:a,component:d,placement:c?.placement??"aboveEditor",generation:f,clearEmitted:e,rendered:!1};this.activeExtensionWidgets.set(a,h),this.renderExtensionWidget(h)}getCustomUiWidth(a){if(!a||"object"!=typeof a)return r.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return r.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,h.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,r.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,L,M,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,h.randomUUID)(),g={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let h,i=()=>{h&&clearTimeout(h),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=b=>{i(),a(b)},k=()=>j(b);d&&(h=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,g),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(g)})}createExtensionUiContext(){return{select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{if(!this._alive||this.extensionWidgetsResetting)return;if("function"==typeof b)return void this.setExtensionWidgetFactory(a,b,c);if(void 0!==b&&!Array.isArray(b))return;if(void 0===b)return void this.clearExtensionWidget(a);let d=this.activeExtensionWidgets.has(a)?this.clearExtensionWidget(a):this.nextExtensionWidgetGeneration(a);this.extensionWidgetGenerations.get(a)===d&&(this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,h.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return L},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in Pi Web extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}createExtensionCommandContextActions(){return{waitForIdle:async()=>{let a=this.inner.agent;await a.waitForIdle?.()},newSession:async()=>({cancelled:!0}),fork:async()=>({cancelled:!0}),navigateTree:async(a,b)=>({cancelled:(await this.inner.navigateTree(a,{summarize:b?.summarize})).cancelled}),switchSession:async()=>({cancelled:!0}),reload:async()=>{this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload({beforeSessionStart:()=>{this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc")}}),this.applyForcedEmptySystemPrompt()}}}syncProjectTrust(){let a=(0,p.Y1)(this.cwd,(0,e.getAgentDir)());this.inner.settingsManager.setProjectTrusted(a.trusted)}}function v(){if(!globalThis.__piSessions){globalThis.__piSessions=new Map;let a=()=>globalThis.__piSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__piSessions}function w(a){let b=(0,j.resolve)(a);try{return(0,i.realpathSync)(b)}catch{return b}}function x(){return globalThis.__piStartingSessionCwds||(globalThis.__piStartingSessionCwds=new Map),globalThis.__piStartingSessionCwds}function y(a){return v().get(a)}function z(){let a=[];for(let b of v().values()){if(!b.isAlive())continue;let c=b.inner.sessionManager,d=c.getHeader(),e=c.getEntries(),f=e.filter(a=>"message"===a.type),g=f.find(a=>"user"===a.message.role),h=c.getSessionFile()??b.sessionFile,j=!!(h&&(0,i.existsSync)(h));if(!j&&(!b.isRunning()||!g))continue;let k=d?.timestamp??e[0]?.timestamp??new Date().toISOString(),l=new Date(k).getTime(),m=Number.isNaN(l)?Date.now():l;for(let a of f){let b=function(a){if("user"!==a.message.role&&"assistant"!==a.message.role)return;if("number"==typeof a.message.timestamp)return a.message.timestamp;let b=new Date(a.timestamp).getTime();return Number.isNaN(b)?void 0:b}(a);void 0!==b&&(m=Math.max(m,b))}a.push({path:h??"",id:d?.id??b.sessionId,cwd:d?.cwd??b.cwd,name:c.getSessionName(),created:k,modified:new Date(m).toISOString(),messageCount:f.length,firstMessage:g&&function(a){if("bashExecution"===a.message.role)return"";let b=a.message.content;return"string"==typeof b?b:b.map(a=>"text"===a.type?a.text:"").filter(Boolean).join(" ")}(g)||"(no messages)",transient:!j})}return a}function A(a){let b=w(a);return!!x().has(b)||Array.from(v().values()).some(a=>w(a.cwd)===b&&a.isRunning())}async function B(a){let b=w(a),c=Array.from(v().values()).filter(a=>w(a.cwd)===b);return await Promise.all(c.map(a=>a.shutdown())),c.length}function C(){let a=new Set;for(let[b,c]of v())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function D(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}function E(a){let b=D();return b.add(a),()=>{b.delete(a)}}let Q="";function F(){let a=D();if(0===a.size){Q="";return}let b=C(),c=JSON.stringify([...b].sort());if(c!==Q)for(let d of(Q=c,a))try{d(b)}catch{}}async function G(a,b,c,d={}){let g,h,i,{toolNames:j,initialModel:k,thinkingLevel:r}=d,t=v(),y=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),z=t.get(a);if(z?.isAlive())return{session:z,realSessionId:a};let A=y.get(a);if(A)return A;if(b)g=e.SessionManager.open(b,void 0);else{if(!c)throw Error("cwd is required for a new session");g=e.SessionManager.create(c,void 0)}let B=g.getCwd(),C=(h=x(),i=w(B),h.set(i,(h.get(i)??0)+1),()=>{let a=(h.get(i)??1)-1;a>0?h.set(i,a):h.delete(i)}),D=(async()=>{var a;let b;(0,e.initTheme)();let c=(0,e.getAgentDir)(),d={current:null},h={current:null};void 0!==j&&(b=0===j.length?[]:void 0);let i=(0,p.Fk)(B,c),v=e.SettingsManager.create(B,c),w=await (0,e.createAgentSessionServices)({cwd:B,agentDir:c,settingsManager:v,resourceLoaderOptions:{extensionFactories:[(0,n.eD)({cwd:B,settings:v})],extensionsOverride:n.Ds},...i?{resourceLoaderReloadOptions:i}:{}}),x=await (0,m.p)(w.modelRuntime,w.settingsManager.getEnabledModels()),y=w.settingsManager.getDefaultProvider(),z=w.settingsManager.getDefaultModel(),A=g.getBranch().some(a=>"message"===a.type)?{scopedModels:[...x.scopedModels]}:(0,m.I)(x,{...k?{requestedModel:k}:{},...y&&z?{defaultModel:{provider:y,modelId:z}}:{},...r?{thinkingLevel:r}:{}}),{session:C}=await (0,e.createAgentSessionFromServices)({services:w,sessionManager:g,...A.model?{model:A.model}:{},...A.thinkingLevel?{thinkingLevel:A.thinkingLevel}:{},...A.scopedModels.length>0?{scopedModels:A.scopedModels}:{},...void 0!==b?{tools:b}:{},customTools:[(a=()=>d,{name:N,label:"获取当前页面内容",description:"获取宿主应用(父页面)当前页面的内容:页面 URL、页面标题、可见文本。当需要了解用户当前正在查看的页面/界面时调用。无参数。",promptSnippet:"get_page_content: 获取宿主应用当前页面内容(URL/标题/可见文本)",promptGuidelines:["当需要感知用户当前查看的页面内容时,调用 get_page_content","页面内容可能较长,聚焦与用户问题相关的部分,不要逐字复述"],parameters:f.ZUJ.Record(f.ZUJ.String(),f.ZUJ.Any()),execute:async()=>{let b=a().current,c=b?await b().catch(a=>`获取页面内容失败: ${a instanceof Error?a.message:String(a)}`):"页面内容获取器未就绪";return{content:[{type:"text",text:c}],details:{source:"page-context"}}}}),...s.H.map(a=>{var b;return b=()=>h,{name:a.toolName,label:a.label,description:a.description,promptSnippet:`${a.toolName}: ${a.label}`,promptGuidelines:a.promptGuidelines||[],parameters:f.ZUJ.Object(a.parameters),execute:async(c,d)=>{let e=b().current,f=e?await e(a.name,d||{}).then(a=>JSON.stringify(a)).catch(a=>JSON.stringify({ok:!1,error:`页面能力执行失败: ${a instanceof Error?a.message:String(a)}`})):JSON.stringify({ok:!1,error:"页面能力调用器未就绪"});return{content:[{type:"text",text:f}],details:{source:"page-ability",ability:a.name}}}}})]});(await (0,q.o)(w.settingsManager,{...k?{model:k}:{},...r?{thinkingLevel:r}:{}},{...C.model?{model:{provider:C.model.provider,modelId:C.model.id}}:{},thinkingLevel:C.thinkingLevel,supportsThinking:C.supportsThinking()})).modelDefaultChanged&&(0,l.kn)(),j&&j.length>0&&C.setActiveToolsByName(u(C,j));let D=[N,...s.H.map(a=>a.toolName)],E=new Set(C.getActiveToolNames());for(let a of D)E.has(a)||(C.setActiveToolsByName([...C.getActiveToolNames(),a]),E.add(a));let F=new P(C);d.current=()=>F.getPageContent(),h.current=(a,b)=>F.callPageAbility(a,b,s.H.find(b=>b.name===a)?.timeoutMs??8e3),j?.length===0&&F.setForceEmptySystemPrompt(!0),F.start();let G=C.sessionId,H=C.sessionFile;return H&&(0,o.O8)(G,H),F.onDestroy(()=>t.delete(G)),t.set(G,F),F.beginExtensionBinding({forceEmptySystemPrompt:j?.length===0}),{session:F,realSessionId:G}})().finally(()=>{y.delete(a),C()});return y.set(a,D),D}d()}catch(a){d(a)}})},71069:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},72498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){if(!(a&&(0,e.hasTrustRequiringProjectResources)(a)))return{requiresTrust:!1,trusted:!0};let c=new e.ProjectTrustStore(b);return{requiresTrust:!0,trusted:!0===c.get(a)}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},78970:(a,b,c)=>{c.d(b,{kc:()=>d});function d(a){if(void 0===a)return null;if(!Array.isArray(a))return"images must be an array";if(a.length>10)return"A message can include at most 10 images";for(let b of a){if(!b||"object"!=typeof b||"image"!==b.type)return"Each attachment must be an image";if(!function(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}(b))return"Each image must be valid base64 image data of 10MB or smaller"}return null}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/k-Awh0ZC8h_W7h_ScdjP-/_buildManifest.js","static/k-Awh0ZC8h_W7h_ScdjP-/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-dcd89d2ad9b5a1b6.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-491631389395f3eb.js","static/chunks/main-app-ab33ef79d1b12da7.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/qTo6drNBNcWgvsp6BSZsp/_buildManifest.js","static/qTo6drNBNcWgvsp6BSZsp/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-dcd89d2ad9b5a1b6.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-491631389395f3eb.js","static/chunks/main-app-ab33ef79d1b12da7.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" translate="no" class="__variable_da3c73 notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/pi-web/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/pi-web/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/pi-web/_next/static/css/3ae3dcdf2647ca9d.css" data-precedence="next"/><link rel="stylesheet" href="/pi-web/_next/static/css/ea09f86b1855180e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js"/><script src="/pi-web/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/pi-web/_next/static/chunks/3794-491631389395f3eb.js" async=""></script><script src="/pi-web/_next/static/chunks/main-app-ab33ef79d1b12da7.js" async=""></script><script src="/pi-web/_next/static/chunks/app/layout-a1fbf45edaa84d63.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)"/><title>AI助手</title><meta name="description" content="AI助手"/><meta name="application-name" content="AI助手"/><link rel="manifest" href="/pi-web/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="AI助手"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/pi-web/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/pi-web/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(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")}catch(e){}})();</script><script src="/pi-web/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[5057,[\"7177\",\"static/chunks/app/layout-a1fbf45edaa84d63.js\"],\"BasePathInit\"]\n5:I[57788,[\"7177\",\"static/chunks/app/layout-a1fbf45edaa84d63.js\"],\"PwaRegistration\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/pi-web/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/pi-web/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/pi-web/_next/static/css/3ae3dcdf2647ca9d.css\",\"style\"]\n:HL[\"/pi-web/_next/static/css/ea09f86b1855180e.css\",\"style\"]\n9:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/pi-web/_next/static/css/3ae3dcdf2647ca9d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/pi-web/_next/static/css/ea09f86b1855180e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_da3c73 notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");var dark=t===\\\"dark\\\"||((t==null||t===\\\"\\\"||t===\\\"auto\\\")\u0026\u0026window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);if(dark)document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"k-Awh0ZC8h_W7h_ScdjP-\"}\n"])</script><script>self.__next_f.push([1,"9:C\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1a1a1a\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"AI助手\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI助手\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"AI助手\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/pi-web/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"AI助手\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/pi-web/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/pi-web/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"10\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" translate="no" class="__variable_da3c73 notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/pi-web/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/pi-web/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/pi-web/_next/static/css/3ae3dcdf2647ca9d.css" data-precedence="next"/><link rel="stylesheet" href="/pi-web/_next/static/css/ea09f86b1855180e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js"/><script src="/pi-web/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/pi-web/_next/static/chunks/3794-491631389395f3eb.js" async=""></script><script src="/pi-web/_next/static/chunks/main-app-ab33ef79d1b12da7.js" async=""></script><script src="/pi-web/_next/static/chunks/app/layout-85ab5d23cbd7ddc8.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)"/><title>AI助手</title><meta name="description" content="AI助手"/><meta name="application-name" content="AI助手"/><link rel="manifest" href="/pi-web/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="AI助手"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/pi-web/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/pi-web/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(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")}catch(e){}})();</script><script src="/pi-web/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[5057,[\"7177\",\"static/chunks/app/layout-85ab5d23cbd7ddc8.js\"],\"BasePathInit\"]\n5:I[57788,[\"7177\",\"static/chunks/app/layout-85ab5d23cbd7ddc8.js\"],\"PwaRegistration\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/pi-web/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/pi-web/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/pi-web/_next/static/css/3ae3dcdf2647ca9d.css\",\"style\"]\n:HL[\"/pi-web/_next/static/css/ea09f86b1855180e.css\",\"style\"]\n9:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/pi-web/_next/static/css/3ae3dcdf2647ca9d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/pi-web/_next/static/css/ea09f86b1855180e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_da3c73 notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");var dark=t===\\\"dark\\\"||((t==null||t===\\\"\\\"||t===\\\"auto\\\")\u0026\u0026window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);if(dark)document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"qTo6drNBNcWgvsp6BSZsp\"}\n"])</script><script>self.__next_f.push([1,"9:C\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1a1a1a\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"AI助手\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI助手\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"AI助手\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/pi-web/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"AI助手\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/pi-web/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/pi-web/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"10\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js"/><script src="/pi-web/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/pi-web/_next/static/chunks/3794-491631389395f3eb.js" async=""></script><script src="/pi-web/_next/static/chunks/main-app-ab33ef79d1b12da7.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/pi-web/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"k-Awh0ZC8h_W7h_ScdjP-\"}\n"])</script><script>self.__next_f.push([1,"7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js"/><script src="/pi-web/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/pi-web/_next/static/chunks/3794-491631389395f3eb.js" async=""></script><script src="/pi-web/_next/static/chunks/main-app-ab33ef79d1b12da7.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/pi-web/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/pi-web/_next/static/chunks/webpack-dcd89d2ad9b5a1b6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"qTo6drNBNcWgvsp6BSZsp\"}\n"])</script><script>self.__next_f.push([1,"7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{5057:(e,t,n)=>{"use strict";function r(){return null}n.d(t,{BasePathInit:()=>r}),(0,n(26619).eH)()},26619:(e,t,n)=>{"use strict";n.d(t,{eH:()=>l,hd:()=>i,o2:()=>r});let r="/pi-web";function i(e){return!r||!e.startsWith("/")||e.startsWith(r)||e.startsWith("/_next/")||"/sw.js"===e||e.startsWith("/sw.js?")?e:`${r}${e}`}function s(e){return e.startsWith("/")&&!e.startsWith("/_next/")&&!e.startsWith(r)}let o=!1,a=new URLSearchParams(window.location.search).get("cookie_sessionid");function c(e){if(!a||!e.startsWith("/api/"))return e;let t=e.indexOf("?"),n=-1===t?e:e.slice(0,t),r=new URLSearchParams(-1===t?"":e.slice(t+1));return r.set("cookie_sessionid",a),`${n}?${r.toString()}`}function l(){if(o||!r)return;o=!0;let e=window.fetch.bind(window);window.fetch=(t,n)=>{if("string"==typeof t){let e=c(t);t=s(e)?`${r}${e}`:e}else t instanceof URL&&t.origin===window.location.origin&&s(t.pathname)&&(t=new URL(`${r}${t.pathname}${t.search}`,t.origin));return e(t,n)};let t=window.EventSource;if(t){class e extends t{constructor(e,t){if("string"==typeof e){const n=c(e);super(s(n)?`${r}${n}`:n,t)}else super(e,t)}}window.EventSource=e}}},57788:(e,t,n)=>{"use strict";n.d(t,{PwaRegistration:()=>s});var r=n(12115),i=n(26619);function s(){return(0,r.useEffect)(()=>{if(!("serviceWorker"in navigator))return;let e=()=>{let e=`${i.o2}/sw.js?v=${encodeURIComponent("1.0.12")}`,t=i.o2?`${i.o2}/`:"/";navigator.serviceWorker.register(e,{scope:t,updateViaCache:"none"}).catch(e=>{console.error("Failed to register the Pi Web service worker:",e)})};return"complete"===document.readyState?void e():(window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e))},[]),null}},66872:()=>{},77914:(e,t,n)=>{Promise.resolve().then(n.bind(n,5057)),Promise.resolve().then(n.bind(n,57788)),Promise.resolve().then(n.t.bind(n,83683,23)),Promise.resolve().then(n.t.bind(n,84559,23)),Promise.resolve().then(n.t.bind(n,66872,23))},83683:e=>{e.exports={style:{fontFamily:"'Noto Sans Mono', 'Noto Sans Mono Fallback'",fontStyle:"normal"},className:"__className_da3c73",variable:"__variable_da3c73"}},84559:()=>{}},e=>{e.O(0,[7389,9894,8441,3794,7358],()=>e(e.s=77914)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{5057:(e,t,n)=>{"use strict";function r(){return null}n.d(t,{BasePathInit:()=>r}),(0,n(26619).eH)()},26619:(e,t,n)=>{"use strict";n.d(t,{eH:()=>l,hd:()=>i,o2:()=>r});let r="/pi-web";function i(e){return!r||!e.startsWith("/")||e.startsWith(r)||e.startsWith("/_next/")||"/sw.js"===e||e.startsWith("/sw.js?")?e:`${r}${e}`}function s(e){return e.startsWith("/")&&!e.startsWith("/_next/")&&!e.startsWith(r)}let o=!1,a=new URLSearchParams(window.location.search).get("cookie_sessionid");function c(e){if(!a||!e.startsWith("/api/"))return e;let t=e.indexOf("?"),n=-1===t?e:e.slice(0,t),r=new URLSearchParams(-1===t?"":e.slice(t+1));return r.set("cookie_sessionid",a),`${n}?${r.toString()}`}function l(){if(o||!r)return;o=!0;let e=window.fetch.bind(window);window.fetch=(t,n)=>{if("string"==typeof t){let e=c(t);t=s(e)?`${r}${e}`:e}else t instanceof URL&&t.origin===window.location.origin&&s(t.pathname)&&(t=new URL(`${r}${t.pathname}${t.search}`,t.origin));return e(t,n)};let t=window.EventSource;if(t){class e extends t{constructor(e,t){if("string"==typeof e){const n=c(e);super(s(n)?`${r}${n}`:n,t)}else super(e,t)}}window.EventSource=e}}},57788:(e,t,n)=>{"use strict";n.d(t,{PwaRegistration:()=>s});var r=n(12115),i=n(26619);function s(){return(0,r.useEffect)(()=>{if(!("serviceWorker"in navigator))return;let e=()=>{let e=`${i.o2}/sw.js?v=${encodeURIComponent("1.0.13")}`,t=i.o2?`${i.o2}/`:"/";navigator.serviceWorker.register(e,{scope:t,updateViaCache:"none"}).catch(e=>{console.error("Failed to register the Pi Web service worker:",e)})};return"complete"===document.readyState?void e():(window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e))},[]),null}},66872:()=>{},77914:(e,t,n)=>{Promise.resolve().then(n.bind(n,5057)),Promise.resolve().then(n.bind(n,57788)),Promise.resolve().then(n.t.bind(n,83683,23)),Promise.resolve().then(n.t.bind(n,84559,23)),Promise.resolve().then(n.t.bind(n,66872,23))},83683:e=>{e.exports={style:{fontFamily:"'Noto Sans Mono', 'Noto Sans Mono Fallback'",fontStyle:"normal"},className:"__className_da3c73",variable:"__variable_da3c73"}},84559:()=>{}},e=>{e.O(0,[7389,9894,8441,3794,7358],()=>e(e.s=77914)),_N_E=e.O()}]);