pi-app 0.8.0 → 0.8.4

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 (101) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/api/agent/[id]/events/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/export.html/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/export.html/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/[id]/route.js +1 -1
  30. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  33. package/.next/server/app/api/files/[...path]/route.js +3 -3
  34. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/history/[id]/route.js +1 -2
  36. package/.next/server/app/api/history/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/history/route.js +1 -2
  38. package/.next/server/app/api/history/route.js.nft.json +1 -1
  39. package/.next/server/app/api/models-config/route.js +1 -1
  40. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  41. package/.next/server/app/api/product-sessions/[id]/route.js +2 -3
  42. package/.next/server/app/api/product-sessions/[id]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/sessions/[id]/context/route.js +1 -2
  44. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  45. package/.next/server/app/api/sessions/[id]/export/route.js +1 -2
  46. package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
  47. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  48. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/sessions/[id]/share/route.js +1 -1
  50. package/.next/server/app/api/sessions/route.js +1 -2
  51. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  52. package/.next/server/app/api/share/[token]/route.js +1 -2
  53. package/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  54. package/.next/server/app/api/skills/install/route.js +1 -1
  55. package/.next/server/app/api/skills/search/route.js +1 -1
  56. package/.next/server/app/api/terminal/run/[...cwd]/route.js +1 -1
  57. package/.next/server/app/api/terminal/run/[...cwd]/route.js.nft.json +1 -1
  58. package/.next/server/app/api/terminal/state/[...cwd]/route.js +1 -1
  59. package/.next/server/app/api/terminal/state/[...cwd]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/terminal/stop/[...cwd]/route.js +1 -1
  61. package/.next/server/app/api/terminal/stop/[...cwd]/route.js.nft.json +1 -1
  62. package/.next/server/app/api/terminal/stream/[...cwd]/route.js +1 -1
  63. package/.next/server/app/api/terminal/stream/[...cwd]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/usage/route.js +1 -2
  65. package/.next/server/app/api/usage/route.js.nft.json +1 -1
  66. package/.next/server/app/index.html +1 -1
  67. package/.next/server/app/index.rsc +3 -3
  68. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  69. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  70. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  71. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  72. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  73. package/.next/server/app/page.js +2 -2
  74. package/.next/server/app/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app-paths-manifest.json +2 -2
  77. package/.next/server/chunks/1185.js +2 -2
  78. package/.next/server/chunks/349.js +1 -1
  79. package/.next/server/chunks/402.js +2 -0
  80. package/.next/server/chunks/{3768.js → 5192.js} +1 -1
  81. package/.next/server/chunks/6429.js +1 -2
  82. package/.next/server/middleware-build-manifest.js +1 -1
  83. package/.next/server/middleware-manifest.json +5 -5
  84. package/.next/server/pages/404.html +1 -1
  85. package/.next/server/pages/500.html +1 -1
  86. package/.next/server/server-reference-manifest.json +1 -1
  87. package/.next/static/chunks/{2261-1213d31c519af896.js → 2261-bdeacd38bbdf7a65.js} +1 -1
  88. package/.next/static/chunks/app/page-12fb7504b3b0a7a5.js +2 -0
  89. package/.next/static/css/bdd24a16bf93fd97.css +1 -0
  90. package/.next/trace +84 -84
  91. package/.next/trace-build +1 -1
  92. package/README.md +20 -3
  93. package/bin/pi-app.js +20 -6
  94. package/next.config.ts +4 -0
  95. package/package.json +2 -4
  96. package/public/Pi-LOGO.png +0 -0
  97. package/.next/server/chunks/6402.js +0 -2
  98. package/.next/static/chunks/app/page-efc48687d0c38175.js +0 -2
  99. package/.next/static/css/55427e8acf53e124.css +0 -1
  100. /package/.next/static/{ti8s0DtntFtmi4CivW4V2 → VL7I477I2Xvb0sQR9Po90}/_buildManifest.js +0 -0
  101. /package/.next/static/{ti8s0DtntFtmi4CivW4V2 → VL7I477I2Xvb0sQR9Po90}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3000":{"*":{"id":"98966","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"50448","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"83712","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/app/providers.tsx":{"id":69520,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/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":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/app/globals.css":{"id":66872,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/AppShell.tsx":{"id":3000,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","4605","static/chunks/4605-239436e727abe355.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-1213d31c519af896.js","8974","static/chunks/app/page-efc48687d0c38175.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/SharedConversationView.tsx":{"id":44892,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/":[],"/home/runner/work/pi-app/pi-app/app/layout":[{"inlined":false,"path":"static/css/731bfd1db3733cc6.css"},{"inlined":false,"path":"static/css/55427e8acf53e124.css"}],"/home/runner/work/pi-app/pi-app/app/page":[]},"rscModuleMapping":{"3000":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"66782","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"69298","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"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":"/_next/"},"ssrModuleMapping":{"3000":{"*":{"id":"98966","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"50448","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"83712","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/app/providers.tsx":{"id":69520,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/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":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/app/globals.css":{"id":66872,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/AppShell.tsx":{"id":3000,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","4605","static/chunks/4605-239436e727abe355.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-bdeacd38bbdf7a65.js","8974","static/chunks/app/page-12fb7504b3b0a7a5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/SharedConversationView.tsx":{"id":44892,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/":[],"/home/runner/work/pi-app/pi-app/app/layout":[{"inlined":false,"path":"static/css/731bfd1db3733cc6.css"},{"inlined":false,"path":"static/css/bdd24a16bf93fd97.css"}],"/home/runner/work/pi-app/pi-app/app/page":[]},"rscModuleMapping":{"3000":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"66782","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"69298","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/share/[token]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3000":{"*":{"id":"98966","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"50448","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"83712","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/app/providers.tsx":{"id":69520,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/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":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/app/globals.css":{"id":66872,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/AppShell.tsx":{"id":3000,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","4605","static/chunks/4605-239436e727abe355.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-1213d31c519af896.js","8974","static/chunks/app/page-efc48687d0c38175.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/SharedConversationView.tsx":{"id":44892,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-1213d31c519af896.js","8796","static/chunks/app/share/%5Btoken%5D/page-1f5edf0adb2cc171.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/":[],"/home/runner/work/pi-app/pi-app/app/layout":[{"inlined":false,"path":"static/css/731bfd1db3733cc6.css"},{"inlined":false,"path":"static/css/55427e8acf53e124.css"}],"/home/runner/work/pi-app/pi-app/app/page":[],"/home/runner/work/pi-app/pi-app/app/share/[token]/page":[]},"rscModuleMapping":{"3000":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"66782","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"69298","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"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["/share/[token]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3000":{"*":{"id":"98966","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"50448","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"83712","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-app/pi-app/app/providers.tsx":{"id":69520,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/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":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/app/globals.css":{"id":66872,"name":"*","chunks":["2241","static/chunks/2241-f0ba829b6b7cbd7d.js","7177","static/chunks/app/layout-8e3fc042a8fc9dc5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/AppShell.tsx":{"id":3000,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","4605","static/chunks/4605-239436e727abe355.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-bdeacd38bbdf7a65.js","8974","static/chunks/app/page-12fb7504b3b0a7a5.js"],"async":false},"/home/runner/work/pi-app/pi-app/components/SharedConversationView.tsx":{"id":44892,"name":"*","chunks":["5803","static/chunks/628fdacb-75807e8dfa4c130d.js","1326","static/chunks/1326-2bd1fb98fd0a6227.js","2241","static/chunks/2241-f0ba829b6b7cbd7d.js","2261","static/chunks/2261-bdeacd38bbdf7a65.js","8796","static/chunks/app/share/%5Btoken%5D/page-1f5edf0adb2cc171.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/":[],"/home/runner/work/pi-app/pi-app/app/layout":[{"inlined":false,"path":"static/css/731bfd1db3733cc6.css"},{"inlined":false,"path":"static/css/bdd24a16bf93fd97.css"}],"/home/runner/work/pi-app/pi-app/app/page":[],"/home/runner/work/pi-app/pi-app/app/share/[token]/page":[]},"rscModuleMapping":{"3000":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"44892":{"*":{"id":"66782","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"69520":{"*":{"id":"69298","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -35,9 +35,9 @@
35
35
  "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
36
36
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
37
37
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
38
+ "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
38
39
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
39
40
  "/api/extensions/route": "app/api/extensions/route.js",
40
- "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
41
41
  "/api/health/route": "app/api/health/route.js",
42
42
  "/api/models-config/route": "app/api/models-config/route.js",
43
43
  "/api/models/route": "app/api/models/route.js",
@@ -45,8 +45,8 @@
45
45
  "/api/preferences/route": "app/api/preferences/route.js",
46
46
  "/api/scene-overrides/export/route": "app/api/scene-overrides/export/route.js",
47
47
  "/api/scene-overrides/[sceneId]/route": "app/api/scene-overrides/[sceneId]/route.js",
48
- "/api/scene-overrides/route": "app/api/scene-overrides/route.js",
49
48
  "/api/scene-overrides/import/route": "app/api/scene-overrides/import/route.js",
49
+ "/api/scene-overrides/route": "app/api/scene-overrides/route.js",
50
50
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
51
51
  "/api/settings/default-model/route": "app/api/settings/default-model/route.js",
52
52
  "/api/skills/install/route": "app/api/skills/install/route.js",
@@ -1,3 +1,3 @@
1
1
  exports.id=1185,exports.ids=[1185],exports.modules={1751:(a,b,c)=>{"use strict";c.d(b,{$M:()=>g,AP:()=>f,_r:()=>h});var d=c(48161),e=c(76760);function f(){return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(){let a=process.env.PI_CODING_AGENT_DIR;return a?"~"===a?(0,d.homedir)():a.startsWith("~/")?(0,e.join)((0,d.homedir)(),a.slice(2)):a:f()}function h(){return(0,e.resolve)(g())!==(0,e.resolve)(f())}},12687:(a,b,c)=>{"use strict";c.d(b,{$Z:()=>m,Zf:()=>j,w4:()=>k});var d=c(77598),e=c(29021),f=c(33873),g=c(1751),h=c(14347);function i(){return(0,f.join)((0,g.$M)(),h.y1)}function j(){let a=i();try{let b=(0,e.readFileSync)(a,"utf8"),c=JSON.parse(b);if(!c.signingSecret||"string"!=typeof c.signingSecret)return null;return{enabled:!!c.enabled,tokenHash:c.tokenHash,signingSecret:c.signingSecret,allowedHostnames:Array.isArray(c.allowedHostnames)?c.allowedHostnames:[],sessions:Array.isArray(c.sessions)?c.sessions.map(a=>({id:String(a.id??""),createdAt:String(a.createdAt??""),userAgent:String(a.userAgent??"unknown"),lastSeenAt:String(a.lastSeenAt??a.createdAt??""),label:"string"==typeof a.label?a.label:void 0})):[],pairingCodes:Array.isArray(c.pairingCodes)?c.pairingCodes:[],readOnly:!!c.readOnly,relay:c.relay&&"string"==typeof c.relay.serverId?{serverId:c.relay.serverId,hostPublicKeyB64:String(c.relay.hostPublicKeyB64??""),hostPrivateKeyB64:String(c.relay.hostPrivateKeyB64??""),defaultEndpoint:String(c.relay.defaultEndpoint??"http://127.0.0.1:30142")}:void 0}}catch{return null}}function k(a){let b=i();(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0});let c=`${b}.tmp`;(0,e.writeFileSync)(c,`${JSON.stringify(a,null,2)}
2
- `,"utf8"),(0,e.renameSync)(c,b),l(a)}function l(a){a.enabled?(process.env.PI_WEB_REMOTE="1",process.env.PI_WEB_REMOTE_SIGNING_SECRET=a.signingSecret,a.tokenHash?process.env.PI_WEB_REMOTE_TOKEN_HASH=a.tokenHash:delete process.env.PI_WEB_REMOTE_TOKEN_HASH,a.readOnly?process.env.PI_WEB_REMOTE_READ_ONLY="1":delete process.env.PI_WEB_REMOTE_READ_ONLY):(delete process.env.PI_WEB_REMOTE,delete process.env.PI_WEB_REMOTE_SIGNING_SECRET,delete process.env.PI_WEB_REMOTE_TOKEN_HASH,delete process.env.PI_WEB_REMOTE_READ_ONLY)}function m(){let a=j();if(a)return l(a),a;let b={enabled:!1,signingSecret:(0,d.randomBytes)(32).toString("base64url"),allowedHostnames:[],sessions:[],pairingCodes:[],readOnly:!1};return k(b),b}},14347:(a,b,c)=>{"use strict";c.d(b,{IX:()=>e,dc:()=>g,lD:()=>f,y1:()=>d});let d="pi-web-remote.json",e="pi_web_session",f=3e5,g=2592e6},62101:(a,b,c)=>{"use strict";c.d(b,{BJ:()=>j,T1:()=>h,oW:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-remote-audit.jsonl")}function h(a){let b=a.headers.get("x-forwarded-for");if(b){let a=b.split(",")[0]?.trim();if(a)return a}let c=a.headers.get("x-real-ip");if(c)return c.trim()}function i(a){let b={ts:new Date().toISOString(),...a},c=g();return(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),(0,d.appendFileSync)(c,`${JSON.stringify(b)}
3
- `,"utf8"),b}function j(a=100){let b=g();try{return(0,d.readFileSync)(b,"utf8").split("\n").filter(a=>a.trim().length>0).slice(-a).map(a=>JSON.parse(a)).reverse()}catch{return[]}}},78335:()=>{},92725:(a,b,c)=>{"use strict";c.d(b,{d6:()=>s,xR:()=>C,gn:()=>B,xL:()=>v,yN:()=>u,VA:()=>q,KF:()=>t,XH:()=>o,QA:()=>j,$R:()=>p,k4:()=>D,B9:()=>F,rT:()=>E,Np:()=>A,TD:()=>z,FR:()=>y,rH:()=>w,VX:()=>x});var d=c(77598),e=c(23211);let f="http://127.0.0.1:30142";var g=c(62101),h=c(14347),i=c(12687);function j(){if("1"===process.env.PI_WEB_REMOTE)return!0;let a=(0,i.Zf)();return!!a?.enabled}function k(a){let b=(0,d.randomBytes)(16),c=(0,d.scryptSync)(a,b,32);return`${b.toString("base64url")}.${c.toString("base64url")}`}function l(a,b){return(0,d.createHmac)("sha256",b).update(a).digest("base64url")}function m(a){if(!a)return"";let b=a.trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");return -1===a?b:b.slice(1,a)}return b.split(":")[0]??""}function n(a){return"localhost"===a||"::1"===a||"0:0:0:0:0:0:0:1"===a||a.startsWith("127.")}function o(a){return n(m(a.headers.get("host")))}function p(a){let b=m(a.headers.get("host"));if(!n(b))return!1;let c=a.headers.get("origin");return!c||function(a){if(!a)return"";try{return new URL(a).hostname.toLowerCase()}catch{return""}}(c)===b}function q(a){let b=o(a);if(!j())return{remoteEnabled:!1,authenticated:!0,readOnly:!1,loopback:b};if(b&&p(a))return{remoteEnabled:!0,authenticated:!0,readOnly:!1,loopback:!0};let c=r(a);return{remoteEnabled:!0,authenticated:c.authorized,readOnly:c.readOnly,loopback:c.loopback}}function r(a){let b,c=o(a),e=(0,i.Zf)(),f=!!e?.enabled||"1"===process.env.PI_WEB_REMOTE;if("1"===process.env.PI_WEB_ALLOW_REMOTE_MUTATIONS)return{authorized:!0,loopback:c,remoteEnabled:f,sessionId:null,readOnly:!1,reason:null};if(!f)return c&&p(a)?{authorized:!0,loopback:!0,remoteEnabled:!1,sessionId:null,readOnly:!1,reason:null}:{authorized:!1,loopback:c,remoteEnabled:!1,sessionId:null,readOnly:!1,reason:c?"Cross-origin request rejected":"Remote access is disabled"};if(c&&p(a))return{authorized:!0,loopback:!0,remoteEnabled:!0,sessionId:null,readOnly:!1,reason:null};if(e&&!function(a,b){if(0===b.allowedHostnames.length)return!0;let c=m(a.headers.get("host"));return b.allowedHostnames.some(a=>a.toLowerCase()===c)}(a,e))return{authorized:!1,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e.readOnly,reason:"Host is not allowed for remote access"};let g=process.env.PI_WEB_REMOTE_TOKEN,j=(b=a.headers.get("authorization"),b?.startsWith("Bearer ")&&b.slice(7).trim()||null);if(g&&j&&j.length===g.length&&(0,d.timingSafeEqual)(Buffer.from(j),Buffer.from(g)))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e?.readOnly,reason:null};if(e?.tokenHash&&j&&function(a,b){let[c,e]=b.split(".");if(!c||!e)return!1;let f=Buffer.from(c,"base64url"),g=Buffer.from(e,"base64url"),h=(0,d.scryptSync)(a,f,g.length);return h.length===g.length&&(0,d.timingSafeEqual)(h,g)}(j,e.tokenHash))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e.readOnly,reason:null};let k=process.env.PI_WEB_REMOTE_SIGNING_SECRET??(0,i.Zf)()?.signingSecret??null,n=function(a){let b=a.headers.get("cookie");if(!b)return null;for(let a of b.split(";")){let b=a.trim();if(b.startsWith(`${h.IX}=`))return decodeURIComponent(b.slice(h.IX.length+1))}return null}(a);if(k&&n){var q;let a=function(a,b){let c=a.split(".");if(3!==c.length)return null;let[e,f,g]=c;if(!e||!f||!g)return null;let h=Number(f);if(!Number.isFinite(h))return null;let i=l(`${e}.${f}`,b),j=Buffer.from(g),k=Buffer.from(i);return j.length!==k.length||!(0,d.timingSafeEqual)(j,k)||Date.now()>h?null:{sessionId:e,expiresAtMs:h}}(n,k);if(a&&e&&(q=a.sessionId,e.sessions.some(a=>a.id===q)))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:a.sessionId,readOnly:!!e.readOnly,reason:null}}return{authorized:!1,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e?.readOnly,reason:"Authentication required"}}function s(a,b,c){let d=a.url.startsWith("https://")?"; Secure":"";return`${h.IX}=${encodeURIComponent(b)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${c}${d}`}function t(){let a=(0,i.Zf)()??(0,i.$Z)();return{enabled:a.enabled,readOnly:!!a.readOnly,allowedHostnames:a.allowedHostnames,sessionCount:a.sessions.length,hasMasterToken:!!a.tokenHash}}function u(a){let b=(0,i.$Z)(),c=(0,d.randomBytes)(24).toString("base64url"),e={...b,enabled:!0,tokenHash:k(c),allowedHostnames:a?.allowedHostnames??b.allowedHostnames,readOnly:a?.readOnly??!1};return(0,i.w4)(e),(0,g.oW)({type:"remote_enabled"}),{config:e,masterToken:c}}function v(){let a={...(0,i.$Z)(),enabled:!1,sessions:[],pairingCodes:[]};return(0,i.w4)(a),(0,g.oW)({type:"remote_disabled"}),a}function w(){let a=(0,i.$Z)(),b=(0,d.randomBytes)(24).toString("base64url"),c={...a,tokenHash:k(b),sessions:[],pairingCodes:[]};return(0,i.w4)(c),(0,g.oW)({type:"token_rotated"}),{config:c,masterToken:b}}function x(a){let b=(0,i.$Z)(),c={...b,allowedHostnames:a.allowedHostnames??b.allowedHostnames,readOnly:a.readOnly??b.readOnly};return(0,i.w4)(c),(0,g.oW)({type:"settings_updated"}),c}function y(a){let b=(0,i.$Z)(),c={...b,sessions:b.sessions.filter(b=>b.id!==a)};return(0,i.w4)(c),(0,g.oW)({type:"session_revoked",sessionId:a}),c}function z(){let a=(0,i.$Z)(),b={...a,sessions:[]};return(0,i.w4)(b),(0,g.oW)({type:"sessions_revoked_all",detail:`${a.sessions.length} sessions`}),b}function A(a,b){let c=(0,i.$Z)(),d=b.trim(),e={...c,sessions:c.sessions.map(b=>b.id===a?{...b,label:d||void 0}:b)};return(0,i.w4)(e),(0,g.oW)({type:"session_renamed",sessionId:a,detail:d}),e}function B(a,b){var c,e,h;let j=(0,i.$Z)();if(!j.enabled)throw Error("Remote access is not enabled");let k=function(){let{publicKey:a,privateKey:b}=(0,d.generateKeyPairSync)("x25519");return{publicKeyB64:a.export({type:"spki",format:"der"}).toString("base64url"),privateKeyB64:b.export({type:"pkcs8",format:"der"}).toString("base64url")}}(),l=j.relay?.serverId??(0,d.randomUUID)(),m=b?.trim()||j.relay?.defaultEndpoint||f,n={serverId:l,hostPublicKeyB64:k.publicKeyB64,hostPrivateKeyB64:k.privateKeyB64,defaultEndpoint:m};(0,i.w4)({...j,relay:n});let o={v:1,serverId:(c={serverId:l,hostPublicKeyB64:k.publicKeyB64,relayEndpoint:m}).serverId,hostPublicKeyB64:c.hostPublicKeyB64,relay:{endpoint:c.relayEndpoint??f}},p=(e=new URL(a.url).origin,`${e}#pi-offer=${h=JSON.stringify(o),Buffer.from(h,"utf8").toString("base64url")}`);return(0,g.oW)({type:"relay_offer_created",detail:l}),{offerUrl:p,relay:{...n,hostPrivateKeyB64:""}}}function C(a){let b=(0,i.$Z)();if(!b.enabled)throw Error("Remote access is not enabled");let c=(0,d.randomBytes)(18).toString("base64url"),e=new Date(Date.now()+h.lD).toISOString(),f=[...b.pairingCodes.filter(a=>new Date(a.expiresAt).getTime()>Date.now()),{code:c,expiresAt:e}];(0,i.w4)({...b,pairingCodes:f}),(0,g.oW)({type:"pairing_created"});let j=new URL(a.url).origin;return{code:c,expiresAt:e,pairingUrl:`${j}/?pair=${encodeURIComponent(c)}`}}function D(a,b){let c,e=(0,i.Zf)();if(!e?.enabled)throw Error("Remote access is not enabled");let f=Date.now();if(!e.pairingCodes.find(a=>a.code===b&&new Date(a.expiresAt).getTime()>f))throw Error("Invalid or expired pairing code");let j=(0,d.randomUUID)(),k=new Date().toISOString(),m=a.headers.get("user-agent")??"unknown",n=f+h.dc,o=e.signingSecret,p=(c=`${j}.${n}`,`${c}.${l(c,o)}`),q={...e,pairingCodes:e.pairingCodes.filter(a=>a.code!==b),sessions:[...e.sessions,{id:j,createdAt:k,userAgent:m,lastSeenAt:k}]};return(0,i.w4)(q),(0,g.oW)({type:"pairing_redeemed",sessionId:j,userAgent:m,ip:(0,g.T1)(a)}),{cookieValue:p,maxAgeSec:Math.floor(h.dc/1e3)}}function E(a){var b;let c=r(a);return c.authorized?c.readOnly&&"GET"!==(b=a.method)&&"HEAD"!==b&&"OPTIONS"!==b?e.NextResponse.json({error:"Remote access is read-only"},{status:403}):(!function(a,b){var c;let d;if(!b.sessionId)return;let e=(0,i.Zf)();if(!e)return;let f=a.headers.get("user-agent")??"unknown";(0,i.w4)((c=b.sessionId,d=new Date().toISOString(),{...e,sessions:e.sessions.map(a=>a.id===c?{...a,lastSeenAt:d,userAgent:f||a.userAgent}:a)}))}(a,c),null):(c.authorized||(0,g.oW)({type:"auth_failure",reason:c.reason??"Unauthorized",path:new URL(a.url).pathname,method:a.method,ip:(0,g.T1)(a),userAgent:a.headers.get("user-agent")??void 0}),e.NextResponse.json({error:c.reason??"Unauthorized"},{status:401}))}function F(a){return E(a)}},96487:()=>{}};
2
+ `,"utf8"),(0,e.renameSync)(c,b),l(a)}function l(a){a.enabled?(process.env.PI_WEB_REMOTE="1",process.env.PI_WEB_REMOTE_SIGNING_SECRET=a.signingSecret,a.tokenHash?process.env.PI_WEB_REMOTE_TOKEN_HASH=a.tokenHash:delete process.env.PI_WEB_REMOTE_TOKEN_HASH,a.readOnly?process.env.PI_WEB_REMOTE_READ_ONLY="1":delete process.env.PI_WEB_REMOTE_READ_ONLY):(delete process.env.PI_WEB_REMOTE,delete process.env.PI_WEB_REMOTE_SIGNING_SECRET,delete process.env.PI_WEB_REMOTE_TOKEN_HASH,delete process.env.PI_WEB_REMOTE_READ_ONLY)}function m(){let a=j();if(a)return l(a),a;let b={enabled:!1,signingSecret:(0,d.randomBytes)(32).toString("base64url"),allowedHostnames:[],sessions:[],pairingCodes:[],readOnly:!1};return k(b),b}},14347:(a,b,c)=>{"use strict";c.d(b,{IX:()=>e,dc:()=>g,lD:()=>f,y1:()=>d});let d="pi-web-remote.json",e="pi_web_session",f=3e5,g=2592e6},27730:(a,b,c)=>{"use strict";c.d(b,{I:()=>f});var d=c(48161);let e=new Set(["localhost","127.0.0.1","0.0.0.0","::1","[::1]"]);function f(a){let b=new URL(a),c=process.env.PI_SHARE_HOST?.trim();if(c)return b.host=c,b.origin;if(e.has(b.hostname)){let a=function(){let a=[];for(let b of Object.values((0,d.networkInterfaces)()))for(let c of b??[])"IPv4"!==c.family||c.internal||a.push(c.address);if(0===a.length)return null;let b=a=>{if(a.startsWith("192.168."))return 3;if(a.startsWith("10."))return 2;let b=a.match(/^172\.(\d+)\./);return b&&Number(b[1])>=16&&31>=Number(b[1])?1:0};return a.sort((a,c)=>b(c)-b(a))[0]}();a&&(b.hostname=a)}return b.origin}},62101:(a,b,c)=>{"use strict";c.d(b,{BJ:()=>j,T1:()=>h,oW:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-remote-audit.jsonl")}function h(a){let b=a.headers.get("x-forwarded-for");if(b){let a=b.split(",")[0]?.trim();if(a)return a}let c=a.headers.get("x-real-ip");if(c)return c.trim()}function i(a){let b={ts:new Date().toISOString(),...a},c=g();return(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),(0,d.appendFileSync)(c,`${JSON.stringify(b)}
3
+ `,"utf8"),b}function j(a=100){let b=g();try{return(0,d.readFileSync)(b,"utf8").split("\n").filter(a=>a.trim().length>0).slice(-a).map(a=>JSON.parse(a)).reverse()}catch{return[]}}},78335:()=>{},92725:(a,b,c)=>{"use strict";c.d(b,{d6:()=>t,xR:()=>D,gn:()=>C,xL:()=>w,yN:()=>v,VA:()=>r,KF:()=>u,XH:()=>p,QA:()=>k,$R:()=>q,k4:()=>E,B9:()=>G,rT:()=>F,Np:()=>B,TD:()=>A,FR:()=>z,rH:()=>x,VX:()=>y});var d=c(77598),e=c(23211),f=c(27730);let g="http://127.0.0.1:30142";var h=c(62101),i=c(14347),j=c(12687);function k(){if("1"===process.env.PI_WEB_REMOTE)return!0;let a=(0,j.Zf)();return!!a?.enabled}function l(a){let b=(0,d.randomBytes)(16),c=(0,d.scryptSync)(a,b,32);return`${b.toString("base64url")}.${c.toString("base64url")}`}function m(a,b){return(0,d.createHmac)("sha256",b).update(a).digest("base64url")}function n(a){if(!a)return"";let b=a.trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");return -1===a?b:b.slice(1,a)}return b.split(":")[0]??""}function o(a){return"localhost"===a||"::1"===a||"0:0:0:0:0:0:0:1"===a||a.startsWith("127.")}function p(a){return o(n(a.headers.get("host")))}function q(a){let b=n(a.headers.get("host"));if(!o(b))return!1;let c=a.headers.get("origin");return!c||function(a){if(!a)return"";try{return new URL(a).hostname.toLowerCase()}catch{return""}}(c)===b}function r(a){let b=p(a);if(!k())return{remoteEnabled:!1,authenticated:!0,readOnly:!1,loopback:b};if(b&&q(a))return{remoteEnabled:!0,authenticated:!0,readOnly:!1,loopback:!0};let c=s(a);return{remoteEnabled:!0,authenticated:c.authorized,readOnly:c.readOnly,loopback:c.loopback}}function s(a){let b,c=p(a),e=(0,j.Zf)(),f=!!e?.enabled||"1"===process.env.PI_WEB_REMOTE;if("1"===process.env.PI_WEB_ALLOW_REMOTE_MUTATIONS)return{authorized:!0,loopback:c,remoteEnabled:f,sessionId:null,readOnly:!1,reason:null};if(!f)return c&&q(a)?{authorized:!0,loopback:!0,remoteEnabled:!1,sessionId:null,readOnly:!1,reason:null}:{authorized:!1,loopback:c,remoteEnabled:!1,sessionId:null,readOnly:!1,reason:c?"Cross-origin request rejected":"Remote access is disabled"};if(c&&q(a))return{authorized:!0,loopback:!0,remoteEnabled:!0,sessionId:null,readOnly:!1,reason:null};if(e&&!function(a,b){if(0===b.allowedHostnames.length)return!0;let c=n(a.headers.get("host"));return b.allowedHostnames.some(a=>a.toLowerCase()===c)}(a,e))return{authorized:!1,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e.readOnly,reason:"Host is not allowed for remote access"};let g=process.env.PI_WEB_REMOTE_TOKEN,h=(b=a.headers.get("authorization"),b?.startsWith("Bearer ")&&b.slice(7).trim()||null);if(g&&h&&h.length===g.length&&(0,d.timingSafeEqual)(Buffer.from(h),Buffer.from(g)))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e?.readOnly,reason:null};if(e?.tokenHash&&h&&function(a,b){let[c,e]=b.split(".");if(!c||!e)return!1;let f=Buffer.from(c,"base64url"),g=Buffer.from(e,"base64url"),h=(0,d.scryptSync)(a,f,g.length);return h.length===g.length&&(0,d.timingSafeEqual)(h,g)}(h,e.tokenHash))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e.readOnly,reason:null};let k=process.env.PI_WEB_REMOTE_SIGNING_SECRET??(0,j.Zf)()?.signingSecret??null,l=function(a){let b=a.headers.get("cookie");if(!b)return null;for(let a of b.split(";")){let b=a.trim();if(b.startsWith(`${i.IX}=`))return decodeURIComponent(b.slice(i.IX.length+1))}return null}(a);if(k&&l){var o;let a=function(a,b){let c=a.split(".");if(3!==c.length)return null;let[e,f,g]=c;if(!e||!f||!g)return null;let h=Number(f);if(!Number.isFinite(h))return null;let i=m(`${e}.${f}`,b),j=Buffer.from(g),k=Buffer.from(i);return j.length!==k.length||!(0,d.timingSafeEqual)(j,k)||Date.now()>h?null:{sessionId:e,expiresAtMs:h}}(l,k);if(a&&e&&(o=a.sessionId,e.sessions.some(a=>a.id===o)))return{authorized:!0,loopback:c,remoteEnabled:!0,sessionId:a.sessionId,readOnly:!!e.readOnly,reason:null}}return{authorized:!1,loopback:c,remoteEnabled:!0,sessionId:null,readOnly:!!e?.readOnly,reason:"Authentication required"}}function t(a,b,c){let d=a.url.startsWith("https://")?"; Secure":"";return`${i.IX}=${encodeURIComponent(b)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${c}${d}`}function u(){let a=(0,j.Zf)()??(0,j.$Z)();return{enabled:a.enabled,readOnly:!!a.readOnly,allowedHostnames:a.allowedHostnames,sessionCount:a.sessions.length,hasMasterToken:!!a.tokenHash}}function v(a){let b=(0,j.$Z)(),c=(0,d.randomBytes)(24).toString("base64url"),e={...b,enabled:!0,tokenHash:l(c),allowedHostnames:a?.allowedHostnames??b.allowedHostnames,readOnly:a?.readOnly??!1};return(0,j.w4)(e),(0,h.oW)({type:"remote_enabled"}),{config:e,masterToken:c}}function w(){let a={...(0,j.$Z)(),enabled:!1,sessions:[],pairingCodes:[]};return(0,j.w4)(a),(0,h.oW)({type:"remote_disabled"}),a}function x(){let a=(0,j.$Z)(),b=(0,d.randomBytes)(24).toString("base64url"),c={...a,tokenHash:l(b),sessions:[],pairingCodes:[]};return(0,j.w4)(c),(0,h.oW)({type:"token_rotated"}),{config:c,masterToken:b}}function y(a){let b=(0,j.$Z)(),c={...b,allowedHostnames:a.allowedHostnames??b.allowedHostnames,readOnly:a.readOnly??b.readOnly};return(0,j.w4)(c),(0,h.oW)({type:"settings_updated"}),c}function z(a){let b=(0,j.$Z)(),c={...b,sessions:b.sessions.filter(b=>b.id!==a)};return(0,j.w4)(c),(0,h.oW)({type:"session_revoked",sessionId:a}),c}function A(){let a=(0,j.$Z)(),b={...a,sessions:[]};return(0,j.w4)(b),(0,h.oW)({type:"sessions_revoked_all",detail:`${a.sessions.length} sessions`}),b}function B(a,b){let c=(0,j.$Z)(),d=b.trim(),e={...c,sessions:c.sessions.map(b=>b.id===a?{...b,label:d||void 0}:b)};return(0,j.w4)(e),(0,h.oW)({type:"session_renamed",sessionId:a,detail:d}),e}function C(a,b){var c,e,f;let i=(0,j.$Z)();if(!i.enabled)throw Error("Remote access is not enabled");let k=function(){let{publicKey:a,privateKey:b}=(0,d.generateKeyPairSync)("x25519");return{publicKeyB64:a.export({type:"spki",format:"der"}).toString("base64url"),privateKeyB64:b.export({type:"pkcs8",format:"der"}).toString("base64url")}}(),l=i.relay?.serverId??(0,d.randomUUID)(),m=b?.trim()||i.relay?.defaultEndpoint||g,n={serverId:l,hostPublicKeyB64:k.publicKeyB64,hostPrivateKeyB64:k.privateKeyB64,defaultEndpoint:m};(0,j.w4)({...i,relay:n});let o={v:1,serverId:(c={serverId:l,hostPublicKeyB64:k.publicKeyB64,relayEndpoint:m}).serverId,hostPublicKeyB64:c.hostPublicKeyB64,relay:{endpoint:c.relayEndpoint??g}},p=(e=new URL(a.url).origin,`${e}#pi-offer=${f=JSON.stringify(o),Buffer.from(f,"utf8").toString("base64url")}`);return(0,h.oW)({type:"relay_offer_created",detail:l}),{offerUrl:p,relay:{...n,hostPrivateKeyB64:""}}}function D(a){let b=(0,j.$Z)();if(!b.enabled)throw Error("Remote access is not enabled");let c=(0,d.randomBytes)(18).toString("base64url"),e=new Date(Date.now()+i.lD).toISOString(),g=[...b.pairingCodes.filter(a=>new Date(a.expiresAt).getTime()>Date.now()),{code:c,expiresAt:e}];(0,j.w4)({...b,pairingCodes:g}),(0,h.oW)({type:"pairing_created"});let k=(0,f.I)(a.url);return{code:c,expiresAt:e,pairingUrl:`${k}/?pair=${encodeURIComponent(c)}`}}function E(a,b){let c,e=(0,j.Zf)();if(!e?.enabled)throw Error("Remote access is not enabled");let f=Date.now();if(!e.pairingCodes.find(a=>a.code===b&&new Date(a.expiresAt).getTime()>f))throw Error("Invalid or expired pairing code");let g=(0,d.randomUUID)(),k=new Date().toISOString(),l=a.headers.get("user-agent")??"unknown",n=f+i.dc,o=e.signingSecret,p=(c=`${g}.${n}`,`${c}.${m(c,o)}`),q={...e,pairingCodes:e.pairingCodes.filter(a=>a.code!==b),sessions:[...e.sessions,{id:g,createdAt:k,userAgent:l,lastSeenAt:k}]};return(0,j.w4)(q),(0,h.oW)({type:"pairing_redeemed",sessionId:g,userAgent:l,ip:(0,h.T1)(a)}),{cookieValue:p,maxAgeSec:Math.floor(i.dc/1e3)}}function F(a){var b;let c=s(a);return c.authorized?c.readOnly&&"GET"!==(b=a.method)&&"HEAD"!==b&&"OPTIONS"!==b?e.NextResponse.json({error:"Remote access is read-only"},{status:403}):(!function(a,b){var c;let d;if(!b.sessionId)return;let e=(0,j.Zf)();if(!e)return;let f=a.headers.get("user-agent")??"unknown";(0,j.w4)((c=b.sessionId,d=new Date().toISOString(),{...e,sessions:e.sessions.map(a=>a.id===c?{...a,lastSeenAt:d,userAgent:f||a.userAgent}:a)}))}(a,c),null):(c.authorized||(0,h.oW)({type:"auth_failure",reason:c.reason??"Unauthorized",path:new URL(a.url).pathname,method:a.method,ip:(0,h.T1)(a),userAgent:a.headers.get("user-agent")??void 0}),e.NextResponse.json({error:c.reason??"Unauthorized"},{status:401}))}function G(a){return F(a)}},96487:()=>{}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=349,exports.ids=[349],exports.modules={2857:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484);let e=new Set;function f(a){return e.add(a),()=>{e.delete(a)}}function g(){return"u"<typeof document?"light":document.documentElement.classList.contains("dark")?"dark":"light"}function h(){return"light"}function i(){let a=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,toggleTheme:(0,d.useCallback)(a=>{let b="dark"===g()?"light":"dark",c=()=>{"dark"===b?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");try{localStorage.setItem("pi-theme",b)}catch{}e.forEach(a=>a())},d=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||d)return void c();let f=a?.x??window.innerWidth/2,h=a?.y??window.innerHeight/2,i=Math.hypot(Math.max(f,window.innerWidth-f),Math.max(h,window.innerHeight-h));document.startViewTransition(c).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${f}px ${h}px)`,`circle(${i}px at ${f}px ${h}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[]),isDark:"dark"===a}}},31343:(a,b,c)=>{function d(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")?a.replace(/\\/g,"/"):a}function e(a){return d(a).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function f(a){let b=d(a).replace(/\/+$/,"");return b.split("/").pop()??b}function g(a,b){if(!b)return a;let c=d(a),e=d(b).replace(/\/$/,"");return c.startsWith(e+"/")?c.slice(e.length+1):a}function h(a,b){return`${d(a).replace(/\/$/,"")}/${b}`}c.d(b,{A0:()=>d,HG:()=>e,WP:()=>f,e_:()=>h,qP:()=>g})},40349:(a,b,c)=>{c.d(b,{D:()=>D});var d=c(48249),e=c(67484),f=c(93357),g=c(85896),h=c(38368),i=c(33972),j=c(50757),k=c(74042),l=c(2857),m=c(65863),n=c(87395);let o=/^<skill name="([^"]+)" location="[^"]*">\n[\s\S]*?\n<\/skill>(?:\n\n([\s\S]+))?$/,p=/^\/skill:([\w.-]+)$/;function q(a){return"string"==typeof a?a:a.filter(a=>"text"===a.type).map(a=>a.text).join("\n")}var r=c(31343);let s=/\[([^\]\n]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g,t=/`([^`\n]+)`/g,u=/^[a-zA-Z]:[\\/]/,v=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,w=/\.(?:avif|bmp|c|cc|cfg|conf|cpp|csv|css|doc|docx|gif|go|h|hpp|html|jpeg|jpg|js|json|jsonl|jsx|log|md|mjs|pdf|png|ppt|pptx|py|rb|rs|sh|svg|toml|ts|tsx|txt|wav|webm|webp|xls|xlsx|xml|yaml|yml)$/i;function x(a){return a.startsWith("/")||u.test(a)||a.startsWith("\\\\")}function y(a,b){let c=(function(a){try{return decodeURIComponent(a)}catch{return a}})(a).trim().replace(/^["'<]+/,"").replace(/[>"']+$/,"").replace(/[),.;:]+$/,"");return(c.startsWith("file://")&&(c=c.replace(/^file:\/\/+/,"/")),!function(a){if(!a||a.includes("\n")||a.startsWith("#")||v.test(a)&&!a.startsWith("file:"))return!1;let b=(0,r.A0)(a),c=(0,r.WP)(b);return!!c&&"."!==c&&".."!==c&&(!!x(b)||(b.startsWith("./")||b.startsWith("../")||b.includes("/"),w.test(c)))}(c=(0,r.A0)(c)))?null:x(c)?c:b?(0,r.e_)(b,c.replace(/^\.\//,"")):null}function z(a,b,c,d){!c||b.has(c)||(b.add(c),a.push({path:c,label:d?.trim()||(0,n.PG)(c)}))}var A=c(44762);function B(a){if(!a)return null;let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear()&&b.getMonth()===c.getMonth()&&b.getDate()===c.getDate(),e=b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(d)return e;let f=b.toLocaleDateString([],{month:"short",day:"numeric",year:b.getFullYear()!==c.getFullYear()?"numeric":void 0});return`${f} ${e}`}function C(a){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(a);try{let b=document.createElement("textarea");return b.value=a,b.style.position="fixed",b.style.opacity="0",document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),Promise.resolve()}catch{return Promise.reject()}}function D({message:a,isStreaming:b,toolResults:c,modelNames:e,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenFile:l,cwd:m,showTimestamp:n,prevTimestamp:o}){return"timelineSummary"===a.role?(0,d.jsx)(E,{message:a}):"user"===a.role?(0,d.jsx)(F,{message:a,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenFile:l}):"assistant"===a.role?(0,d.jsx)(G,{message:a,isStreaming:b,toolResults:c,modelNames:e,onOpenFile:l,cwd:m,showTimestamp:n,prevTimestamp:o}):(a.role,null)}function E({message:a}){let{t:b}=(0,m.s)(),[c,f]=(0,e.useState)(!1),g=b("branch"===a.kind?"messageView.branchSummaryLabel":"messageView.compactionSummaryLabel"),h=a.summary.length>120&&!c?`${a.summary.slice(0,120).trim()}…`:a.summary,i=a.summary.length>120;return(0,d.jsxs)("div",{style:{margin:"12px 0",padding:"10px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:g}),i&&(0,d.jsx)("button",{type:"button",onClick:()=>f(a=>!a),style:{background:"none",border:"none",color:"var(--accent)",fontSize:11,cursor:"pointer",padding:0},children:b(c?"messageView.summaryCollapse":"messageView.summaryExpand")})]}),(0,d.jsx)("div",{style:{marginTop:6,fontSize:13,lineHeight:1.55,color:"var(--text-muted)",whiteSpace:"pre-wrap"},children:h})]})}function F({message:a,entryId:b,onFork:c,forking:f,onNavigate:g,prevAssistantEntryId:h,onEditContent:i,onOpenFile:j}){let k,{t:l}=(0,m.s)(),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),v=function(a){let b=a.trim();if(p.test(b))return b;let c=b.match(o);if(c){let a=c[2]?.trim();return a?(0,n.CJ)(a).text:`/skill:${c[1]}`}return(0,n.CJ)(a).text}(q(a.content)),w=(k=q(a.content),(0,n.CJ)(k).refs),x="string"==typeof a.content?[]:a.content.filter(a=>"image"===a.type),y=B(a.timestamp),z=!!b&&!!c,D=!!h&&!!g;return(0,d.jsxs)("div",{style:{marginBottom:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,d.jsxs)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(255,255,255,0.24)",borderRadius:18,padding:"8px 13px",fontSize:14,lineHeight:1.6,color:"#fff",boxShadow:"0 10px 24px rgba(0,122,255,0.18)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:[w.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:v||x.length?8:0},children:w.map(a=>(0,d.jsx)(A.O,{name:a.label,path:a.path,variant:"message",onOpen:j?()=>j(a.path,a.label):void 0},a.path))}),x.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!v},children:x.map((a,b)=>{let c=a.source?"base64"===a.source.type?`data:${a.source.media_type};base64,${a.source.data}`:a.source.url??"":a.data?`data:${a.mimeType};base64,${a.data}`:"";return(0,d.jsx)("img",{src:c,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:12,objectFit:"contain",display:"block",border:"1px solid rgba(255,255,255,0.24)"}},b)})}),v]})}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,d.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!r,pointerEvents:r?"auto":"none",transition:"opacity 0.12s"},children:(0,d.jsxs)("button",{onClick:()=>{C(v).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},title:l("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{t||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{t||(a.currentTarget.style.color="var(--text-dim)")},children:[t?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),l(t?"common.copied":"common.copy")]})}),(z||D)&&(0,d.jsxs)("div",{style:{display:"flex",gap:3,opacity:r||f?1:0,pointerEvents:r||f?"auto":"none",transition:"opacity 0.12s"},children:[D&&(0,d.jsxs)("button",{onClick:()=>{g(h),i?.(v)},title:l("messageView.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,d.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),l("messageView.editFromHere")]}),z&&(0,d.jsxs)("button",{onClick:()=>{c(b)},disabled:f,title:l(f?"messageView.creatingSession":"messageView.forkFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:f?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{f||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{f||(a.currentTarget.style.color="var(--text-dim)")},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),l(f?"messageView.creatingSession":"messageView.forkFromHere")]})]}),y&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:y})]})]})}function G({message:a,isStreaming:b,toolResults:c,modelNames:f,onOpenFile:g,cwd:h,showTimestamp:i,prevTimestamp:j}){var k,l;let n,{t:o}=(0,m.s)(),p=i?B(a.timestamp):null,q=a.content??[],[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1);(0,e.useRef)(null);let[v,w]=(0,e.useState)(null);(0,e.useRef)(q).current=q,(0,e.useRef)(new Map);let[x,y]=(0,e.useState)(new Map),z=(0,e.useMemo)(()=>{if(!a.timestamp||!j)return;let b=Math.round((a.timestamp-j)/1e3);return b>0?b:void 0},[a.timestamp,j]),A=(0,e.useMemo)(()=>{let b=new Map;if(!c||!a.timestamp)return b;for(let[d,e]of c)if(e.timestamp&&a.timestamp){let c=Math.round((e.timestamp-a.timestamp)/1e3);c>0&&b.set(d,c)}return b},[c,a.timestamp]),D=q.filter(a=>"text"===a.type).map(a=>a.text).join("\n");return(0,d.jsxs)("div",{style:{marginBottom:16},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[a.provider&&(0,d.jsx)("span",{children:f?.[`${a.provider}:${a.model}`]??f?.[a.model]??a.model}),b&&(()=>{let a,b=0;for(let a of q)"text"===a.type?b+=a.text?.length??0:"thinking"===a.type?b+=a.thinking?.length??0:"toolCall"===a.type&&(b+=JSON.stringify(a.input??{}).length);let c=Math.round(b/4);return(0,d.jsx)(d.Fragment,{children:c>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:o("messageView.estimatedTokens"),children:[(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),c]}),null!==v&&(a=v>=50?"#53b3cb":v>=30?"#9bc53d":v>=15?"#f9c22e":"#e01a4f",(0,d.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:a,color:"#fff",fontSize:11,fontWeight:400},children:[v.toFixed(1)," t/s"]}))]})})})()]}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:q.map((a,e)=>(0,d.jsx)(H,{block:a,toolResults:c,streamingDuration:x.get(e)??("thinking"===a.type?z:void 0),toolCallDurations:A,isStreaming:b,onOpenFile:g,cwd:h},e))}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[a.usage&&!b&&(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(k=a.usage,l=o,n=[],k.input&&n.push(l("messageView.usageIn",{count:k.input.toLocaleString()})),k.output&&n.push(l("messageView.usageOut",{count:k.output.toLocaleString()})),k.cacheRead&&n.push(l("messageView.usageCache",{count:k.cacheRead.toLocaleString()})),k.cost?.total&&n.push(`$${k.cost.total.toFixed(4)}`),n.join(" \xb7 "))}),D&&!b&&(0,d.jsxs)("button",{onClick:()=>{C(D).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},title:o("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",opacity:+!!r,pointerEvents:r?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:a=>{t||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{t||(a.currentTarget.style.color="var(--text-dim)")},children:[t?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),t?o("common.copied"):o("common.copy")]}),p&&!b&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:p})]})]})}function H({block:a,toolResults:b,streamingDuration:c,toolCallDurations:e,isStreaming:f,onOpenFile:g,cwd:h}){if("text"===a.type)return(0,d.jsx)(I,{block:a,isStreaming:f,onOpenFile:g,cwd:h});if("thinking"===a.type)return(0,d.jsx)(K,{block:a,duration:c});if("toolCall"===a.type){let c=b?.get(a.toolCallId),f=e?.get(a.toolCallId);return(0,d.jsx)(L,{block:a,result:c,duration:f})}return null}function I({block:a,isStreaming:b,onOpenFile:c,cwd:j}){let k=(0,e.useMemo)(()=>(function(a,b){let c=[],d=new Set;for(let e of(0,n.ZI)(a))z(c,d,y(e.path,b),e.label);for(let e of a.matchAll(s)){let a=e[1]??"";z(c,d,y(e[2]??"",b),a)}for(let e of a.matchAll(t))z(c,d,y(e[1]??"",b));return c})(a.text,j),[a.text,j]),l=(0,e.useMemo)(()=>{var b;return b=a.text,(0,n.CJ)(b).text.split("\n").filter(a=>!function(a,b){let c=a.trim();if(!c)return!1;let d=/^`([^`\n]+)`$/.exec(c);if(d)return null!==y(d[1]??"",b);let e=/^\[([^\]\n]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)$/.exec(c);return!!e&&null!==y(e[2]??"",b)}(a,j)).join("\n").replace(/\n{3,}/g,"\n\n").trim()},[a.text,j]),m=(0,e.useMemo)(()=>{var a;let b,c,d;return b=(a=l).includes("\r\n")?"\r\n":"\n",c=a.split(/\r?\n/),d=null,c.map(a=>{let c=a.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let b=c[1][0],e=c[1].length;return d?b===d.marker&&e>=d.size&&(d=null):d={marker:b,size:e},a}if(d)return a;let e=a.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!e)return a;let f=e[2].trim();return f?`${e[1]}$$${b}${f}${b}${e[1]}$$`:a}).join(b)},[l]);return(0,d.jsxs)("div",{className:"markdown-body",children:[k.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!l},children:k.map(a=>(0,d.jsx)(A.O,{name:a.label,path:a.path,onOpen:c?()=>c(a.path,a.label):void 0},a.path))}),(0,d.jsx)(f.oz,{remarkPlugins:[h.A,i.A],rehypePlugins:[[g.A,{throwOnError:!1,strict:!1}]],components:{code({className:a,children:c,node:e,...f}){let g,h=a?.replace("language-","").toLowerCase()??"",i=(g=function a(b){return"string"==typeof b||"number"==typeof b?String(b):Array.isArray(b)?b.map(a).join(""):""}(c))||function a(b){return b?"string"==typeof b.value||"number"==typeof b.value?String(b.value):b.children?.map(a).join("")??"":""}(e);return a?.includes("language-")||i.includes("\n")?"mermaid"===h?(0,d.jsx)(J,{code:i.replace(/\n$/,""),isStreaming:b}):(0,d.jsx)(N,{code:i.replace(/\n$/,""),lang:h}):(0,d.jsx)("code",{style:{background:"var(--bg-selected)",padding:"1px 4px",borderRadius:3,fontFamily:"var(--font-mono)",fontSize:"0.9em"},...f,children:c})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a})},children:m})]})}function J({code:a,isStreaming:b}){let{isDark:c}=(0,l.D)(),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),o=`${c?"dark":"light"}
1
+ "use strict";exports.id=349,exports.ids=[349],exports.modules={2857:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484);let e=new Set;function f(a){return e.add(a),()=>{e.delete(a)}}function g(){return"u"<typeof document?"light":document.documentElement.classList.contains("dark")?"dark":"light"}function h(){return"light"}function i(){let a=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,toggleTheme:(0,d.useCallback)(a=>{let b="dark"===g()?"light":"dark",c=()=>{"dark"===b?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");try{localStorage.setItem("pi-theme",b)}catch{}e.forEach(a=>a())},d=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||d)return void c();let f=a?.x??window.innerWidth/2,h=a?.y??window.innerHeight/2,i=Math.hypot(Math.max(f,window.innerWidth-f),Math.max(h,window.innerHeight-h));document.startViewTransition(c).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${f}px ${h}px)`,`circle(${i}px at ${f}px ${h}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[]),isDark:"dark"===a}}},31343:(a,b,c)=>{function d(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")?a.replace(/\\/g,"/"):a}function e(a){return d(a).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function f(a){let b=d(a).replace(/\/+$/,"");return b.split("/").pop()??b}function g(a,b){if(!b)return a;let c=d(a),e=d(b).replace(/\/$/,"");return c.startsWith(e+"/")?c.slice(e.length+1):a}function h(a,b){return`${d(a).replace(/\/$/,"")}/${b}`}c.d(b,{A0:()=>d,HG:()=>e,WP:()=>f,e_:()=>h,qP:()=>g})},40349:(a,b,c)=>{c.d(b,{D:()=>D});var d=c(48249),e=c(67484),f=c(93357),g=c(85896),h=c(38368),i=c(33972),j=c(50757),k=c(74042),l=c(2857),m=c(65863),n=c(87395);let o=/^<skill name="([^"]+)" location="[^"]*">\n[\s\S]*?\n<\/skill>(?:\n\n([\s\S]+))?$/,p=/^\/skill:([\w.-]+)$/;function q(a){return"string"==typeof a?a:a.filter(a=>"text"===a.type).map(a=>a.text).join("\n")}var r=c(31343);let s=/\[([^\]\n]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g,t=/`([^`\n]+)`/g,u=/^[a-zA-Z]:[\\/]/,v=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,w=/\.(?:avif|bmp|c|cc|cfg|conf|cpp|csv|css|doc|docx|gif|go|h|hpp|html|jpeg|jpg|js|json|jsonl|jsx|log|md|mjs|pdf|png|ppt|pptx|py|rb|rs|sh|svg|toml|ts|tsx|txt|wav|webm|webp|xls|xlsx|xml|yaml|yml)$/i;function x(a){return a.startsWith("/")||u.test(a)||a.startsWith("\\\\")}function y(a,b){let c=(function(a){try{return decodeURIComponent(a)}catch{return a}})(a).trim().replace(/^["'<]+/,"").replace(/[>"']+$/,"").replace(/[),.;:]+$/,"");return(c.startsWith("file://")&&(c=c.replace(/^file:\/\/+/,"/")),!function(a){if(!a||a.includes("\n")||a.startsWith("#")||v.test(a)&&!a.startsWith("file:"))return!1;let b=(0,r.A0)(a),c=(0,r.WP)(b);return!!c&&"."!==c&&".."!==c&&(!!x(b)||(b.startsWith("./")||b.startsWith("../")||b.includes("/"),w.test(c)))}(c=(0,r.A0)(c)))?null:x(c)?c:b?(0,r.e_)(b,c.replace(/^\.\//,"")):null}function z(a,b,c,d){!c||b.has(c)||(b.add(c),a.push({path:c,label:d?.trim()||(0,n.PG)(c)}))}var A=c(44762);function B(a){if(!a)return null;let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear()&&b.getMonth()===c.getMonth()&&b.getDate()===c.getDate(),e=b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(d)return e;let f=b.toLocaleDateString([],{month:"short",day:"numeric",year:b.getFullYear()!==c.getFullYear()?"numeric":void 0});return`${f} ${e}`}function C(a){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(a);try{let b=document.createElement("textarea");return b.value=a,b.style.position="fixed",b.style.opacity="0",document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),Promise.resolve()}catch{return Promise.reject()}}function D({message:a,isStreaming:b,toolResults:c,modelNames:e,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenFile:l,cwd:m,showTimestamp:n,prevTimestamp:o}){return"timelineSummary"===a.role?(0,d.jsx)(E,{message:a}):"user"===a.role?(0,d.jsx)(F,{message:a,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenFile:l}):"assistant"===a.role?(0,d.jsx)(G,{message:a,isStreaming:b,toolResults:c,modelNames:e,onOpenFile:l,cwd:m,showTimestamp:n,prevTimestamp:o}):(a.role,null)}function E({message:a}){let{t:b}=(0,m.s)(),[c,f]=(0,e.useState)(!1),g=b("branch"===a.kind?"messageView.branchSummaryLabel":"messageView.compactionSummaryLabel"),h=a.summary.length>120&&!c?`${a.summary.slice(0,120).trim()}…`:a.summary,i=a.summary.length>120;return(0,d.jsxs)("div",{style:{margin:"12px 0",padding:"10px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:g}),i&&(0,d.jsx)("button",{type:"button",onClick:()=>f(a=>!a),style:{background:"none",border:"none",color:"var(--accent)",fontSize:11,cursor:"pointer",padding:0},children:b(c?"messageView.summaryCollapse":"messageView.summaryExpand")})]}),(0,d.jsx)("div",{style:{marginTop:6,fontSize:13,lineHeight:1.55,color:"var(--text-muted)",whiteSpace:"pre-wrap"},children:h})]})}function F({message:a,entryId:b,onFork:c,forking:f,onNavigate:g,prevAssistantEntryId:h,onEditContent:i,onOpenFile:j}){let k,{t:l}=(0,m.s)(),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),v=function(a){let b=a.trim();if(p.test(b))return b;let c=b.match(o);if(c){let a=c[2]?.trim();return a?(0,n.CJ)(a).text:`/skill:${c[1]}`}return(0,n.CJ)(a).text}(q(a.content)),w=(k=q(a.content),(0,n.CJ)(k).refs),x="string"==typeof a.content?[]:a.content.filter(a=>"image"===a.type),y=B(a.timestamp),z=!!b&&!!c,D=!!h&&!!g;return(0,d.jsxs)("div",{style:{marginBottom:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,d.jsxs)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(255,255,255,0.24)",borderRadius:18,padding:"8px 13px",fontSize:14,lineHeight:1.6,color:"#fff",boxShadow:"0 10px 24px rgba(0,122,255,0.18)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:[w.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:v||x.length?8:0},children:w.map(a=>(0,d.jsx)(A.O,{name:a.label,path:a.path,variant:"message",onOpen:j?()=>j(a.path,a.label):void 0},a.path))}),x.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!v},children:x.map((a,b)=>{let c=a.source?"base64"===a.source.type?`data:${a.source.media_type};base64,${a.source.data}`:a.source.url??"":a.data?`data:${a.mimeType};base64,${a.data}`:"";return(0,d.jsx)("img",{src:c,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:12,objectFit:"contain",display:"block",border:"1px solid rgba(255,255,255,0.24)"}},b)})}),v]})}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,d.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!r,pointerEvents:r?"auto":"none",transition:"opacity 0.12s"},children:(0,d.jsxs)("button",{onClick:()=>{C(v).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},title:l("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{t||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{t||(a.currentTarget.style.color="var(--text-dim)")},children:[t?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),l(t?"common.copied":"common.copy")]})}),(z||D)&&(0,d.jsxs)("div",{style:{display:"flex",gap:3,opacity:r||f?1:0,pointerEvents:r||f?"auto":"none",transition:"opacity 0.12s"},children:[D&&(0,d.jsxs)("button",{onClick:()=>{g(h),i?.(v)},title:l("messageView.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,d.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),l("messageView.editFromHere")]}),z&&(0,d.jsxs)("button",{onClick:()=>{c(b)},disabled:f,title:l(f?"messageView.creatingSession":"messageView.forkFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:f?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{f||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{f||(a.currentTarget.style.color="var(--text-dim)")},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),l(f?"messageView.creatingSession":"messageView.forkFromHere")]})]}),y&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:y})]})]})}function G({message:a,isStreaming:b,toolResults:c,modelNames:f,onOpenFile:g,cwd:h,showTimestamp:i,prevTimestamp:j}){var k,l;let n,{t:o}=(0,m.s)(),p=i?B(a.timestamp):null,q=a.content??[],[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1);(0,e.useRef)(null);let[v,w]=(0,e.useState)(null);(0,e.useRef)(q).current=q,(0,e.useRef)(new Map);let[x,y]=(0,e.useState)(new Map),z=(0,e.useMemo)(()=>{if(!a.timestamp||!j)return;let b=Math.round((a.timestamp-j)/1e3);return b>0?b:void 0},[a.timestamp,j]),A=(0,e.useMemo)(()=>{let b=new Map;if(!c||!a.timestamp)return b;for(let[d,e]of c)if(e.timestamp&&a.timestamp){let c=Math.round((e.timestamp-a.timestamp)/1e3);c>0&&b.set(d,c)}return b},[c,a.timestamp]),D=q.filter(a=>"text"===a.type).map(a=>a.text).join("\n");return(0,d.jsxs)("div",{style:{marginBottom:16},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[a.provider&&(0,d.jsx)("span",{children:f?.[`${a.provider}:${a.model}`]??f?.[a.model]??a.model}),b&&(()=>{let a,b=0;for(let a of q)"text"===a.type?b+=a.text?.length??0:"thinking"===a.type?b+=a.thinking?.length??0:"toolCall"===a.type&&(b+=JSON.stringify(a.input??{}).length);let c=Math.round(b/4);return(0,d.jsx)(d.Fragment,{children:c>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:o("messageView.estimatedTokens"),children:[(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),c]}),null!==v&&(a=v>=50?"#53b3cb":v>=30?"#9bc53d":v>=15?"#f9c22e":"#e01a4f",(0,d.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:a,color:"#fff",fontSize:11,fontWeight:400},children:[v.toFixed(1)," t/s"]}))]})})})()]}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:q.map((a,e)=>(0,d.jsx)(H,{block:a,toolResults:c,streamingDuration:x.get(e)??("thinking"===a.type?z:void 0),toolCallDurations:A,isStreaming:b,onOpenFile:g,cwd:h},e))}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[a.usage&&!b&&(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(k=a.usage,l=o,n=[],k.input&&n.push(l("messageView.usageIn",{count:k.input.toLocaleString()})),k.output&&n.push(l("messageView.usageOut",{count:k.output.toLocaleString()})),k.cacheRead&&n.push(l("messageView.usageCache",{count:k.cacheRead.toLocaleString()})),k.cost?.total&&n.push(`$${k.cost.total.toFixed(4)}`),n.join(" \xb7 "))}),D&&!b&&(0,d.jsxs)("button",{onClick:()=>{C(D).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},title:o("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",opacity:+!!r,pointerEvents:r?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:a=>{t||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{t||(a.currentTarget.style.color="var(--text-dim)")},children:[t?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),t?o("common.copied"):o("common.copy")]}),p&&!b&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:p})]})]})}function H({block:a,toolResults:b,streamingDuration:c,toolCallDurations:e,isStreaming:f,onOpenFile:g,cwd:h}){if("text"===a.type)return(0,d.jsx)(I,{block:a,isStreaming:f,onOpenFile:g,cwd:h});if("thinking"===a.type)return(0,d.jsx)(K,{block:a,duration:c});if("toolCall"===a.type){let c=b?.get(a.toolCallId),f=e?.get(a.toolCallId);return(0,d.jsx)(L,{block:a,result:c,duration:f})}return null}function I({block:a,isStreaming:b,onOpenFile:c,cwd:j}){let k=(0,e.useMemo)(()=>(function(a,b){let c=[],d=new Set;for(let e of(0,n.ZI)(a))z(c,d,y(e.path,b),e.label);for(let e of a.matchAll(s)){let a=e[1]??"";z(c,d,y(e[2]??"",b),a)}for(let e of a.matchAll(t))z(c,d,y(e[1]??"",b));return c})(a.text,j),[a.text,j]),l=(0,e.useMemo)(()=>{var b;return b=a.text,(0,n.CJ)(b).text.split("\n").filter(a=>!function(a,b){let c=a.trim();if(!c)return!1;let d=/^`([^`\n]+)`$/.exec(c);if(d)return null!==y(d[1]??"",b);let e=/^\[([^\]\n]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)$/.exec(c);return!!e&&null!==y(e[2]??"",b)}(a,j)).join("\n").replace(/\n{3,}/g,"\n\n").trim()},[a.text,j]),m=(0,e.useMemo)(()=>{var a;let b,c,d;return b=(a=l).includes("\r\n")?"\r\n":"\n",c=a.split(/\r?\n/),d=null,c.map(a=>{let c=a.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let b=c[1][0],e=c[1].length;return d?b===d.marker&&e>=d.size&&(d=null):d={marker:b,size:e},a}if(d)return a;let e=a.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!e)return a;let f=e[2].trim();return f?`${e[1]}$$${b}${f}${b}${e[1]}$$`:a}).join(b)},[l]);return(0,d.jsxs)("div",{className:"markdown-body",children:[k.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!l},children:k.map(a=>(0,d.jsx)(A.O,{name:a.label,path:a.path,onOpen:c?()=>c(a.path,a.label):void 0},a.path))}),(0,d.jsx)(f.oz,{remarkPlugins:[h.A,i.A],rehypePlugins:[[g.A,{throwOnError:!1,strict:!1}]],components:{a({href:a,children:b,...c}){let e=a??"";return/^https?:\/\//i.test(e)?(0,d.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",...c,children:b}):(0,d.jsx)("a",{href:e,...c,children:b})},code({className:a,children:c,node:e,...f}){let g,h=a?.replace("language-","").toLowerCase()??"",i=(g=function a(b){return"string"==typeof b||"number"==typeof b?String(b):Array.isArray(b)?b.map(a).join(""):""}(c))||function a(b){return b?"string"==typeof b.value||"number"==typeof b.value?String(b.value):b.children?.map(a).join("")??"":""}(e);return a?.includes("language-")||i.includes("\n")?"mermaid"===h?(0,d.jsx)(J,{code:i.replace(/\n$/,""),isStreaming:b}):(0,d.jsx)(N,{code:i.replace(/\n$/,""),lang:h}):(0,d.jsx)("code",{style:{background:"var(--bg-selected)",padding:"1px 4px",borderRadius:3,fontFamily:"var(--font-mono)",fontSize:"0.9em"},...f,children:c})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a})},children:m})]})}function J({code:a,isStreaming:b}){let{isDark:c}=(0,l.D)(),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),o=`${c?"dark":"light"}
2
2
  ${a}`,p=(0,d.jsx)("button",{onClick:()=>g(a=>!a),disabled:b,title:b?"Preview available after streaming":f?"Show Mermaid source":"Preview Mermaid diagram",style:{background:f?"var(--bg-selected)":"none",border:"1px solid var(--border)",color:b?"var(--text-dim)":"var(--text-muted)",cursor:b?"not-allowed":"pointer",fontSize:11,borderRadius:4,padding:"1px 6px"},children:f?"Source":"Preview"});if(!f||b)return(0,d.jsx)(N,{code:a,lang:"mermaid",headerAction:p});let q=m===o?(0,d.jsx)("div",{className:"mermaid-block mermaid-block-error",children:"Invalid Mermaid diagram"}):h&&j===o?(0,d.jsx)("div",{className:"mermaid-block",dangerouslySetInnerHTML:{__html:h}}):(0,d.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":"Rendering Mermaid diagram"});return(0,d.jsxs)("div",{style:{position:"relative",marginTop:4,marginBottom:4,borderRadius:6,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{padding:"3px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,d.jsx)("span",{children:"mermaid"}),p]}),q]})}function K({block:a,duration:b}){let{t:c}=(0,m.s)(),[f,g]=(0,e.useState)(!1);return(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:[(0,d.jsxs)("button",{onClick:()=>g(a=>!a),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,d.jsx)("span",{children:c("messageView.thinking")}),void 0!==b&&(0,d.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[b,"s"]})]}),f&&(0,d.jsx)("div",{style:{padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)"},children:a.thinking})]})}function L({block:a,result:b,duration:c}){let[f,g]=(0,e.useState)(!1),h=JSON.stringify(a.input,null,2),i=b?b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):null,j=null!==i&&("(no output)"===i.trim()||""===i.trim()),k=b?.isError??!1;return(0,d.jsxs)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:12,border:k?"1px solid rgba(248,113,113,0.45)":"1px solid rgba(34,197,94,0.25)",background:k?"rgba(248,113,113,0.05)":"rgba(34,197,94,0.04)"},children:[(0,d.jsxs)("button",{onClick:()=>g(a=>!a),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},children:[(0,d.jsx)("span",{style:{color:k?"#f87171":"#16a34a",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:a.toolName}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:function(a){let b=a.input;if(!b||"object"!=typeof b)return"";let c=Object.keys(b);return 0===c.length?"":"command"in b?String(b.command).slice(0,120):"path"in b?String(b.path).slice(0,120):"file_path"in b?String(b.file_path).slice(0,120):"pattern"in b?String(b.pattern).slice(0,120):"query"in b?String(b.query).slice(0,120):String(b[c[0]]).slice(0,120)}(a)}),void 0!==c&&(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[c,"s"]}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:f?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),f&&(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",background:"var(--bg-subtle)",borderTop:k?"1px solid rgba(248,113,113,0.25)":"1px solid rgba(34,197,94,0.2)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:h}),f&&b&&(0,d.jsx)(M,{text:i??"",isEmpty:j,isError:k})]})}function M({text:a,isEmpty:b,isError:c}){let{t:e}=(0,m.s)();return(0,d.jsx)("div",{style:{borderTop:`1px solid ${c?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:c?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:c?"#f87171":b?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:b?"italic":"normal",opacity:b?.6:1},children:b?e("messageView.noOutput"):a})})}function N({code:a,lang:b,headerAction:c}){let{isDark:f}=(0,l.D)(),{t:g}=(0,m.s)(),[h,i]=(0,e.useState)(!1);return(0,d.jsxs)("div",{style:{position:"relative",marginTop:4,marginBottom:4,borderRadius:6,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{padding:"3px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,d.jsx)("span",{children:b}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[c,(0,d.jsx)("button",{onClick:()=>{C(a).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:g(h?"messageView.codeCopied":"messageView.codeCopy")})]})]}),(0,d.jsx)(j.A,{language:b||"text",style:f?k.xJ:k.vs,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal"},customStyle:{margin:0,padding:"10px 12px",fontSize:12.5,lineHeight:1.6,borderRadius:0,background:"var(--bg)"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:a})]})}},44762:(a,b,c)=>{c.d(b,{O:()=>g});var d=c(48249),e=c(87395);function f({kind:a,size:b}){switch(a){case"pdf":return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 24 24","aria-hidden":!0,children:[(0,d.jsx)("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",fill:"#E53935"}),(0,d.jsx)("text",{x:"12",y:"15",textAnchor:"middle",fill:"#fff",fontSize:"7",fontWeight:"700",fontFamily:"system-ui,sans-serif",children:"PDF"})]});case"excel":return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 24 24","aria-hidden":!0,children:[(0,d.jsx)("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",fill:"#1D6F42"}),(0,d.jsx)("path",{d:"M8 7h8M8 11h8M8 15h8M12 7v8",stroke:"#fff",strokeWidth:"1.2",opacity:"0.9"})]});case"word":return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 24 24","aria-hidden":!0,children:[(0,d.jsx)("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",fill:"#2B579A"}),(0,d.jsx)("text",{x:"12",y:"15",textAnchor:"middle",fill:"#fff",fontSize:"9",fontWeight:"700",fontFamily:"system-ui,sans-serif",children:"W"})]});case"markdown":return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 24 24","aria-hidden":!0,children:[(0,d.jsx)("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",fill:"#455A64"}),(0,d.jsx)("text",{x:"12",y:"15",textAnchor:"middle",fill:"#fff",fontSize:"8",fontWeight:"700",fontFamily:"system-ui,sans-serif",children:"MD"})]});default:return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}}function g({name:a,path:b,onRemove:c,onOpen:h,variant:i="input"}){let j=a?.trim()||"file",k=(0,e.HK)(j),l="message"===i,m=!!(h&&b),n=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",color:l?"#fff":"var(--text-muted)"},children:(0,d.jsx)(f,{kind:k,size:18})}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:j}),c&&(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),c()},style:{flexShrink:0,width:16,height:16,border:"none",background:"none",cursor:"pointer",padding:0,color:l?"rgba(255,255,255,0.7)":"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,d.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]}),o=()=>h?.();return(0,d.jsx)("div",{title:b??j,role:m?"button":void 0,tabIndex:m?0:void 0,onClick:m?o:void 0,onKeyDown:m?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),o())}:void 0,style:{display:"inline-flex",alignItems:"center",gap:6,maxWidth:280,padding:"4px 8px",borderRadius:8,border:l?"1px solid rgba(255,255,255,0.24)":"1px solid var(--border)",background:l?"rgba(0,0,0,0.12)":"var(--bg-panel)",fontSize:12,color:l?"#fff":"var(--text)",font:"inherit",cursor:m?"pointer":void 0,transition:m?"background 0.12s, border-color 0.12s":void 0},onMouseEnter:m?a=>{a.currentTarget.style.background=l?"rgba(255,255,255,0.16)":"var(--bg-hover)"}:void 0,onMouseLeave:m?a=>{a.currentTarget.style.background=l?"rgba(0,0,0,0.12)":"var(--bg-panel)"}:void 0,children:n})}},87395:(a,b,c)=>{c.d(b,{CJ:()=>m,HK:()=>k,PG:()=>i,Qq:()=>j,ZI:()=>l,tl:()=>h});let d=/<file name="([^"]+)"(?: label="([^"]*)")?><\/file>\s*/g,e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}_/i;function f(a){return a.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}function g(a){return a.replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function h(a,b){if(!b.length)return a;let c=b.map(a=>{var b,c;let d;return b=a.path,c=a.label,(d=c?.trim())?`<file name="${f(b)}" label="${f(d)}"></file>`:`<file name="${f(b)}"></file>`}),d=a.trim();return d?`${d}
3
3
 
4
4
  ${c.join("\n")}`:c.join("\n")}function i(a,b){let c,d;if(b?.trim())return g(b.trim());let f=(d=(c=a.replace(/\\/g,"/")).lastIndexOf("/"))>=0?c.slice(d+1):c,h=f.replace(e,"");return h.length>0?h:f}function j(a){let b=a.path,c=a.label??a.name,d="string"==typeof c&&c.trim()?c.trim():i(b);return{path:b,label:d}}function k(a){if(!a)return"generic";let b=a.lastIndexOf("."),c=b>=0?a.slice(b+1).toLowerCase():"";return"pdf"===c?"pdf":"xls"===c||"xlsx"===c||"csv"===c?"excel":"doc"===c||"docx"===c?"word":"md"===c||"markdown"===c?"markdown":"generic"}function l(a){let b=[];for(let c of a.matchAll(d)){let a=c[1]?g(c[1]):"";if(!a)continue;let d=void 0!==c[2]?g(c[2]):"";b.push({path:a,label:i(a,d)})}return b}function m(a){let b=[];return{text:a.replace(d,(a,c,d)=>{let e=g(c);return b.push({path:e,label:i(e,void 0!==d?g(d):void 0)}),""}).replace(/\n{3,}/g,"\n\n").trim(),refs:b}}}};
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=402,exports.ids=[402],exports.modules={12039:(a,b,c)=>{c.d(b,{m:()=>d});function d(a){let b="timelineSummary"===a.role&&"string"==typeof a.summary?{role:"timelineSummary",kind:"branch"===a.kind?"branch":"compaction",summary:a.summary,timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"compactionSummary"===a.role?{role:"timelineSummary",kind:"compaction",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"branchSummary"===a.role?{role:"timelineSummary",kind:"branch",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:null;if(b)return b;if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let d=c.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:d}}},14667:(a,b,c)=>{c.d(b,{ME:()=>f,aO:()=>e});let d=[/^\/tmp\//,/^\/tmp$/,/^\/private\/tmp\//,/^\/private\/tmp$/,/^\/var\/folders\/[^/]+\/[^/]+\/T\//,/^\/var\/folders\/[^/]+\/[^/]+\/T$/,/^\/private\/var\/folders\/[^/]+\/[^/]+\/T\//,/^\/private\/var\/folders\/[^/]+\/[^/]+\/T$/,/^[A-Za-z]:\\Users\\[^\\]+\\AppData\\Local\\Temp\\/i,/^[A-Za-z]:\\Windows\\Temp\\/i];function e(a){return!!a&&d.some(b=>b.test(a))}function f(a){return(function(a){let b=new Map;for(let c of a){if(!c.cwd)continue;let a=b.get(c.cwd);(!a||c.modified>a)&&b.set(c.cwd,c.modified)}return[...b.entries()].sort((a,b)=>b[1].localeCompare(a[1])).map(([a])=>a)})(a).filter(a=>!e(a))}},40257:(a,b,c)=>{c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
+ `,"utf8"),(0,d.renameSync)(f,c),b}},40402:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BR:()=>t,O8:()=>s,Q0:()=>o,Uv:()=>v,dQ:()=>p,os:()=>r,xB:()=>u});var e=c(76760),f=c(75430),g=c(1751),h=c(88613),i=c(12039),j=c(40257),k=c(58124),l=c(14667),m=a([f]);async function n(a){let b="PI_CODING_AGENT_DIR",c=process.env[b];process.env[b]=a;try{return await f.SessionManager.listAll()}finally{void 0===c?delete process.env[b]:process.env[b]=c}}async function o(){let a=[],b=b=>{for(let c of b)c.cwd&&a.push({cwd:c.cwd,modified:c.modified instanceof Date?c.modified.toISOString():String(c.modified)})};b(await f.SessionManager.listAll());let c=(0,g.$M)(),d=(0,g.AP)();if((0,e.resolve)(c)!==(0,e.resolve)(d))try{b(await n(d))}catch{}let h=(0,l.ME)(a),i=(0,j.Aw)().defaultWorkspaceCwd?.trim();return!i||h.includes(i)||(0,l.aO)(i)||h.push(i),h}async function p(){let a=await f.SessionManager.listAll(),b=new Map;for(let c of a)b.set(c.path,c.id);let c=(0,k.pI)(),d=q();return a.map(a=>{let e=c[a.id];return d.set(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created instanceof Date?a.created.toISOString():String(a.created),modified:a.modified instanceof Date?a.modified.toISOString():String(a.modified),messageCount:a.messageCount,firstMessage:a.firstMessage||"(no messages)",parentSessionId:a.parentSessionPath?b.get(a.parentSessionPath):void 0,productTitle:e?.title,productStatus:e?.status,lastResultSummary:e?.lastResultSummary}})}function q(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function r(a){let b=q().get(a);return b||(await p(),q().get(a)??null)}function s(a,b){q().set(a,b)}function t(a){q().delete(a)}f=(m.then?(await m)():m)[0];let w=["path","file_path","filePath","notebook_path","notebookPath"];async function u(a){let b,c,d=Date.now(),g=(globalThis.__piSessionRefFilesCache||(globalThis.__piSessionRefFilesCache=new Map),globalThis.__piSessionRefFilesCache),i=g.get(a);if(i&&i.expiresAt>d)return i.files;let j=new Set,k=()=>(g.set(a,{files:j,expiresAt:d+5e3}),j),l=await r(a);if(!l)return k();try{let c=await p();b=c.find(b=>b.id===a)?.cwd}catch{}try{c=f.SessionManager.open(l).getEntries()}catch{return k()}let m=a=>{if("string"!=typeof a)return;let c=a.trim();c&&((0,e.isAbsolute)(c)?j.add((0,e.resolve)(c)):b&&j.add((0,e.resolve)(b,c)))},n=a=>{for(let b of(0,h.ZI)(a))m(b.path)};for(let a of c){if("message"!==a.type)continue;let b=a.message;if(b){if("user"===b.role||"custom"===b.role){let a=b.content;if("string"==typeof a)n(a);else for(let b of a)"text"===b.type&&n(b.text)}else if("assistant"===b.role){for(let a of b.content)if("text"===a.type)n(a.text);else if("toolCall"===a.type){let b=a.input??{};for(let a of w)a in b&&m(b[a])}}}}return k()}function v(a,b){let c,d,e,g=new Map;for(let b of a)g.set(b.id,b);let h=(0,f.buildSessionContext)(a,b,g);if(null===b||(b&&(c=g.get(b)),c||(c=a[a.length-1]),!c))return{messages:[],entryIds:[],thinkingLevel:h.thinkingLevel,model:h.model};let j=[],k=c;for(;k;)j.unshift(k),k=k.parentId?g.get(k.parentId):void 0;for(let a of j)"compaction"===a.type&&(d=a.id,e=a.firstKeptEntryId);let l=[];if(d){l.push(d);let a=j.findIndex(a=>a.id===d),b=e?j.findIndex((b,c)=>c<a&&b.id===e):-1,c=b>=0?b:a;for(let b=c;b<a;b++)"message"===j[b].type&&l.push(j[b].id);for(let b=a+1;b<j.length;b++)"message"===j[b].type&&l.push(j[b].id)}else for(let a of j)"message"===a.type&&l.push(a.id);return{messages:h.messages.map(a=>(0,i.m)(a)),entryIds:l,thinkingLevel:h.thinkingLevel,model:h.model}}d()}catch(a){d(a)}})},58124:(a,b,c)=>{c.d(b,{Ay:()=>l,pI:()=>k,r5:()=>j});var d=c(29021),e=c(33873),f=c(55511),g=c(1751);function h(){return(0,e.join)((0,g.$M)(),"product-sessions.json")}function i(){let a=h();if(!(0,d.existsSync)(a))return{};try{let b=(0,d.readFileSync)(a,"utf8");if(!b.trim())return{};let c=JSON.parse(b);return c&&"object"==typeof c?c:{}}catch(a){return"u">typeof console&&console.warn("[product-sessions] failed to parse store, treating as empty:",a),{}}}function j(a){return i()[a]??null}let k=function(){return i()};async function l(a,b){var c;let g;await (c=()=>{let c,g,j=i(),k=j[a];j[a]={...k,...b,startedAt:k?.startedAt??b.startedAt},c=h(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),g=`${c}.${(0,f.randomUUID)()}.tmp`,(0,d.writeFileSync)(g,JSON.stringify(j,null,2),"utf8"),(0,d.renameSync)(g,c)},g=(globalThis.__piProductSessionWriteQueue??Promise.resolve()).then(c,c),globalThis.__piProductSessionWriteQueue=g.catch(()=>void 0),g)}},88613:(a,b,c)=>{c.d(b,{ZI:()=>g});let d=/<file name="([^"]+)"(?: label="([^"]*)")?><\/file>\s*/g,e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}_/i;function f(a){return a.replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function g(a){let b=[];for(let c of a.matchAll(d)){let a=c[1]?f(c[1]):"";if(!a)continue;let d=void 0!==c[2]?f(c[2]):"";b.push({path:a,label:function(a,b){let c,d;if(b?.trim())return f(b.trim());let g=(d=(c=a.replace(/\\/g,"/")).lastIndexOf("/"))>=0?c.slice(d+1):c,h=g.replace(e,"");return h.length>0?h:g}(a,d)})}return b}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3768,exports.ids=[3768],exports.modules={13768:(a,b,c)=>{function d(a){return"output"===a.kind?Buffer.byteLength(a.text)+32:64}c.d(b,{AU:()=>s,Q3:()=>t});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(1751);function j(a,b){if("number"!=typeof a||!Number.isFinite(a)||a<0)throw Error(`Invalid settings.json terminal.${b}: expected non-negative finite number, got ${JSON.stringify(a)}`);return a}let k=null;function l(){if(k)return k;let a=function(){let a,b=h().join((0,i.$M)(),"settings.json");if(!f().existsSync(b))return{};try{a=JSON.parse(f().readFileSync(b,"utf8"))}catch{return{}}if("object"!=typeof a||null===a)return{};let c=a.terminal;return"object"!=typeof c||null===c?{}:c}(),b={defaultTimeoutMs:void 0!==a.defaultTimeoutMs?j(a.defaultTimeoutMs,"defaultTimeoutMs"):3e5,maxOutputBytes:void 0!==a.maxOutputBytes?j(a.maxOutputBytes,"maxOutputBytes"):1048576,historyLimit:void 0!==a.historyLimit?j(a.historyLimit,"historyLimit"):50};return k=b,b}var m=c(79646),n=c(21820),o=c.n(n);let p="__piTerminals";class q{getOrCreate(a){let b=this.registry.get(a);return b||(b={cwd:a,currentCwd:a,buffer:[],bufferBytes:0,history:[],historyIndex:-1,runningProcess:null,listeners:new Set,createdAt:Date.now(),lastActiveAt:Date.now(),droppedBytesSinceLastTruncate:0},this.registry.set(a,b)),b}subscribe(a,b){return a.listeners.add(b),a.lastActiveAt=Date.now(),()=>{a.listeners.delete(b)}}emit(a,b){for(let c of a.listeners)try{c(b)}catch{}}appendLine(a,b){!function(a,b,c){let e=d(b);a.buffer.push(b),a.bufferBytes+=e;let f=0;for(;a.bufferBytes>c&&a.buffer.length>1;){let b=a.buffer.shift(),c=d(b);a.bufferBytes-=c,"output"===b.kind&&(f+=c)}if(a.bufferBytes>c&&1===a.buffer.length){let b=a.buffer[0];if("output"===b.kind){let e=`[... output truncated at ${c} bytes ...]`,f=Math.max(0,c-Buffer.byteLength(e)-32);b.text=b.text.slice(0,f)+e,a.bufferBytes=d(b)}return}if(f>0&&(a.droppedBytesSinceLastTruncate+=f,a.droppedBytesSinceLastTruncate>=102400)){let b=a.droppedBytesSinceLastTruncate;a.droppedBytesSinceLastTruncate=0;let e={kind:"truncated",droppedBytes:b,ts:Date.now()};for(a.buffer.push(e),a.bufferBytes+=d(e);a.bufferBytes>c&&a.buffer.length>1;){let b=a.buffer.shift();a.bufferBytes-=d(b)}}}(a,b,l().maxOutputBytes)}async startCommand(a,b,c){let d=function(a,b,c){let d=b.trim(),e=Date.now();if("cd"===d||"cd ~"===d||d.startsWith("cd ")){let b="cd"===d?o().homedir():d.slice(3).trim();b.startsWith("~")&&(b=h().join(o().homedir(),b.slice(1)));let g=h().isAbsolute(b)?h().resolve(b):h().resolve(a.currentCwd,b);try{if(!f().existsSync(g)){let d={kind:"error",text:`cd: no such file or directory: ${b}`,ts:e};return c.appendLine(a,d),c.emit(a,{type:"line",line:d}),{ok:!0,pid:-1,startedAt:e}}if(!f().statSync(g).isDirectory()){let d={kind:"error",text:`cd: not a directory: ${b}`,ts:e};return c.appendLine(a,d),c.emit(a,{type:"line",line:d}),{ok:!0,pid:-1,startedAt:e}}}catch(g){let d=g instanceof Error?g.message:String(g),f={kind:"error",text:`cd: ${b}: ${d}`,ts:e};return c.appendLine(a,f),c.emit(a,{type:"line",line:f}),{ok:!0,pid:-1,startedAt:e}}a.currentCwd=g;let i={kind:"info",text:`cd → ${g}`,ts:e};return c.appendLine(a,i),c.emit(a,{type:"line",line:i}),c.emit(a,{type:"prompt",text:t(g)}),{ok:!0,pid:-1,startedAt:e}}return"clear"===d?(a.buffer=[],a.bufferBytes=0,a.droppedBytesSinceLastTruncate=0,c.emit(a,{type:"replay",lines:[]}),{ok:!0,pid:-1,startedAt:e}):null}(a,b,this);if(d)return d;if(b=function(a){if(/^git\s+(clone|fetch|push)\b/.test(a.trim())&&!/\s--progress\b/.test(a)){let b=a.trim(),c=b.indexOf(" "),d=b.slice(c+1),e=d.indexOf(" ");if(e>0){let a=d.slice(0,e),b=d.slice(e);return`git ${a} --progress${b}`}return`git ${d} --progress`}return a}(b),a.runningProcess){if(!a.runningProcess.isKeepRunning)return{ok:!1,reason:"slot_occupied"};this.stop(a,"new_command")}let e=process.env.SHELL||"/bin/bash",g=(0,m.spawn)(e,["-c",b],{cwd:a.currentCwd,env:{...process.env,TERM:process.env.TERM||"xterm-256color",GIT_PROGRESS_DELAY:"0"},stdio:["ignore","pipe","pipe"],detached:!1,windowsHide:!0}),i=g.pid??-1,j=Date.now(),k={kind:"command",text:b,ts:j,keepRunning:c};this.appendLine(a,k),this.emit(a,{type:"line",line:k});let n={pid:i,command:b,startedAt:j,isKeepRunning:c,timeoutHandle:null,child:g,stderrBuf:""};if(!c){let b=l();n.timeoutHandle=setTimeout(()=>{if(a.runningProcess!==n)return;try{g.kill("SIGTERM")}catch{}setTimeout(()=>{if(a.runningProcess===n)try{g.kill("SIGKILL")}catch{}},2e3);let c={kind:"error",text:`killed: exceeded default timeout ${b.defaultTimeoutMs}ms`,ts:Date.now()};this.appendLine(a,c),this.emit(a,{type:"line",line:c})},b.defaultTimeoutMs)}return g.stdout?.on("data",b=>{let c={kind:"output",text:b.toString("utf8"),ts:Date.now(),stream:"stdout"};this.appendLine(a,c),this.emit(a,{type:"line",line:c})}),g.stderr?.on("data",b=>{u(a,n,b.toString("utf8"),this)}),g.on("error",b=>{let c={kind:"error",text:`spawn failed: ${b.message}`,ts:Date.now()};this.appendLine(a,c),this.emit(a,{type:"line",line:c})}),g.on("exit",(b,c)=>{u(a,n,"\n",this),n.timeoutHandle&&(clearTimeout(n.timeoutHandle),n.timeoutHandle=null),a.runningProcess===n&&(a.runningProcess=null);let d={kind:"exit",code:b,signal:c,ts:Date.now()};this.appendLine(a,d),this.emit(a,{type:"line",line:d}),this.emit(a,{type:"state",running:null})}),a.runningProcess=n,this.emit(a,{type:"state",running:{pid:n.pid,command:n.command,startedAt:n.startedAt,isKeepRunning:n.isKeepRunning}}),{ok:!0,pid:i,startedAt:j}}activeProcs(){let a=[];for(let b of this.registry.values())b.runningProcess&&a.push(b.runningProcess);return a}stop(a,b){let c=a.runningProcess;if(!c)return;c.timeoutHandle&&(clearTimeout(c.timeoutHandle),c.timeoutHandle=null);try{c.child.kill("SIGTERM")}catch{}let d="user"===b?"killed by user":"new_command"===b?"killed by new command":"killed by shutdown";this.appendLine(a,{kind:"info",text:d,ts:Date.now()}),this.emit(a,{type:"line",line:{kind:"info",text:d,ts:Date.now()}})}killAll(){for(let a of this.registry.values())a.runningProcess&&this.stop(a,"shutdown")}constructor(){this.registry=(globalThis[p]||(globalThis[p]=new Map),globalThis[p])}}let r=null;function s(){return r||(r=new q),r}function t(a){let b=o().userInfo().username||h().basename(o().homedir())||"user",c=o().hostname().split(".")[0]||"localhost",d=h().basename(a)||a;return`${b}@${c} ${d} %`}function u(a,b,c,d){b.stderrBuf+=c;let e=b.stderrBuf.split("\n");for(let c of(b.stderrBuf=e.pop()??"",e)){let b=c.split("\r"),e=b[b.length-1]?.trim()||"";if(!e)continue;let f={kind:"output",text:e+"\n",ts:Date.now(),stream:"stderr"};d.appendLine(a,f),d.emit(a,{type:"line",line:f})}let f=b.stderrBuf;if(!f.trim())return;let g=f.split("\r"),h=g[g.length-1]?.trim()||"";if(!h)return;let i=a.buffer,j=i[i.length-1];if("output"===j.kind&&"stderr"===j.stream&&!j.text.endsWith("\n")){j.text=h,d.emit(a,{type:"replay",lines:[...i]});return}let k={kind:"output",text:h,ts:Date.now(),stream:"stderr"};d.appendLine(a,k),d.emit(a,{type:"line",line:k})}!function(){if(globalThis.__piTerminalCleanupInstalled)return;globalThis.__piTerminalCleanupInstalled=!0;let a=()=>{try{s().killAll()}catch{}};process.once("SIGTERM",a),process.once("SIGINT",a),process.on("exit",a)}()}};
1
+ "use strict";exports.id=5192,exports.ids=[5192],exports.modules={13768:(a,b,c)=>{function d(a){return"output"===a.kind?Buffer.byteLength(a.text)+32:64}c.d(b,{AU:()=>s,Q3:()=>t});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(1751);function j(a,b){if("number"!=typeof a||!Number.isFinite(a)||a<0)throw Error(`Invalid settings.json terminal.${b}: expected non-negative finite number, got ${JSON.stringify(a)}`);return a}let k=null;function l(){if(k)return k;let a=function(){let a,b=h().join((0,i.$M)(),"settings.json");if(!f().existsSync(b))return{};try{a=JSON.parse(f().readFileSync(b,"utf8"))}catch{return{}}if("object"!=typeof a||null===a)return{};let c=a.terminal;return"object"!=typeof c||null===c?{}:c}(),b={defaultTimeoutMs:void 0!==a.defaultTimeoutMs?j(a.defaultTimeoutMs,"defaultTimeoutMs"):3e5,maxOutputBytes:void 0!==a.maxOutputBytes?j(a.maxOutputBytes,"maxOutputBytes"):1048576,historyLimit:void 0!==a.historyLimit?j(a.historyLimit,"historyLimit"):50};return k=b,b}var m=c(79646),n=c(21820),o=c.n(n);let p="__piTerminals";class q{getOrCreate(a){let b=this.registry.get(a);return b||(b={cwd:a,currentCwd:a,buffer:[],bufferBytes:0,history:[],historyIndex:-1,runningProcess:null,listeners:new Set,createdAt:Date.now(),lastActiveAt:Date.now(),droppedBytesSinceLastTruncate:0},this.registry.set(a,b)),b}subscribe(a,b){return a.listeners.add(b),a.lastActiveAt=Date.now(),()=>{a.listeners.delete(b)}}emit(a,b){for(let c of a.listeners)try{c(b)}catch{}}appendLine(a,b){!function(a,b,c){let e=d(b);a.buffer.push(b),a.bufferBytes+=e;let f=0;for(;a.bufferBytes>c&&a.buffer.length>1;){let b=a.buffer.shift(),c=d(b);a.bufferBytes-=c,"output"===b.kind&&(f+=c)}if(a.bufferBytes>c&&1===a.buffer.length){let b=a.buffer[0];if("output"===b.kind){let e=`[... output truncated at ${c} bytes ...]`,f=Math.max(0,c-Buffer.byteLength(e)-32);b.text=b.text.slice(0,f)+e,a.bufferBytes=d(b)}return}if(f>0&&(a.droppedBytesSinceLastTruncate+=f,a.droppedBytesSinceLastTruncate>=102400)){let b=a.droppedBytesSinceLastTruncate;a.droppedBytesSinceLastTruncate=0;let e={kind:"truncated",droppedBytes:b,ts:Date.now()};for(a.buffer.push(e),a.bufferBytes+=d(e);a.bufferBytes>c&&a.buffer.length>1;){let b=a.buffer.shift();a.bufferBytes-=d(b)}}}(a,b,l().maxOutputBytes)}async startCommand(a,b,c){let d=function(a,b,c){let d=b.trim(),e=Date.now();if("cd"===d||"cd ~"===d||d.startsWith("cd ")){let b="cd"===d?o().homedir():d.slice(3).trim();b.startsWith("~")&&(b=h().join(o().homedir(),b.slice(1)));let g=h().isAbsolute(b)?h().resolve(b):h().resolve(a.currentCwd,b);try{if(!f().existsSync(g)){let d={kind:"error",text:`cd: no such file or directory: ${b}`,ts:e};return c.appendLine(a,d),c.emit(a,{type:"line",line:d}),{ok:!0,pid:-1,startedAt:e}}if(!f().statSync(g).isDirectory()){let d={kind:"error",text:`cd: not a directory: ${b}`,ts:e};return c.appendLine(a,d),c.emit(a,{type:"line",line:d}),{ok:!0,pid:-1,startedAt:e}}}catch(g){let d=g instanceof Error?g.message:String(g),f={kind:"error",text:`cd: ${b}: ${d}`,ts:e};return c.appendLine(a,f),c.emit(a,{type:"line",line:f}),{ok:!0,pid:-1,startedAt:e}}a.currentCwd=g;let i={kind:"info",text:`cd → ${g}`,ts:e};return c.appendLine(a,i),c.emit(a,{type:"line",line:i}),c.emit(a,{type:"prompt",text:t(g)}),{ok:!0,pid:-1,startedAt:e}}return"clear"===d?(a.buffer=[],a.bufferBytes=0,a.droppedBytesSinceLastTruncate=0,c.emit(a,{type:"replay",lines:[]}),{ok:!0,pid:-1,startedAt:e}):null}(a,b,this);if(d)return d;if(b=function(a){if(/^git\s+(clone|fetch|push)\b/.test(a.trim())&&!/\s--progress\b/.test(a)){let b=a.trim(),c=b.indexOf(" "),d=b.slice(c+1),e=d.indexOf(" ");if(e>0){let a=d.slice(0,e),b=d.slice(e);return`git ${a} --progress${b}`}return`git ${d} --progress`}return a}(b),a.runningProcess){if(!a.runningProcess.isKeepRunning)return{ok:!1,reason:"slot_occupied"};this.stop(a,"new_command")}let e=process.env.SHELL||"/bin/bash",g=(0,m.spawn)(e,["-c",b],{cwd:a.currentCwd,env:{...process.env,TERM:process.env.TERM||"xterm-256color",GIT_PROGRESS_DELAY:"0"},stdio:["ignore","pipe","pipe"],detached:!1,windowsHide:!0}),i=g.pid??-1,j=Date.now(),k={kind:"command",text:b,ts:j,keepRunning:c};this.appendLine(a,k),this.emit(a,{type:"line",line:k});let n={pid:i,command:b,startedAt:j,isKeepRunning:c,timeoutHandle:null,child:g,stderrBuf:""};if(!c){let b=l();n.timeoutHandle=setTimeout(()=>{if(a.runningProcess!==n)return;try{g.kill("SIGTERM")}catch{}setTimeout(()=>{if(a.runningProcess===n)try{g.kill("SIGKILL")}catch{}},2e3);let c={kind:"error",text:`killed: exceeded default timeout ${b.defaultTimeoutMs}ms`,ts:Date.now()};this.appendLine(a,c),this.emit(a,{type:"line",line:c})},b.defaultTimeoutMs)}return g.stdout?.on("data",b=>{let c={kind:"output",text:b.toString("utf8"),ts:Date.now(),stream:"stdout"};this.appendLine(a,c),this.emit(a,{type:"line",line:c})}),g.stderr?.on("data",b=>{u(a,n,b.toString("utf8"),this)}),g.on("error",b=>{let c={kind:"error",text:`spawn failed: ${b.message}`,ts:Date.now()};this.appendLine(a,c),this.emit(a,{type:"line",line:c})}),g.on("exit",(b,c)=>{u(a,n,"\n",this),n.timeoutHandle&&(clearTimeout(n.timeoutHandle),n.timeoutHandle=null),a.runningProcess===n&&(a.runningProcess=null);let d={kind:"exit",code:b,signal:c,ts:Date.now()};this.appendLine(a,d),this.emit(a,{type:"line",line:d}),this.emit(a,{type:"state",running:null})}),a.runningProcess=n,this.emit(a,{type:"state",running:{pid:n.pid,command:n.command,startedAt:n.startedAt,isKeepRunning:n.isKeepRunning}}),{ok:!0,pid:i,startedAt:j}}activeProcs(){let a=[];for(let b of this.registry.values())b.runningProcess&&a.push(b.runningProcess);return a}stop(a,b){let c=a.runningProcess;if(!c)return;c.timeoutHandle&&(clearTimeout(c.timeoutHandle),c.timeoutHandle=null);try{c.child.kill("SIGTERM")}catch{}let d="user"===b?"killed by user":"new_command"===b?"killed by new command":"killed by shutdown";this.appendLine(a,{kind:"info",text:d,ts:Date.now()}),this.emit(a,{type:"line",line:{kind:"info",text:d,ts:Date.now()}})}killAll(){for(let a of this.registry.values())a.runningProcess&&this.stop(a,"shutdown")}constructor(){this.registry=(globalThis[p]||(globalThis[p]=new Map),globalThis[p])}}let r=null;function s(){return r||(r=new q),r}function t(a){let b=o().userInfo().username||h().basename(o().homedir())||"user",c=o().hostname().split(".")[0]||"localhost",d=h().basename(a)||a;return`${b}@${c} ${d} %`}function u(a,b,c,d){b.stderrBuf+=c;let e=b.stderrBuf.split("\n");for(let c of(b.stderrBuf=e.pop()??"",e)){let b=c.split("\r"),e=b[b.length-1]?.trim()||"";if(!e)continue;let f={kind:"output",text:e+"\n",ts:Date.now(),stream:"stderr"};d.appendLine(a,f),d.emit(a,{type:"line",line:f})}let f=b.stderrBuf;if(!f.trim())return;let g=f.split("\r"),h=g[g.length-1]?.trim()||"";if(!h)return;let i=a.buffer,j=i[i.length-1];if("output"===j.kind&&"stderr"===j.stream&&!j.text.endsWith("\n")){j.text=h,d.emit(a,{type:"replay",lines:[...i]});return}let k={kind:"output",text:h,ts:Date.now(),stream:"stderr"};d.appendLine(a,k),d.emit(a,{type:"line",line:k})}!function(){if(globalThis.__piTerminalCleanupInstalled)return;globalThis.__piTerminalCleanupInstalled=!0;let a=()=>{try{s().killAll()}catch{}};process.once("SIGTERM",a),process.once("SIGINT",a),process.on("exit",a)}()},80547:(a,b,c)=>{c.d(b,{As:()=>j,B9:()=>n,KJ:()=>l,af:()=>k,as:()=>m});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f);let h=/^[a-zA-Z]:[\\/]/;function i(a){return h.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function j(a){let b=a.join("/"),c=b.replace(/\\/g,"/");return i(c)?c:"/"+b.replace(/^\/+/,"")}function k(a,b){for(let c of b){let b=i(a)||i(c),d=b?g().win32:g(),e=b?"\\":g().sep,f=d.resolve(a),h=d.resolve(c),j=b?f.toLowerCase():f,k=b?h.toLowerCase():h,l=k.endsWith(e)?k:k+e;if(j===k||j.startsWith(l))return!0}return!1}function l(a,b){let c;try{c=e().realpathSync(a)}catch{return!1}let d=new Set;for(let a of b)try{d.add(e().realpathSync(a))}catch{}return k(c,d)}function m(a,b){let c;if(0===b.size)return!1;if(b.has(g().resolve(a)))return!0;try{c=e().realpathSync(a)}catch{return!1}if(b.has(c))return!0;for(let a of b)try{if(e().realpathSync(a)===c)return!0}catch{}return!1}function n(a,b){let c=/^bytes=(\d*)-(\d*)$/.exec(a);if(!c||!c[1]&&!c[2])return{error:"invalid"};let d=c[1]?Number(c[1]):0,e=c[2]?Number(c[2]):b-1;return(!c[1]&&c[2]&&(d=Math.max(b-Number(c[2]),0),e=b-1),!Number.isSafeInteger(d)||!Number.isSafeInteger(e)||d<0||e<d||d>=b)?{error:"unsatisfiable"}:{start:d,end:Math.min(e,b-1)}}},93259:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(92725);function e(a){return(0,d.rT)(a)}}};
@@ -1,2 +1 @@
1
- "use strict";exports.id=6429,exports.ids=[6429],exports.modules={12039:(a,b,c)=>{c.d(b,{m:()=>d});function d(a){let b="timelineSummary"===a.role&&"string"==typeof a.summary?{role:"timelineSummary",kind:"branch"===a.kind?"branch":"compaction",summary:a.summary,timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"compactionSummary"===a.role?{role:"timelineSummary",kind:"compaction",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"branchSummary"===a.role?{role:"timelineSummary",kind:"branch",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:null;if(b)return b;if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let d=c.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:d}}},14667:(a,b,c)=>{c.d(b,{ME:()=>f,aO:()=>e});let d=[/^\/tmp\//,/^\/tmp$/,/^\/private\/tmp\//,/^\/private\/tmp$/,/^\/var\/folders\/[^/]+\/[^/]+\/T\//,/^\/var\/folders\/[^/]+\/[^/]+\/T$/,/^\/private\/var\/folders\/[^/]+\/[^/]+\/T\//,/^\/private\/var\/folders\/[^/]+\/[^/]+\/T$/,/^[A-Za-z]:\\Users\\[^\\]+\\AppData\\Local\\Temp\\/i,/^[A-Za-z]:\\Windows\\Temp\\/i];function e(a){return!!a&&d.some(b=>b.test(a))}function f(a){return(function(a){let b=new Map;for(let c of a){if(!c.cwd)continue;let a=b.get(c.cwd);(!a||c.modified>a)&&b.set(c.cwd,c.modified)}return[...b.entries()].sort((a,b)=>b[1].localeCompare(a[1])).map(([a])=>a)})(a).filter(a=>!e(a))}},30392:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{r:()=>i});var e=c(75430),f=c(1751),g=c(39030),h=a([e]);async function i(a){let b=(0,f.$M)(),c=e.SettingsManager.create(a,b),d=new e.DefaultResourceLoader({cwd:a,agentDir:b,settingsManager:c,appendSystemPrompt:[g.u]});return await d.reload(),d}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},39030:(a,b,c)=>{c.d(b,{u:()=>d});let d="Pi Web — skills:\n\n- Installed skills appear in <available_skills> above and as `/skill:<name>` in the slash menu.\n- On each user message: if a listed skill applies, read its SKILL.md and follow it before other approaches.\n- If no installed skill fits but the task needs one: name the exact `skill:<name>` (or skills.sh package such as `owner/repo@skill`) you would use, explain why, and tell the user to install it via Settings → Skills (search), then resend or use `/skill:<name>`. You cannot install skills yourself.\n- After the user installs a skill you named, use `/skill:<name>` or read its file on the next turn."},40257:(a,b,c)=>{c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
- `,"utf8"),(0,d.renameSync)(f,c),b}},40402:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BR:()=>s,O8:()=>r,Q0:()=>n,Uv:()=>t,dQ:()=>o,os:()=>q});var e=c(76760),f=c(75430),g=c(1751),h=c(12039),i=c(40257),j=c(58124),k=c(14667),l=a([f]);async function m(a){let b="PI_CODING_AGENT_DIR",c=process.env[b];process.env[b]=a;try{return await f.SessionManager.listAll()}finally{void 0===c?delete process.env[b]:process.env[b]=c}}async function n(){let a=[],b=b=>{for(let c of b)c.cwd&&a.push({cwd:c.cwd,modified:c.modified instanceof Date?c.modified.toISOString():String(c.modified)})};b(await f.SessionManager.listAll());let c=(0,g.$M)(),d=(0,g.AP)();if((0,e.resolve)(c)!==(0,e.resolve)(d))try{b(await m(d))}catch{}let h=(0,k.ME)(a),j=(0,i.Aw)().defaultWorkspaceCwd?.trim();return!j||h.includes(j)||(0,k.aO)(j)||h.push(j),h}async function o(){let a=await f.SessionManager.listAll(),b=new Map;for(let c of a)b.set(c.path,c.id);let c=(0,j.pI)(),d=p();return a.map(a=>{let e=c[a.id];return d.set(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created instanceof Date?a.created.toISOString():String(a.created),modified:a.modified instanceof Date?a.modified.toISOString():String(a.modified),messageCount:a.messageCount,firstMessage:a.firstMessage||"(no messages)",parentSessionId:a.parentSessionPath?b.get(a.parentSessionPath):void 0,productTitle:e?.title,productStatus:e?.status,lastResultSummary:e?.lastResultSummary}})}function p(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function q(a){let b=p().get(a);return b||(await o(),p().get(a)??null)}function r(a,b){p().set(a,b)}function s(a){p().delete(a)}function t(a,b){let c,d,e,g=new Map;for(let b of a)g.set(b.id,b);let i=(0,f.buildSessionContext)(a,b,g);if(null===b||(b&&(c=g.get(b)),c||(c=a[a.length-1]),!c))return{messages:[],entryIds:[],thinkingLevel:i.thinkingLevel,model:i.model};let j=[],k=c;for(;k;)j.unshift(k),k=k.parentId?g.get(k.parentId):void 0;for(let a of j)"compaction"===a.type&&(d=a.id,e=a.firstKeptEntryId);let l=[];if(d){l.push(d);let a=j.findIndex(a=>a.id===d),b=e?j.findIndex((b,c)=>c<a&&b.id===e):-1,c=b>=0?b:a;for(let b=c;b<a;b++)"message"===j[b].type&&l.push(j[b].id);for(let b=a+1;b<j.length;b++)"message"===j[b].type&&l.push(j[b].id)}else for(let a of j)"message"===a.type&&l.push(a.id);return{messages:i.messages.map(a=>(0,h.m)(a)),entryIds:l,thinkingLevel:i.thinkingLevel,model:i.model}}f=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},56056:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>j});var e=c(75430),f=c(76760),g=c(1751),h=a([e]);function i(a,b,c){return a.find(b,c)??a.find(b,c.toLowerCase())??a.getAll().find(a=>a.provider===b&&a.id.toLowerCase()===c.toLowerCase())}function j(a,b,c){a.refresh();let d=i(a,b,c);if(d)return d;let h=e.ModelRegistry.create(e.AuthStorage.create(),(0,f.join)((0,g.$M)(),"models.json")),j=h.getError();if(j)throw Error(j);let k=i(h,b,c);if(k)return a.refresh(),i(a,b,c)??k}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>p,OF:()=>r,ST:()=>q});var e=c(75430),f=c(48161),g=c(76760),h=c(30392),i=c(1751),j=c(40402),k=c(56056),l=c(58204),m=a([e,h,j,k]);[e,h,j,k]=m.then?(await m)():m;class s{constructor(a){this.inner=a,this.listeners=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}start(){this.unsubscribe=this.inner.subscribe(a=>{for(let b of(this.resetIdleTimer(),this.listeners))b(a);"agent_end"===a.type&&Promise.all([c.e(8342),c.e(459)]).then(c.bind(c,459)).then(({notifyAgentEnd:a})=>a({sessionId:this.sessionId}).catch(()=>{}))}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>this.destroy(),6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){if(!this._alive)throw Error("Session is closed");this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images;return this.inner.prompt(a.message,b?.length?{images:b}:void 0).catch(()=>{}),null}case"abort":return await 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,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:0,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"}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,k.M)(this.inner.modelRegistry,b,c);if(!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),{id:d.id,provider:d.provider}}case"fork":{let b,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,j.O8)(i,b),this.destroy(),{cancelled:!1,newSessionId:i}}case"navigate_tree":{let b=!0===a.summarize;return{cancelled:(await this.inner.navigateTree(a.targetId,{summarize:b})).cancelled}}case"clone":{let b=this.inner.sessionManager,c=this.inner.sessionFile;if(!b.isPersisted())return{cancelled:!0};if(!c)throw Error("Persisted session is missing a session file");let d=b.getSessionDir(),f=e.SessionManager.open(c,d),g=a.leafId??f.getLeafId();if(!g)throw Error("Cannot clone session: no active branch");let h=f.createBranchedSession(g);if(!h)throw Error("Failed to clone session");let i=e.SessionManager.open(h,d).getSessionId();return(0,j.O8)(i,h),this.destroy(),{cancelled:!1,newSessionId:i}}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"),null}case"compact":{let b=this.inner.sessionManager.getBranch(),c={...e.DEFAULT_COMPACTION_SETTINGS,...this.inner.settingsManager.getCompactionSettings()},d=-1;for(let a=b.length-1;a>=0;a--)if("compaction"===b[a].type){d=a;break}let f=d+1,g=(0,e.findCutPoint)(b,f,b.length,c.keepRecentTokens);if((g.isSplitTurn?g.turnStartIndex:g.firstKeptEntryIndex)<=f)throw Error("Conversation too short to compact");return await this.inner.compact(a.customInstructions)}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;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"set_tools":return this.inner.setActiveToolsByName(a.toolNames),null;case"abort_compaction":return this.inner.abortCompaction(),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"get_session_stats":return this.inner.getSessionStats();case"export_html":{let b="string"==typeof a.outputPath?a.outputPath:(0,g.join)((0,f.tmpdir)(),`pi-session-${this.inner.sessionId}.html`),c=await this.inner.exportToHtml(b);return{path:c,filename:c.split("/").pop()??"session.html"}}case"get_commands":return{commands:(0,l.M1)(this.inner)};default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.unsubscribe?.(),this.onDestroyCallback?.())}}function n(){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 o(){return globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks}function p(a){return n().get(a)}function q(){n().forEach(a=>a.destroy()),n().clear(),o().clear()}async function r(a,b,c,d){let f=n(),g=o(),k=f.get(a);if(k?.isAlive())return{session:k,realSessionId:a};let l=g.get(a);if(l)return l;let m=(async()=>{let a=(0,i.$M)(),g=b?e.SessionManager.open(b,void 0):e.SessionManager.create(c,void 0),k=d?.length===0?"all":void 0,l=await (0,h.r)(c),{session:m}=await (0,e.createAgentSession)({cwd:c,agentDir:a,sessionManager:g,resourceLoader:l,...k?{noTools:k}:{}});if(d&&d.length>0){let a=l.getExtensions(),b=[];for(let c of a.extensions)for(let a of c.tools.keys())d.includes(a)||b.push(a);m.setActiveToolsByName([...d,...b])}d?.length===0&&(m.agent.state.systemPrompt=""),m.setAutoCompactionEnabled(!0),m.setAutoRetryEnabled(!0);let n=new s(m);n.start();let o=m.sessionId,p=m.sessionFile;return p&&(0,j.O8)(o,p),n.onDestroy(()=>f.delete(o)),f.set(o,n),{session:n,realSessionId:o}})().finally(()=>g.delete(a));return g.set(a,m),m}d()}catch(a){d(a)}})},58124:(a,b,c)=>{c.d(b,{Ay:()=>l,pI:()=>k,r5:()=>j});var d=c(29021),e=c(33873),f=c(55511),g=c(1751);function h(){return(0,e.join)((0,g.$M)(),"product-sessions.json")}function i(){let a=h();if(!(0,d.existsSync)(a))return{};try{let b=(0,d.readFileSync)(a,"utf8");if(!b.trim())return{};let c=JSON.parse(b);return c&&"object"==typeof c?c:{}}catch(a){return"u">typeof console&&console.warn("[product-sessions] failed to parse store, treating as empty:",a),{}}}function j(a){return i()[a]??null}let k=function(){return i()};async function l(a,b){var c;let g;await (c=()=>{let c,g,j=i(),k=j[a];j[a]={...k,...b,startedAt:k?.startedAt??b.startedAt},c=h(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),g=`${c}.${(0,f.randomUUID)()}.tmp`,(0,d.writeFileSync)(g,JSON.stringify(j,null,2),"utf8"),(0,d.renameSync)(g,c)},g=(globalThis.__piProductSessionWriteQueue??Promise.resolve()).then(c,c),globalThis.__piProductSessionWriteQueue=g.catch(()=>void 0),g)}},58204:(a,b,c)=>{c.d(b,{M1:()=>d});function d(a){return[...a.extensionRunner.getRegisteredCommands().map(a=>({name:a.invocationName,description:a.description,source:"extension"})),...a.promptTemplates.map(a=>({name:a.name,description:a.description,source:"prompt"})),...a.resourceLoader.getSkills().skills.map(a=>({name:`skill:${a.name}`,description:a.description,source:"skill"}))]}}};
1
+ "use strict";exports.id=6429,exports.ids=[6429],exports.modules={30392:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{r:()=>i});var e=c(75430),f=c(1751),g=c(39030),h=a([e]);async function i(a){let b=(0,f.$M)(),c=e.SettingsManager.create(a,b),d=new e.DefaultResourceLoader({cwd:a,agentDir:b,settingsManager:c,appendSystemPrompt:[g.u]});return await d.reload(),d}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},39030:(a,b,c)=>{c.d(b,{u:()=>d});let d="Pi Web — skills:\n\n- Installed skills appear in <available_skills> above and as `/skill:<name>` in the slash menu.\n- On each user message: if a listed skill applies, read its SKILL.md and follow it before other approaches.\n- If no installed skill fits but the task needs one: name the exact `skill:<name>` (or skills.sh package such as `owner/repo@skill`) you would use, explain why, and tell the user to install it via Settings → Skills (search), then resend or use `/skill:<name>`. You cannot install skills yourself.\n- After the user installs a skill you named, use `/skill:<name>` or read its file on the next turn."},56056:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>j});var e=c(75430),f=c(76760),g=c(1751),h=a([e]);function i(a,b,c){return a.find(b,c)??a.find(b,c.toLowerCase())??a.getAll().find(a=>a.provider===b&&a.id.toLowerCase()===c.toLowerCase())}function j(a,b,c){a.refresh();let d=i(a,b,c);if(d)return d;let h=e.ModelRegistry.create(e.AuthStorage.create(),(0,f.join)((0,g.$M)(),"models.json")),j=h.getError();if(j)throw Error(j);let k=i(h,b,c);if(k)return a.refresh(),i(a,b,c)??k}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>p,OF:()=>r,ST:()=>q});var e=c(75430),f=c(48161),g=c(76760),h=c(30392),i=c(1751),j=c(40402),k=c(56056),l=c(58204),m=a([e,h,j,k]);[e,h,j,k]=m.then?(await m)():m;class s{constructor(a){this.inner=a,this.listeners=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}start(){this.unsubscribe=this.inner.subscribe(a=>{for(let b of(this.resetIdleTimer(),this.listeners))b(a);"agent_end"===a.type&&Promise.all([c.e(8342),c.e(459)]).then(c.bind(c,459)).then(({notifyAgentEnd:a})=>a({sessionId:this.sessionId}).catch(()=>{}))}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>this.destroy(),6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){if(!this._alive)throw Error("Session is closed");this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images;return this.inner.prompt(a.message,b?.length?{images:b}:void 0).catch(()=>{}),null}case"abort":return await 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,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:0,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"}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,k.M)(this.inner.modelRegistry,b,c);if(!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),{id:d.id,provider:d.provider}}case"fork":{let b,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,j.O8)(i,b),this.destroy(),{cancelled:!1,newSessionId:i}}case"navigate_tree":{let b=!0===a.summarize;return{cancelled:(await this.inner.navigateTree(a.targetId,{summarize:b})).cancelled}}case"clone":{let b=this.inner.sessionManager,c=this.inner.sessionFile;if(!b.isPersisted())return{cancelled:!0};if(!c)throw Error("Persisted session is missing a session file");let d=b.getSessionDir(),f=e.SessionManager.open(c,d),g=a.leafId??f.getLeafId();if(!g)throw Error("Cannot clone session: no active branch");let h=f.createBranchedSession(g);if(!h)throw Error("Failed to clone session");let i=e.SessionManager.open(h,d).getSessionId();return(0,j.O8)(i,h),this.destroy(),{cancelled:!1,newSessionId:i}}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"),null}case"compact":{let b=this.inner.sessionManager.getBranch(),c={...e.DEFAULT_COMPACTION_SETTINGS,...this.inner.settingsManager.getCompactionSettings()},d=-1;for(let a=b.length-1;a>=0;a--)if("compaction"===b[a].type){d=a;break}let f=d+1,g=(0,e.findCutPoint)(b,f,b.length,c.keepRecentTokens);if((g.isSplitTurn?g.turnStartIndex:g.firstKeptEntryIndex)<=f)throw Error("Conversation too short to compact");return await this.inner.compact(a.customInstructions)}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;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"set_tools":return this.inner.setActiveToolsByName(a.toolNames),null;case"abort_compaction":return this.inner.abortCompaction(),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"get_session_stats":return this.inner.getSessionStats();case"export_html":{let b="string"==typeof a.outputPath?a.outputPath:(0,g.join)((0,f.tmpdir)(),`pi-session-${this.inner.sessionId}.html`),c=await this.inner.exportToHtml(b);return{path:c,filename:c.split("/").pop()??"session.html"}}case"get_commands":return{commands:(0,l.M1)(this.inner)};default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.unsubscribe?.(),this.onDestroyCallback?.())}}function n(){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 o(){return globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks}function p(a){return n().get(a)}function q(){n().forEach(a=>a.destroy()),n().clear(),o().clear()}async function r(a,b,c,d){let f=n(),g=o(),k=f.get(a);if(k?.isAlive())return{session:k,realSessionId:a};let l=g.get(a);if(l)return l;let m=(async()=>{let a=(0,i.$M)(),g=b?e.SessionManager.open(b,void 0):e.SessionManager.create(c,void 0),k=d?.length===0?"all":void 0,l=await (0,h.r)(c),{session:m}=await (0,e.createAgentSession)({cwd:c,agentDir:a,sessionManager:g,resourceLoader:l,...k?{noTools:k}:{}});if(d&&d.length>0){let a=l.getExtensions(),b=[];for(let c of a.extensions)for(let a of c.tools.keys())d.includes(a)||b.push(a);m.setActiveToolsByName([...d,...b])}d?.length===0&&(m.agent.state.systemPrompt=""),m.setAutoCompactionEnabled(!0),m.setAutoRetryEnabled(!0);let n=new s(m);n.start();let o=m.sessionId,p=m.sessionFile;return p&&(0,j.O8)(o,p),n.onDestroy(()=>f.delete(o)),f.set(o,n),{session:n,realSessionId:o}})().finally(()=>g.delete(a));return g.set(a,m),m}d()}catch(a){d(a)}})},58204:(a,b,c)=>{c.d(b,{M1:()=>d});function d(a){return[...a.extensionRunner.getRegisteredCommands().map(a=>({name:a.invocationName,description:a.description,source:"extension"})),...a.promptTemplates.map(a=>({name:a.name,description:a.description,source:"prompt"})),...a.resourceLoader.getSkills().skills.map(a=>({name:`skill:${a.name}`,description:a.description,source:"skill"}))]}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/ti8s0DtntFtmi4CivW4V2/_buildManifest.js","static/ti8s0DtntFtmi4CivW4V2/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-8502ba8b79c013fb.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-ba2500baa4c52d55.js","static/chunks/main-app-a8eaf0472b160e89.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/VL7I477I2Xvb0sQR9Po90/_buildManifest.js","static/VL7I477I2Xvb0sQR9Po90/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-8502ba8b79c013fb.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-ba2500baa4c52d55.js","static/chunks/main-app-a8eaf0472b160e89.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -19,11 +19,11 @@
19
19
  "wasm": [],
20
20
  "assets": [],
21
21
  "env": {
22
- "__NEXT_BUILD_ID": "ti8s0DtntFtmi4CivW4V2",
23
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "llA/f8zi9b5TvOJcP7yreTARKHrSnwYh2zyS3p/oT4o=",
24
- "__NEXT_PREVIEW_MODE_ID": "34b0fa8f7b69cfb35dcf688ba68897a0",
25
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "f3e0a1d0e54e93ad508de25cc97c9fb5cc4e1be0f6b44e5c3df82ba4e3f7b0f6",
26
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "91dbf6bb1e35c656e32c74d752d873f08da2d848a584a0c5ac73e34794438f64"
22
+ "__NEXT_BUILD_ID": "VL7I477I2Xvb0sQR9Po90",
23
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "yzaE0E1DviQvxjfz/BlPugbKyGtYZJWKK6ygMrKgFL0=",
24
+ "__NEXT_PREVIEW_MODE_ID": "46620967316d2c2fb0348de28835e506",
25
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "91271d7ff2627571dc05be34100dd90a372771af0151742af96a6b62d4d87529",
26
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "7f9a35db782b06aceccbab0adb78a8d4dda3369e1f9445dd3782f350c241f195"
27
27
  }
28
28
  }
29
29
  },
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/731bfd1db3733cc6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/55427e8acf53e124.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8502ba8b79c013fb.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-a8eaf0472b160e89.js" async=""></script><script src="/_next/static/chunks/2241-f0ba829b6b7cbd7d.js" async=""></script><script src="/_next/static/chunks/app/layout-8e3fc042a8fc9dc5.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Pi-Agent</title><meta name="description" content="Pi Coding Agent Web Interface"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Pi Web"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?f5bc6a09e64de47a" type="image/x-icon" sizes="1254x1254"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/icon-512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var t=localStorage.getItem("pi-theme");if(t==="dark")document.documentElement.classList.add("dark");var l=localStorage.getItem("pi-web.locale");if(l!=="en"&&l!=="zh-CN"){var n=(navigator.languages&&navigator.languages[0])||navigator.language||"en";l=/^zh/i.test(n)?"zh-CN":"en";}document.documentElement.lang=l;}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><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="/_next/static/chunks/webpack-8502ba8b79c013fb.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[69520,[\"2241\",\"static/chunks/2241-f0ba829b6b7cbd7d.js\",\"7177\",\"static/chunks/app/layout-8e3fc042a8fc9dc5.js\"],\"AppProviders\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/731bfd1db3733cc6.css\",\"style\"]\n:HL[\"/_next/static/css/55427e8acf53e124.css\",\"style\"]\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\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/731bfd1db3733cc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/55427e8acf53e124.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\");var l=localStorage.getItem(\\\"pi-web.locale\\\");if(l!==\\\"en\\\"\u0026\u0026l!==\\\"zh-CN\\\"){var n=(navigator.languages\u0026\u0026navigator.languages[0])||navigator.language||\\\"en\\\";l=/^zh/i.test(n)?\\\"zh-CN\\\":\\\"en\\\";}document.documentElement.lang=l;}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ti8s0DtntFtmi4CivW4V2\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"Pi-Agent\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Pi Coding Agent Web Interface\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Pi Web\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?f5bc6a09e64de47a\",\"type\":\"image/x-icon\",\"sizes\":\"1254x1254\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icon-512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/731bfd1db3733cc6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/bdd24a16bf93fd97.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8502ba8b79c013fb.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-a8eaf0472b160e89.js" async=""></script><script src="/_next/static/chunks/2241-f0ba829b6b7cbd7d.js" async=""></script><script src="/_next/static/chunks/app/layout-8e3fc042a8fc9dc5.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Pi-Agent</title><meta name="description" content="Pi Coding Agent Web Interface"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Pi Web"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?f5bc6a09e64de47a" type="image/x-icon" sizes="1254x1254"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/icon-512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var t=localStorage.getItem("pi-theme");if(t==="dark")document.documentElement.classList.add("dark");var l=localStorage.getItem("pi-web.locale");if(l!=="en"&&l!=="zh-CN"){var n=(navigator.languages&&navigator.languages[0])||navigator.language||"en";l=/^zh/i.test(n)?"zh-CN":"en";}document.documentElement.lang=l;}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><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="/_next/static/chunks/webpack-8502ba8b79c013fb.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[69520,[\"2241\",\"static/chunks/2241-f0ba829b6b7cbd7d.js\",\"7177\",\"static/chunks/app/layout-8e3fc042a8fc9dc5.js\"],\"AppProviders\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/731bfd1db3733cc6.css\",\"style\"]\n:HL[\"/_next/static/css/bdd24a16bf93fd97.css\",\"style\"]\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\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/731bfd1db3733cc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/bdd24a16bf93fd97.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\");var l=localStorage.getItem(\\\"pi-web.locale\\\");if(l!==\\\"en\\\"\u0026\u0026l!==\\\"zh-CN\\\"){var n=(navigator.languages\u0026\u0026navigator.languages[0])||navigator.language||\\\"en\\\";l=/^zh/i.test(n)?\\\"zh-CN\\\":\\\"en\\\";}document.documentElement.lang=l;}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"VL7I477I2Xvb0sQR9Po90\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"Pi-Agent\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Pi Coding Agent Web Interface\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Pi Web\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?f5bc6a09e64de47a\",\"type\":\"image/x-icon\",\"sizes\":\"1254x1254\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icon-512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\n"])</script></body></html>