@henlii/pidance 0.1.0 → 0.1.1

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 (45) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -5
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.json +2 -2
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/api/about/route.js +1 -1
  25. package/.next/server/app/index.html +1 -1
  26. package/.next/server/app/index.rsc +3 -3
  27. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  28. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  29. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/page.js +2 -2
  33. package/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app-paths-manifest.json +5 -5
  35. package/.next/server/chunks/7129.js +1 -1
  36. package/.next/server/chunks/9883.js +1 -1
  37. package/.next/server/middleware-build-manifest.js +1 -1
  38. package/.next/server/pages/404.html +1 -1
  39. package/.next/server/pages/500.html +1 -1
  40. package/.next/server/server-reference-manifest.json +1 -1
  41. package/.next/static/chunks/app/page-604ab741301e3f43.js +25 -0
  42. package/package.json +1 -1
  43. package/.next/static/chunks/app/page-f1ebfa55dc4bd91c.js +0 -25
  44. /package/.next/static/{M5hSQWk4seDK1NGMqmgGY → K56UPG5G9tUpLw833PHK4}/_buildManifest.js +0 -0
  45. /package/.next/static/{M5hSQWk4seDK1NGMqmgGY → K56UPG5G9tUpLw833PHK4}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"2707":{"*":{"id":"26836","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"84747":{"*":{"id":"95237","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"99780":{"*":{"id":"80898","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/tmp/pidance-release-build/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/lib/i18n.tsx":{"id":99780,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/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":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/app/globals.css":{"id":66872,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/components/AppShell.tsx":{"id":2707,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5531","static/chunks/5531-66b1a21ff1c52081.js","9780","static/chunks/9780-509b4d1bec6b6e17.js","8974","static/chunks/app/page-f1ebfa55dc4bd91c.js"],"async":false},"/tmp/pidance-release-build/components/UiLoginGate.tsx":{"id":84747,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5531","static/chunks/5531-66b1a21ff1c52081.js","9780","static/chunks/9780-509b4d1bec6b6e17.js","8974","static/chunks/app/page-f1ebfa55dc4bd91c.js"],"async":false}},"entryCSSFiles":{"/tmp/pidance-release-build/":[],"/tmp/pidance-release-build/app/layout":[{"inlined":false,"path":"static/css/88714c00e109ce28.css"},{"inlined":false,"path":"static/css/edecf7d5ab33f0fd.css"}],"/tmp/pidance-release-build/app/page":[]},"rscModuleMapping":{"2707":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"84747":{"*":{"id":"38759","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"99780":{"*":{"id":"59966","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"2707":{"*":{"id":"26836","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"84747":{"*":{"id":"95237","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"99780":{"*":{"id":"80898","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/tmp/pidance-release-build/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/tmp/pidance-release-build/lib/i18n.tsx":{"id":99780,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/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":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/app/globals.css":{"id":66872,"name":"*","chunks":["9780","static/chunks/9780-509b4d1bec6b6e17.js","7177","static/chunks/app/layout-88764b4be2728d3f.js"],"async":false},"/tmp/pidance-release-build/components/AppShell.tsx":{"id":2707,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5531","static/chunks/5531-66b1a21ff1c52081.js","9780","static/chunks/9780-509b4d1bec6b6e17.js","8974","static/chunks/app/page-604ab741301e3f43.js"],"async":false},"/tmp/pidance-release-build/components/UiLoginGate.tsx":{"id":84747,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5531","static/chunks/5531-66b1a21ff1c52081.js","9780","static/chunks/9780-509b4d1bec6b6e17.js","8974","static/chunks/app/page-604ab741301e3f43.js"],"async":false}},"entryCSSFiles":{"/tmp/pidance-release-build/":[],"/tmp/pidance-release-build/app/layout":[{"inlined":false,"path":"static/css/88714c00e109ce28.css"},{"inlined":false,"path":"static/css/edecf7d5ab33f0fd.css"}],"/tmp/pidance-release-build/app/page":[]},"rscModuleMapping":{"2707":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"84747":{"*":{"id":"38759","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"99780":{"*":{"id":"59966","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -22,26 +22,26 @@
22
22
  "/icon.png/route": "app/icon.png/route.js",
23
23
  "/api/about/route": "app/api/about/route.js",
24
24
  "/api/agent-settings/route": "app/api/agent-settings/route.js",
25
- "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
26
25
  "/api/agent/new/route": "app/api/agent/new/route.js",
27
26
  "/api/agent/running/events/route": "app/api/agent/running/events/route.js",
27
+ "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
28
28
  "/api/agent/running/route": "app/api/agent/running/route.js",
29
29
  "/api/attachments/route": "app/api/attachments/route.js",
30
30
  "/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
31
31
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
32
32
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
33
- "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
34
33
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
35
- "/api/auth/ui-session/route": "app/api/auth/ui-session/route.js",
36
34
  "/api/cwd/browse/route": "app/api/cwd/browse/route.js",
35
+ "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
36
+ "/api/auth/ui-session/route": "app/api/auth/ui-session/route.js",
37
37
  "/api/models-config/route": "app/api/models-config/route.js",
38
38
  "/api/models/route": "app/api/models/route.js",
39
- "/api/plugins/route": "app/api/plugins/route.js",
40
- "/api/models-config/test/route": "app/api/models-config/test/route.js",
41
39
  "/api/runtime/route": "app/api/runtime/route.js",
40
+ "/api/plugins/route": "app/api/plugins/route.js",
42
41
  "/api/runtime/switch/route": "app/api/runtime/switch/route.js",
43
42
  "/api/sessions/[id]/archive/route": "app/api/sessions/[id]/archive/route.js",
44
43
  "/api/sessions/[id]/command-entry/route": "app/api/sessions/[id]/command-entry/route.js",
44
+ "/api/models-config/test/route": "app/api/models-config/test/route.js",
45
45
  "/api/sessions/[id]/info/route": "app/api/sessions/[id]/info/route.js",
46
46
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
47
47
  "/api/sessions/search/route": "app/api/sessions/search/route.js",
@@ -1,4 +1,4 @@
1
- exports.id=7129,exports.ids=[7129],exports.modules={15461:(a,b,c)=>{"use strict";c.d(b,{PIDANCE_COMMAND_CUSTOM_TYPE:()=>d,f:()=>f,normalizeCommandEntryData:()=>e});let d="pidance.command";function e(a){return{command:"string"==typeof a.command?a.command.trim():"",ok:!1!==a.ok,result:"string"==typeof a.result&&""!==a.result.trim()?a.result.trim():void 0,version:1}}function f(a){return a&&"object"==typeof a?1!==a.version||"string"!=typeof a.command||""===a.command.trim()?null:{command:a.command,ok:!1!==a.ok,result:"string"==typeof a.result?a.result:void 0,version:1}:null}},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>p,KI:()=>l,P9:()=>n,l:()=>o});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252);let i=(0,g.promisify)(d.execFile);function j(){globalThis.__piProjectCache?.clear()}async function k(a,b){let{stdout:c}=await i("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}async function l(a){let b,c=(globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:c,branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,g,h,i]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),j=a;try{j=(0,e.realpathSync)(a)}catch{}let l=h===j,m=g!==d&&l;b={projectRoot:m?(0,f.dirname)(d):a,branch:i&&"HEAD"!==i?i:null,isWorktree:m,isTopLevel:l}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}async function m(a){let b=await k(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return(0,f.dirname)(b)}async function n(a){let b=await k(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:a.slice(9).trim()}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}async function o(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await m(a),i=`${(0,f.resolve)(g)}-worktrees`,l=(0,f.join)(i,d);if((0,e.existsSync)(l))throw Error(`Directory already exists: ${l}`);(0,e.mkdirSync)(i,{recursive:!0});let n=!1;try{await k(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),n=!0}catch{n=!1}try{n?await k(g,["worktree","add","--",l,c]):await k(g,["worktree","add","-b",c,"--",l])}catch(a){throw Error(q(a))}return(0,h.wz)(l),j(),{path:l,branch:c}}async function p(a,b,c=!1){let d=(await n(a)).find(a=>a.path===b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await k(a,["worktree","remove",...c?["--force"]:[],b])}catch(a){throw Error(q(a))}j()}function q(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";c.d(b,{HM:()=>e,wz:()=>f});var d=c(50593);function e(){return globalThis.__piAdditionalAllowedRoots||(globalThis.__piAdditionalAllowedRoots=new Set),globalThis.__piAdditionalAllowedRoots}function f(a){if(!a)return;let b=(0,d.Nw)(a);e().add(b),globalThis.__piAllowedRootsCache?.roots.add(b)}},50593:(a,b,c)=>{"use strict";function d(a){try{return decodeURIComponent(a)}catch{return a}}function e(a){return a.replace(/\\/g,"/")}c.d(b,{Nw:()=>e,ex:()=>d})},50955:(a,b,c)=>{"use strict";c.d(b,{ku:()=>o,ob:()=>n,uq:()=>l});var d=c(29021),e=c(33873);let f=/^[0-9a-f]{8}$/i,g=/^run-(\d+)$/,h=/^async-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a,b){try{let c=(0,d.lstatSync)(a);if(!c.isFile()||c.isSymbolicLink()||!a.endsWith(".jsonl"))return null;let f=(0,d.realpathSync)(a),g=(0,d.realpathSync)(b),h=(0,e.relative)(g,f);if(!h||h.startsWith("..")||h.includes("/../")||h.includes("\\..\\"))return null;let i=g;for(let a of h.split(/[\\/]/))if(i=(0,e.join)(i,a),(0,d.lstatSync)(i).isSymbolicLink())return null;return f}catch{return null}}function k(a){let b=-1;try{b=(0,d.openSync)(a,"r");let c=[],e=0,f=!1;for(;e<65536&&!f;){let a=Buffer.allocUnsafe(Math.min(4096,65536-e)),g=(0,d.readSync)(b,a,0,a.length,e);if(!g)break;let h=a.subarray(0,g),i=h.indexOf(10);c.push(i>=0?h.subarray(0,i):h),e+=g,f=i>=0}if(!f&&e>=65536)return null;let g=Buffer.concat(c).toString("utf8").replace(/\r$/,""),h=JSON.parse(g);if(!i(h)||"session"!==h.type||"string"!=typeof h.id||!h.id||"string"!=typeof h.cwd||"string"!=typeof h.timestamp)return null;return h}catch{return null}finally{b>=0&&(0,d.closeSync)(b)}}function l(a,b,c){let f=0;for(let g of[...a].sort((a,b)=>b.path.length-a.path.length))try{if(!function(a,b,c){try{return j(a,b)===(0,d.realpathSync)(a)&&k(a)?.id===c}catch{return!1}}(g.path,b,g.header.id)){f++;continue}let a=(0,d.realpathSync)(g.path),h=(0,d.realpathSync)(b),i=(0,e.relative)(h,a);if(!i||i.startsWith("..")||i.includes("/../")||i.includes("\\..\\")){f++;continue}(0,d.unlinkSync)(g.path),c(g.header.id);let l=(0,e.dirname)(g.path);for(let a=0;a<4;a++){try{let a=(0,d.lstatSync)(l);if(!a.isDirectory()||a.isSymbolicLink())break;(0,d.rmdirSync)(l)}catch{break}l=(0,e.dirname)(l)}}catch{f++}return f}function m(a,b){let c;try{c=JSON.parse(a)}catch{return}if(!i(c)||"message"!==c.type||!i(c.message)||"toolResult"!==c.message.role||"subagent"!==c.message.toolName||!i(c.message.details)||!Array.isArray(c.message.details.results))return;let d=c.message.details;for(let a of d.results)i(a)&&"string"==typeof a.sessionFile&&b.push({path:a.sessionFile,runId:"string"==typeof d.runId?d.runId:void 0,agent:"string"==typeof a.agent?a.agent:"string"==typeof d.agent?d.agent:void 0})}function n(a,b){let c=a.endsWith(".jsonl")?a.slice(0,-6):"";if(!c)return[];let i=new Set,l=new Set,n=[];for(let o of[...function(a){let b=[],c=-1;try{c=(0,d.openSync)(a,"r");let e="",f=0;for(;f<2097152&&b.length<512;){let a=Buffer.allocUnsafe(Math.min(65536,2097152-f)),g=(0,d.readSync)(c,a,0,a.length,f);if(!g)break;f+=g;let h=(e+=a.subarray(0,g).toString("utf8")).split(/\r?\n/);for(let a of(e=h.pop()??"",h))if(!(a.length>131072)&&(m(a,b),b.length>=512))break}e.length<=131072&&b.length<512&&m(e,b)}catch{}finally{c>=0&&(0,d.closeSync)(c)}return b}(a),...(function(a){let b=a.endsWith(".jsonl")?a.slice(0,-6):"",c=[];if(!b)return c;try{for(let a of(0,d.readdirSync)(b,{withFileTypes:!0})){if(!a.isDirectory()||a.isSymbolicLink()||!f.test(a.name))continue;let h=(0,e.join)(b,a.name);for(let a of(0,d.readdirSync)(h,{withFileTypes:!0}))if(!(!a.isDirectory()||a.isSymbolicLink())&&g.test(a.name)&&(c.push((0,e.join)(h,a.name,"session.jsonl")),c.length>=2048))return c}for(let a of(0,d.readdirSync)(b,{withFileTypes:!0})){if(!a.isDirectory()||a.isSymbolicLink()||!h.test(a.name))continue;let f=(0,e.join)(b,a.name);for(let a of(0,d.readdirSync)(f,{withFileTypes:!0}).filter(a=>a.isFile()&&!a.isSymbolicLink()&&a.name.endsWith(".jsonl")).map(a=>a.name).sort())if(c.push((0,e.join)(f,a)),c.length>=2048)return c}}catch{}return c})(a).map(a=>({path:a}))]){if(n.length>=256)break;let a=j((0,e.resolve)(o.path),c);if(!a||!function(a,b){let c=(0,e.relative)((0,e.resolve)(b),(0,e.resolve)(a)).split(/[\\/]/);return!!(3===c.length&&f.test(c[0])&&g.test(c[1]))&&"session.jsonl"===c[2]||2===c.length&&h.test(c[0])&&c[1].endsWith(".jsonl")}(a,c)||i.has(a))continue;let d=(0,e.relative)((0,e.resolve)(c),(0,e.resolve)(a)).split(/[\\/]/),m=2===d.length&&h.test(d[0]),p=m?0:function(a){let b=g.exec((0,e.basename)((0,e.dirname)(a)));return b?Number(b[1]):null}(a);if(null===p||p<0)continue;let q=k(a);if(!q||l.has(q.id)||q.id===b)continue;let r=m?d[0].slice(6):o.runId??(0,e.basename)((0,e.dirname)((0,e.dirname)(a)));i.add(a),l.add(q.id),n.push({path:a,header:q,runIndex:p,parentSessionId:b,runId:r,agent:o.agent})}return n}function o(a,b){let c=[],d=new Set([(0,e.resolve)(a)]),f=new Set([b]),g=[{file:a,id:b,depth:0}];for(;g.length&&c.length<256;){let a=g.shift();if(!(a.depth>=16))for(let b of n(a.file,a.id))d.has(b.path)||f.has(b.header.id)||(d.add(b.path),f.add(b.header.id),c.push(b),g.push({file:b.path,id:b.header.id,depth:a.depth+1}))}return c}},60396:(a,b,c)=>{"use strict";c.d(b,{$M:()=>f,CZ:()=>h,Mc:()=>g,bm:()=>j,pA:()=>i});var d=c(62228),e=c(86697);function f(a=process.env){let b=a.PI_CODING_AGENT_DIR?.trim();if(b)return"~"===b?(0,d.homedir)():b.startsWith("~/")||b.startsWith("~\\")?(0,e.join)((0,d.homedir)(),b.slice(2)):b;return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(a=process.env){return(0,e.join)(f(a),"models.json")}function h(a=process.env){return(0,e.join)(f(a),"auth.json")}function i(a=process.env){return(0,e.join)(f(a),"settings.json")}function j(a,b=process.env){let c;return(0,e.join)(function(a=process.env){return(0,e.join)(f(a),"sessions")}(b),(c=a.replace(/\\/g,"/"),`--${c.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`))}},65107:(a,b,c)=>{"use strict";c.d(b,{$9:()=>j,R3:()=>i,ek:()=>h});var d=c(89477),e=c(86697),f=c(716);function g(a){return`${a}.leaf.json`}function h(a){let b=g(a);if(!(0,d.existsSync)(b))return null;try{let a=JSON.parse((0,d.readFileSync)(b,"utf8"));if(!a||"object"!=typeof a)return null;let c=a.leafId;return"string"==typeof c&&c?c:null}catch{return null}}function i(a,b){let c=g(a),h=(0,e.dirname)(c);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0});let i=JSON.stringify({version:1,leafId:b},null,2),j=(0,e.join)(h,`.leaf-${process.pid}-${(0,f.randomUUID)()}.tmp`);try{(0,d.writeFileSync)(j,i,{encoding:"utf8",flag:"wx"}),(0,d.renameSync)(j,c)}catch(a){try{(0,d.existsSync)(j)&&(0,d.unlinkSync)(j)}catch{}throw a}}function j(a){try{let b=g(a);(0,d.existsSync)(b)&&(0,d.unlinkSync)(b)}catch{}}},78335:()=>{},85664:(a,b,c)=>{"use strict";c.d(b,{PIDANCE_ACTIVITY_CUSTOM_TYPE:()=>d,iv:()=>l,normalizeActivityInput:()=>j,o7:()=>m,p_:()=>k,qF:()=>n});let d="pidance.activity",e=["result","warning","error","output"];class f extends Error{constructor(a){super(a),this.name="SessionActivityError"}}function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return Buffer.byteLength(a,"utf8")}function i(a,b,c){if(void 0===a)return;if("string"!=typeof a)throw new f(`${b} must be a string`);let d=a.trim();if(""!==d){if(d.length>c)throw new f(`${b} exceeds maximum length ${c}`);return d}}function j(a){var b;let c,d;if(!g(a))throw new f("activity must be a plain object");let j=void 0===a.version?1:a.version;if(1!==j)throw new f(`unsupported activity version: ${String(j)}`);if(!("string"==typeof(b=a.kind)&&e.includes(b)))throw new f(`kind must be one of: ${e.join(", ")}`);if("string"!=typeof a.title)throw new f("title must be a string");let k=a.title.trim();if(""===k)throw new f("title is required");if(k.length>200)throw new f("title exceeds maximum length 200");if("string"!=typeof a.content)throw new f("content must be a string");let l=a.content.trim();if(l.length>32768)throw new f("content exceeds maximum length 32768");let m=i(a.source,"source",200),n=i(a.requestId,"requestId",200);if(void 0!==a.metadata){if(!g(a.metadata))throw new f("metadata must be a plain object");let b=function a(b,c,d){if(null===b)return null;if("string"==typeof b){if(h(b)>1024)throw new f("metadata string exceeds 1024 bytes");return b}if("number"==typeof b){if(!Number.isFinite(b))throw new f("metadata number must be finite");return b}if("boolean"==typeof b)return b;if("bigint"==typeof b||"function"==typeof b||"symbol"==typeof b||void 0===b||"object"!=typeof b)throw new f("metadata contains non-JSON value");if(d.has(b))throw new f("metadata contains circular reference");if(c>3)throw new f("metadata exceeds max depth 3");if(Array.isArray(b)){if(b.length>32)throw new f("metadata array exceeds 32 items");d.add(b);try{return b.map(b=>a(b,c+1,d))}finally{d.delete(b)}}let e=Object.getPrototypeOf(b);if(e!==Object.prototype&&null!==e)throw new f("metadata must be a plain JSON object or array");let g=Object.keys(b);if(g.length>20)throw new f("metadata exceeds 20 keys");d.add(b);try{let e=Object.create(null);for(let i of g){if("__proto__"===i||"constructor"===i||"prototype"===i)throw new f("metadata key is not allowed");if(h(i)>64)throw new f("metadata key exceeds 64 bytes");e[i]=a(b[i],c+1,d)}return e}finally{d.delete(b)}}(a.metadata,0,new WeakSet);if(!g(b)||Array.isArray(b))throw new f("metadata must be a plain object");0===Object.keys(c=b).length&&(c=void 0)}let o={version:1,kind:a.kind,title:k,content:l};void 0!==m&&(o.source=m),void 0!==n&&(o.requestId=n),void 0!==c&&(o.metadata=c);try{d=JSON.stringify(o)}catch{throw new f("activity is not JSON-serializable")}if(h(d)>48e3)throw new f("activity exceeds maximum serialized size 48000 bytes");return o}function k(a){try{return j(a)}catch{return null}}function l(a,b){let c={role:"custom",customType:d,content:a.title,display:!0,details:a};return void 0!==b&&(c.timestamp=b),c}function m(a){return"custom"===a.type&&a.customType===d&&null!==k(a.data)}function n(a){if("customType"in a&&void 0!==a.customType)throw new f("customType is not allowed on append_activity");let b=a.activity;if(void 0!==b){if(!g(b))throw new f("activity must be a plain object");if("customType"in b&&void 0!==b.customType)throw new f("customType is not allowed on append_activity");return j(b)}let c={...a};return delete c.type,j(c)}},85741:(a,b,c)=>{"use strict";let d;c.d(b,{Uv:()=>J,jK:()=>H,O8:()=>C,DK:()=>F,mD:()=>x,BR:()=>D,dQ:()=>v,eP:()=>E,u1:()=>B,Zx:()=>G,os:()=>A});var e=c(29021),f=c(33873),g=c(15461),h=c(4984),i=c(79748),j=c(60396);function k(){return(0,f.join)((0,j.$M)(),"pidance-session-cache.json")}async function l(a){try{let b=await (0,i.stat)(a);return{path:a,mtimeMs:b.mtimeMs,size:b.size}}catch{return null}}async function m(a=(0,f.join)((0,j.$M)(),"sessions")){let b=[];try{b=(await (0,i.readdir)(a,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(b=>(0,f.join)(a,b.name))}catch{return[]}let c=[],d=[];for(let a of b)d.push((async()=>{try{for(let b of(await (0,i.readdir)(a)))b.endsWith(".jsonl")&&c.push((0,f.join)(a,b))}catch{}})());return await Promise.all(d),(await Promise.all(c.map(a=>l(a)))).filter(a=>null!==a)}let n=!1;function o(a){return"object"==typeof a&&null!==a&&"string"==typeof a.role&&"content"in a}async function p(a,b){try{let c,d,f=(0,h.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0}),g=null,i=0,j="";for await(let a of f){let b;if(!a.trim())continue;try{b=JSON.parse(a)}catch{continue}if(!g){if("session"!==b.type)return null;g=b;continue}if("session_info"===b.type){let a=b.name;"string"==typeof a&&a.trim()&&(c=a.trim());continue}if("message"!==b.type)continue;i++;let e=function(a){let b=a.message;if(!o(b)||"user"!==b.role&&"assistant"!==b.role)return;let c=b.timestamp;if("number"==typeof c)return c;let d=new Date(a.timestamp??"").getTime();return Number.isNaN(d)?void 0:d}(b);"number"==typeof e&&(d=Math.max(d??0,e));let f=b.message;if(!o(f)||"user"!==f.role&&"assistant"!==f.role)continue;let h=function(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!(a&&"text"===a.type&&"string"==typeof a.text)).map(a=>a.text).join(" "):""}(f);h&&(j||"user"!==f.role||(j=h))}if(!g)return null;let k="string"==typeof g.timestamp?new Date(g.timestamp).getTime():NaN,l=new Date("number"==typeof d&&d>0?d:Number.isNaN(k)?b.mtimeMs:k);return{id:"string"==typeof g.id?g.id:"",cwd:"string"==typeof g.cwd?g.cwd:"",name:c,created:g.timestamp,modified:l.toISOString(),messageCount:i,firstMessage:j||"(no messages)",parentSessionPath:"string"==typeof g.parentSession?g.parentSession:void 0}}catch{return null}}var q=c(85664),r=c(24923),s=c(50955),t=c(96967);async function u(){let a=await m(),b=function(a=k()){try{let b=(0,e.readFileSync)(a,"utf8"),c=JSON.parse(b);if(!c||1!==c.version||!c.sessions||"object"!=typeof c.sessions)return null;return{version:1,sessions:c.sessions,discovery:c.discovery&&"object"==typeof c.discovery?c.discovery:{}}}catch{return null}}(),c=new Map;if(b)for(let[a,d]of Object.entries(b.sessions))c.set(a,d);let g=a.filter(a=>{let b=c.get(a.path);return!b||b.m!==a.mtimeMs||b.s!==a.size}),h=g.length>0,i=new Map;for(let a of(await Promise.all(g.map(async a=>{let b=await p(a.path,a);b&&i.set(a.path,b)})),g)){let b=i.get(a.path);if(!b){c.delete(a.path);continue}c.set(a.path,{m:a.mtimeMs,s:a.size,i:b})}let j=new Set(a.map(a=>a.path)),l=0;for(let a of[...c.keys()])!j.has(a)&&(c.delete(a),l++);l>0&&(h=!0);let o=[...c.entries()].map(([a,b])=>({path:a,...b.i})).filter(a=>!!(a&&a.id)),q=new Map,t=new Map;for(let a of o){let b=(0,f.normalize)(a.path);q.has(b)||t.has(a.id)||(q.set(b,a.id),t.set(a.id,b))}let u=[...new Set(o.map(a=>a.cwd).filter(Boolean))],v=new Map;await Promise.all(u.map(async a=>{v.set(a,await (0,r.KI)(a))}));let w=new Set,x=new Set,y=o.sort((a,b)=>a.modified<b.modified?1:a.modified>b.modified?-1:0).flatMap(a=>{let b=(0,f.normalize)(a.path);if(w.has(b)||x.has(a.id))return[];w.add(b),x.add(a.id),C(a.id,a.path);let c=a.cwd?v.get(a.cwd):void 0;return[{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created,modified:a.modified,messageCount:a.messageCount,firstMessage:a.firstMessage||"(no messages)",parentSessionId:a.parentSessionPath?q.get((0,f.normalize)(a.parentSessionPath)):void 0,projectRoot:c?.projectRoot??a.cwd,...c?.isWorktree&&c.branch?{worktreeBranch:c.branch}:{}}]}),z=new Map(y.map(a=>[(0,f.normalize)(a.path),a])),A=new Map(y.map(a=>[a.id,a])),B=new Set,D=new Set,E=[],F=new Map;if(b)for(let[a,c]of Object.entries(b.discovery))F.set(a,c);let G=y.map(a=>({parent:a,depth:0}));for(;G.length&&D.size<256;){let a=G.shift();if(!(a.depth>=16))for(let b of function(a,b,c,d){try{let f=(0,e.statSync)(a),g=c.get(a);if(g&&g.m===f.mtimeMs&&g.s===f.size)return g.c;let h=d(a,b);return c.set(a,{m:f.mtimeMs,s:f.size,c:h}),h}catch{return c.delete(a),[]}}(a.parent.path,a.parent.id,F,(a,b)=>(h=!0,(0,s.ob)(a,b).map(a=>({path:a.path,id:a.header.id,cwd:a.header.cwd,timestamp:a.header.timestamp,parentSessionId:a.parentSessionId,runId:a.runId,runIndex:a.runIndex,...a.agent?{agent:a.agent}:{}}))))){let c=(0,f.normalize)(b.path);if(B.has(c)||D.has(b.id))continue;B.add(c),D.add(b.id);let d=z.get(c),e=A.get(b.id);if(d&&d.id!==b.id||e&&(0,f.normalize)(e.path)!==c)continue;let g=d??e;if(g){g.subagent={parentSessionId:b.parentSessionId,runId:b.runId,runIndex:b.runIndex,...b.agent?{agent:b.agent}:{}},g.readOnly=!0,G.push({parent:g,depth:a.depth+1});continue}w.has(c)||x.has(b.id)||(w.add(c),x.add(b.id),q.set(c,b.id),E.push({child:b}),G.push({parent:{path:b.path,id:b.id,cwd:b.cwd,created:b.timestamp,modified:b.timestamp,messageCount:0,firstMessage:"(no messages)",projectRoot:b.cwd},depth:a.depth+1}))}}let H=await Promise.all(E.map(async({child:a})=>{let b=await (0,r.KI)(a.cwd),c=a.timestamp;try{c=(0,e.statSync)(a.path).mtime.toISOString()}catch{}return C(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,created:a.timestamp,modified:c,messageCount:0,firstMessage:"(no messages)",projectRoot:b?.projectRoot??a.cwd,...b?.isWorktree&&b.branch?{worktreeBranch:b.branch}:{},subagent:{parentSessionId:a.parentSessionId,runId:a.runId,runIndex:a.runIndex,...a.agent?{agent:a.agent}:{}},readOnly:!0}}));return h&&function(a,b,c=k()){n=!0,d||(d=setTimeout(()=>{if(d=void 0,!n)return;n=!1;let f={version:1,sessions:Object.fromEntries(a),discovery:Object.fromEntries(b)},g=`${c}.tmp`;try{(0,e.writeFileSync)(g,JSON.stringify(f),"utf8"),(0,e.renameSync)(g,c)}catch{try{(0,e.existsSync)(g)&&(0,e.renameSync)(g,c)}catch{}}},1500))}(c,F),[...y,...H]}async function v(){let a=globalThis.__piSessionListGeneration??0;if(globalThis.__piSessionListCache&&Date.now()-globalThis.__piSessionListCache.ts<w)return globalThis.__piSessionListCache.data;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===a)return globalThis.__piSessionListPromise;let b=u().then(b=>((globalThis.__piSessionListGeneration??0)===a&&(globalThis.__piSessionListCache={data:b,ts:Date.now()}),b)).finally(()=>{globalThis.__piSessionListPromise===b&&(globalThis.__piSessionListPromise=void 0,globalThis.__piSessionListPromiseGeneration=void 0)});return globalThis.__piSessionListPromise=b,globalThis.__piSessionListPromiseGeneration=a,b}let w=3e4;function x(){globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0}function y(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function z(){return globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache}async function A(a){let b=y().get(a);return b||(await v(),y().get(a)??null)}async function B(a){let b=(0,f.normalize)(a),c=z().get(b);return c||(await v(),z().get(b))}function C(a,b){let c=(0,f.normalize)(b),d=y(),e=z(),g=d.get(a),h=e.get(c);g&&g!==c&&e.get(g)===a&&e.delete(g),h&&h!==a&&d.get(h)===c&&d.delete(h),d.set(a,c),e.set(c,a)}function D(a){let b=y(),c=z(),d=b.get(a);b.delete(a),d&&c.get(d)===a&&c.delete(d)}function E(a){let b=(0,e.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let f=Buffer.allocUnsafe(Math.min(4096,65536-c)),g=(0,e.readSync)(b,f,0,f.length,c);if(0===g)break;let h=f.subarray(0,g),i=h.indexOf(10);a.push(-1===i?h:h.subarray(0,i)),c+=g,d=-1!==i}if(!d&&c>=65536)return null;let f=Buffer.concat(a).toString("utf8").trimEnd();if(!f)return null;try{let a=JSON.parse(f);return"session"===a.type?a:null}catch{return null}}finally{(0,e.closeSync)(b)}}function F(a){return(0,t.zH)(a).getEntries()}function G(a){let b=a.liveSession;return b?.isAlive()&&b.inner?.sessionManager?b.inner.sessionManager:(a.openFromDisk??(a=>{let b=(0,t.zH)(a);return{getEntries:()=>b.getEntries(),getLeafId:()=>b.getLeafId(),getTree:()=>(function(a){let b=new Map,c=[];for(let c of a){if(!c?.id)continue;let a={id:c.id,type:c.type};if("message"===c.type&&"message"in c){let b=c.message;if(b&&"object"==typeof b.content&&null!==b.content){let c=Array.isArray(b.content)?b.content.filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>({type:"text",text:a.text})):b.content;a.message={role:b.role,content:c}}else a.message=b}b.set(c.id,{entry:a,children:[]})}for(let d of a){if(!d?.id)continue;let a=b.get(d.id);if("label"===d.type&&"string"==typeof d.label&&"string"==typeof d.targetId){let a=b.get(d.targetId);a&&(a.label=d.label)}let e=d.parentId;e&&b.has(e)?b.get(e).children.push(a):c.push(a)}return c})(b.getEntries()),getHeader:()=>b.getHeader(),getSessionName:()=>b.getSessionName()}}))(a.filePath)}function H(a,b={}){var c;let d,e=a.getEntries(),f=function(a,b){if(null==b)return null;let c=new Map(a.map(a=>[a.id,a])),d=c.get(b);if(!d)return b;for(;d?.type==="label";){if(!d.parentId)return null;d=c.get(d.parentId)}return d?.id??null}(e,a.getLeafId()),g=function(a){let b=new Set,c=new Set(a),d=new Set,e=[...a];for(;e.length>0;){let a=e.pop();if(!d.has(a))for(let f of(d.add(a),(c.has(a)||1!==a.children.length||"string"==typeof a.label&&a.label.length>0)&&b.add(a),a.children))e.push(f)}let f=(a,b)=>({...a,children:[],...b?.length?{compressedEntryIds:b}:{}}),g=a.map(a=>f(a)),h=a.map((a,b)=>({source:a,projected:g[b],depth:1})),i=(a,c)=>{let d=[{node:a,compressedEntryIds:[]}],e=new Set;for(;d.length>0;){let{node:a,compressedEntryIds:g}=d.pop();if(!e.has(a)){e.add(a),b.has(a)&&c.children.push(f(a,g));for(let c=a.children.length-1;c>=0;c--)d.push({node:a.children[c],compressedEntryIds:b.has(a)?[]:[...g,a.entry.id]})}}};for(;h.length>0;){let{source:a,projected:c,depth:d}=h.pop();for(let e of a.children){let a=e;if(d>=200){i(a,c);continue}let g=[];for(;!b.has(a)&&1===a.children.length;)g.push(a.entry.id),a=a.children[0];if(!b.has(a))continue;let j=f(a,g);c.children.push(j),h.push({source:a,projected:j,depth:d+1})}}return g}((c=a.getTree(),(d=a=>{let b=[];for(let c of a)"label"===c.entry.type?b.push(...d(c.children)):b.push({...c,children:d(c.children)});return b})(c))),h=J(e,f,b);return{entries:e,leafId:f,tree:g,context:h,header:a.getHeader(),sessionName:a.getSessionName()}}function I(a,b){if(null===b)return[];let c=new Map,d=null;for(let b of a)b?.id&&(c.set(b.id,b),d=b.id);let e=void 0!==b?b:d,f=[],g=new Set;for(;e&&!g.has(e);){g.add(e);let a=c.get(e);if(!a)break;f.unshift(a),e=a.parentId??null}return f}function J(a,b,c={}){let d=function(a){let b,c;for(let d of a)"thinking_level_change"===d.type&&"string"==typeof d.thinkingLevel&&(b=d.thinkingLevel),"model_change"===d.type&&d.provider&&d.modelId&&(c={provider:d.provider,modelId:d.modelId,id:d.modelId});return{thinkingLevel:b,model:c}}(I(a,b)),e=I(a,b),f=[],h=[];for(let a of e){let b=function(a,b){switch(a.type){case"message":{let c=function(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>(function(a){if(!("object"==typeof a&&null!==a&&!Array.isArray(a))||"toolCall"!==a.type)return null;let b={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};return Array.isArray(a.renderedCallLines)&&a.renderedCallLines.every(a=>"string"==typeof a)&&(b.renderedCallLines=[...a.renderedCallLines]),b})(a)??a);return{...a,content:c}}(a.message);if(b.deferToolResultImages&&(c=function(a){if("toolResult"!==a.role||!L(a.details))return a;let b=!1,c={};for(let[d,e]of Object.entries(a.details))if(d!==N){if(M.has(d)){b=!0;continue}c[d]=e}return b?{...a,details:{...c,[N]:!0}}:a}(c=function(a){if("toolResult"!==a.role)return a;let b=0,c=0,d=new Set,e=a.content.filter(a=>{let e=function(a){let b,c;if(!L(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):L(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);return!e||(b+=1,c+=e.bytes,e.mime&&d.add(e.mime),!1)});if(0===b)return a;let f=d.size>0?`: ${[...d].join(", ")}`:"";return e.push({type:"text",text:`[${b} tool result image${1===b?"":"s"} omitted from initial history payload${f}, ~${c} bytes]`}),{...a,content:e}}(c))),!b.deferThinking||"assistant"!==c.role)return c;return{...c,content:c.content.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:"",deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:K(a.timestamp)};case"branch_summary":if(!a.summary)return null;let c=a.usage;return{role:"custom",customType:"branch_summary",content:a.summary,display:!0,details:{fromId:a.fromId,details:a.details,usage:c,fromHook:a.fromHook},timestamp:K(a.timestamp)};case"custom_message":return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:K(a.timestamp)};case"custom":{if(a.customType===g.PIDANCE_COMMAND_CUSTOM_TYPE){let b=(0,g.f)(a.data);if(!b)return null;return{role:"custom",customType:g.PIDANCE_COMMAND_CUSTOM_TYPE,content:b.command,display:!0,details:{ok:b.ok,result:b.result},timestamp:K(a.timestamp)}}if(a.customType!==q.PIDANCE_ACTIVITY_CUSTOM_TYPE)return null;let b=(0,q.p_)(a.data);if(!b)return null;return(0,q.iv)(b,K(a.timestamp))}default:return null}}(a,c);b&&(f.push(b),h.push(a.id))}return{messages:f,entryIds:h,thinkingLevel:d.thinkingLevel??"off",model:d.model}}function K(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function L(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let M=new Set(["diff","patch","diffData","readSeekValue"]),N="deferredHeavy"},96487:()=>{},96967:(a,b,c)=>{"use strict";c.d(b,{aA:()=>i,xg:()=>m,zH:()=>n});var d=c(89477),e=c(86697),f=c(716),g=c(60396),h=c(65107);let i=3;function j(a){for(let b=0;b<100;b++){let b=(0,f.randomUUID)().replace(/-/g,"").slice(0,8);if(!a.has(b))return b}return(0,f.randomUUID)()}function k(){return(0,f.randomUUID)()}function l(a){let b=(0,d.readFileSync)(a,"utf8"),c=[];for(let a of b.split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{}return c}class m{constructor(a,b,c,e,f){if(this.fileEntries=[],this.byId=new Map,this.labelsById=new Map,this.labelTimestampsById=new Map,this.leafId=null,this.flushed=!1,this.cwd=a,this.sessionDir=b,this.sessionFile=c,this.persist=e,this.sessionId=k(),c&&(0,d.existsSync)(c)){this.fileEntries=f??l(c),this.flushed=!0,this._buildIndex();const a=this.fileEntries.find(a=>a&&"object"==typeof a&&"session"===a.type);a?.id&&(this.sessionId=a.id),a?.cwd&&(this.cwd=a.cwd)}else this.fileEntries=[],this.flushed=!1}static create(a,b){let c=b?(0,e.resolve)(b):(0,g.bm)(a);(0,d.mkdirSync)(c,{recursive:!0});let f=new m(a,c,void 0,!0);return f.newSession(),f}static open(a,b,c){let f,g=(0,e.resolve)(a),h=null;if((0,d.existsSync)(g)){let a=(f=l(g))[0];h=a?.type==="session"?a:null}return new m(c??h?.cwd??process.cwd(),b?(0,e.resolve)(b):(0,e.dirname)(g),g,!0,f)}newSession(a){let b=new Date().toISOString();this.sessionId=k();let c={type:"session",version:i,id:this.sessionId,timestamp:b,cwd:this.cwd,...a?.parentSession?{parentSession:a.parentSession}:{}};if(this.fileEntries=[c],this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.leafId=null,this.flushed=!1,this.persist){(0,d.mkdirSync)(this.sessionDir,{recursive:!0});let a=b.replace(/[:.]/g,"-");this.sessionFile=(0,e.join)(this.sessionDir,`${a}_${this.sessionId}.jsonl`)}return this.sessionFile}_buildIndex(){for(let a of(this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.leafId=null,this.fileEntries)){if(a&&"object"==typeof a){if("session"!==a.type&&"string"==typeof a.id&&(this.byId.set(a.id,a),this.leafId=a.id,"label"===a.type)){let b=a.targetId,c=a.label;b&&(c?(this.labelsById.set(b,c),a.timestamp&&this.labelTimestampsById.set(b,a.timestamp)):(this.labelsById.delete(b),this.labelTimestampsById.delete(b)))}}}}_rewriteFile(){if(!this.persist||!this.sessionFile)return;(0,d.mkdirSync)((0,e.dirname)(this.sessionFile),{recursive:!0});let a=(0,d.openSync)(this.sessionFile,"w");try{for(let b of this.fileEntries)(0,d.writeFileSync)(a,`${JSON.stringify(b)}
1
+ exports.id=7129,exports.ids=[7129],exports.modules={15461:(a,b,c)=>{"use strict";c.d(b,{PIDANCE_COMMAND_CUSTOM_TYPE:()=>d,f:()=>f,normalizeCommandEntryData:()=>e});let d="pidance.command";function e(a){return{command:"string"==typeof a.command?a.command.trim():"",ok:!1!==a.ok,result:"string"==typeof a.result&&""!==a.result.trim()?a.result.trim():void 0,version:1}}function f(a){return a&&"object"==typeof a?1!==a.version||"string"!=typeof a.command||""===a.command.trim()?null:{command:a.command,ok:!1!==a.ok,result:"string"==typeof a.result?a.result:void 0,version:1}:null}},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>p,KI:()=>l,P9:()=>n,l:()=>o});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252);let i=(0,g.promisify)(d.execFile);function j(){globalThis.__piProjectCache?.clear()}async function k(a,b){let{stdout:c}=await i("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}async function l(a){let b,c=(globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:c,branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,g,h,i]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),j=a;try{j=(0,e.realpathSync)(a)}catch{}let l=h===j,m=g!==d&&l;b={projectRoot:m?(0,f.dirname)(d):a,branch:i&&"HEAD"!==i?i:null,isWorktree:m,isTopLevel:l}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}async function m(a){let b=await k(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return(0,f.dirname)(b)}async function n(a){let b=await k(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:a.slice(9).trim()}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}async function o(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await m(a),i=`${(0,f.resolve)(g)}-worktrees`,l=(0,f.join)(i,d);if((0,e.existsSync)(l))throw Error(`Directory already exists: ${l}`);(0,e.mkdirSync)(i,{recursive:!0});let n=!1;try{await k(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),n=!0}catch{n=!1}try{n?await k(g,["worktree","add","--",l,c]):await k(g,["worktree","add","-b",c,"--",l])}catch(a){throw Error(q(a))}return(0,h.wz)(l),j(),{path:l,branch:c}}async function p(a,b,c=!1){let d=(await n(a)).find(a=>a.path===b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await k(a,["worktree","remove",...c?["--force"]:[],b])}catch(a){throw Error(q(a))}j()}function q(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";c.d(b,{HM:()=>e,wz:()=>f});var d=c(50593);function e(){return globalThis.__piAdditionalAllowedRoots||(globalThis.__piAdditionalAllowedRoots=new Set),globalThis.__piAdditionalAllowedRoots}function f(a){if(!a)return;let b=(0,d.Nw)(a);e().add(b),globalThis.__piAllowedRootsCache?.roots.add(b)}},50593:(a,b,c)=>{"use strict";function d(a){try{return decodeURIComponent(a)}catch{return a}}function e(a){return a.replace(/\\/g,"/")}c.d(b,{Nw:()=>e,ex:()=>d})},50955:(a,b,c)=>{"use strict";c.d(b,{ku:()=>o,ob:()=>n,uq:()=>l});var d=c(29021),e=c(33873);let f=/^[0-9a-f]{8}$/i,g=/^run-(\d+)$/,h=/^async-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a,b){try{let c=(0,d.lstatSync)(a);if(!c.isFile()||c.isSymbolicLink()||!a.endsWith(".jsonl"))return null;let f=(0,d.realpathSync)(a),g=(0,d.realpathSync)(b),h=(0,e.relative)(g,f);if(!h||h.startsWith("..")||h.includes("/../")||h.includes("\\..\\"))return null;let i=g;for(let a of h.split(/[\\/]/))if(i=(0,e.join)(i,a),(0,d.lstatSync)(i).isSymbolicLink())return null;return f}catch{return null}}function k(a){let b=-1;try{b=(0,d.openSync)(a,"r");let c=[],e=0,f=!1;for(;e<65536&&!f;){let a=Buffer.allocUnsafe(Math.min(4096,65536-e)),g=(0,d.readSync)(b,a,0,a.length,e);if(!g)break;let h=a.subarray(0,g),i=h.indexOf(10);c.push(i>=0?h.subarray(0,i):h),e+=g,f=i>=0}if(!f&&e>=65536)return null;let g=Buffer.concat(c).toString("utf8").replace(/\r$/,""),h=JSON.parse(g);if(!i(h)||"session"!==h.type||"string"!=typeof h.id||!h.id||"string"!=typeof h.cwd||"string"!=typeof h.timestamp)return null;return h}catch{return null}finally{b>=0&&(0,d.closeSync)(b)}}function l(a,b,c){let f=0;for(let g of[...a].sort((a,b)=>b.path.length-a.path.length))try{if(!function(a,b,c){try{return j(a,b)===(0,d.realpathSync)(a)&&k(a)?.id===c}catch{return!1}}(g.path,b,g.header.id)){f++;continue}let a=(0,d.realpathSync)(g.path),h=(0,d.realpathSync)(b),i=(0,e.relative)(h,a);if(!i||i.startsWith("..")||i.includes("/../")||i.includes("\\..\\")){f++;continue}(0,d.unlinkSync)(g.path),c(g.header.id);let l=(0,e.dirname)(g.path);for(let a=0;a<4;a++){try{let a=(0,d.lstatSync)(l);if(!a.isDirectory()||a.isSymbolicLink())break;(0,d.rmdirSync)(l)}catch{break}l=(0,e.dirname)(l)}}catch{f++}return f}function m(a,b){let c;try{c=JSON.parse(a)}catch{return}if(!i(c)||"message"!==c.type||!i(c.message)||"toolResult"!==c.message.role||"subagent"!==c.message.toolName||!i(c.message.details)||!Array.isArray(c.message.details.results))return;let d=c.message.details;for(let a of d.results)i(a)&&"string"==typeof a.sessionFile&&b.push({path:a.sessionFile,runId:"string"==typeof d.runId?d.runId:void 0,agent:"string"==typeof a.agent?a.agent:"string"==typeof d.agent?d.agent:void 0})}function n(a,b){let c=a.endsWith(".jsonl")?a.slice(0,-6):"";if(!c)return[];let i=new Set,l=new Set,n=[];for(let o of[...function(a){let b=[],c=-1;try{c=(0,d.openSync)(a,"r");let e="",f=0;for(;f<2097152&&b.length<512;){let a=Buffer.allocUnsafe(Math.min(65536,2097152-f)),g=(0,d.readSync)(c,a,0,a.length,f);if(!g)break;f+=g;let h=(e+=a.subarray(0,g).toString("utf8")).split(/\r?\n/);for(let a of(e=h.pop()??"",h))if(!(a.length>131072)&&(m(a,b),b.length>=512))break}e.length<=131072&&b.length<512&&m(e,b)}catch{}finally{c>=0&&(0,d.closeSync)(c)}return b}(a),...(function(a){let b=a.endsWith(".jsonl")?a.slice(0,-6):"",c=[];if(!b)return c;try{for(let a of(0,d.readdirSync)(b,{withFileTypes:!0})){if(!a.isDirectory()||a.isSymbolicLink()||!f.test(a.name))continue;let h=(0,e.join)(b,a.name);for(let a of(0,d.readdirSync)(h,{withFileTypes:!0}))if(!(!a.isDirectory()||a.isSymbolicLink())&&g.test(a.name)&&(c.push((0,e.join)(h,a.name,"session.jsonl")),c.length>=2048))return c}for(let a of(0,d.readdirSync)(b,{withFileTypes:!0})){if(!a.isDirectory()||a.isSymbolicLink()||!h.test(a.name))continue;let f=(0,e.join)(b,a.name);for(let a of(0,d.readdirSync)(f,{withFileTypes:!0}).filter(a=>a.isFile()&&!a.isSymbolicLink()&&a.name.endsWith(".jsonl")).map(a=>a.name).sort())if(c.push((0,e.join)(f,a)),c.length>=2048)return c}}catch{}return c})(a).map(a=>({path:a}))]){if(n.length>=256)break;let a=j((0,e.resolve)(o.path),c);if(!a||!function(a,b){let c=(0,e.relative)((0,e.resolve)(b),(0,e.resolve)(a)).split(/[\\/]/);return!!(3===c.length&&f.test(c[0])&&g.test(c[1]))&&"session.jsonl"===c[2]||2===c.length&&h.test(c[0])&&c[1].endsWith(".jsonl")}(a,c)||i.has(a))continue;let d=(0,e.relative)((0,e.resolve)(c),(0,e.resolve)(a)).split(/[\\/]/),m=2===d.length&&h.test(d[0]),p=m?0:function(a){let b=g.exec((0,e.basename)((0,e.dirname)(a)));return b?Number(b[1]):null}(a);if(null===p||p<0)continue;let q=k(a);if(!q||l.has(q.id)||q.id===b)continue;let r=m?d[0].slice(6):o.runId??(0,e.basename)((0,e.dirname)((0,e.dirname)(a)));i.add(a),l.add(q.id),n.push({path:a,header:q,runIndex:p,parentSessionId:b,runId:r,agent:o.agent})}return n}function o(a,b){let c=[],d=new Set([(0,e.resolve)(a)]),f=new Set([b]),g=[{file:a,id:b,depth:0}];for(;g.length&&c.length<256;){let a=g.shift();if(!(a.depth>=16))for(let b of n(a.file,a.id))d.has(b.path)||f.has(b.header.id)||(d.add(b.path),f.add(b.header.id),c.push(b),g.push({file:b.path,id:b.header.id,depth:a.depth+1}))}return c}},60396:(a,b,c)=>{"use strict";c.d(b,{$M:()=>f,CZ:()=>h,Mc:()=>g,bm:()=>j,pA:()=>i});var d=c(62228),e=c(86697);function f(a=process.env){let b=a.PI_CODING_AGENT_DIR?.trim();if(b)return"~"===b?(0,d.homedir)():b.startsWith("~/")||b.startsWith("~\\")?(0,e.join)((0,d.homedir)(),b.slice(2)):b;return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(a=process.env){return(0,e.join)(f(a),"models.json")}function h(a=process.env){return(0,e.join)(f(a),"auth.json")}function i(a=process.env){return(0,e.join)(f(a),"settings.json")}function j(a,b=process.env){let c;return(0,e.join)(function(a=process.env){return(0,e.join)(f(a),"sessions")}(b),(c=a.replace(/\\/g,"/"),`--${c.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`))}},65107:(a,b,c)=>{"use strict";c.d(b,{$9:()=>j,R3:()=>i,ek:()=>h});var d=c(89477),e=c(86697),f=c(716);function g(a){return`${a}.leaf.json`}function h(a){let b=g(a);if(!(0,d.existsSync)(b))return null;try{let a=JSON.parse((0,d.readFileSync)(b,"utf8"));if(!a||"object"!=typeof a)return null;let c=a.leafId;return"string"==typeof c&&c?c:null}catch{return null}}function i(a,b){let c=g(a),h=(0,e.dirname)(c);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0});let i=JSON.stringify({version:1,leafId:b},null,2),j=(0,e.join)(h,`.leaf-${process.pid}-${(0,f.randomUUID)()}.tmp`);try{(0,d.writeFileSync)(j,i,{encoding:"utf8",flag:"wx"}),(0,d.renameSync)(j,c)}catch(a){try{(0,d.existsSync)(j)&&(0,d.unlinkSync)(j)}catch{}throw a}}function j(a){try{let b=g(a);(0,d.existsSync)(b)&&(0,d.unlinkSync)(b)}catch{}}},78335:()=>{},85664:(a,b,c)=>{"use strict";c.d(b,{PIDANCE_ACTIVITY_CUSTOM_TYPE:()=>d,iv:()=>l,normalizeActivityInput:()=>j,o7:()=>m,p_:()=>k,qF:()=>n});let d="pidance.activity",e=["result","warning","error","output"];class f extends Error{constructor(a){super(a),this.name="SessionActivityError"}}function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return Buffer.byteLength(a,"utf8")}function i(a,b,c){if(void 0===a)return;if("string"!=typeof a)throw new f(`${b} must be a string`);let d=a.trim();if(""!==d){if(d.length>c)throw new f(`${b} exceeds maximum length ${c}`);return d}}function j(a){var b;let c,d;if(!g(a))throw new f("activity must be a plain object");let j=void 0===a.version?1:a.version;if(1!==j)throw new f(`unsupported activity version: ${String(j)}`);if(!("string"==typeof(b=a.kind)&&e.includes(b)))throw new f(`kind must be one of: ${e.join(", ")}`);if("string"!=typeof a.title)throw new f("title must be a string");let k=a.title.trim();if(""===k)throw new f("title is required");if(k.length>200)throw new f("title exceeds maximum length 200");if("string"!=typeof a.content)throw new f("content must be a string");let l=a.content.trim();if(l.length>32768)throw new f("content exceeds maximum length 32768");let m=i(a.source,"source",200),n=i(a.requestId,"requestId",200);if(void 0!==a.metadata){if(!g(a.metadata))throw new f("metadata must be a plain object");let b=function a(b,c,d){if(null===b)return null;if("string"==typeof b){if(h(b)>1024)throw new f("metadata string exceeds 1024 bytes");return b}if("number"==typeof b){if(!Number.isFinite(b))throw new f("metadata number must be finite");return b}if("boolean"==typeof b)return b;if("bigint"==typeof b||"function"==typeof b||"symbol"==typeof b||void 0===b||"object"!=typeof b)throw new f("metadata contains non-JSON value");if(d.has(b))throw new f("metadata contains circular reference");if(c>3)throw new f("metadata exceeds max depth 3");if(Array.isArray(b)){if(b.length>32)throw new f("metadata array exceeds 32 items");d.add(b);try{return b.map(b=>a(b,c+1,d))}finally{d.delete(b)}}let e=Object.getPrototypeOf(b);if(e!==Object.prototype&&null!==e)throw new f("metadata must be a plain JSON object or array");let g=Object.keys(b);if(g.length>20)throw new f("metadata exceeds 20 keys");d.add(b);try{let e=Object.create(null);for(let i of g){if("__proto__"===i||"constructor"===i||"prototype"===i)throw new f("metadata key is not allowed");if(h(i)>64)throw new f("metadata key exceeds 64 bytes");e[i]=a(b[i],c+1,d)}return e}finally{d.delete(b)}}(a.metadata,0,new WeakSet);if(!g(b)||Array.isArray(b))throw new f("metadata must be a plain object");0===Object.keys(c=b).length&&(c=void 0)}let o={version:1,kind:a.kind,title:k,content:l};void 0!==m&&(o.source=m),void 0!==n&&(o.requestId=n),void 0!==c&&(o.metadata=c);try{d=JSON.stringify(o)}catch{throw new f("activity is not JSON-serializable")}if(h(d)>48e3)throw new f("activity exceeds maximum serialized size 48000 bytes");return o}function k(a){try{return j(a)}catch{return null}}function l(a,b){let c={role:"custom",customType:d,content:a.title,display:!0,details:a};return void 0!==b&&(c.timestamp=b),c}function m(a){return"custom"===a.type&&a.customType===d&&null!==k(a.data)}function n(a){if("customType"in a&&void 0!==a.customType)throw new f("customType is not allowed on append_activity");let b=a.activity;if(void 0!==b){if(!g(b))throw new f("activity must be a plain object");if("customType"in b&&void 0!==b.customType)throw new f("customType is not allowed on append_activity");return j(b)}let c={...a};return delete c.type,j(c)}},85741:(a,b,c)=>{"use strict";let d;c.d(b,{Uv:()=>J,jK:()=>H,O8:()=>C,DK:()=>F,mD:()=>x,BR:()=>D,dQ:()=>v,eP:()=>E,u1:()=>B,Zx:()=>G,os:()=>A});var e=c(29021),f=c(33873),g=c(15461),h=c(4984),i=c(79748),j=c(60396);function k(){return(0,f.join)((0,j.$M)(),"pidance-session-cache.json")}async function l(a){try{let b=await (0,i.stat)(a);return{path:a,mtimeMs:b.mtimeMs,size:b.size}}catch{return null}}async function m(a=(0,f.join)((0,j.$M)(),"sessions")){let b=[];try{b=(await (0,i.readdir)(a,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(b=>(0,f.join)(a,b.name))}catch{return[]}let c=[],d=[];for(let a of b)d.push((async()=>{try{for(let b of(await (0,i.readdir)(a)))b.endsWith(".jsonl")&&c.push((0,f.join)(a,b))}catch{}})());return await Promise.all(d),(await Promise.all(c.map(a=>l(a)))).filter(a=>null!==a)}let n=!1;function o(a){return"object"==typeof a&&null!==a&&"string"==typeof a.role&&"content"in a}async function p(a,b){try{let c,d,f=(0,h.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0}),g=null,i=0,j="";for await(let a of f){let b;if(!a.trim())continue;try{b=JSON.parse(a)}catch{continue}if(!g){if("session"!==b.type)return null;g=b;continue}if("session_info"===b.type){let a=b.name;"string"==typeof a&&a.trim()&&(c=a.trim());continue}if("message"!==b.type)continue;i++;let e=function(a){let b=a.message;if(!o(b)||"user"!==b.role&&"assistant"!==b.role)return;let c=b.timestamp;if("number"==typeof c)return c;let d=new Date(a.timestamp??"").getTime();return Number.isNaN(d)?void 0:d}(b);"number"==typeof e&&(d=Math.max(d??0,e));let f=b.message;if(!o(f)||"user"!==f.role&&"assistant"!==f.role)continue;let h=function(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!(a&&"text"===a.type&&"string"==typeof a.text)).map(a=>a.text).join(" "):""}(f);h&&(j||"user"!==f.role||(j=h))}if(!g)return null;let k="string"==typeof g.timestamp?new Date(g.timestamp).getTime():NaN,l=new Date("number"==typeof d&&d>0?d:Number.isNaN(k)?b.mtimeMs:k);return{id:"string"==typeof g.id?g.id:"",cwd:"string"==typeof g.cwd?g.cwd:"",name:c,created:g.timestamp,modified:l.toISOString(),messageCount:i,firstMessage:j||"(no messages)",parentSessionPath:"string"==typeof g.parentSession?g.parentSession:void 0}}catch{return null}}var q=c(85664),r=c(24923),s=c(50955),t=c(96967);async function u(){let a=await m(),b=function(a=k()){try{let b=(0,e.readFileSync)(a,"utf8"),c=JSON.parse(b);if(!c||1!==c.version||!c.sessions||"object"!=typeof c.sessions)return null;return{version:1,sessions:c.sessions,discovery:c.discovery&&"object"==typeof c.discovery?c.discovery:{}}}catch{return null}}(),c=new Map;if(b)for(let[a,d]of Object.entries(b.sessions))c.set(a,d);let g=a.filter(a=>{let b=c.get(a.path);return!b||b.m!==a.mtimeMs||b.s!==a.size}),h=g.length>0,i=new Map;for(let a of(await Promise.all(g.map(async a=>{let b=await p(a.path,a);b&&i.set(a.path,b)})),g)){let b=i.get(a.path);if(!b){c.delete(a.path);continue}c.set(a.path,{m:a.mtimeMs,s:a.size,i:b})}let j=new Set(a.map(a=>a.path)),l=0;for(let a of[...c.keys()])!j.has(a)&&(c.delete(a),l++);l>0&&(h=!0);let o=[...c.entries()].map(([a,b])=>({path:a,...b.i})).filter(a=>!!(a&&a.id)),q=new Map,t=new Map;for(let a of o){let b=(0,f.normalize)(a.path);q.has(b)||t.has(a.id)||(q.set(b,a.id),t.set(a.id,b))}let u=[...new Set(o.map(a=>a.cwd).filter(Boolean))],v=new Map;await Promise.all(u.map(async a=>{v.set(a,await (0,r.KI)(a))}));let w=new Set,x=new Set,y=o.sort((a,b)=>a.modified<b.modified?1:a.modified>b.modified?-1:0).flatMap(a=>{let b=(0,f.normalize)(a.path);if(w.has(b)||x.has(a.id))return[];w.add(b),x.add(a.id),C(a.id,a.path);let c=a.cwd?v.get(a.cwd):void 0;return[{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created,modified:a.modified,messageCount:a.messageCount,firstMessage:a.firstMessage||"(no messages)",parentSessionId:a.parentSessionPath?q.get((0,f.normalize)(a.parentSessionPath)):void 0,projectRoot:c?.projectRoot??a.cwd,...c?.isWorktree&&c.branch?{worktreeBranch:c.branch}:{}}]}),z=new Map(y.map(a=>[(0,f.normalize)(a.path),a])),A=new Map(y.map(a=>[a.id,a])),B=new Set,D=new Set,E=[],F=new Map;if(b)for(let[a,c]of Object.entries(b.discovery))F.set(a,c);let G=y.map(a=>({parent:a,depth:0}));for(;G.length&&D.size<256;){let a=G.shift();if(!(a.depth>=16))for(let b of function(a,b,c,d){try{let f=(0,e.statSync)(a),g=c.get(a);if(g&&g.m===f.mtimeMs&&g.s===f.size)return g.c;let h=d(a,b);return c.set(a,{m:f.mtimeMs,s:f.size,c:h}),h}catch{return c.delete(a),[]}}(a.parent.path,a.parent.id,F,(a,b)=>(h=!0,(0,s.ob)(a,b).map(a=>({path:a.path,id:a.header.id,cwd:a.header.cwd,timestamp:a.header.timestamp,parentSessionId:a.parentSessionId,runId:a.runId,runIndex:a.runIndex,...a.agent?{agent:a.agent}:{}}))))){let c=(0,f.normalize)(b.path);if(B.has(c)||D.has(b.id))continue;B.add(c),D.add(b.id);let d=z.get(c),e=A.get(b.id);if(d&&d.id!==b.id||e&&(0,f.normalize)(e.path)!==c)continue;let g=d??e;if(g){g.subagent={parentSessionId:b.parentSessionId,runId:b.runId,runIndex:b.runIndex,...b.agent?{agent:b.agent}:{}},g.readOnly=!0,G.push({parent:g,depth:a.depth+1});continue}w.has(c)||x.has(b.id)||(w.add(c),x.add(b.id),q.set(c,b.id),E.push({child:b}),G.push({parent:{path:b.path,id:b.id,cwd:b.cwd,created:b.timestamp,modified:b.timestamp,messageCount:0,firstMessage:"(no messages)",projectRoot:b.cwd},depth:a.depth+1}))}}let H=await Promise.all(E.map(async({child:a})=>{let b=await (0,r.KI)(a.cwd),c=a.timestamp;try{c=(0,e.statSync)(a.path).mtime.toISOString()}catch{}return C(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,created:a.timestamp,modified:c,messageCount:0,firstMessage:"(no messages)",projectRoot:b?.projectRoot??a.cwd,...b?.isWorktree&&b.branch?{worktreeBranch:b.branch}:{},subagent:{parentSessionId:a.parentSessionId,runId:a.runId,runIndex:a.runIndex,...a.agent?{agent:a.agent}:{}},readOnly:!0}}));return h&&function(a,b,c=k()){n=!0,d||(d=setTimeout(()=>{if(d=void 0,!n)return;n=!1;let f={version:1,sessions:Object.fromEntries(a),discovery:Object.fromEntries(b)},g=`${c}.tmp`;try{(0,e.writeFileSync)(g,JSON.stringify(f),"utf8"),(0,e.renameSync)(g,c)}catch{try{(0,e.existsSync)(g)&&(0,e.renameSync)(g,c)}catch{}}},1500))}(c,F),[...y,...H]}async function v(){let a=globalThis.__piSessionListGeneration??0;if(globalThis.__piSessionListCache&&Date.now()-globalThis.__piSessionListCache.ts<w)return globalThis.__piSessionListCache.data;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===a)return globalThis.__piSessionListPromise;let b=u().then(b=>((globalThis.__piSessionListGeneration??0)===a&&(globalThis.__piSessionListCache={data:b,ts:Date.now()}),b)).finally(()=>{globalThis.__piSessionListPromise===b&&(globalThis.__piSessionListPromise=void 0,globalThis.__piSessionListPromiseGeneration=void 0)});return globalThis.__piSessionListPromise=b,globalThis.__piSessionListPromiseGeneration=a,b}let w=3e4;function x(){globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0}function y(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function z(){return globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache}async function A(a){let b=y().get(a);return b||(await v(),y().get(a)??null)}async function B(a){let b=(0,f.normalize)(a),c=z().get(b);return c||(await v(),z().get(b))}function C(a,b){let c=(0,f.normalize)(b),d=y(),e=z(),g=d.get(a),h=e.get(c);g&&g!==c&&e.get(g)===a&&e.delete(g),h&&h!==a&&d.get(h)===c&&d.delete(h),d.set(a,c),e.set(c,a)}function D(a){let b=y(),c=z(),d=b.get(a);b.delete(a),d&&c.get(d)===a&&c.delete(d)}function E(a){let b=(0,e.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let f=Buffer.allocUnsafe(Math.min(4096,65536-c)),g=(0,e.readSync)(b,f,0,f.length,c);if(0===g)break;let h=f.subarray(0,g),i=h.indexOf(10);a.push(-1===i?h:h.subarray(0,i)),c+=g,d=-1!==i}if(!d&&c>=65536)return null;let f=Buffer.concat(a).toString("utf8").trimEnd();if(!f)return null;try{let a=JSON.parse(f);return"session"===a.type?a:null}catch{return null}}finally{(0,e.closeSync)(b)}}function F(a){return(0,t.zH)(a).getEntries()}function G(a){let b=a.liveSession;return b?.isAlive()&&b.inner?.sessionManager?b.inner.sessionManager:(a.openFromDisk??(a=>{let b=(0,t.zH)(a);return{getEntries:()=>b.getEntries(),getLeafId:()=>b.getLeafId(),getTree:()=>(function(a){let b=new Map,c=[];for(let c of a){if(!c?.id)continue;let a={id:c.id,type:c.type};if("message"===c.type&&"message"in c){let b=c.message;if(b&&"object"==typeof b.content&&null!==b.content){let c=Array.isArray(b.content)?b.content.filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>({type:"text",text:a.text})):b.content;a.message={role:b.role,content:c}}else a.message=b}b.set(c.id,{entry:a,children:[]})}for(let d of a){if(!d?.id)continue;let a=b.get(d.id);if("label"===d.type&&"string"==typeof d.label&&"string"==typeof d.targetId){let a=b.get(d.targetId);a&&(a.label=d.label)}let e=d.parentId;e&&b.has(e)?b.get(e).children.push(a):c.push(a)}return c})(b.getEntries()),getHeader:()=>b.getHeader(),getSessionName:()=>b.getSessionName()}}))(a.filePath)}function H(a,b={}){let c=a.getEntries(),d=function(a,b){if(null==b)return null;let c=new Map(a.map(a=>[a.id,a])),d=c.get(b);if(!d)return b;for(;d?.type==="label";){if(!d.parentId)return null;d=c.get(d.parentId)}return d?.id??null}(c,a.getLeafId()),e=function(a){let b=new Set,c=new Set(a),d=new Set,e=[...a];for(;e.length>0;){let a=e.pop();if(!d.has(a))for(let f of(d.add(a),(c.has(a)||1!==a.children.length||"string"==typeof a.label&&a.label.length>0)&&b.add(a),a.children))e.push(f)}let f=(a,b)=>({...a,children:[],...b?.length?{compressedEntryIds:b}:{}}),g=a.map(a=>f(a)),h=a.map((a,b)=>({source:a,projected:g[b],depth:1})),i=(a,c)=>{let d=[{node:a,compressedEntryIds:[]}],e=new Set;for(;d.length>0;){let{node:a,compressedEntryIds:g}=d.pop();if(!e.has(a)){e.add(a),b.has(a)&&c.children.push(f(a,g));for(let c=a.children.length-1;c>=0;c--)d.push({node:a.children[c],compressedEntryIds:b.has(a)?[]:[...g,a.entry.id]})}}};for(;h.length>0;){let{source:a,projected:c,depth:d}=h.pop();for(let e of a.children){let a=e;if(d>=200){i(a,c);continue}let g=[];for(;!b.has(a)&&1===a.children.length;)g.push(a.entry.id),a=a.children[0];if(!b.has(a))continue;let j=f(a,g);c.children.push(j),h.push({source:a,projected:j,depth:d+1})}}return g}(function(a){let b=[],c=[];for(let d=a.length-1;d>=0;d--)c.push({node:a[d],out:b});for(;c.length>0;){let{node:a,out:b}=c.pop();if("label"===a.entry.type){for(let d=a.children.length-1;d>=0;d--)c.push({node:a.children[d],out:b});continue}let d=[];for(let b=a.children.length-1;b>=0;b--)c.push({node:a.children[b],out:d});b.push({...a,children:d})}return b}(a.getTree())),f=J(c,d,b);return{entries:c,leafId:d,tree:e,context:f,header:a.getHeader(),sessionName:a.getSessionName()}}function I(a,b){if(null===b)return[];let c=new Map,d=null;for(let b of a)b?.id&&(c.set(b.id,b),d=b.id);let e=void 0!==b?b:d,f=[],g=new Set;for(;e&&!g.has(e);){g.add(e);let a=c.get(e);if(!a)break;f.unshift(a),e=a.parentId??null}return f}function J(a,b,c={}){let d=function(a){let b,c;for(let d of a)"thinking_level_change"===d.type&&"string"==typeof d.thinkingLevel&&(b=d.thinkingLevel),"model_change"===d.type&&d.provider&&d.modelId&&(c={provider:d.provider,modelId:d.modelId,id:d.modelId});return{thinkingLevel:b,model:c}}(I(a,b)),e=I(a,b),f=[],h=[];for(let a of e){let b=function(a,b){switch(a.type){case"message":{let c=function(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>(function(a){if(!("object"==typeof a&&null!==a&&!Array.isArray(a))||"toolCall"!==a.type)return null;let b={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};return Array.isArray(a.renderedCallLines)&&a.renderedCallLines.every(a=>"string"==typeof a)&&(b.renderedCallLines=[...a.renderedCallLines]),b})(a)??a);return{...a,content:c}}(a.message);if(b.deferToolResultImages&&(c=function(a){if("toolResult"!==a.role||!L(a.details))return a;let b=!1,c={};for(let[d,e]of Object.entries(a.details))if(d!==N){if(M.has(d)){b=!0;continue}c[d]=e}return b?{...a,details:{...c,[N]:!0}}:a}(c=function(a){if("toolResult"!==a.role)return a;let b=0,c=0,d=new Set,e=a.content.filter(a=>{let e=function(a){let b,c;if(!L(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):L(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);return!e||(b+=1,c+=e.bytes,e.mime&&d.add(e.mime),!1)});if(0===b)return a;let f=d.size>0?`: ${[...d].join(", ")}`:"";return e.push({type:"text",text:`[${b} tool result image${1===b?"":"s"} omitted from initial history payload${f}, ~${c} bytes]`}),{...a,content:e}}(c))),!b.deferThinking||"assistant"!==c.role)return c;return{...c,content:c.content.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:"",deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:K(a.timestamp)};case"branch_summary":if(!a.summary)return null;let c=a.usage;return{role:"custom",customType:"branch_summary",content:a.summary,display:!0,details:{fromId:a.fromId,details:a.details,usage:c,fromHook:a.fromHook},timestamp:K(a.timestamp)};case"custom_message":return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:K(a.timestamp)};case"custom":{if(a.customType===g.PIDANCE_COMMAND_CUSTOM_TYPE){let b=(0,g.f)(a.data);if(!b)return null;return{role:"custom",customType:g.PIDANCE_COMMAND_CUSTOM_TYPE,content:b.command,display:!0,details:{ok:b.ok,result:b.result},timestamp:K(a.timestamp)}}if(a.customType!==q.PIDANCE_ACTIVITY_CUSTOM_TYPE)return null;let b=(0,q.p_)(a.data);if(!b)return null;return(0,q.iv)(b,K(a.timestamp))}default:return null}}(a,c);b&&(f.push(b),h.push(a.id))}return{messages:f,entryIds:h,thinkingLevel:d.thinkingLevel??"off",model:d.model}}function K(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function L(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let M=new Set(["diff","patch","diffData","readSeekValue"]),N="deferredHeavy"},96487:()=>{},96967:(a,b,c)=>{"use strict";c.d(b,{aA:()=>i,xg:()=>m,zH:()=>n});var d=c(89477),e=c(86697),f=c(716),g=c(60396),h=c(65107);let i=3;function j(a){for(let b=0;b<100;b++){let b=(0,f.randomUUID)().replace(/-/g,"").slice(0,8);if(!a.has(b))return b}return(0,f.randomUUID)()}function k(){return(0,f.randomUUID)()}function l(a){let b=(0,d.readFileSync)(a,"utf8"),c=[];for(let a of b.split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{}return c}class m{constructor(a,b,c,e,f){if(this.fileEntries=[],this.byId=new Map,this.labelsById=new Map,this.labelTimestampsById=new Map,this.leafId=null,this.flushed=!1,this.cwd=a,this.sessionDir=b,this.sessionFile=c,this.persist=e,this.sessionId=k(),c&&(0,d.existsSync)(c)){this.fileEntries=f??l(c),this.flushed=!0,this._buildIndex();const a=this.fileEntries.find(a=>a&&"object"==typeof a&&"session"===a.type);a?.id&&(this.sessionId=a.id),a?.cwd&&(this.cwd=a.cwd)}else this.fileEntries=[],this.flushed=!1}static create(a,b){let c=b?(0,e.resolve)(b):(0,g.bm)(a);(0,d.mkdirSync)(c,{recursive:!0});let f=new m(a,c,void 0,!0);return f.newSession(),f}static open(a,b,c){let f,g=(0,e.resolve)(a),h=null;if((0,d.existsSync)(g)){let a=(f=l(g))[0];h=a?.type==="session"?a:null}return new m(c??h?.cwd??process.cwd(),b?(0,e.resolve)(b):(0,e.dirname)(g),g,!0,f)}newSession(a){let b=new Date().toISOString();this.sessionId=k();let c={type:"session",version:i,id:this.sessionId,timestamp:b,cwd:this.cwd,...a?.parentSession?{parentSession:a.parentSession}:{}};if(this.fileEntries=[c],this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.leafId=null,this.flushed=!1,this.persist){(0,d.mkdirSync)(this.sessionDir,{recursive:!0});let a=b.replace(/[:.]/g,"-");this.sessionFile=(0,e.join)(this.sessionDir,`${a}_${this.sessionId}.jsonl`)}return this.sessionFile}_buildIndex(){for(let a of(this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.leafId=null,this.fileEntries)){if(a&&"object"==typeof a){if("session"!==a.type&&"string"==typeof a.id&&(this.byId.set(a.id,a),this.leafId=a.id,"label"===a.type)){let b=a.targetId,c=a.label;b&&(c?(this.labelsById.set(b,c),a.timestamp&&this.labelTimestampsById.set(b,a.timestamp)):(this.labelsById.delete(b),this.labelTimestampsById.delete(b)))}}}}_rewriteFile(){if(!this.persist||!this.sessionFile)return;(0,d.mkdirSync)((0,e.dirname)(this.sessionFile),{recursive:!0});let a=(0,d.openSync)(this.sessionFile,"w");try{for(let b of this.fileEntries)(0,d.writeFileSync)(a,`${JSON.stringify(b)}
2
2
  `)}finally{(0,d.closeSync)(a)}}_persist(a){if(this.persist&&this.sessionFile){if(!this.fileEntries.some(a=>a&&"object"==typeof a&&"message"===a.type&&a.message?.role==="assistant"))return void(this.flushed?(0,d.appendFileSync)(this.sessionFile,`${JSON.stringify(a)}
3
3
  `):this.flushed=!1);if(this.flushed)(0,d.appendFileSync)(this.sessionFile,`${JSON.stringify(a)}
4
4
  `);else{try{let a=(0,d.openSync)(this.sessionFile,"wx");try{for(let b of this.fileEntries)(0,d.writeFileSync)(a,`${JSON.stringify(b)}
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=9883,exports.ids=[9883],exports.modules={2633:(a,b,c)=>{c.d(b,{aw:()=>j,dz:()=>k,o6:()=>i});var d=c(89477),e=c(86697),f=c(95398);let g=(0,e.join)("node_modules","@earendil-works","pi-coding-agent","dist","cli.js");function h(a){try{if(!(0,d.statSync)(a).isFile())return!1;return(0,d.accessSync)(a,d.constants.R_OK),!0}catch{return!1}}function i(a,b=5e3){try{let c=a.endsWith(".js")?(0,f.execFileSync)(process.execPath,[a,"--version"],{encoding:"utf8",timeout:b,env:process.env}):(0,f.execFileSync)(a,["--version"],{encoding:"utf8",timeout:b,env:process.env}),d=String(c).trim().split(/\r?\n/)[0]?.trim()??"",e=d.match(/(\d+\.\d+\.\d+(?:-[\w.]+)?)/);return e?.[1]??(d||null)}catch{return null}}function j(a=process.env){let b=a.PIDANCE_PI_RUNTIME?.trim();if(b){let a=(0,e.isAbsolute)(b)?b:(0,e.resolve)(b);if(h(a)||(0,d.existsSync)(a))return{path:a,source:"configured-path",version:i(a)}}{let b=a.HOME||"",c=a.PIDANCE_PI_RUNTIME_SLOTS_DIR?.trim()||(b?(0,e.join)(b,".pidance","runtimes","pi"):"");if(c){let a=(0,e.join)(c,"current");for(let b of[(0,e.join)(a,"bin","pi"),(0,e.join)(a,"pi"),(0,e.join)(a,"dist","cli.js"),(0,e.join)(a,"node_modules","@earendil-works","pi-coding-agent","dist","cli.js")])if(h(b)){let a=null;try{let c=(0,e.resolve)(b).match(/[/\\](\d+\.\d+\.\d+(?:-[\w.]+)?)[/\\]/);a=c?.[1]??null}catch{a=null}return{path:(0,e.resolve)(b),source:"configured-path",version:a??i(b)}}}}let c=function(a){for(let b of a.split(e.delimiter)){if(!b)continue;let a=(0,e.join)(b,"pi");if(h(a))return(0,e.resolve)(a)}return null}(a.PATH??"");if(c)return{path:c,source:"path",version:i(c)};if("1"===a.PIDANCE_PI_RUNTIME_FALLBACK_BUNDLED){let a=function(){let a=(0,e.resolve)(process.cwd());for(let b=0;b<12&&a!==(0,e.dirname)(a);b++){let b=(0,e.join)(a,g);if(h(b))return(0,e.resolve)(b);a=(0,e.dirname)(a)}return null}();if(a)return{path:a,source:"bundled-fallback",version:i(a)}}return{path:null,source:"none",version:null}}function k(a=process.env){return"inprocess"===(a.PIDANCE_AGENT_RUNTIME??"rpc").trim().toLowerCase()?"inprocess":"rpc"}},5815:(a,b,c)=>{c.d(b,{MG:()=>h,NK:()=>f,PI:()=>g});let d="__piRunningStartedAt";function e(){let a=globalThis;return d in a&&a[d]instanceof Map||(a[d]=new Map),a[d]}function f(a,b){e().set(a,b)}function g(a){e().delete(a)}function h(){return e()}},19883:(a,b,c)=>{c.d(b,{DQ:()=>H,C9:()=>I,Yz:()=>J,mB:()=>L});var d=c(29021),e=c(80547),f=c(60396),g=c(96967),h=c(65107),i=c(32892);function j(a){return`${JSON.stringify(a)}
2
- `}var k=c(2633),l=c(95398);class m{process(a){if(!a||"string"!=typeof a.type)return null;switch(a.type){case"message_start":{let b=o(a.message);return this.current=b,{...a,message:b??a.message}}case"message_update":{let b=a.assistantMessageEvent;if(a.message&&n(a.message))return this.current=o(a.message),{...a,message:this.current};return this.current||(this.current={role:"assistant",content:[]}),b&&function(a,b){let c="number"==typeof b.contentIndex?b.contentIndex:0;switch(b.type){case"text_start":p(a,c,"text").text="string"==typeof b.content?b.content:"";break;case"text_delta":{let d=p(a,c,"text");d.text=(d.text??"")+("string"==typeof b.delta?b.delta:"");break}case"text_end":{let d=p(a,c,"text");"string"==typeof b.content&&(d.text=b.content);break}case"thinking_start":p(a,c,"thinking").thinking="string"==typeof b.content?b.content:"";break;case"thinking_delta":{let d=p(a,c,"thinking");d.thinking=(d.thinking??"")+("string"==typeof b.delta?b.delta:"");break}case"thinking_end":{let d=p(a,c,"thinking");"string"==typeof b.content&&(d.thinking=b.content);break}case"toolcall_start":case"tool_call_start":{let d=p(a,c,"toolCall");"string"==typeof b.id&&(d.id=b.id),"string"==typeof b.name&&(d.name=b.name),void 0!==b.arguments&&(d.arguments=b.arguments);break}case"toolcall_delta":case"tool_call_delta":{let d=p(a,c,"toolCall");if("string"==typeof b.delta){let a="string"==typeof d.arguments?d.arguments:null!=d.arguments?JSON.stringify(d.arguments):"";d.arguments=a+b.delta}else void 0!==b.arguments&&(d.arguments=b.arguments);break}case"toolcall_end":case"tool_call_end":{let d=p(a,c,"toolCall");if("string"==typeof b.id&&(d.id=b.id),"string"==typeof b.name&&(d.name=b.name),void 0!==b.arguments&&(d.arguments=b.arguments),"string"==typeof b.content&&void 0===b.arguments)try{d.arguments=JSON.parse(b.content)}catch{d.arguments=b.content}break}default:if(b.partial&&n(b.partial))for(let[c,d]of(a.role=b.partial.role,a.content=b.partial.content.map(a=>({...a})),Object.entries(b.partial)))"role"!==c&&"content"!==c&&(a[c]=d)}}(this.current,b),{...a,message:o(this.current)}}case"message_end":{if(a.message&&n(a.message))return this.current=null,{...a,message:o(a.message)};let b=this.current?o(this.current):a.message;return this.current=null,{...a,message:b}}default:return a}}reset(){this.current=null}constructor(){this.current=null}}function n(a){return!!a&&"object"==typeof a&&"string"==typeof a.role&&Array.isArray(a.content)}function o(a){return n(a)?{...a,content:a.content.map(a=>({...a}))}:null}function p(a,b,c){for(;a.content.length<=b;)a.content.push({type:"text",text:""});let d=a.content[b];return d.type!==c&&(a.content[b]={...d,type:c}),a.content[b]}class q{constructor(a){this.options=a,this.process=null,this.detachReader=null,this.pending=new Map,this.requestId=0,this.eventListeners=new Set,this.exitListeners=new Set,this.assembler=new m,this.stderrBuf="",this.exitError=null,this._alive=!1,this.intentionalStop=!1,this.binaryPath=a.binaryPath,this.cwd=a.cwd,this.requestTimeoutMs=a.requestTimeoutMs??3e4,this.assembleMessages=!1!==a.assembleMessages}isAlive(){return this._alive&&null!=this.process&&null===this.process.exitCode}get stderr(){return this.stderrBuf.slice(-8e3)}onEvent(a){return this.eventListeners.add(a),()=>this.eventListeners.delete(a)}onExit(a){let b=b=>{a({...b,intentional:this.intentionalStop})};return this.exitListeners.add(b),()=>this.exitListeners.delete(b)}async start(){var a,b;let c,d,e,f,g;if(this.process)throw Error("PiRpcProcess already started");let h=this.buildArgs(),j=this.binaryPath.endsWith(".js"),k=j?process.execPath:this.binaryPath,m=j?[this.binaryPath,...h]:h,n=(0,l.spawn)(k,m,{cwd:this.cwd,env:{...process.env,...this.options.env},stdio:["pipe","pipe","pipe"],windowsHide:!0});this.process=n,this._alive=!0,this.detachReader=(a=n.stdout,b=a=>this.handleLine(a),c=new i.StringDecoder("utf8"),d="",e=a=>{b(a.endsWith("\r")?a.slice(0,-1):a)},f=a=>{for(d+="string"==typeof a?a:c.write(a);;){let a=d.indexOf("\n");if(-1===a)return;e(d.slice(0,a)),d=d.slice(a+1)}},g=()=>{(d+=c.end()).length>0&&(e(d),d="")},a.on("data",f),a.on("end",g),()=>{a.off("data",f),a.off("end",g)}),n.stderr.on("data",a=>{this.stderrBuf+="string"==typeof a?a:a.toString("utf8"),this.stderrBuf.length>32e3&&(this.stderrBuf=this.stderrBuf.slice(-16e3))}),n.on("error",a=>{this.exitError=a,this.rejectAll(a),this._alive=!1}),n.on("exit",(a,b)=>{let c=this.exitError??Error(`Agent process exited (code=${a} signal=${b}). Stderr: ${this.stderr}`);this.exitError=c,this.rejectAll(c),this._alive=!1,this.process=null;let d={code:a,signal:b,error:c};for(let a of this.exitListeners)try{a(d)}catch(a){console.error("[pidance] rpc exit listener error:",a)}})}buildArgs(){let a=["--mode","rpc"],{sessionFile:b,sessionDir:c,toolNames:d}=this.options;return c&&a.push("--session-dir",c),b&&a.push("--session",b),void 0!==d&&(0===d.length?a.push("--no-tools"):a.push("--tools",d.join(","))),a}handleLine(a){let b;if(!a.trim())return;try{b=JSON.parse(a)}catch{return}if("response"===b.type&&"string"==typeof b.id&&this.pending.has(b.id)){let a=this.pending.get(b.id);this.pending.delete(b.id),clearTimeout(a.timer),a.resolve(b);return}let c=b;if(this.assembleMessages){let a=this.assembler.process(c);if(null===a)return;c=a}for(let a of this.eventListeners)try{a(c)}catch(a){console.error("[pidance] rpc event listener error:",a)}}rejectAll(a){for(let b of this.pending.values())clearTimeout(b.timer),b.reject(a);this.pending.clear()}async send(a){let b=this.process,c=b?.stdin;if(!b||!c)throw Error("Client not started");if(this.exitError)throw this.exitError;if(null!==b.exitCode){let a=this.exitError??Error(`Agent process exited (code=${b.exitCode}). Stderr: ${this.stderr}`);throw this.exitError=a,a}if(c.destroyed||!c.writable)throw Error(`Agent process stdin is not writable. Stderr: ${this.stderr}`);let d=`req_${++this.requestId}`,e={...a,id:d};return new Promise((b,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Timeout waiting for response to ${a.type}. Stderr: ${this.stderr}`))},this.requestTimeoutMs);this.pending.set(d,{resolve:a=>{clearTimeout(g),b(a)},reject:a=>{clearTimeout(g),f(a)},timer:g});try{c.write(j(e))}catch(a){this.pending.delete(d),clearTimeout(g),f(a instanceof Error?a:Error(String(a)))}})}notify(a){let b=this.process,c=b?.stdin;if(!b||!c)throw Error("Client not started");if(this.exitError)throw this.exitError;if(null!==b.exitCode)throw this.exitError??Error(`Agent process exited (code=${b.exitCode}). Stderr: ${this.stderr}`);if(c.destroyed||!c.writable)throw Error(`Agent process stdin is not writable. Stderr: ${this.stderr}`);c.write(j(a))}async request(a){let b=await this.send(a);if(!b.success)throw Error(b.error??`RPC command failed: ${a.type}`);return b.data}async stop(a="SIGTERM"){this.intentionalStop=!0;let b=this.process;if(!b){this._alive=!1;return}if(this.detachReader?.(),this.detachReader=null,this.assembler.reset(),null!==b.exitCode){this.process=null,this._alive=!1;return}await new Promise(c=>{let d=setTimeout(()=>{try{b.kill("SIGKILL")}catch{}},3e3);b.once("exit",()=>{clearTimeout(d),c()});try{b.kill(a)}catch{clearTimeout(d),c()}}),this.process=null,this._alive=!1,this.rejectAll(Error("Process stopped"))}}var r=c(86697),s=c(5815),t=c(85664);async function u(a,b={}){if(!a?.isAlive())return;let c=b.settleMs??50,d=b.sleep??(a=>new Promise(b=>setTimeout(b,a)));try{await a.abort()}catch{}await d(c);try{await a.stop()}catch{}}function v(a,b){return{unsupported:!0,command:a,reason:b??`Pi RPC 不支持命令 ${a}(当前矩阵基线 0.83;不得伪造成功)`}}function w(a){return"number"==typeof a&&Number.isFinite(a)?a:null}class x{constructor(a){this.options=a,this.listeners=[],this.process=null,this.unsubscribeProcess=null,this.unsubscribeExit=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0,this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.pendingUiRequests=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.localQueue={steering:[],followUp:[]},this.hasQueueSnapshot=!1,this.realSessionId=a.sessionId,this.realSessionFile=a.sessionFile,this.idleTimeoutMs=a.idleTimeoutMs??6e5,this.activeToolNames=a.toolNames}get sessionId(){return this.realSessionId}get sessionFile(){return this.realSessionFile}isAlive(){return this._alive&&(this.process?.isAlive()??!1)}isRunning(){return this._alive&&(this.promptRunning||this.streaming||this.compacting||this.bashRunning)}onDestroy(a){this.onDestroyCallback=a}onEvent(a){return this.listeners.push(a),()=>{this.listeners=this.listeners.filter(b=>b!==a)}}beginExtensionBinding(){}async waitForExtensionsBound(){}emit(a){for(let b of this.listeners)try{b(a)}catch(a){console.error("[pidance] external session listener error:",a)}}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.destroy()},this.idleTimeoutMs)}notifyRunning(){this.options.onRunningChange?.()}emitLeafDriftIfAny(){if(this.realSessionFile)try{let a=(0,h.ek)(this.realSessionFile);if(!a)return;let b=(0,g.zH)(this.realSessionFile).getLastEntryId();b&&b!==a&&this.emit({type:"leaf_drift",expectedLeafId:a,actualLeafId:b})}catch{}}handleProcessEvent(a){switch(this.resetIdleTimer(),a.type){case"agent_start":this.streaming=!0,(0,s.NK)(this.realSessionId,Date.now()),this.notifyRunning();break;case"agent_end":this.streaming=!1,this.promptRunning=!1,(0,s.PI)(this.realSessionId),this.options.onSessionListInvalidate?.(),(0,h.$9)(this.realSessionFile),this.notifyRunning(),this.emit({type:"prompt_done"});break;case"agent_settled":this.streaming=!1,this.promptRunning=!1,this.notifyRunning();break;case"compaction_start":case"auto_compaction_start":this.compacting=!0,this.notifyRunning();break;case"compaction_end":case"auto_compaction_end":this.compacting=!1,this.options.onSessionListInvalidate?.(),this.notifyRunning();break;case"extension_ui_request":this.trackExtensionUiRequest(a);break;case"queue_update":{let b=Array.isArray(a.steering)?a.steering.filter(a=>"string"==typeof a):[],c=Array.isArray(a.followUp)?a.followUp.filter(a=>"string"==typeof a):[];this.localQueue={steering:b,followUp:c},this.hasQueueSnapshot=!0}}this.emit(a)}trackExtensionUiRequest(a){let b=a.method,c="string"==typeof a.id?a.id:null;if(b){if("setStatus"===b){let b="string"==typeof a.statusKey?a.statusKey:"string"==typeof a.key?a.key:"default",c="string"==typeof a.statusText?a.statusText:"string"==typeof a.text?a.text:"";c?this.extensionStatuses.set(b,c):this.extensionStatuses.delete(b);return}if("setWidget"===b){let b="string"==typeof a.widgetKey?a.widgetKey:"string"==typeof a.key?a.key:"default",c=Array.isArray(a.widgetLines)?a.widgetLines:a.content;null==c?this.extensionWidgets.delete(b):this.extensionWidgets.set(b,{lines:Array.isArray(c)?c.filter(a=>"string"==typeof a):[],placement:"belowEditor"===a.widgetPlacement?"belowEditor":"aboveEditor"});return}("select"===b||"confirm"===b||"input"===b||"editor"===b||"custom"===b)&&c&&this.pendingUiRequests.set(c,a)}}async start(){let a=(0,k.aw)();if(!a.path)throw Error("未找到外部 Pi runtime:请设置 PIDANCE_PI_RUNTIME 或将 pi 加入 PATH(调试可设 PIDANCE_PI_RUNTIME_FALLBACK_BUNDLED=1)");let b=this.realSessionFile?(0,r.dirname)(this.realSessionFile):void 0,c=new q({binaryPath:a.path,cwd:this.options.cwd,sessionFile:this.realSessionFile||void 0,sessionDir:b,toolNames:this.options.toolNames});await c.start(),this.process=c,this.unsubscribeProcess=c.onEvent(a=>this.handleProcessEvent(a)),this.unsubscribeExit=c.onExit(a=>{a.intentional||(this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this._alive=!1,this.process=null,this.emit({type:"runtime_lost",errorMessage:a.error.message,code:a.code,signal:a.signal}),this.emit({type:"prompt_done"}),this.options.onSessionListInvalidate?.(),this.notifyRunning(),this.onDestroyCallback?.())});try{let a=await c.request({type:"get_state"});a.sessionId&&(this.realSessionId=a.sessionId),a.sessionFile&&(this.realSessionFile=a.sessionFile,this.options.cacheSessionPath?.(this.realSessionId,this.realSessionFile)),this.streaming=!0===a.isStreaming,this.compacting=!0===a.isCompacting}catch(a){throw await c.stop().catch(()=>void 0),this.process=null,a}this.emitLeafDriftIfAny(),this.resetIdleTimer(),this.notifyRunning()}requireProcess(){if(!this.process?.isAlive())throw Error("External RPC session is not alive");return this.process}async quiesceForTreeWrite(){let a=this.process;await u(a?{isAlive:()=>a.isAlive(),abort:async()=>{await a.request({type:"abort"}).catch(()=>void 0)},stop:async()=>{await a.stop().catch(()=>void 0)}}:null),this.process=null,this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");let b=this.requireProcess();this.promptRunning=!0,this.notifyRunning();let c={type:"prompt",message:a.message};a.images&&(c.images=a.images),a.streamingBehavior&&(c.streamingBehavior=a.streamingBehavior);try{return await b.request(c),null}catch(b){this.promptRunning=!1,this.notifyRunning();let a=b instanceof Error?b.message:String(b);throw this.emit({type:"prompt_error",errorMessage:a}),this.emit({type:"prompt_done"}),b}}case"abort":{this.promptRunning=!1,this.notifyRunning();let a=this.process;return a?.isAlive()&&await a.request({type:"abort"}).catch(()=>void 0),this.streaming=!1,this.notifyRunning(),null}case"get_state":{let a=this.requireProcess(),b=await a.request({type:"get_state"}),c=null;try{c=await a.request({type:"get_session_stats"})}catch{c=null}return"string"==typeof b.sessionId&&b.sessionId&&(this.realSessionId=b.sessionId),"string"==typeof b.sessionFile&&b.sessionFile&&(this.realSessionFile=b.sessionFile,this.options.cacheSessionPath?.(this.realSessionId,this.realSessionFile)),this.streaming=!0===b.isStreaming||this.streaming,this.compacting=!0===b.isCompacting||this.compacting,function(a){let{rpc:b}=a,c="string"==typeof b.sessionId&&b.sessionId?b.sessionId:a.fallbackSessionId,d="string"==typeof b.sessionFile&&b.sessionFile?b.sessionFile:a.fallbackSessionFile,e="string"==typeof b.thinkingLevel&&b.thinkingLevel?b.thinkingLevel:"off",f={stateSources:{rpcGetState:!0,sessionStats:!!a.sessionStats,localQueue:void 0!==a.localQueue,localExtensionUi:!0},sessionId:c,sessionFile:d,sessionName:"string"==typeof b.sessionName?b.sessionName:void 0,isStreaming:!0===b.isStreaming||!0===a.localStreaming,isCompacting:!0===b.isCompacting||!0===a.localCompacting,isPromptRunning:a.isPromptRunning,isBashRunning:a.isBashRunning,autoCompactionEnabled:"boolean"==typeof b.autoCompactionEnabled?b.autoCompactionEnabled:void 0,steeringMode:"all"===b.steeringMode||"one-at-a-time"===b.steeringMode?b.steeringMode:void 0,followUpMode:"all"===b.followUpMode||"one-at-a-time"===b.followUpMode?b.followUpMode:void 0,thinkingLevel:e,model:function(a){if(a&&"object"==typeof a&&"string"==typeof a.id&&a.id&&"string"==typeof a.provider&&a.provider)return{id:a.id,provider:a.provider}}(b.model),messageCount:w(b.messageCount)??0,pendingMessageCount:w(b.pendingMessageCount)??0,extensionStatuses:a.extensionStatuses,extensionWidgets:a.extensionWidgets,pendingExtensionRequests:a.pendingExtensionRequests};a.localQueue&&(f.queuedMessages={steering:[...a.localQueue.steering],followUp:[...a.localQueue.followUp]});let g=function(a){if(!a||"object"!=typeof a)return;let b=a.contextUsage;if(!b||"object"!=typeof b)return;let c=w(b.contextWindow);if(null!==c&&!(c<=0))return{contextWindow:c,percent:w(b.percent),tokens:w(b.tokens)}}(a.sessionStats??void 0);return g&&(f.contextUsage=g),f}({rpc:b,fallbackSessionId:this.realSessionId,fallbackSessionFile:this.realSessionFile,isPromptRunning:this.promptRunning,isBashRunning:this.bashRunning,localStreaming:this.streaming,localCompacting:this.compacting,localQueue:this.hasQueueSnapshot?this.localQueue:void 0,extensionStatuses:Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionWidgets,([a,b])=>({key:a,content:b})),pendingExtensionRequests:Array.from(this.pendingUiRequests.values()),sessionStats:c})}case"set_model":{let b=this.requireProcess(),c=await b.request({type:"set_model",provider:a.provider,modelId:a.modelId});return this.options.onSessionListInvalidate?.(),c}case"set_thinking_level":{let b=this.requireProcess();return await b.request({type:"set_thinking_level",level:a.level}),this.options.onSessionListInvalidate?.(),null}case"compact":{let b=this.requireProcess();this.compacting=!0,this.notifyRunning();try{return await b.request({type:"compact",...a.customInstructions?{customInstructions:a.customInstructions}:{}})}finally{this.compacting=!1,this.options.onSessionListInvalidate?.(),this.notifyRunning()}}case"steer":{let b=this.requireProcess();return await b.request({type:"steer",message:a.message,...a.images?{images:a.images}:{}}),null}case"follow_up":{let b=this.requireProcess();return await b.request({type:"follow_up",message:a.message,...a.images?{images:a.images}:{}}),null}case"set_session_name":{let b=this.requireProcess(),c=a.name?.trim();if(!c)throw Error("Session name cannot be empty");return await b.request({type:"set_session_name",name:c}),this.options.onSessionListInvalidate?.(),null}case"set_auto_compaction":{let b=this.requireProcess();return await b.request({type:"set_auto_compaction",enabled:a.enabled}),null}case"set_auto_retry":{let b=this.requireProcess();return await b.request({type:"set_auto_retry",enabled:a.enabled}),null}case"clear_queue":return v("clear_queue","Pi 0.83 RPC 无 clear_queue;队列仅可通过 queue_update 观察");case"get_tools":return this.listConfiguredTools();case"set_tools":{let b=a.toolNames;return this.activeToolNames=Array.isArray(b)?b:void 0,this.options.toolNames=this.activeToolNames,await this.quiesceForTreeWrite(),this._alive=!0,await this.start(),null}case"get_commands":{let a=this.requireProcess();try{return await a.request({type:"get_commands"})}catch{return{commands:[]}}}case"get_session_stats":return this.requireProcess().request({type:"get_session_stats"});case"bash":{if(this.isRunning())throw Error("Cannot run a shell command while the session is busy");let b=this.requireProcess();this.bashRunning=!0,this.notifyRunning();try{return await b.request({type:"bash",command:a.command,...void 0!==a.excludeFromContext?{excludeFromContext:a.excludeFromContext}:{}})}finally{this.bashRunning=!1,this.options.onSessionListInvalidate?.(),this.notifyRunning()}}case"abort_bash":{let a=this.process;return a?.isAlive()&&await a.request({type:"abort_bash"}).catch(()=>void 0),this.bashRunning=!1,this.notifyRunning(),null}case"abort_compaction":return v("abort_compaction","Pi 0.83 RPC 无 abort_compaction");case"extension_ui_response":{let b=this.requireProcess(),c=a.id,d={type:"extension_ui_response",id:c};return void 0!==a.value&&(d.value=a.value),void 0!==a.confirmed&&(d.confirmed=a.confirmed),void 0!==a.cancelled&&(d.cancelled=a.cancelled),b.notify(d),c&&this.pendingUiRequests.delete(c),null}case"extension_ui_input":return v("extension_ui_input","Pi 0.83 RPC 仅支持 extension_ui_response,不支持 extension_ui_input");case"append_activity":return this.appendActivity(a);case"fork":{let b;if(this.bashRunning)throw Error("Cannot fork while a shell command is running");let c=a.entryId,d=this.realSessionFile;if(!d)throw Error("Persisted session is missing a session file");await this.quiesceForTreeWrite();let e=(0,g.zH)(d);if(!e.isPersisted())return this.destroy(),{cancelled:!0};let f=e.getEntry(c);if(!f)throw this.destroy(),Error("Invalid entry ID for forking");let h=e.getSessionDir();if(f.parentId){let a=(0,g.zH)(d,h).createBranchedSession(f.parentId);if(!a)throw this.destroy(),Error("Failed to create forked session");b=a}else{let a=g.xg.create(e.getCwd(),h);a.newSession({parentSession:d}),b=a.getSessionFile()}let i=(0,g.zH)(b,h).getSessionId();return this.options.cacheSessionPath?.(i,b),this.options.onSessionListInvalidate?.(),this.destroy(),{cancelled:!1,newSessionId:i}}case"navigate_tree":{if(this.bashRunning)throw Error("Cannot navigate while a shell command is running");let b=a.targetId;if(!b)throw Error("targetId is required");await this.quiesceForTreeWrite();let c=(0,g.zH)(this.realSessionFile);try{if(!c.getEntry(b))throw Error(`Entry ${b} not found`);return c.getLastEntryId()!==b?c.branch(b):(0,h.$9)(this.realSessionFile),this.options.onSessionListInvalidate?.(),{cancelled:!1}}finally{this.destroy()}}case"select_leaf_exact":{let b=a.entryId;if("string"!=typeof b||""===b.trim())throw Error("entryId is required");if(!this.options.navigationActions)throw Error("select_leaf_exact is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.selectLeafExact(this.sessionId,b.trim())}finally{this.destroy()}}case"branch_from_assistant":{let b=a.assistantEntryId;if("string"!=typeof b||""===b.trim())throw Error("assistantEntryId is required");if(!this.options.navigationActions)throw Error("branch_from_assistant is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.branchFromAssistant(this.sessionId,b.trim())}finally{this.destroy()}}case"create_session_from_leaf":{let b=a.entryId;if("string"!=typeof b||""===b.trim())throw Error("entryId is required");if(!this.options.navigationActions)throw Error("create_session_from_leaf is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.createSessionFromLeaf(this.sessionId,b.trim())}finally{this.destroy()}}case"set_branch_label":await this.quiesceForTreeWrite();try{let b=a.targetId,c=a.label,d=(0,g.zH)(this.realSessionFile).appendLabelChange(b,c);return this.options.onSessionListInvalidate?.(),{targetId:b,label:c??null,entryId:d}}finally{this.destroy()}case"reload":return await this.quiesceForTreeWrite(),this._alive=!0,await this.start(),{success:!0};case"flush_queue_as_steer":return v("flush_queue_as_steer","Pi 0.83 RPC 无 clear_queue,无法安全 flush 队列为 steer");case"get_last_assistant_text":{let a=this.requireProcess();try{return await a.request({type:"get_last_assistant_text"})}catch{return{text:""}}}default:throw Error(`Unsupported command on external RPC: ${b}`)}}listConfiguredTools(){return this.activeToolNames&&0===this.activeToolNames.length?{tools:[],source:"configured"}:{source:"configured",tools:(this.activeToolNames?[...this.activeToolNames]:["read","bash","edit","write","grep","find","ls"]).map(a=>({name:a,description:"",active:!0}))}}appendActivity(a){if(!this.realSessionFile)throw Error("Cannot append activity: session file missing");let b=a&&"object"==typeof a&&"type"in a&&"append_activity"===a.type?(0,t.qF)(a):(0,t.normalizeActivityInput)(a),c=(0,g.zH)(this.realSessionFile).appendCustomEntry(t.PIDANCE_ACTIVITY_CUSTOM_TYPE,b);return this.options.onSessionListInvalidate?.(),{entryId:c,activity:b}}destroy(){if(!this._alive&&!this.process)return;this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null,this.unsubscribeProcess?.(),this.unsubscribeProcess=null,this.unsubscribeExit?.(),this.unsubscribeExit=null;let a=this.process;this.process=null,a&&a.stop().catch(()=>void 0),this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.pendingUiRequests.clear(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),this.onDestroyCallback?.(),this.notifyRunning()}}c(26984),c(91166),c(39156);var y=c(85741);function z(){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 A(){let a=new Set;for(let[b,c]of z())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function B(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}let C="";async function D(a,b,c,d,e){let f=z(),g=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),h=f.get(a);if(h?.isAlive())return{session:h,realSessionId:a};let i=g.get(a);if(i)return i;let j=(async()=>{if("inprocess"===(0,k.dz)())throw Error("PIDANCE_AGENT_RUNTIME=inprocess 已移除;请使用默认外部 pi(rpc)或取消该环境变量");return E(a,b,c,d,e)})().finally(()=>g.delete(a));return g.set(a,j),j}async function E(a,b,c,d,e){let f=z(),g=new x({sessionId:a,sessionFile:b,cwd:c,toolNames:d,navigationActions:e,onRunningChange:()=>(function(){let a=A(),b=JSON.stringify([...a].sort());if(b!==C)for(let c of(C=b,B()))try{c(a)}catch{}})(),onSessionListInvalidate:()=>(0,y.mD)(),cacheSessionPath:(a,b)=>(0,y.O8)(a,b)});await g.start();let h=g.sessionId,i=g.sessionFile;return i&&(0,y.O8)(h,i),g.onDestroy(()=>f.delete(h)),f.set(h,g),g.beginExtensionBinding(),{session:g,realSessionId:h}}function F(a,b){let c=a.findIndex(a=>a.id===b);if(-1===c)return b;let d=b;for(let b=c+1;b<a.length;b+=1){let c=a[b];if("message"===c.type&&c.message?.role==="user")break;d=c.id}return d}var G=c(40239);let H="Subagent sessions are read-only";class I extends Error{constructor(){super(H)}toString(){return this.message}}async function J(a,b){if(await b(a))throw new I}let K={listAllSessions:y.dQ,resolveSessionPath:y.os,getRpcSession:function(a){return z().get(a)},startRpcSession:D,getRunningRpcSessionIds:A,subscribeRunningSessions:function(a){let b=B();return b.add(a),()=>{b.delete(a)}},allowFileRoot:e.wz,invalidateSessionListCache:y.mD,openSessionCwd:a=>(0,g.zH)(a).getHeader()?.cwd??process.cwd(),openSessionManager:a=>(0,y.Zx)({filePath:a}),existsSync:d.existsSync,now:()=>Date.now(),archiveFs:G.Iq},L=function(a={}){let b={...K,...a},d=(0,G.Ki)({fs:b.archiveFs,agentDir:b.archiveAgentDir,resolveSessionPath:b.resolveSessionPath,readSessionHeader:y.eP,isReadOnly:async a=>{let c=(await b.listAllSessions()).find(b=>b.id===a);return c?.readOnly===!0},isRunning:a=>b.getRunningRpcSessionIds().includes(a),getSessionInfo:async a=>(await b.listAllSessions()).find(b=>b.id===a)??null,invalidateSessionListCache:b.invalidateSessionListCache,now:()=>new Date(b.now()).toISOString()}),e=()=>(0,G.$T)(b.archiveFs??G.Iq,b.archiveAgentDir?.()??(0,f.$M)()),i={async listSessions(){let a=await b.listAllSessions(),{active:c,archived:d}=(0,G.uD)(a,e());return{sessions:c,archivedSessions:d,archivedCount:d.length,runningSessionIds:b.getRunningRpcSessionIds()}},async listArchivedSessions(){let a=await b.listAllSessions();return(0,G.uD)(a,e()).archived},async listActiveSessions(){let a=await b.listAllSessions();return(0,G.uD)(a,e()).active},listAllSessions:async()=>b.listAllSessions(),async isArchived(a){let c=await b.listAllSessions();return(0,G.YV)(c,e()).has(a)},archiveSession:async a=>d.archiveSession(a),restoreSession:async a=>d.restoreSession(a),archiveSessions:async a=>d.archiveSessions(a),restoreSessions:async a=>d.restoreSessions(a),removeArchiveRecordAfterPermanentDelete(a){(0,G.rQ)(b.archiveFs??G.Iq,b.archiveAgentDir?.()??(0,f.$M)(),a)},resolvePath:a=>b.resolveSessionPath(a),getSessionInfo:async a=>a&&"string"==typeof a?(await b.listAllSessions()).find(b=>b.id===a)??null:null,async isReadOnly(a){let c=(await b.listAllSessions()).find(b=>b.id===a);return c?.readOnly===!0},async getReadView(a){let c=await b.resolveSessionPath(a);if(!c)return null;let d=b.getRpcSession(a),e=d?.inner;return d?.isAlive()&&e?.sessionManager?{source:"live",filePath:c,manager:e.sessionManager}:{source:"disk",filePath:c,manager:b.openSessionManager(c)}},getLive(a){let c=b.getRpcSession(a);return c?.isAlive()?c:void 0},getLiveSession:a=>i.getLive(a),isLive:a=>!!i.getLive(a),async ensureLive(a){await J(a,i.isReadOnly);let c=i.getLive(a);if(c)return c;let d=await b.resolveSessionPath(a);if(!d)throw Error("Session not found");let e=b.openSessionCwd(d),{session:f}=await b.startRpcSession(a,d,e,void 0,j);return f},destroy(a){b.getRpcSession(a)?.destroy()},start:async(a,c,d,e)=>(await J(a,i.isReadOnly),b.startRpcSession(a,c,d,e,j)),send:async(a,b)=>(await i.ensureLive(a)).send(b),async appendActivity(a,d){await J(a,i.isReadOnly);let e=i.getLive(a),f=e?.appendActivity;if(e?.isAlive()&&"function"==typeof f)return f.call(e,d);e?.isAlive()&&i.destroy(a);let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let{normalizeActivityInput:j,PIDANCE_ACTIVITY_CUSTOM_TYPE:k}=await Promise.resolve().then(c.bind(c,85664)),l=j(d),m=(0,g.zH)(h).appendCustomEntry(k,l);return b.invalidateSessionListCache(),{entryId:m,activity:l}},async appendCommandEntry(a,d){await J(a,i.isReadOnly);let e=i.getLive(a);e?.isAlive()&&i.destroy(a);let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let{normalizeCommandEntryData:h,PIDANCE_COMMAND_CUSTOM_TYPE:j}=await Promise.resolve().then(c.bind(c,15461)),k=h(d);if(!k.command)throw Error("command is required");let l=(0,g.zH)(f).appendCustomEntry(j,k);return b.invalidateSessionListCache(),{entryId:l,data:k}},async createNew({cwd:a,command:c}){if(!a||"string"!=typeof a)throw Error("cwd is required");if(!b.existsSync(a))throw Error(`Directory does not exist: ${a}`);let{provider:d,modelId:e,toolNames:f,thinkingLevel:g,...h}=c,i=`__new__${b.now()}`,{session:k,realSessionId:l}=await b.startRpcSession(i,"",a,f,j);return(b.allowFileRoot(a),b.invalidateSessionListCache(),d&&e&&await k.send({type:"set_model",provider:d,modelId:e}),g&&await k.send({type:"set_thinking_level",level:g}),"ensure_session"===h.type)?{sessionId:l,data:null}:{sessionId:l,data:await k.send(h)}},getRunningIds:()=>b.getRunningRpcSessionIds(),subscribeRunning:a=>b.subscribeRunningSessions(a),async selectLeafExact(a,c){if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;if(!f?.sessionManager){let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let e=(0,g.zH)(c);if(d===e.getLeafId())return{cancelled:!1};if(d===e.getLastEntryId())return(0,h.$9)(c),{cancelled:!1};if(!e.getEntry(d))throw Error(`Entry ${d} not found`);try{return e.branch(d),{cancelled:!1}}finally{b.invalidateSessionListCache()}}if(f.isBashRunning)throw Error("Cannot switch branch while a shell command is running");let i=await b.resolveSessionPath(a);if(!i)throw Error("Session not found");b.getRpcSession(a)?.destroy();let j=(0,g.zH)(i);if(d===j.getLeafId())return{cancelled:!1};if(d===j.getLastEntryId())return(0,h.$9)(i),{cancelled:!1};if(!j.getEntry(d))throw Error(`Entry ${d} not found`);try{return j.branch(d),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async branchFromAssistant(a,c){if("string"!=typeof c||""===c.trim())throw Error("assistantEntryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;if(!f?.sessionManager){let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let e=(0,g.zH)(c),f=e.getLeafId();if(!f)throw Error("Session has no leaf");let h=e.getBranch(f),i=e.getEntry(d);if(!i)throw Error("Entry not found");if("message"!==i.type||i.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let j=F(h,d);try{return e.branch(j),{cancelled:!1}}finally{b.invalidateSessionListCache()}}if(f.isBashRunning)throw Error("Cannot branch while a shell command is running");let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");b.getRpcSession(a)?.destroy();let i=(0,g.zH)(h),j=i.getLeafId();if(!j)throw Error("Session has no leaf");let k=i.getBranch(j),l=i.getEntry(d);if(!l)throw Error("Entry not found");if("message"!==l.type||l.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let m=F(k,d);try{return i.branch(m),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async createSessionFromLeaf(a,c){var d,e;if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let f=c.trim(),h=b.getRpcSession(a),i=h?.inner,j=(i?.sessionFile||h?.sessionFile)??await b.resolveSessionPath(a);if(!j)throw Error("Session not found");let k=(0,g.zH)(j),l=k.getEntry(f);if(!l)throw Error("Invalid entry ID");let m=f;if("message"===l.type&&l.message?.role==="assistant"){let a=k.getLeafId();if(!a)throw Error("Session has no leaf");m=F(k.getBranch(a),f)}let n=k.getSessionDir(),o=(0,g.zH)(j,n).createBranchedSession(m);if(!o)throw Error("Failed to create session");let p=(0,g.zH)(o,n),q=p.getSessionId();(0,y.O8)(q,o),b.invalidateSessionListCache();let r=i?.model;return r&&(d=p.getEntries().some(a=>"model_change"===a.type),e={provider:r.provider,modelId:r.id},!d&&e)&&p.appendModelChange(r.provider,r.id),b.getRpcSession(a)?.destroy(),{cancelled:!1,newSessionId:q}}},j={selectLeafExact:(a,b)=>i.selectLeafExact(a,b),branchFromAssistant:(a,b)=>i.branchFromAssistant(a,b),createSessionFromLeaf:(a,b)=>i.createSessionFromLeaf(a,b)};return i}()},26984:(a,b,c)=>{c.d(b,{Z:()=>i});var d=c(89477),e=c(86697),f=c(2633),g=c(91166);function h(a){if(!a)return null;let b=a.match(/^(\d+)\.(\d+)\.(\d+)/);return b?{major:Number(b[1]),minor:Number(b[2]),patch:Number(b[3])}:null}function i(a=process.env,b=process.cwd()){let c,j,k,l=(0,f.dz)(a),m=function(a){try{let b=(0,d.readFileSync)(a,"utf8"),c=JSON.parse(b);return"string"==typeof c.version&&c.version.trim()?c.version.trim():null}catch{return null}}((0,e.join)(b,"package.json"))??a.NEXT_PUBLIC_APP_VERSION?.trim()??"0.0.0";if("rpc"===l){let b=(0,g.OS)(a);c=b?{path:b.path,source:"configured-path",version:b.version}:(0,f.aw)(a)}else c={path:null,source:"none",version:a.NEXT_PUBLIC_PI_VERSION?.trim()??null};let n=c.version,o=a.NEXT_PUBLIC_PI_VERSION?.trim()||n||null,p=[];"rpc"!==l||c.path||p.push("未解析到外部 Pi 二进制;设置 PIDANCE_PI_RUNTIME 或将 pi 加入 PATH"),"rpc"===l&&"bundled-fallback"===c.source&&p.push("当前使用 bundled fallback CLI,不是独立可升级引擎");let q=(0,g.jl)(a,n);return"available"===q.recommendation&&p.push(q.reason),{pidanceVersion:m,agentRuntimeMode:l,managementPiVersion:o,runtime:{path:"rpc"===l?c.path:null,version:n,source:"rpc"===l?c.source:"none",protocol:"rpc"===l?"rpc":"inprocess",compatible:function(a,b){if("inprocess"===a)return!0;if(!b.path)return!1;let c=h(b.version);return!!c&&(0!==c.major||!(c.minor<81))}(l,c)},capabilities:(k=!!(j=h(n))&&(j.major>0||0===j.major&&j.minor>=84),"inprocess"===l?{deltaOnlyMessageUpdate:!1,agentSettled:!1,bashExecutionUpdate:!1,extensionUi:!0,getEntries:!1,getTree:!1}:{deltaOnlyMessageUpdate:k,agentSettled:!0,bashExecutionUpdate:k,extensionUi:!0,getEntries:!0,getTree:!0}),upgrade:q,notes:p}}},39156:(a,b,c)=>{c.d(b,{$:()=>h});var d=c(89477),e=c(86697),f=c(91166),g=c(2633);function h(a,b=process.env){let c=(0,f.pF)(b);if(!c.allowExplicitUpgrade)return{ok:!1,error:"当前策略禁止显式切换 runtime(31415 默认关闭;设 PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE=1)",code:"forbidden"};if(!/^\d+\.\d+\.\d+(?:-[\w.]+)?$/.test(a))return{ok:!1,error:`非法版本号: ${a}`,code:"invalid_version"};let{slots:i}=(0,f.wJ)(c.slotsRoot),j=i.find(b=>b.version===a);if(!j)return{ok:!1,error:`slot 不存在: ${a}(根目录 ${c.slotsRoot})`,code:"not_found"};let k=(0,f.uZ)(j.path);if(!k)return{ok:!1,error:`slot ${a} 内未找到可执行 pi`,code:"no_binary"};let l=(0,g.o6)(k);if(!l)return{ok:!1,error:`slot ${a} 的 pi --version 失败`,code:"no_binary"};let m=(0,e.join)(c.slotsRoot,"current"),n=(0,e.join)(c.slotsRoot,`.current.tmp-${process.pid}`);try{(0,d.mkdirSync)(c.slotsRoot,{recursive:!0});try{(0,d.existsSync)(n)&&(0,d.unlinkSync)(n)}catch{}(0,d.symlinkSync)(j.path,n);try{if((0,d.existsSync)(m)||(0,d.lstatSync)(m).isSymbolicLink())try{(0,d.unlinkSync)(m)}catch{}}catch{}(0,d.renameSync)(n,m)}catch(a){try{(0,d.existsSync)(n)&&(0,d.unlinkSync)(n)}catch{}return{ok:!1,error:a instanceof Error?a.message:String(a),code:"io_error"}}return{ok:!0,version:a,path:(0,e.resolve)(j.path),binary:(0,e.resolve)(k),binaryVersion:l}}},40239:(a,b,c)=>{c.d(b,{$T:()=>m,Iq:()=>g,J3:()=>t,Ki:()=>u,YV:()=>q,mT:()=>r,rQ:()=>p,uD:()=>s});var d=c(29021),e=c(33873),f=c(60396);let g={existsSync:d.existsSync,lstatSync:d.lstatSync,mkdirSync:d.mkdirSync,readFileSync:(a,b)=>(0,d.readFileSync)(a,b),writeFileSync:(a,b,c)=>(0,d.writeFileSync)(a,b,c),renameSync:d.renameSync,unlinkSync:d.unlinkSync,readdirSync:d.readdirSync};function h(a=(0,f.$M)()){return(0,e.join)(a,"pidance-archive")}function i(a){return"string"!=typeof a||a.length<8||a.length>64||!/^[0-9a-fA-F][0-9a-fA-F-]{7,63}$/.test(a)?null:`${a}.json`}function j(a,b){try{let c=h(b);if(!a.existsSync(c))return null;let d=a.lstatSync(c);if(d.isSymbolicLink()||!d.isDirectory())return null;return c}catch{return null}}function k(a){return"object"==typeof a&&null!==a&&!(1!==a.version||"string"!=typeof a.sessionId||0===a.sessionId.length||"string"!=typeof a.sessionPath||0===a.sessionPath.length||"string"!=typeof a.archivedAt||Number.isNaN(Date.parse(a.archivedAt)))}function l(a,b,c){let d=i(c);if(!d)return null;let f=j(a,b);if(!f)return null;let g=(0,e.join)(f,d);try{if(!a.existsSync(g)||a.lstatSync(g).isSymbolicLink())return null;let b=a.readFileSync(g,"utf8");if(b.length>65536)return null;let d=JSON.parse(b);if(!k(d)||d.sessionId!==c)return null;return d}catch{return null}}function m(a,b){let c=globalThis.__piArchiveRecordsCache;if(c&&Date.now()-c.ts<5e3)return c.records;let d=j(a,b),e=[];if(d){let c=[];try{c=a.readdirSync(d)}catch{c=[]}for(let d of c){let c=function(a){if("string"!=typeof a||!a.endsWith(".json"))return null;let b=a.slice(0,-5);return b.length<8||b.length>64||!/^[0-9a-fA-F][0-9a-fA-F-]{7,63}$/.test(b)?null:b}(d);if(!c)continue;let f=l(a,b,c);f&&e.push(f)}}return globalThis.__piArchiveRecordsCache={records:e,ts:Date.now()},e}function n(){globalThis.__piArchiveRecordsCache=void 0}function o(a,b,c){let d=i(c);if(!d)return!1;let f=j(a,b);if(!f)return!1;let g=(0,e.join)(f,d);try{if(!a.existsSync(g))return!1;return a.unlinkSync(g),n(),!a.existsSync(g)}catch{return!1}}function p(a,b,c){o(a,b,c)}function q(a,b){let c=new Map;for(let a of b)c.set(a.sessionId,a);let d=new Set;for(let b of a){let a=c.get(b.id);a&&a.sessionPath===b.path&&d.add(b.id)}return d}function r(a,b,c,d){let e=q(b,c),f=new Set;for(let b of a){let a=e.has(b);("active"===d?!a:a)&&f.add(b)}return f}function s(a,b){let c=q(a,b),d=new Map;for(let a of b)d.set(a.sessionId,a);let e=[],f=[];for(let b of a)if(c.has(b.id)){let a=d.get(b.id);f.push({...b,archivedAt:a?a.archivedAt:void 0})}else e.push(b);return{active:e,archived:f}}class t extends Error{constructor(){super("Session is running; cannot archive while active")}toString(){return this.message}}function u(a){let b=a.fs??g,c=()=>a.agentDir?.()??(0,f.$M)(),d=async d=>{if(await a.isReadOnly(d))throw Error("Subagent sessions are read-only");if(a.isRunning(d))throw new t;let f=await a.resolveSessionPath(d);if(!f)throw Error("Session not found");let g=a.readSessionHeader(f);if(!g||g.id!==d)throw Error("Session header id mismatch");let j={version:1,sessionId:d,sessionPath:f,archivedAt:a.now()};return!function(a,b,c){let d=i(c.sessionId);if(!d)throw Error("Invalid session id");if(!k(c))throw Error("Invalid archive record");let f=function(a,b){let c=h(b);try{a.existsSync(c)||a.mkdirSync(c,{recursive:!0});let b=a.lstatSync(c);if(b.isSymbolicLink()||!b.isDirectory())return null;return c}catch{return null}}(a,b);if(!f)throw Error("Archive directory unavailable");let g=(0,e.join)(f,d),j=(0,e.join)(f,`.${d}.${process.pid}.${Date.now().toString(36)}.tmp`);try{a.writeFileSync(j,JSON.stringify(c),{encoding:"utf8",flag:"wx"}),a.renameSync(j,g),n()}catch(b){try{a.existsSync(j)&&a.unlinkSync(j)}catch{}throw b}}(b,c(),j),a.invalidateSessionListCache(),j.archivedAt},j=async d=>{if(null===l(b,c(),d))throw Error("Session is not archived");if(!await a.resolveSessionPath(d))throw Error("Session not found");if(!o(b,c(),d))throw Error("Failed to remove archive record");return a.invalidateSessionListCache(),a.getSessionInfo(d)},m=async a=>{let b=[],c=[];for(let e of a)try{await d(e),b.push(e)}catch(a){c.push({id:e,error:a instanceof Error?a.message:String(a)})}return{succeededIds:b,failed:c}},p=async a=>{let b=[],c=[];for(let d of a)try{await j(d),b.push(d)}catch(a){c.push({id:d,error:a instanceof Error?a.message:String(a)})}return{succeededIds:b,failed:c}};return{archiveSession:d,restoreSession:j,archiveSessions:m,restoreSessions:p}}},69835:(a,b,c)=>{c.d(b,{Lj:()=>j,Md:()=>i,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var d=c(29021),e=c(33873),f=c(55511),g=c(60396),h=c(80547);let i=0x1900000,j=0x6400000;function k(a=(0,g.$M)()){return(0,h.Nw)((0,e.join)(a,"pidance-attachments"))}function l(a=(0,g.$M)()){let b=k(a);return(0,d.existsSync)(b)||(0,d.mkdirSync)(b,{recursive:!0,mode:448}),(0,h.wz)(b),b}function m(a){let b=(a.replace(/\\/g,"/").split("/").pop()??"file").replace(/\0/g,"").replace(/^\.+/,"").trim()||"file";if(b.length<=180)return b;let c=b.lastIndexOf(".");if(c>0&&b.length-c<=20){let a=b.slice(c);return b.slice(0,180-a.length)+a}return b.slice(0,180)}function n(a,b,c=(0,g.$M)()){let i=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,f.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,e.join)(i,j);return(0,d.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,h.Nw)(k),name:m(a),storedName:j,size:b.length}}},80547:(a,b,c)=>{c.d(b,{A$:()=>p,Nw:()=>i.Nw,mc:()=>o,uK:()=>n,wz:()=>j.wz});var d=c(29021),e=c(21820),f=c(33873),g=c.n(f),h=c(60396),i=c(50593),j=c(25252),k=c(69835),l=c(85741);let m=/^[a-zA-Z]:[\\/]/;function n(a){return m.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function o(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,i.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,i.Nw)(c.projectRoot));return b}(await (0,l.dQ)());try{for(let a of(0,d.readdirSync)((0,e.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&c.add((0,i.Nw)(g().join((0,e.homedir)(),a)))}catch{}for(let a of(0,j.HM)())c.add(a);try{c.add((0,k.qo)((0,h.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:c,expiresAt:a+5e3},c}function p(a,b){for(let c of b){let b=n(a)||n(c),d=b?g().win32:g(),e=b?"\\":g().sep,f=d.resolve(a),h=d.resolve(c),i=b?f.toLowerCase():f,j=b?h.toLowerCase():h,k=j.endsWith(e)?j:j+e;if(i===j||i.startsWith(k))return!0}return!1}},91166:(a,b,c)=>{c.d(b,{OS:()=>l,jl:()=>j,pF:()=>h,uZ:()=>k,wJ:()=>i});var d=c(89477),e=c(62228),f=c(86697);let g=(0,f.join)(".pidance","runtimes","pi");function h(a=process.env){let b=31415===Number(a.PORT||a.PIDANCE_PORT||0),c="1"===a.PIDANCE_PI_RUNTIME_AUTO_UPGRADE&&!b,d="1"===a.PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE||!b&&"0"!==a.PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE,i=a.PIDANCE_PI_RUNTIME_SLOTS_DIR?.trim()||function(a=(0,e.homedir)()){return(0,f.join)(a,g)}(a.HOME||(0,e.homedir)());return{allowAutoUpgrade:c,allowExplicitUpgrade:d,slotsRoot:(0,f.resolve)(i)}}function i(a){if(!(0,d.existsSync)(a))return{slots:[],current:null};let b=null,c=(0,f.join)(a,"current");try{if((0,d.existsSync)(c)){let a=(0,d.lstatSync)(c);a.isSymbolicLink()?b=(0,d.realpathSync)(c):a.isDirectory()&&(b=(0,f.resolve)(c))}}catch{b=null}let e=[],g=[];try{g=(0,d.readdirSync)(a)}catch{return{slots:[],current:null}}for(let c of g){if("current"===c||c.startsWith(".")||!/^\d+\.\d+\.\d+(?:-[\w.]+)?$/.test(c))continue;let g=(0,f.join)(a,c);try{if(!(0,d.lstatSync)(g).isDirectory())continue}catch{continue}let h=(0,f.resolve)(g);e.push({version:c,path:h,isCurrent:null!==b&&h===b})}e.sort((a,b)=>a.version.localeCompare(b.version,void 0,{numeric:!0}));let h=e.find(a=>a.isCurrent)??null;return{slots:e,current:h}}function j(a=process.env,b=null){let c=h(a),{slots:d,current:e}=i(c.slotsRoot);if(!c.allowAutoUpgrade&&!c.allowExplicitUpgrade)return{policy:c,slots:d,current:e,recommendation:"blocked",reason:"当前端口/策略禁止 runtime 升级(31415 默认禁自动)"};if(0===d.length)return{policy:c,slots:d,current:e,recommendation:"none",reason:"无本地 runtime slot;可管理员显式安装到 slots 目录"};let f=d[d.length-1];return e&&f.version!==e.version?{policy:c,slots:d,current:e,recommendation:c.allowExplicitUpgrade?"available":"blocked",reason:`本地 slot 最新 ${f.version},current 为 ${e.version}`}:b&&f&&f.version!==b?{policy:c,slots:d,current:e,recommendation:c.allowExplicitUpgrade?"available":"blocked",reason:`slot 最新 ${f.version},当前运行时 ${b}`}:{policy:c,slots:d,current:e,recommendation:"none",reason:"current 已是本地最新 slot,或无可切换版本"}}function k(a){for(let b of[(0,f.join)(a,"bin","pi"),(0,f.join)(a,"pi"),(0,f.join)(a,"dist","cli.js"),(0,f.join)(a,"node_modules","@earendil-works","pi-coding-agent","dist","cli.js")])try{if((0,d.existsSync)(b))return(0,f.resolve)(b)}catch{}try{if((0,d.existsSync)(a)&&(0,d.lstatSync)(a).isSymbolicLink())return k((0,d.realpathSync)(a))}catch{}return null}function l(a=process.env){let{current:b}=i(h(a).slotsRoot);if(!b)return null;let c=k(b.path);return c?{path:c,version:b.version}:null}}};
2
+ `}var k=c(2633),l=c(95398);class m{process(a){if(!a||"string"!=typeof a.type)return null;switch(a.type){case"message_start":{let b=o(a.message);return this.current=b,{...a,message:b??a.message}}case"message_update":{let b=a.assistantMessageEvent;if(a.message&&n(a.message))return this.current=o(a.message),{...a,message:this.current};return this.current||(this.current={role:"assistant",content:[]}),b&&function(a,b){let c="number"==typeof b.contentIndex?b.contentIndex:0;switch(b.type){case"text_start":p(a,c,"text").text="string"==typeof b.content?b.content:"";break;case"text_delta":{let d=p(a,c,"text");d.text=(d.text??"")+("string"==typeof b.delta?b.delta:"");break}case"text_end":{let d=p(a,c,"text");"string"==typeof b.content&&(d.text=b.content);break}case"thinking_start":p(a,c,"thinking").thinking="string"==typeof b.content?b.content:"";break;case"thinking_delta":{let d=p(a,c,"thinking");d.thinking=(d.thinking??"")+("string"==typeof b.delta?b.delta:"");break}case"thinking_end":{let d=p(a,c,"thinking");"string"==typeof b.content&&(d.thinking=b.content);break}case"toolcall_start":case"tool_call_start":{let d=p(a,c,"toolCall");"string"==typeof b.id&&(d.id=b.id),"string"==typeof b.name&&(d.name=b.name),void 0!==b.arguments&&(d.arguments=b.arguments);break}case"toolcall_delta":case"tool_call_delta":{let d=p(a,c,"toolCall");if("string"==typeof b.delta){let a="string"==typeof d.arguments?d.arguments:null!=d.arguments?JSON.stringify(d.arguments):"";d.arguments=a+b.delta}else void 0!==b.arguments&&(d.arguments=b.arguments);break}case"toolcall_end":case"tool_call_end":{let d=p(a,c,"toolCall");if("string"==typeof b.id&&(d.id=b.id),"string"==typeof b.name&&(d.name=b.name),void 0!==b.arguments&&(d.arguments=b.arguments),"string"==typeof b.content&&void 0===b.arguments)try{d.arguments=JSON.parse(b.content)}catch{d.arguments=b.content}break}default:if(b.partial&&n(b.partial))for(let[c,d]of(a.role=b.partial.role,a.content=b.partial.content.map(a=>({...a})),Object.entries(b.partial)))"role"!==c&&"content"!==c&&(a[c]=d)}}(this.current,b),{...a,message:o(this.current)}}case"message_end":{if(a.message&&n(a.message))return this.current=null,{...a,message:o(a.message)};let b=this.current?o(this.current):a.message;return this.current=null,{...a,message:b}}default:return a}}reset(){this.current=null}constructor(){this.current=null}}function n(a){return!!a&&"object"==typeof a&&"string"==typeof a.role&&Array.isArray(a.content)}function o(a){return n(a)?{...a,content:a.content.map(a=>({...a}))}:null}function p(a,b,c){for(;a.content.length<=b;)a.content.push({type:"text",text:""});let d=a.content[b];return d.type!==c&&(a.content[b]={...d,type:c}),a.content[b]}class q{constructor(a){this.options=a,this.process=null,this.detachReader=null,this.pending=new Map,this.requestId=0,this.eventListeners=new Set,this.exitListeners=new Set,this.assembler=new m,this.stderrBuf="",this.exitError=null,this._alive=!1,this.intentionalStop=!1,this.binaryPath=a.binaryPath,this.cwd=a.cwd,this.requestTimeoutMs=a.requestTimeoutMs??3e4,this.assembleMessages=!1!==a.assembleMessages}isAlive(){return this._alive&&null!=this.process&&null===this.process.exitCode}get stderr(){return this.stderrBuf.slice(-8e3)}onEvent(a){return this.eventListeners.add(a),()=>this.eventListeners.delete(a)}onExit(a){let b=b=>{a({...b,intentional:this.intentionalStop})};return this.exitListeners.add(b),()=>this.exitListeners.delete(b)}async start(){var a,b;let c,d,e,f,g;if(this.process)throw Error("PiRpcProcess already started");let h=this.buildArgs(),j=this.binaryPath.endsWith(".js"),k=j?process.execPath:this.binaryPath,m=j?[this.binaryPath,...h]:h,n=(0,l.spawn)(k,m,{cwd:this.cwd,env:{...process.env,...this.options.env},stdio:["pipe","pipe","pipe"],windowsHide:!0});this.process=n,this._alive=!0,this.detachReader=(a=n.stdout,b=a=>this.handleLine(a),c=new i.StringDecoder("utf8"),d="",e=a=>{b(a.endsWith("\r")?a.slice(0,-1):a)},f=a=>{for(d+="string"==typeof a?a:c.write(a);;){let a=d.indexOf("\n");if(-1===a)return;e(d.slice(0,a)),d=d.slice(a+1)}},g=()=>{(d+=c.end()).length>0&&(e(d),d="")},a.on("data",f),a.on("end",g),()=>{a.off("data",f),a.off("end",g)}),n.stderr.on("data",a=>{this.stderrBuf+="string"==typeof a?a:a.toString("utf8"),this.stderrBuf.length>32e3&&(this.stderrBuf=this.stderrBuf.slice(-16e3))}),n.on("error",a=>{this.exitError=a,this.rejectAll(a),this._alive=!1}),n.on("exit",(a,b)=>{let c=this.exitError??Error(`Agent process exited (code=${a} signal=${b}). Stderr: ${this.stderr}`);this.exitError=c,this.rejectAll(c),this._alive=!1,this.process=null;let d={code:a,signal:b,error:c};for(let a of this.exitListeners)try{a(d)}catch(a){console.error("[pidance] rpc exit listener error:",a)}})}buildArgs(){let a=["--mode","rpc"],{sessionFile:b,sessionDir:c,toolNames:d}=this.options;return c&&a.push("--session-dir",c),b&&a.push("--session",b),void 0!==d&&(0===d.length?a.push("--no-tools"):a.push("--tools",d.join(","))),a}handleLine(a){let b;if(!a.trim())return;try{b=JSON.parse(a)}catch{return}if("response"===b.type&&"string"==typeof b.id&&this.pending.has(b.id)){let a=this.pending.get(b.id);this.pending.delete(b.id),clearTimeout(a.timer),a.resolve(b);return}let c=b;if(this.assembleMessages){let a=this.assembler.process(c);if(null===a)return;c=a}for(let a of this.eventListeners)try{a(c)}catch(a){console.error("[pidance] rpc event listener error:",a)}}rejectAll(a){for(let b of this.pending.values())clearTimeout(b.timer),b.reject(a);this.pending.clear()}async send(a){let b=this.process,c=b?.stdin;if(!b||!c)throw Error("Client not started");if(this.exitError)throw this.exitError;if(null!==b.exitCode){let a=this.exitError??Error(`Agent process exited (code=${b.exitCode}). Stderr: ${this.stderr}`);throw this.exitError=a,a}if(c.destroyed||!c.writable)throw Error(`Agent process stdin is not writable. Stderr: ${this.stderr}`);let d=`req_${++this.requestId}`,e={...a,id:d};return new Promise((b,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Timeout waiting for response to ${a.type}. Stderr: ${this.stderr}`))},this.requestTimeoutMs);this.pending.set(d,{resolve:a=>{clearTimeout(g),b(a)},reject:a=>{clearTimeout(g),f(a)},timer:g});try{c.write(j(e))}catch(a){this.pending.delete(d),clearTimeout(g),f(a instanceof Error?a:Error(String(a)))}})}notify(a){let b=this.process,c=b?.stdin;if(!b||!c)throw Error("Client not started");if(this.exitError)throw this.exitError;if(null!==b.exitCode)throw this.exitError??Error(`Agent process exited (code=${b.exitCode}). Stderr: ${this.stderr}`);if(c.destroyed||!c.writable)throw Error(`Agent process stdin is not writable. Stderr: ${this.stderr}`);c.write(j(a))}async request(a){let b=await this.send(a);if(!b.success)throw Error(b.error??`RPC command failed: ${a.type}`);return b.data}async stop(a="SIGTERM"){this.intentionalStop=!0;let b=this.process;if(!b){this._alive=!1;return}if(this.detachReader?.(),this.detachReader=null,this.assembler.reset(),null!==b.exitCode){this.process=null,this._alive=!1;return}await new Promise(c=>{let d=setTimeout(()=>{try{b.kill("SIGKILL")}catch{}},3e3);b.once("exit",()=>{clearTimeout(d),c()});try{b.kill(a)}catch{clearTimeout(d),c()}}),this.process=null,this._alive=!1,this.rejectAll(Error("Process stopped"))}}var r=c(86697),s=c(5815),t=c(85664);async function u(a,b={}){if(!a?.isAlive())return;let c=b.settleMs??50,d=b.sleep??(a=>new Promise(b=>setTimeout(b,a)));try{await a.abort()}catch{}await d(c);try{await a.stop()}catch{}}function v(a,b){return{unsupported:!0,command:a,reason:b??`Pi RPC 不支持命令 ${a}(当前矩阵基线 0.83;不得伪造成功)`}}function w(a){return"number"==typeof a&&Number.isFinite(a)?a:null}class x{constructor(a){this.options=a,this.listeners=[],this.process=null,this.unsubscribeProcess=null,this.unsubscribeExit=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0,this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.bashCommand=null,this.pendingUiRequests=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.localQueue={steering:[],followUp:[]},this.hasQueueSnapshot=!1,this.realSessionId=a.sessionId,this.realSessionFile=a.sessionFile,this.idleTimeoutMs=a.idleTimeoutMs??6e5,this.activeToolNames=a.toolNames}get sessionId(){return this.realSessionId}get sessionFile(){return this.realSessionFile}isAlive(){return this._alive&&(this.process?.isAlive()??!1)}isRunning(){return this._alive&&(this.promptRunning||this.streaming||this.compacting||this.bashRunning)}onDestroy(a){this.onDestroyCallback=a}onEvent(a){return this.listeners.push(a),()=>{this.listeners=this.listeners.filter(b=>b!==a)}}beginExtensionBinding(){}async waitForExtensionsBound(){}emit(a){for(let b of this.listeners)try{b(a)}catch(a){console.error("[pidance] external session listener error:",a)}}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.destroy()},this.idleTimeoutMs)}notifyRunning(){this.options.onRunningChange?.()}emitLeafDriftIfAny(){if(this.realSessionFile)try{let a=(0,h.ek)(this.realSessionFile);if(!a)return;let b=(0,g.zH)(this.realSessionFile).getLastEntryId();b&&b!==a&&this.emit({type:"leaf_drift",expectedLeafId:a,actualLeafId:b})}catch{}}handleProcessEvent(a){switch(this.resetIdleTimer(),a.type){case"agent_start":this.streaming=!0,(0,s.NK)(this.realSessionId,Date.now()),this.notifyRunning();break;case"agent_end":this.streaming=!1,this.promptRunning=!1,(0,s.PI)(this.realSessionId),this.options.onSessionListInvalidate?.(),(0,h.$9)(this.realSessionFile),this.notifyRunning(),this.emit({type:"prompt_done"});break;case"agent_settled":this.streaming=!1,this.promptRunning=!1,this.notifyRunning();break;case"compaction_start":case"auto_compaction_start":this.compacting=!0,this.notifyRunning();break;case"compaction_end":case"auto_compaction_end":this.compacting=!1,this.options.onSessionListInvalidate?.(),this.notifyRunning();break;case"extension_ui_request":this.trackExtensionUiRequest(a);break;case"queue_update":{let b=Array.isArray(a.steering)?a.steering.filter(a=>"string"==typeof a):[],c=Array.isArray(a.followUp)?a.followUp.filter(a=>"string"==typeof a):[];this.localQueue={steering:b,followUp:c},this.hasQueueSnapshot=!0}}this.emit(a)}trackExtensionUiRequest(a){let b=a.method,c="string"==typeof a.id?a.id:null;if(b){if("setStatus"===b){let b="string"==typeof a.statusKey?a.statusKey:"string"==typeof a.key?a.key:"default",c="string"==typeof a.statusText?a.statusText:"string"==typeof a.text?a.text:"";c?this.extensionStatuses.set(b,c):this.extensionStatuses.delete(b);return}if("setWidget"===b){let b="string"==typeof a.widgetKey?a.widgetKey:"string"==typeof a.key?a.key:"default",c=Array.isArray(a.widgetLines)?a.widgetLines:a.content;null==c?this.extensionWidgets.delete(b):this.extensionWidgets.set(b,{lines:Array.isArray(c)?c.filter(a=>"string"==typeof a):[],placement:"belowEditor"===a.widgetPlacement?"belowEditor":"aboveEditor"});return}("select"===b||"confirm"===b||"input"===b||"editor"===b||"custom"===b)&&c&&this.pendingUiRequests.set(c,a)}}async start(){let a=(0,k.aw)();if(!a.path)throw Error("未找到外部 Pi runtime:请设置 PIDANCE_PI_RUNTIME 或将 pi 加入 PATH(调试可设 PIDANCE_PI_RUNTIME_FALLBACK_BUNDLED=1)");let b=this.realSessionFile?(0,r.dirname)(this.realSessionFile):void 0,c=new q({binaryPath:a.path,cwd:this.options.cwd,sessionFile:this.realSessionFile||void 0,sessionDir:b,toolNames:this.options.toolNames});await c.start(),this.process=c,this.unsubscribeProcess=c.onEvent(a=>this.handleProcessEvent(a)),this.unsubscribeExit=c.onExit(a=>{a.intentional||(this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.bashCommand=null,this._alive=!1,this.process=null,this.emit({type:"runtime_lost",errorMessage:a.error.message,code:a.code,signal:a.signal}),this.emit({type:"prompt_done"}),this.options.onSessionListInvalidate?.(),this.notifyRunning(),this.onDestroyCallback?.())});try{let a=await c.request({type:"get_state"});a.sessionId&&(this.realSessionId=a.sessionId),a.sessionFile&&(this.realSessionFile=a.sessionFile,this.options.cacheSessionPath?.(this.realSessionId,this.realSessionFile)),this.streaming=!0===a.isStreaming,this.compacting=!0===a.isCompacting}catch(a){throw await c.stop().catch(()=>void 0),this.process=null,a}this.emitLeafDriftIfAny(),this.resetIdleTimer(),this.notifyRunning()}requireProcess(){if(!this.process?.isAlive())throw Error("External RPC session is not alive");return this.process}async quiesceForTreeWrite(){let a=this.process;await u(a?{isAlive:()=>a.isAlive(),abort:async()=>{await a.request({type:"abort"}).catch(()=>void 0)},stop:async()=>{await a.stop().catch(()=>void 0)}}:null),this.process=null,this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.bashCommand=null}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");let b=this.requireProcess();this.promptRunning=!0,this.notifyRunning();let c={type:"prompt",message:a.message};a.images&&(c.images=a.images),a.streamingBehavior&&(c.streamingBehavior=a.streamingBehavior);try{return await b.request(c),null}catch(b){this.promptRunning=!1,this.notifyRunning();let a=b instanceof Error?b.message:String(b);throw this.emit({type:"prompt_error",errorMessage:a}),this.emit({type:"prompt_done"}),b}}case"abort":{this.promptRunning=!1,this.notifyRunning();let a=this.process;return a?.isAlive()&&await a.request({type:"abort"}).catch(()=>void 0),this.streaming=!1,this.notifyRunning(),null}case"get_state":{let a=this.requireProcess(),b=await a.request({type:"get_state"}),c=null;try{c=await a.request({type:"get_session_stats"})}catch{c=null}return"string"==typeof b.sessionId&&b.sessionId&&(this.realSessionId=b.sessionId),"string"==typeof b.sessionFile&&b.sessionFile&&(this.realSessionFile=b.sessionFile,this.options.cacheSessionPath?.(this.realSessionId,this.realSessionFile)),this.streaming=!0===b.isStreaming||this.streaming,this.compacting=!0===b.isCompacting||this.compacting,function(a){let{rpc:b}=a,c="string"==typeof b.sessionId&&b.sessionId?b.sessionId:a.fallbackSessionId,d="string"==typeof b.sessionFile&&b.sessionFile?b.sessionFile:a.fallbackSessionFile,e="string"==typeof b.thinkingLevel&&b.thinkingLevel?b.thinkingLevel:"off",f={stateSources:{rpcGetState:!0,sessionStats:!!a.sessionStats,localQueue:void 0!==a.localQueue,localExtensionUi:!0},sessionId:c,sessionFile:d,sessionName:"string"==typeof b.sessionName?b.sessionName:void 0,isStreaming:!0===b.isStreaming||!0===a.localStreaming,isCompacting:!0===b.isCompacting||!0===a.localCompacting,isPromptRunning:a.isPromptRunning,isBashRunning:a.isBashRunning,pendingBash:a.pendingBash??null,autoCompactionEnabled:"boolean"==typeof b.autoCompactionEnabled?b.autoCompactionEnabled:void 0,steeringMode:"all"===b.steeringMode||"one-at-a-time"===b.steeringMode?b.steeringMode:void 0,followUpMode:"all"===b.followUpMode||"one-at-a-time"===b.followUpMode?b.followUpMode:void 0,thinkingLevel:e,model:function(a){if(a&&"object"==typeof a&&"string"==typeof a.id&&a.id&&"string"==typeof a.provider&&a.provider)return{id:a.id,provider:a.provider}}(b.model),messageCount:w(b.messageCount)??0,pendingMessageCount:w(b.pendingMessageCount)??0,extensionStatuses:a.extensionStatuses,extensionWidgets:a.extensionWidgets,pendingExtensionRequests:a.pendingExtensionRequests};a.localQueue&&(f.queuedMessages={steering:[...a.localQueue.steering],followUp:[...a.localQueue.followUp]});let g=function(a){if(!a||"object"!=typeof a)return;let b=a.contextUsage;if(!b||"object"!=typeof b)return;let c=w(b.contextWindow);if(null!==c&&!(c<=0))return{contextWindow:c,percent:w(b.percent),tokens:w(b.tokens)}}(a.sessionStats??void 0);return g&&(f.contextUsage=g),f}({rpc:b,fallbackSessionId:this.realSessionId,fallbackSessionFile:this.realSessionFile,isPromptRunning:this.promptRunning,isBashRunning:this.bashRunning,pendingBash:this.bashCommand,localStreaming:this.streaming,localCompacting:this.compacting,localQueue:this.hasQueueSnapshot?this.localQueue:void 0,extensionStatuses:Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionWidgets,([a,b])=>({key:a,content:b})),pendingExtensionRequests:Array.from(this.pendingUiRequests.values()),sessionStats:c})}case"set_model":{let b=this.requireProcess(),c=await b.request({type:"set_model",provider:a.provider,modelId:a.modelId});return this.options.onSessionListInvalidate?.(),c}case"set_thinking_level":{let b=this.requireProcess();return await b.request({type:"set_thinking_level",level:a.level}),this.options.onSessionListInvalidate?.(),null}case"compact":{let b=this.requireProcess();this.compacting=!0,this.notifyRunning();try{return await b.request({type:"compact",...a.customInstructions?{customInstructions:a.customInstructions}:{}})}finally{this.compacting=!1,this.options.onSessionListInvalidate?.(),this.notifyRunning()}}case"steer":{let b=this.requireProcess();return await b.request({type:"steer",message:a.message,...a.images?{images:a.images}:{}}),null}case"follow_up":{let b=this.requireProcess();return await b.request({type:"follow_up",message:a.message,...a.images?{images:a.images}:{}}),null}case"set_session_name":{let b=this.requireProcess(),c=a.name?.trim();if(!c)throw Error("Session name cannot be empty");return await b.request({type:"set_session_name",name:c}),this.options.onSessionListInvalidate?.(),null}case"set_auto_compaction":{let b=this.requireProcess();return await b.request({type:"set_auto_compaction",enabled:a.enabled}),null}case"set_auto_retry":{let b=this.requireProcess();return await b.request({type:"set_auto_retry",enabled:a.enabled}),null}case"clear_queue":return v("clear_queue","Pi 0.83 RPC 无 clear_queue;队列仅可通过 queue_update 观察");case"get_tools":return this.listConfiguredTools();case"set_tools":{let b=a.toolNames;return this.activeToolNames=Array.isArray(b)?b:void 0,this.options.toolNames=this.activeToolNames,await this.quiesceForTreeWrite(),this._alive=!0,await this.start(),null}case"get_commands":{let a=this.requireProcess();try{return await a.request({type:"get_commands"})}catch{return{commands:[]}}}case"get_session_stats":return this.requireProcess().request({type:"get_session_stats"});case"bash":{if(this.isRunning())throw Error("Cannot run a shell command while the session is busy");let b=this.requireProcess();this.bashRunning=!0,this.bashCommand={command:"string"==typeof a.command?a.command:String(a.command??""),excludeFromContext:!0===a.excludeFromContext},this.notifyRunning();try{return await b.request({type:"bash",command:a.command,...void 0!==a.excludeFromContext?{excludeFromContext:a.excludeFromContext}:{}})}finally{this.bashRunning=!1,this.bashCommand=null,this.options.onSessionListInvalidate?.(),this.notifyRunning()}}case"abort_bash":{let a=this.process;return a?.isAlive()&&await a.request({type:"abort_bash"}).catch(()=>void 0),this.bashRunning=!1,this.bashCommand=null,this.notifyRunning(),null}case"abort_compaction":return v("abort_compaction","Pi 0.83 RPC 无 abort_compaction");case"extension_ui_response":{let b=this.requireProcess(),c=a.id,d={type:"extension_ui_response",id:c};return void 0!==a.value&&(d.value=a.value),void 0!==a.confirmed&&(d.confirmed=a.confirmed),void 0!==a.cancelled&&(d.cancelled=a.cancelled),b.notify(d),c&&this.pendingUiRequests.delete(c),null}case"extension_ui_input":return v("extension_ui_input","Pi 0.83 RPC 仅支持 extension_ui_response,不支持 extension_ui_input");case"append_activity":return this.appendActivity(a);case"fork":{let b;if(this.bashRunning)throw Error("Cannot fork while a shell command is running");let c=a.entryId,d=this.realSessionFile;if(!d)throw Error("Persisted session is missing a session file");await this.quiesceForTreeWrite();let e=(0,g.zH)(d);if(!e.isPersisted())return this.destroy(),{cancelled:!0};let f=e.getEntry(c);if(!f)throw this.destroy(),Error("Invalid entry ID for forking");let h=e.getSessionDir();if(f.parentId){let a=(0,g.zH)(d,h).createBranchedSession(f.parentId);if(!a)throw this.destroy(),Error("Failed to create forked session");b=a}else{let a=g.xg.create(e.getCwd(),h);a.newSession({parentSession:d}),b=a.getSessionFile()}let i=(0,g.zH)(b,h).getSessionId();return this.options.cacheSessionPath?.(i,b),this.options.onSessionListInvalidate?.(),this.destroy(),{cancelled:!1,newSessionId:i}}case"navigate_tree":{if(this.bashRunning)throw Error("Cannot navigate while a shell command is running");let b=a.targetId;if(!b)throw Error("targetId is required");await this.quiesceForTreeWrite();let c=(0,g.zH)(this.realSessionFile);try{if(!c.getEntry(b))throw Error(`Entry ${b} not found`);return c.getLastEntryId()!==b?c.branch(b):(0,h.$9)(this.realSessionFile),this.options.onSessionListInvalidate?.(),{cancelled:!1}}finally{this.destroy()}}case"select_leaf_exact":{let b=a.entryId;if("string"!=typeof b||""===b.trim())throw Error("entryId is required");if(!this.options.navigationActions)throw Error("select_leaf_exact is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.selectLeafExact(this.sessionId,b.trim())}finally{this.destroy()}}case"branch_from_assistant":{let b=a.assistantEntryId;if("string"!=typeof b||""===b.trim())throw Error("assistantEntryId is required");if(!this.options.navigationActions)throw Error("branch_from_assistant is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.branchFromAssistant(this.sessionId,b.trim())}finally{this.destroy()}}case"create_session_from_leaf":{let b=a.entryId;if("string"!=typeof b||""===b.trim())throw Error("entryId is required");if(!this.options.navigationActions)throw Error("create_session_from_leaf is unavailable: navigation actions were not injected");await this.quiesceForTreeWrite();try{return await this.options.navigationActions.createSessionFromLeaf(this.sessionId,b.trim())}finally{this.destroy()}}case"set_branch_label":await this.quiesceForTreeWrite();try{let b=a.targetId,c=a.label,d=(0,g.zH)(this.realSessionFile).appendLabelChange(b,c);return this.options.onSessionListInvalidate?.(),{targetId:b,label:c??null,entryId:d}}finally{this.destroy()}case"reload":return await this.quiesceForTreeWrite(),this._alive=!0,await this.start(),{success:!0};case"flush_queue_as_steer":return v("flush_queue_as_steer","Pi 0.83 RPC 无 clear_queue,无法安全 flush 队列为 steer");case"get_last_assistant_text":{let a=this.requireProcess();try{return await a.request({type:"get_last_assistant_text"})}catch{return{text:""}}}default:throw Error(`Unsupported command on external RPC: ${b}`)}}listConfiguredTools(){return this.activeToolNames&&0===this.activeToolNames.length?{tools:[],source:"configured"}:{source:"configured",tools:(this.activeToolNames?[...this.activeToolNames]:["read","bash","edit","write","grep","find","ls"]).map(a=>({name:a,description:"",active:!0}))}}appendActivity(a){if(!this.realSessionFile)throw Error("Cannot append activity: session file missing");let b=a&&"object"==typeof a&&"type"in a&&"append_activity"===a.type?(0,t.qF)(a):(0,t.normalizeActivityInput)(a),c=(0,g.zH)(this.realSessionFile).appendCustomEntry(t.PIDANCE_ACTIVITY_CUSTOM_TYPE,b);return this.options.onSessionListInvalidate?.(),{entryId:c,activity:b}}destroy(){if(!this._alive&&!this.process)return;this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null,this.unsubscribeProcess?.(),this.unsubscribeProcess=null,this.unsubscribeExit?.(),this.unsubscribeExit=null;let a=this.process;this.process=null,a&&a.stop().catch(()=>void 0),this.promptRunning=!1,this.streaming=!1,this.compacting=!1,this.bashRunning=!1,this.pendingUiRequests.clear(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),this.onDestroyCallback?.(),this.notifyRunning()}}c(26984),c(91166),c(39156);var y=c(85741);function z(){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 A(){let a=new Set;for(let[b,c]of z())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function B(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}let C="";async function D(a,b,c,d,e){let f=z(),g=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),h=f.get(a);if(h?.isAlive())return{session:h,realSessionId:a};let i=g.get(a);if(i)return i;let j=(async()=>{if("inprocess"===(0,k.dz)())throw Error("PIDANCE_AGENT_RUNTIME=inprocess 已移除;请使用默认外部 pi(rpc)或取消该环境变量");return E(a,b,c,d,e)})().finally(()=>g.delete(a));return g.set(a,j),j}async function E(a,b,c,d,e){let f=z(),g=new x({sessionId:a,sessionFile:b,cwd:c,toolNames:d,navigationActions:e,onRunningChange:()=>(function(){let a=A(),b=JSON.stringify([...a].sort());if(b!==C)for(let c of(C=b,B()))try{c(a)}catch{}})(),onSessionListInvalidate:()=>(0,y.mD)(),cacheSessionPath:(a,b)=>(0,y.O8)(a,b)});await g.start();let h=g.sessionId,i=g.sessionFile;return i&&(0,y.O8)(h,i),g.onDestroy(()=>f.delete(h)),f.set(h,g),g.beginExtensionBinding(),{session:g,realSessionId:h}}function F(a,b){let c=a.findIndex(a=>a.id===b);if(-1===c)return b;let d=b;for(let b=c+1;b<a.length;b+=1){let c=a[b];if("message"===c.type&&c.message?.role==="user")break;d=c.id}return d}var G=c(40239);let H="Subagent sessions are read-only";class I extends Error{constructor(){super(H)}toString(){return this.message}}async function J(a,b){if(await b(a))throw new I}let K={listAllSessions:y.dQ,resolveSessionPath:y.os,getRpcSession:function(a){return z().get(a)},startRpcSession:D,getRunningRpcSessionIds:A,subscribeRunningSessions:function(a){let b=B();return b.add(a),()=>{b.delete(a)}},allowFileRoot:e.wz,invalidateSessionListCache:y.mD,openSessionCwd:a=>(0,g.zH)(a).getHeader()?.cwd??process.cwd(),openSessionManager:a=>(0,y.Zx)({filePath:a}),existsSync:d.existsSync,now:()=>Date.now(),archiveFs:G.Iq},L=function(a={}){let b={...K,...a},d=(0,G.Ki)({fs:b.archiveFs,agentDir:b.archiveAgentDir,resolveSessionPath:b.resolveSessionPath,readSessionHeader:y.eP,isReadOnly:async a=>{let c=(await b.listAllSessions()).find(b=>b.id===a);return c?.readOnly===!0},isRunning:a=>b.getRunningRpcSessionIds().includes(a),getSessionInfo:async a=>(await b.listAllSessions()).find(b=>b.id===a)??null,invalidateSessionListCache:b.invalidateSessionListCache,now:()=>new Date(b.now()).toISOString()}),e=()=>(0,G.$T)(b.archiveFs??G.Iq,b.archiveAgentDir?.()??(0,f.$M)()),i={async listSessions(){let a=await b.listAllSessions(),{active:c,archived:d}=(0,G.uD)(a,e());return{sessions:c,archivedSessions:d,archivedCount:d.length,runningSessionIds:b.getRunningRpcSessionIds()}},async listArchivedSessions(){let a=await b.listAllSessions();return(0,G.uD)(a,e()).archived},async listActiveSessions(){let a=await b.listAllSessions();return(0,G.uD)(a,e()).active},listAllSessions:async()=>b.listAllSessions(),async isArchived(a){let c=await b.listAllSessions();return(0,G.YV)(c,e()).has(a)},archiveSession:async a=>d.archiveSession(a),restoreSession:async a=>d.restoreSession(a),archiveSessions:async a=>d.archiveSessions(a),restoreSessions:async a=>d.restoreSessions(a),removeArchiveRecordAfterPermanentDelete(a){(0,G.rQ)(b.archiveFs??G.Iq,b.archiveAgentDir?.()??(0,f.$M)(),a)},resolvePath:a=>b.resolveSessionPath(a),getSessionInfo:async a=>a&&"string"==typeof a?(await b.listAllSessions()).find(b=>b.id===a)??null:null,async isReadOnly(a){let c=(await b.listAllSessions()).find(b=>b.id===a);return c?.readOnly===!0},async getReadView(a){let c=await b.resolveSessionPath(a);if(!c)return null;let d=b.getRpcSession(a),e=d?.inner;return d?.isAlive()&&e?.sessionManager?{source:"live",filePath:c,manager:e.sessionManager}:{source:"disk",filePath:c,manager:b.openSessionManager(c)}},getLive(a){let c=b.getRpcSession(a);return c?.isAlive()?c:void 0},getLiveSession:a=>i.getLive(a),isLive:a=>!!i.getLive(a),async ensureLive(a){await J(a,i.isReadOnly);let c=i.getLive(a);if(c)return c;let d=await b.resolveSessionPath(a);if(!d)throw Error("Session not found");let e=b.openSessionCwd(d),{session:f}=await b.startRpcSession(a,d,e,void 0,j);return f},destroy(a){b.getRpcSession(a)?.destroy()},start:async(a,c,d,e)=>(await J(a,i.isReadOnly),b.startRpcSession(a,c,d,e,j)),send:async(a,b)=>(await i.ensureLive(a)).send(b),async appendActivity(a,d){await J(a,i.isReadOnly);let e=i.getLive(a),f=e?.appendActivity;if(e?.isAlive()&&"function"==typeof f)return f.call(e,d);e?.isAlive()&&i.destroy(a);let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let{normalizeActivityInput:j,PIDANCE_ACTIVITY_CUSTOM_TYPE:k}=await Promise.resolve().then(c.bind(c,85664)),l=j(d),m=(0,g.zH)(h).appendCustomEntry(k,l);return b.invalidateSessionListCache(),{entryId:m,activity:l}},async appendCommandEntry(a,d){await J(a,i.isReadOnly);let e=i.getLive(a);e?.isAlive()&&i.destroy(a);let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let{normalizeCommandEntryData:h,PIDANCE_COMMAND_CUSTOM_TYPE:j}=await Promise.resolve().then(c.bind(c,15461)),k=h(d);if(!k.command)throw Error("command is required");let l=(0,g.zH)(f).appendCustomEntry(j,k);return b.invalidateSessionListCache(),{entryId:l,data:k}},async createNew({cwd:a,command:c}){if(!a||"string"!=typeof a)throw Error("cwd is required");if(!b.existsSync(a))throw Error(`Directory does not exist: ${a}`);let{provider:d,modelId:e,toolNames:f,thinkingLevel:g,...h}=c,i=`__new__${b.now()}`,{session:k,realSessionId:l}=await b.startRpcSession(i,"",a,f,j);return(b.allowFileRoot(a),b.invalidateSessionListCache(),d&&e&&await k.send({type:"set_model",provider:d,modelId:e}),g&&await k.send({type:"set_thinking_level",level:g}),"ensure_session"===h.type)?{sessionId:l,data:null}:{sessionId:l,data:await k.send(h)}},getRunningIds:()=>b.getRunningRpcSessionIds(),subscribeRunning:a=>b.subscribeRunningSessions(a),async selectLeafExact(a,c){if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;if(!f?.sessionManager){let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let e=(0,g.zH)(c);if(d===e.getLeafId())return{cancelled:!1};if(d===e.getLastEntryId())return(0,h.$9)(c),{cancelled:!1};if(!e.getEntry(d))throw Error(`Entry ${d} not found`);try{return e.branch(d),{cancelled:!1}}finally{b.invalidateSessionListCache()}}if(f.isBashRunning)throw Error("Cannot switch branch while a shell command is running");let i=await b.resolveSessionPath(a);if(!i)throw Error("Session not found");b.getRpcSession(a)?.destroy();let j=(0,g.zH)(i);if(d===j.getLeafId())return{cancelled:!1};if(d===j.getLastEntryId())return(0,h.$9)(i),{cancelled:!1};if(!j.getEntry(d))throw Error(`Entry ${d} not found`);try{return j.branch(d),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async branchFromAssistant(a,c){if("string"!=typeof c||""===c.trim())throw Error("assistantEntryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;if(!f?.sessionManager){let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let e=(0,g.zH)(c),f=e.getLeafId();if(!f)throw Error("Session has no leaf");let h=e.getBranch(f),i=e.getEntry(d);if(!i)throw Error("Entry not found");if("message"!==i.type||i.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let j=F(h,d);try{return e.branch(j),{cancelled:!1}}finally{b.invalidateSessionListCache()}}if(f.isBashRunning)throw Error("Cannot branch while a shell command is running");let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");b.getRpcSession(a)?.destroy();let i=(0,g.zH)(h),j=i.getLeafId();if(!j)throw Error("Session has no leaf");let k=i.getBranch(j),l=i.getEntry(d);if(!l)throw Error("Entry not found");if("message"!==l.type||l.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let m=F(k,d);try{return i.branch(m),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async createSessionFromLeaf(a,c){var d,e;if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let f=c.trim(),h=b.getRpcSession(a),i=h?.inner,j=(i?.sessionFile||h?.sessionFile)??await b.resolveSessionPath(a);if(!j)throw Error("Session not found");let k=(0,g.zH)(j),l=k.getEntry(f);if(!l)throw Error("Invalid entry ID");let m=f;if("message"===l.type&&l.message?.role==="assistant"){let a=k.getLeafId();if(!a)throw Error("Session has no leaf");m=F(k.getBranch(a),f)}let n=k.getSessionDir(),o=(0,g.zH)(j,n).createBranchedSession(m);if(!o)throw Error("Failed to create session");let p=(0,g.zH)(o,n),q=p.getSessionId();(0,y.O8)(q,o),b.invalidateSessionListCache();let r=i?.model;return r&&(d=p.getEntries().some(a=>"model_change"===a.type),e={provider:r.provider,modelId:r.id},!d&&e)&&p.appendModelChange(r.provider,r.id),b.getRpcSession(a)?.destroy(),{cancelled:!1,newSessionId:q}}},j={selectLeafExact:(a,b)=>i.selectLeafExact(a,b),branchFromAssistant:(a,b)=>i.branchFromAssistant(a,b),createSessionFromLeaf:(a,b)=>i.createSessionFromLeaf(a,b)};return i}()},26984:(a,b,c)=>{c.d(b,{Z:()=>i});var d=c(89477),e=c(86697),f=c(2633),g=c(91166);function h(a){if(!a)return null;let b=a.match(/^(\d+)\.(\d+)\.(\d+)/);return b?{major:Number(b[1]),minor:Number(b[2]),patch:Number(b[3])}:null}function i(a=process.env,b=process.cwd()){let c,j,k,l=(0,f.dz)(a),m=function(a){try{let b=(0,d.readFileSync)(a,"utf8"),c=JSON.parse(b);return"string"==typeof c.version&&c.version.trim()?c.version.trim():null}catch{return null}}((0,e.join)(b,"package.json"))??a.NEXT_PUBLIC_APP_VERSION?.trim()??"0.0.0";if("rpc"===l){let b=(0,g.OS)(a);c=b?{path:b.path,source:"configured-path",version:b.version}:(0,f.aw)(a)}else c={path:null,source:"none",version:a.NEXT_PUBLIC_PI_VERSION?.trim()??null};let n=c.version,o=a.NEXT_PUBLIC_PI_VERSION?.trim()||n||null,p=[];"rpc"!==l||c.path||p.push("未解析到外部 Pi 二进制;设置 PIDANCE_PI_RUNTIME 或将 pi 加入 PATH"),"rpc"===l&&"bundled-fallback"===c.source&&p.push("当前使用 bundled fallback CLI,不是独立可升级引擎");let q=(0,g.jl)(a,n);return"available"===q.recommendation&&p.push(q.reason),{pidanceVersion:m,agentRuntimeMode:l,managementPiVersion:o,runtime:{path:"rpc"===l?c.path:null,version:n,source:"rpc"===l?c.source:"none",protocol:"rpc"===l?"rpc":"inprocess",compatible:function(a,b){if("inprocess"===a)return!0;if(!b.path)return!1;let c=h(b.version);return!!c&&(0!==c.major||!(c.minor<81))}(l,c)},capabilities:(k=!!(j=h(n))&&(j.major>0||0===j.major&&j.minor>=84),"inprocess"===l?{deltaOnlyMessageUpdate:!1,agentSettled:!1,bashExecutionUpdate:!1,extensionUi:!0,getEntries:!1,getTree:!1}:{deltaOnlyMessageUpdate:k,agentSettled:!0,bashExecutionUpdate:k,extensionUi:!0,getEntries:!0,getTree:!0}),upgrade:q,notes:p}}},39156:(a,b,c)=>{c.d(b,{$:()=>h});var d=c(89477),e=c(86697),f=c(91166),g=c(2633);function h(a,b=process.env){let c=(0,f.pF)(b);if(!c.allowExplicitUpgrade)return{ok:!1,error:"当前策略禁止显式切换 runtime(31415 默认关闭;设 PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE=1)",code:"forbidden"};if(!/^\d+\.\d+\.\d+(?:-[\w.]+)?$/.test(a))return{ok:!1,error:`非法版本号: ${a}`,code:"invalid_version"};let{slots:i}=(0,f.wJ)(c.slotsRoot),j=i.find(b=>b.version===a);if(!j)return{ok:!1,error:`slot 不存在: ${a}(根目录 ${c.slotsRoot})`,code:"not_found"};let k=(0,f.uZ)(j.path);if(!k)return{ok:!1,error:`slot ${a} 内未找到可执行 pi`,code:"no_binary"};let l=(0,g.o6)(k);if(!l)return{ok:!1,error:`slot ${a} 的 pi --version 失败`,code:"no_binary"};let m=(0,e.join)(c.slotsRoot,"current"),n=(0,e.join)(c.slotsRoot,`.current.tmp-${process.pid}`);try{(0,d.mkdirSync)(c.slotsRoot,{recursive:!0});try{(0,d.existsSync)(n)&&(0,d.unlinkSync)(n)}catch{}(0,d.symlinkSync)(j.path,n);try{if((0,d.existsSync)(m)||(0,d.lstatSync)(m).isSymbolicLink())try{(0,d.unlinkSync)(m)}catch{}}catch{}(0,d.renameSync)(n,m)}catch(a){try{(0,d.existsSync)(n)&&(0,d.unlinkSync)(n)}catch{}return{ok:!1,error:a instanceof Error?a.message:String(a),code:"io_error"}}return{ok:!0,version:a,path:(0,e.resolve)(j.path),binary:(0,e.resolve)(k),binaryVersion:l}}},40239:(a,b,c)=>{c.d(b,{$T:()=>m,Iq:()=>g,J3:()=>t,Ki:()=>u,YV:()=>q,mT:()=>r,rQ:()=>p,uD:()=>s});var d=c(29021),e=c(33873),f=c(60396);let g={existsSync:d.existsSync,lstatSync:d.lstatSync,mkdirSync:d.mkdirSync,readFileSync:(a,b)=>(0,d.readFileSync)(a,b),writeFileSync:(a,b,c)=>(0,d.writeFileSync)(a,b,c),renameSync:d.renameSync,unlinkSync:d.unlinkSync,readdirSync:d.readdirSync};function h(a=(0,f.$M)()){return(0,e.join)(a,"pidance-archive")}function i(a){return"string"!=typeof a||a.length<8||a.length>64||!/^[0-9a-fA-F][0-9a-fA-F-]{7,63}$/.test(a)?null:`${a}.json`}function j(a,b){try{let c=h(b);if(!a.existsSync(c))return null;let d=a.lstatSync(c);if(d.isSymbolicLink()||!d.isDirectory())return null;return c}catch{return null}}function k(a){return"object"==typeof a&&null!==a&&!(1!==a.version||"string"!=typeof a.sessionId||0===a.sessionId.length||"string"!=typeof a.sessionPath||0===a.sessionPath.length||"string"!=typeof a.archivedAt||Number.isNaN(Date.parse(a.archivedAt)))}function l(a,b,c){let d=i(c);if(!d)return null;let f=j(a,b);if(!f)return null;let g=(0,e.join)(f,d);try{if(!a.existsSync(g)||a.lstatSync(g).isSymbolicLink())return null;let b=a.readFileSync(g,"utf8");if(b.length>65536)return null;let d=JSON.parse(b);if(!k(d)||d.sessionId!==c)return null;return d}catch{return null}}function m(a,b){let c=globalThis.__piArchiveRecordsCache;if(c&&Date.now()-c.ts<5e3)return c.records;let d=j(a,b),e=[];if(d){let c=[];try{c=a.readdirSync(d)}catch{c=[]}for(let d of c){let c=function(a){if("string"!=typeof a||!a.endsWith(".json"))return null;let b=a.slice(0,-5);return b.length<8||b.length>64||!/^[0-9a-fA-F][0-9a-fA-F-]{7,63}$/.test(b)?null:b}(d);if(!c)continue;let f=l(a,b,c);f&&e.push(f)}}return globalThis.__piArchiveRecordsCache={records:e,ts:Date.now()},e}function n(){globalThis.__piArchiveRecordsCache=void 0}function o(a,b,c){let d=i(c);if(!d)return!1;let f=j(a,b);if(!f)return!1;let g=(0,e.join)(f,d);try{if(!a.existsSync(g))return!1;return a.unlinkSync(g),n(),!a.existsSync(g)}catch{return!1}}function p(a,b,c){o(a,b,c)}function q(a,b){let c=new Map;for(let a of b)c.set(a.sessionId,a);let d=new Set;for(let b of a){let a=c.get(b.id);a&&a.sessionPath===b.path&&d.add(b.id)}return d}function r(a,b,c,d){let e=q(b,c),f=new Set;for(let b of a){let a=e.has(b);("active"===d?!a:a)&&f.add(b)}return f}function s(a,b){let c=q(a,b),d=new Map;for(let a of b)d.set(a.sessionId,a);let e=[],f=[];for(let b of a)if(c.has(b.id)){let a=d.get(b.id);f.push({...b,archivedAt:a?a.archivedAt:void 0})}else e.push(b);return{active:e,archived:f}}class t extends Error{constructor(){super("Session is running; cannot archive while active")}toString(){return this.message}}function u(a){let b=a.fs??g,c=()=>a.agentDir?.()??(0,f.$M)(),d=async d=>{if(await a.isReadOnly(d))throw Error("Subagent sessions are read-only");if(a.isRunning(d))throw new t;let f=await a.resolveSessionPath(d);if(!f)throw Error("Session not found");let g=a.readSessionHeader(f);if(!g||g.id!==d)throw Error("Session header id mismatch");let j={version:1,sessionId:d,sessionPath:f,archivedAt:a.now()};return!function(a,b,c){let d=i(c.sessionId);if(!d)throw Error("Invalid session id");if(!k(c))throw Error("Invalid archive record");let f=function(a,b){let c=h(b);try{a.existsSync(c)||a.mkdirSync(c,{recursive:!0});let b=a.lstatSync(c);if(b.isSymbolicLink()||!b.isDirectory())return null;return c}catch{return null}}(a,b);if(!f)throw Error("Archive directory unavailable");let g=(0,e.join)(f,d),j=(0,e.join)(f,`.${d}.${process.pid}.${Date.now().toString(36)}.tmp`);try{a.writeFileSync(j,JSON.stringify(c),{encoding:"utf8",flag:"wx"}),a.renameSync(j,g),n()}catch(b){try{a.existsSync(j)&&a.unlinkSync(j)}catch{}throw b}}(b,c(),j),a.invalidateSessionListCache(),j.archivedAt},j=async d=>{if(null===l(b,c(),d))throw Error("Session is not archived");if(!await a.resolveSessionPath(d))throw Error("Session not found");if(!o(b,c(),d))throw Error("Failed to remove archive record");return a.invalidateSessionListCache(),a.getSessionInfo(d)},m=async a=>{let b=[],c=[];for(let e of a)try{await d(e),b.push(e)}catch(a){c.push({id:e,error:a instanceof Error?a.message:String(a)})}return{succeededIds:b,failed:c}},p=async a=>{let b=[],c=[];for(let d of a)try{await j(d),b.push(d)}catch(a){c.push({id:d,error:a instanceof Error?a.message:String(a)})}return{succeededIds:b,failed:c}};return{archiveSession:d,restoreSession:j,archiveSessions:m,restoreSessions:p}}},69835:(a,b,c)=>{c.d(b,{Lj:()=>j,Md:()=>i,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var d=c(29021),e=c(33873),f=c(55511),g=c(60396),h=c(80547);let i=0x1900000,j=0x6400000;function k(a=(0,g.$M)()){return(0,h.Nw)((0,e.join)(a,"pidance-attachments"))}function l(a=(0,g.$M)()){let b=k(a);return(0,d.existsSync)(b)||(0,d.mkdirSync)(b,{recursive:!0,mode:448}),(0,h.wz)(b),b}function m(a){let b=(a.replace(/\\/g,"/").split("/").pop()??"file").replace(/\0/g,"").replace(/^\.+/,"").trim()||"file";if(b.length<=180)return b;let c=b.lastIndexOf(".");if(c>0&&b.length-c<=20){let a=b.slice(c);return b.slice(0,180-a.length)+a}return b.slice(0,180)}function n(a,b,c=(0,g.$M)()){let i=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,f.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,e.join)(i,j);return(0,d.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,h.Nw)(k),name:m(a),storedName:j,size:b.length}}},80547:(a,b,c)=>{c.d(b,{A$:()=>p,Nw:()=>i.Nw,mc:()=>o,uK:()=>n,wz:()=>j.wz});var d=c(29021),e=c(21820),f=c(33873),g=c.n(f),h=c(60396),i=c(50593),j=c(25252),k=c(69835),l=c(85741);let m=/^[a-zA-Z]:[\\/]/;function n(a){return m.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function o(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,i.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,i.Nw)(c.projectRoot));return b}(await (0,l.dQ)());try{for(let a of(0,d.readdirSync)((0,e.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&c.add((0,i.Nw)(g().join((0,e.homedir)(),a)))}catch{}for(let a of(0,j.HM)())c.add(a);try{c.add((0,k.qo)((0,h.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:c,expiresAt:a+5e3},c}function p(a,b){for(let c of b){let b=n(a)||n(c),d=b?g().win32:g(),e=b?"\\":g().sep,f=d.resolve(a),h=d.resolve(c),i=b?f.toLowerCase():f,j=b?h.toLowerCase():h,k=j.endsWith(e)?j:j+e;if(i===j||i.startsWith(k))return!0}return!1}},91166:(a,b,c)=>{c.d(b,{OS:()=>l,jl:()=>j,pF:()=>h,uZ:()=>k,wJ:()=>i});var d=c(89477),e=c(62228),f=c(86697);let g=(0,f.join)(".pidance","runtimes","pi");function h(a=process.env){let b=31415===Number(a.PORT||a.PIDANCE_PORT||0),c="1"===a.PIDANCE_PI_RUNTIME_AUTO_UPGRADE&&!b,d="1"===a.PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE||!b&&"0"!==a.PIDANCE_PI_RUNTIME_EXPLICIT_UPGRADE,i=a.PIDANCE_PI_RUNTIME_SLOTS_DIR?.trim()||function(a=(0,e.homedir)()){return(0,f.join)(a,g)}(a.HOME||(0,e.homedir)());return{allowAutoUpgrade:c,allowExplicitUpgrade:d,slotsRoot:(0,f.resolve)(i)}}function i(a){if(!(0,d.existsSync)(a))return{slots:[],current:null};let b=null,c=(0,f.join)(a,"current");try{if((0,d.existsSync)(c)){let a=(0,d.lstatSync)(c);a.isSymbolicLink()?b=(0,d.realpathSync)(c):a.isDirectory()&&(b=(0,f.resolve)(c))}}catch{b=null}let e=[],g=[];try{g=(0,d.readdirSync)(a)}catch{return{slots:[],current:null}}for(let c of g){if("current"===c||c.startsWith(".")||!/^\d+\.\d+\.\d+(?:-[\w.]+)?$/.test(c))continue;let g=(0,f.join)(a,c);try{if(!(0,d.lstatSync)(g).isDirectory())continue}catch{continue}let h=(0,f.resolve)(g);e.push({version:c,path:h,isCurrent:null!==b&&h===b})}e.sort((a,b)=>a.version.localeCompare(b.version,void 0,{numeric:!0}));let h=e.find(a=>a.isCurrent)??null;return{slots:e,current:h}}function j(a=process.env,b=null){let c=h(a),{slots:d,current:e}=i(c.slotsRoot);if(!c.allowAutoUpgrade&&!c.allowExplicitUpgrade)return{policy:c,slots:d,current:e,recommendation:"blocked",reason:"当前端口/策略禁止 runtime 升级(31415 默认禁自动)"};if(0===d.length)return{policy:c,slots:d,current:e,recommendation:"none",reason:"无本地 runtime slot;可管理员显式安装到 slots 目录"};let f=d[d.length-1];return e&&f.version!==e.version?{policy:c,slots:d,current:e,recommendation:c.allowExplicitUpgrade?"available":"blocked",reason:`本地 slot 最新 ${f.version},current 为 ${e.version}`}:b&&f&&f.version!==b?{policy:c,slots:d,current:e,recommendation:c.allowExplicitUpgrade?"available":"blocked",reason:`slot 最新 ${f.version},当前运行时 ${b}`}:{policy:c,slots:d,current:e,recommendation:"none",reason:"current 已是本地最新 slot,或无可切换版本"}}function k(a){for(let b of[(0,f.join)(a,"bin","pi"),(0,f.join)(a,"pi"),(0,f.join)(a,"dist","cli.js"),(0,f.join)(a,"node_modules","@earendil-works","pi-coding-agent","dist","cli.js")])try{if((0,d.existsSync)(b))return(0,f.resolve)(b)}catch{}try{if((0,d.existsSync)(a)&&(0,d.lstatSync)(a).isSymbolicLink())return k((0,d.realpathSync)(a))}catch{}return null}function l(a=process.env){let{current:b}=i(h(a).slotsRoot);if(!b)return null;let c=k(b.path);return c?{path:c,version:b.version}:null}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/M5hSQWk4seDK1NGMqmgGY/_buildManifest.js","static/M5hSQWk4seDK1NGMqmgGY/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-9f5e68be126b5e81.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-907785a527d8128b.js","static/chunks/main-app-06b2b50b226e40d1.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/K56UPG5G9tUpLw833PHK4/_buildManifest.js","static/K56UPG5G9tUpLw833PHK4/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-9f5e68be126b5e81.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-907785a527d8128b.js","static/chunks/main-app-06b2b50b226e40d1.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><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/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/edecf7d5ab33f0fd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9f5e68be126b5e81.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-907785a527d8128b.js" async=""></script><script src="/_next/static/chunks/main-app-06b2b50b226e40d1.js" async=""></script><script src="/_next/static/chunks/9780-509b4d1bec6b6e17.js" async=""></script><script src="/_next/static/chunks/app/layout-88764b4be2728d3f.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><title>Pidance</title><meta name="description" content="Open-source web client for the Pi coding agent"/><link rel="icon" href="/brand/pidance-logo.png"/><link rel="apple-touch-icon" href="/brand/pidance-logo.png"/><script>(function(){try{var r=document.documentElement,m=localStorage.getItem("pi-theme"),s=localStorage.getItem("pi-theme-style");if(m!=="light"&&m!=="dark"&&m!=="system")m="light";if(s!=="fusion"&&s!=="chamber")s="chamber";var d=m==="dark"||(m==="system"&&matchMedia("(prefers-color-scheme: dark)").matches);r.classList.toggle("dark",d);r.dataset.themeMode=m;r.dataset.themeStyle=s}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate" 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-9f5e68be126b5e81.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[99780,[\"9780\",\"static/chunks/9780-509b4d1bec6b6e17.js\",\"7177\",\"static/chunks/app/layout-88764b4be2728d3f.js\"],\"I18nProvider\"]\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/88714c00e109ce28.css\",\"style\"]\n:HL[\"/_next/static/css/edecf7d5ab33f0fd.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/88714c00e109ce28.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/edecf7d5ab33f0fd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement,m=localStorage.getItem(\\\"pi-theme\\\"),s=localStorage.getItem(\\\"pi-theme-style\\\");if(m!==\\\"light\\\"\u0026\u0026m!==\\\"dark\\\"\u0026\u0026m!==\\\"system\\\")m=\\\"light\\\";if(s!==\\\"fusion\\\"\u0026\u0026s!==\\\"chamber\\\")s=\\\"chamber\\\";var d=m===\\\"dark\\\"||(m===\\\"system\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);r.classList.toggle(\\\"dark\\\",d);r.dataset.themeMode=m;r.dataset.themeStyle=s}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"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\":\"M5hSQWk4seDK1NGMqmgGY\"}\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\":\"Pidance\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source web client for the Pi coding agent\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/brand/pidance-logo.png\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/brand/pidance-logo.png\"}],[\"$\",\"$Lf\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><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/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/edecf7d5ab33f0fd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9f5e68be126b5e81.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-907785a527d8128b.js" async=""></script><script src="/_next/static/chunks/main-app-06b2b50b226e40d1.js" async=""></script><script src="/_next/static/chunks/9780-509b4d1bec6b6e17.js" async=""></script><script src="/_next/static/chunks/app/layout-88764b4be2728d3f.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><title>Pidance</title><meta name="description" content="Open-source web client for the Pi coding agent"/><link rel="icon" href="/brand/pidance-logo.png"/><link rel="apple-touch-icon" href="/brand/pidance-logo.png"/><script>(function(){try{var r=document.documentElement,m=localStorage.getItem("pi-theme"),s=localStorage.getItem("pi-theme-style");if(m!=="light"&&m!=="dark"&&m!=="system")m="light";if(s!=="fusion"&&s!=="chamber")s="chamber";var d=m==="dark"||(m==="system"&&matchMedia("(prefers-color-scheme: dark)").matches);r.classList.toggle("dark",d);r.dataset.themeMode=m;r.dataset.themeStyle=s}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate" 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-9f5e68be126b5e81.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[99780,[\"9780\",\"static/chunks/9780-509b4d1bec6b6e17.js\",\"7177\",\"static/chunks/app/layout-88764b4be2728d3f.js\"],\"I18nProvider\"]\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/88714c00e109ce28.css\",\"style\"]\n:HL[\"/_next/static/css/edecf7d5ab33f0fd.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/88714c00e109ce28.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/edecf7d5ab33f0fd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement,m=localStorage.getItem(\\\"pi-theme\\\"),s=localStorage.getItem(\\\"pi-theme-style\\\");if(m!==\\\"light\\\"\u0026\u0026m!==\\\"dark\\\"\u0026\u0026m!==\\\"system\\\")m=\\\"light\\\";if(s!==\\\"fusion\\\"\u0026\u0026s!==\\\"chamber\\\")s=\\\"chamber\\\";var d=m===\\\"dark\\\"||(m===\\\"system\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);r.classList.toggle(\\\"dark\\\",d);r.dataset.themeMode=m;r.dataset.themeStyle=s}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"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\":\"K56UPG5G9tUpLw833PHK4\"}\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\":\"Pidance\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source web client for the Pi coding agent\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/brand/pidance-logo.png\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/brand/pidance-logo.png\"}],[\"$\",\"$Lf\",\"4\",{}]]\n"])</script></body></html>