@henlii/pidance 0.2.12 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +14 -14
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +4 -4
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/about/route.js +1 -1
- package/.next/server/app/api/attachments/route.js +1 -1
- package/.next/server/app/api/auth/ui-sessions/[id]/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-assets/route.js +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/update/apply/route.js +2 -2
- package/.next/server/app/api/update/check/route.js +2 -2
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +13 -13
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +14 -14
- package/.next/server/chunks/188.js +1 -1
- package/.next/server/chunks/329.js +1 -1
- package/.next/server/chunks/5304.js +2 -0
- package/.next/server/chunks/6192.js +2 -2
- package/.next/server/chunks/7594.js +2 -1
- package/.next/server/chunks/9874.js +1 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/9780-2ad03045668c179d.js +1 -0
- package/.next/static/chunks/app/page-cc285d9f0d74dd04.js +25 -0
- package/README.en.md +2 -2
- package/README.md +2 -2
- package/package.json +2 -2
- package/.next/static/chunks/9780-56542826d7f3fa4a.js +0 -1
- package/.next/static/chunks/app/page-6d9852f2f02a308b.js +0 -25
- /package/.next/static/{MVakkXp9Z6ytY57whIONN → iHxt-Xda8hRsmFHhXX43R}/_buildManifest.js +0 -0
- /package/.next/static/{MVakkXp9Z6ytY57whIONN → iHxt-Xda8hRsmFHhXX43R}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=329,exports.ids=[329],exports.modules={7635:(a,b,c)=>{"use strict";c.d(b,{JF:()=>l,OW:()=>p,Um:()=>q,gl:()=>m,jT:()=>o,uy:()=>n});var d=c(716),e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(62228);let j={existsSync:a=>f().existsSync(a),readFileSync:(a,b)=>f().readFileSync(a,b),writeFileSync:(a,b,c)=>f().writeFileSync(a,b,c),renameSync:(a,b)=>f().renameSync(a,b),mkdirSync:(a,b)=>{f().mkdirSync(a,b)}};function k(a){let b=a??process.env.PI_CODING_AGENT_DIR??h().join((0,i.homedir)(),".pi","agent");return h().join(b,"pidance-server.json")}function l(a,b){if(!a||!b||!b.salt||!b.hash)return!1;try{let c=Buffer.from(b.hash,"hex"),e=Buffer.from(b.salt,"hex");if(0===c.length||0===e.length)return!1;let f=(0,d.scryptSync)(a.normalize().trim(),e,c.length);return f.length===c.length&&(0,d.timingSafeEqual)(f,c)}catch{return!1}}function m(a){return!!a?.passwordHash}function n(a=k(),b=j){let c={passwordHash:null,remoteEnabled:!1,port:null};try{if(!b.existsSync(a))return c;let d=b.readFileSync(a,"utf8"),e=JSON.parse(d),f=e.passwordHash,g=f&&"object"==typeof f&&"string"==typeof f.salt&&"string"==typeof f.hash?{salt:f.salt,hash:f.hash}:null,h="number"==typeof e.port&&Number.isInteger(e.port)&&e.port>=1&&e.port<=65535?e.port:null;return{passwordHash:g,remoteEnabled:!0===e.remoteEnabled,port:h}}catch{return c}}function o(a,b=k(),c=j){c.mkdirSync(h().dirname(b),{recursive:!0});let d=`${b}.tmp-${process.pid}`;c.writeFileSync(d,JSON.stringify(a,null,2),{mode:384}),c.renameSync(d,b)}function p(a,b){return"string"==typeof a&&a.length>0||m(b)}function q(a,b,c){let e=a.passwordHash,f=!1,g="string"==typeof b.password&&b.password.length>0;if(g&&!0===b.clearPassword)return{error:"bad_request"};if(g){var h;let a,c;if(b.password.length<6)return{error:"password_too_short"};h=b.password,a=(0,d.randomBytes)(16),c=(0,d.scryptSync)(h.normalize().trim(),a,64),e={salt:a.toString("hex"),hash:c.toString("hex")},f=!0}else!0===b.clearPassword&&(e=null,f=null!==a.passwordHash);let i=b.remoteEnabled??a.remoteEnabled,j=a.port;if(void 0!==b.port)if(null===b.port)j=null;else{if(!("number"==typeof b.port&&Number.isInteger(b.port))||!(b.port>=1)||!(b.port<=65535))return{error:"port_invalid"};j=b.port}let k=p(c,{passwordHash:e,remoteEnabled:i,port:j});return i&&!k?{error:"remote_requires_password"}:{config:{passwordHash:e,remoteEnabled:i,port:j},changedPassword:f}}},24813:(a,b,c)=>{"use strict";c.d(b,{$k:()=>u,BE:()=>w,D6:()=>s,K6:()=>G,Lo:()=>t,NA:()=>p,Nq:()=>y,RH:()=>H,Rv:()=>j,TO:()=>K,YF:()=>A,Zw:()=>J,bS:()=>n,eI:()=>F,fV:()=>z,hx:()=>I,n2:()=>k,oQ:()=>v,uZ:()=>o,x7:()=>B});var d=c(716),e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(62228);let j="pidance_ui_session";function k(a){return a?
|
|
1
|
+
exports.id=329,exports.ids=[329],exports.modules={7635:(a,b,c)=>{"use strict";c.d(b,{JF:()=>l,OW:()=>p,Um:()=>q,gl:()=>m,jT:()=>o,uy:()=>n});var d=c(716),e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(62228);let j={existsSync:a=>f().existsSync(a),readFileSync:(a,b)=>f().readFileSync(a,b),writeFileSync:(a,b,c)=>f().writeFileSync(a,b,c),renameSync:(a,b)=>f().renameSync(a,b),mkdirSync:(a,b)=>{f().mkdirSync(a,b)}};function k(a){let b=a??process.env.PI_CODING_AGENT_DIR??h().join((0,i.homedir)(),".pi","agent");return h().join(b,"pidance-server.json")}function l(a,b){if(!a||!b||!b.salt||!b.hash)return!1;try{let c=Buffer.from(b.hash,"hex"),e=Buffer.from(b.salt,"hex");if(0===c.length||0===e.length)return!1;let f=(0,d.scryptSync)(a.normalize().trim(),e,c.length);return f.length===c.length&&(0,d.timingSafeEqual)(f,c)}catch{return!1}}function m(a){return!!a?.passwordHash}function n(a=k(),b=j){let c={passwordHash:null,remoteEnabled:!1,port:null};try{if(!b.existsSync(a))return c;let d=b.readFileSync(a,"utf8"),e=JSON.parse(d),f=e.passwordHash,g=f&&"object"==typeof f&&"string"==typeof f.salt&&"string"==typeof f.hash?{salt:f.salt,hash:f.hash}:null,h="number"==typeof e.port&&Number.isInteger(e.port)&&e.port>=1&&e.port<=65535?e.port:null;return{passwordHash:g,remoteEnabled:!0===e.remoteEnabled,port:h}}catch{return c}}function o(a,b=k(),c=j){c.mkdirSync(h().dirname(b),{recursive:!0});let d=`${b}.tmp-${process.pid}`;c.writeFileSync(d,JSON.stringify(a,null,2),{mode:384}),c.renameSync(d,b)}function p(a,b){return"string"==typeof a&&a.length>0||m(b)}function q(a,b,c){let e=a.passwordHash,f=!1,g="string"==typeof b.password&&b.password.length>0;if(g&&!0===b.clearPassword)return{error:"bad_request"};if(g){var h;let a,c;if(b.password.length<6)return{error:"password_too_short"};h=b.password,a=(0,d.randomBytes)(16),c=(0,d.scryptSync)(h.normalize().trim(),a,64),e={salt:a.toString("hex"),hash:c.toString("hex")},f=!0}else!0===b.clearPassword&&(e=null,f=null!==a.passwordHash);let i=b.remoteEnabled??a.remoteEnabled,j=a.port;if(void 0!==b.port)if(null===b.port)j=null;else{if(!("number"==typeof b.port&&Number.isInteger(b.port))||!(b.port>=1)||!(b.port<=65535))return{error:"port_invalid"};j=b.port}let k=p(c,{passwordHash:e,remoteEnabled:i,port:j});return i&&!k?{error:"remote_requires_password"}:{config:{passwordHash:e,remoteEnabled:i,port:j},changedPassword:f}}},24813:(a,b,c)=>{"use strict";c.d(b,{$k:()=>u,BE:()=>w,D6:()=>s,K6:()=>G,Lo:()=>t,NA:()=>p,Nq:()=>y,RH:()=>H,Rv:()=>j,TO:()=>K,YF:()=>A,Zw:()=>J,bS:()=>n,eI:()=>F,fV:()=>z,hx:()=>I,n2:()=>k,oQ:()=>v,uZ:()=>o,x7:()=>B});var d=c(716),e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(62228);let j="pidance_ui_session";function k(a){return a?31536e7:432e5}function l(a){return("string"==typeof a?Buffer.from(a,"utf8"):a).toString("base64url")}function m(a){return l(JSON.stringify(a))}function n(a,b){if(!a)return null;for(let c of a.split(";")){let a=c.indexOf("=");if(a<=0||c.slice(0,a).trim()!==b)continue;let d=c.slice(a+1).trim();try{return decodeURIComponent(d)}catch{return d}}return null}function o(a){let{name:b,value:c,maxAgeSeconds:d,secure:e}=a,f=Math.max(0,Math.floor(d)),g=0===f?"Thu, 01 Jan 1970 00:00:00 GMT":new Date(Date.now()+1e3*f).toUTCString(),h=[`${b}=${c}`,"Path=/","HttpOnly","SameSite=Strict",`Max-Age=${f}`,`Expires=${g}`];return e&&h.push("Secure"),h.join("; ")}function p(a,b){if(b){let a=b.split(",")[0]?.trim().toLowerCase();if("https"===a)return!0;if("http"===a)return!1}try{return"https:"===new URL(a).protocol}catch{return!1}}function q(a){let b=a??process.env.PI_CODING_AGENT_DIR??h().join((0,i.homedir)(),".pi","agent");return h().join(b,"pidance-ui-jwt-secret")}let r={readFileSync:(a,b)=>f().readFileSync(a,b),writeFileSync:(a,b,c)=>f().writeFileSync(a,b,c),mkdirSync:(a,b)=>{f().mkdirSync(a,b)},existsSync:a=>f().existsSync(a)};function s(a=process.env,b=q(),c=r){let e=a.PIDANCE_UI_JWT_SECRET||a.OPENCODE_JWT_SECRET;if("string"==typeof e&&e.length>0)return e.trim();try{if(c.existsSync(b)){let a=c.readFileSync(b,"utf8").trim();if(a)return a}}catch{}let f=(0,d.randomBytes)(32).toString("hex");try{c.mkdirSync(h().dirname(b),{recursive:!0}),c.writeFileSync(b,f,{mode:384})}catch{}return f}function t(a=process.env,b=q(),c=r){if(a.PIDANCE_UI_JWT_SECRET||a.OPENCODE_JWT_SECRET)throw Error("Cannot rotate secret while PIDANCE_UI_JWT_SECRET/OPENCODE_JWT_SECRET is set");let e=(0,d.randomBytes)(32).toString("hex");return c.mkdirSync(h().dirname(b),{recursive:!0}),c.writeFileSync(b,e,{mode:384}),e}function u(a,b,c=Date.now(),e){let f=Math.floor(c/1e3),g=f+Math.max(1,Math.floor(b/1e3)),h=m({alg:"HS256",typ:"JWT"}),i=m({type:"ui-session",iat:f,exp:g,...e?{jti:e}:{}}),j=`${h}.${i}`,k=(0,d.createHmac)("sha256",a).update(j).digest();return`${j}.${l(k)}`}function v(a,b,c=Date.now()){let e;if(!a||!b)return{valid:!1,jti:null};let f=a.split(".");if(3!==f.length)return{valid:!1,jti:null};let[g,h,i]=f,j=`${g}.${h}`,k=(0,d.createHmac)("sha256",b).update(j).digest();try{e=Buffer.from(i,"base64url")}catch{return{valid:!1,jti:null}}if(e.length!==k.length||!(0,d.timingSafeEqual)(e,k))return{valid:!1,jti:null};try{let a=JSON.parse(Buffer.from(h,"base64url").toString("utf8"));if("ui-session"!==a.type||"number"!=typeof a.exp||1e3*a.exp<=c)return{valid:!1,jti:null};return{valid:!0,jti:"string"==typeof a.jti&&a.jti.length>0?a.jti:null}}catch{return{valid:!1,jti:null}}}function w(a,b){if(!a||!b)return!1;let c=(0,d.createHash)("sha256").update(a.normalize().trim(),"utf8").digest(),e=(0,d.createHash)("sha256").update(b.normalize().trim(),"utf8").digest();return c.length===e.length&&(0,d.timingSafeEqual)(c,e)}let x=new Map;function y(a,b=Date.now()){let c=x.get(a);if(!c)return{allowed:!0,remaining:10,retryAfterSeconds:0,limit:10};if(c.lockedUntil>b)return{allowed:!1,remaining:0,retryAfterSeconds:Math.ceil((c.lockedUntil-b)/1e3),limit:10};if(b-c.windowStart>3e5)return x.delete(a),{allowed:!0,remaining:10,retryAfterSeconds:0,limit:10};let d=Math.max(0,10-c.fails);return{allowed:d>0,remaining:d,retryAfterSeconds:0,limit:10}}function z(a,b=Date.now()){let c=x.get(a);(!c||b-c.windowStart>3e5)&&(c={fails:0,windowStart:b,lockedUntil:0}),c.fails+=1,c.fails>=10&&(c.lockedUntil=b+9e5),x.set(a,c)}function A(a){x.delete(a)}function B(a){let b=a["x-forwarded-for"];if("string"==typeof b&&b.trim())return b.split(",")[0].trim().replace(/^::ffff:/,"");let c=a["x-real-ip"];return"string"==typeof c&&c.trim()?c.trim().replace(/^::ffff:/,""):"unknown"}let C={existsSync:a=>f().existsSync(a),readFileSync:(a,b)=>f().readFileSync(a,b),writeFileSync:(a,b,c)=>f().writeFileSync(a,b,c),renameSync:(a,b)=>f().renameSync(a,b),mkdirSync:(a,b)=>{f().mkdirSync(a,b)}};function D(a){let b=a??process.env.PI_CODING_AGENT_DIR??h().join((0,i.homedir)(),".pi","agent");return h().join(b,"pidance-ui-sessions.json")}function E(a,b,c){c.mkdirSync(h().dirname(b),{recursive:!0});let d=`${b}.tmp-${process.pid}`;c.writeFileSync(d,JSON.stringify({devices:a},null,2),{mode:384}),c.renameSync(d,b)}function F(a=D(),b=C,c=Date.now()){try{if(!b.existsSync(a))return[];var d=b.readFileSync(a,"utf8");let e=JSON.parse(d);if(!e||!Array.isArray(e.devices))return[];let f=[];for(let a of e.devices)a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.label&&"number"==typeof a.createdAt&&"number"==typeof a.expiresAt&&a.expiresAt>c&&f.push(a);return f}catch{return[]}}function G(a,b=D(),c=C,d=Date.now()){let e=F(b,c,d).filter(b=>b.id!==a.id);e.push(a),E(e,b,c)}function H(a,b=D(),c=C,d=Date.now()){E(F(b,c,d).filter(b=>b.id!==a),b,c)}function I(a=D(),b=C){E([],a,b)}function J(a){if(!a)return"Unknown device";let b=/Edg\/(\d+)/.exec(a)?.[1]??/Chrome\/(\d+)/.exec(a)?.[1]??/Firefox\/(\d+)/.exec(a)?.[1]??/Safari\/(\d+)/.exec(a)?.[1]?a.includes("Edg/")?"Edge":a.includes("Chrome/")?"Chrome":a.includes("Firefox/")?"Firefox":"Safari":"Browser",c=/Windows NT (\d+\.?\d*)/.exec(a)?"Windows":/Mac OS X/.test(a)?"macOS":/Android/.test(a)?"Android":/iPhone|iPad|iPod/.test(a)?"iOS":/Linux/.test(a)?"Linux":null,d=c?`${b} \xb7 ${c}`:b;return d.length>60?`${d.slice(0,57)}...`:d}function K(a,b,c=Date.now(),d,e){let f=n(a,j);if(!f)return!1;let{valid:g,jti:h}=v(f,b,c);return!!g&&(!h||function(a,b=D(),c=C,d=Date.now()){return!!a&&F(b,c,d).some(b=>b.id===a)}(h,d,e,c))}},78335:()=>{},78749:(a,b,c)=>{"use strict";c.d(b,{IM:()=>e,dK:()=>f}),c(55511),c(91645),c(24813);var d=c(7635);function e(a){let b=a.PIDANCE_PASSWORD&&a.PIDANCE_PASSWORD.length>0?a.PIDANCE_PASSWORD:a.PI_WEB_PASSWORD;return"string"==typeof b&&b.length>0?b:null}function f(a,b){return null!==e(a)||(0,d.gl)(b)}},96487:()=>{}};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";exports.id=5304,exports.ids=[5304],exports.modules={2078:(a,b,c)=>{let d;c.d(b,{If:()=>o,Jz:()=>l,O:()=>q,iw:()=>m});var e=c(4984),f=c(29021),g=c(79748),h=c(33873),i=c(92783);function j(){return(0,h.join)((0,i.$M)(),"pidance-session-cache.json")}async function k(a){try{let b=await (0,g.stat)(a);return{path:a,mtimeMs:b.mtimeMs,size:b.size}}catch{return null}}async function l(a=(0,h.join)((0,i.$M)(),"sessions")){let b=[];try{b=(await (0,g.readdir)(a,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(b=>(0,h.join)(a,b.name))}catch{return[]}let c=[],d=[];for(let a of b)d.push((async()=>{try{for(let b of(await (0,g.readdir)(a)))b.endsWith(".jsonl")&&c.push((0,h.join)(a,b))}catch{}})());return await Promise.all(d),(await Promise.all(c.map(a=>k(a)))).filter(a=>null!==a)}function m(a=j()){try{let b=(0,f.readFileSync)(a,"utf8"),c=JSON.parse(b);if(!c||2!==c.version||!c.sessions||"object"!=typeof c.sessions)return null;return{version:2,sessions:c.sessions,discovery:c.discovery&&"object"==typeof c.discovery?c.discovery:{}}}catch{return null}}let n=!1;function o(a,b,c=j()){n=!0,d||(d=setTimeout(()=>{if(d=void 0,!n)return;n=!1;let e={version:2,sessions:Object.fromEntries(a),discovery:Object.fromEntries(b)},g=`${c}.tmp`;try{(0,f.writeFileSync)(g,JSON.stringify(e),"utf8"),(0,f.renameSync)(g,c)}catch{try{(0,f.existsSync)(g)&&(0,f.renameSync)(g,c)}catch{}}},1500))}function p(a){return"object"==typeof a&&null!==a&&"string"==typeof a.role&&"content"in a}async function q(a,b){try{let c,d,g=(0,e.createInterface)({input:(0,f.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0}),h=null,i=0,j="";for await(let a of g){let b;if(!a.trim())continue;try{b=JSON.parse(a)}catch{continue}if(!h){if("session"!==b.type)return null;h=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(!p(b)||"user"!==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(!p(f)||"user"!==f.role&&"assistant"!==f.role)continue;let g=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);g&&(j||"user"!==f.role||(j=g))}if(!h)return null;let k="string"==typeof h.timestamp?new Date(h.timestamp).getTime():NaN,l=new Date("number"==typeof d&&d>0?d:Number.isNaN(k)?b.mtimeMs:k);return{id:"string"==typeof h.id?h.id:"",cwd:"string"==typeof h.cwd?h.cwd:"",name:c,created:h.timestamp,modified:l.toISOString(),messageCount:i,firstMessage:j||"(no messages)",parentSessionPath:"string"==typeof h.parentSession?h.parentSession:void 0}}catch{return null}}},10611:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j1:()=>s});var e=c(75430),f=c(92783),g=c(84127),h=c(82356),i=c(68642),j=c(99595),k=c(89358),l=c(31360),m=c(75377),n=c(63480),o=c(31119),p=c(36315),q=a([e,l]);function r(a){return"string"==typeof a&&a?a:void 0}[e,l]=q.then?(await q)():q;class t{static{this.PARTIAL_RENDER_MIN_INTERVAL_MS=100}constructor(a){this.options=a,this.listeners=[],this.runtime=null,this.unsubscribe=null,this.extensionUi=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0,this.promptRunning=!1,this.lastStopReason=null,this.followUpQueue=[],this.followUpQueueHydrated=!1,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.bashRunning=!1,this.bashCommand=null,this.localQueue={steering:[],followUp:[]},this.hasQueueSnapshot=!1,this.renderBridgeTheme=(0,p.Lm)(),this.toolRenderStates=new Map,this.realSessionId=a.sessionId,this.realSessionFile=a.sessionFile,this.idleTimeoutMs=a.idleTimeoutMs??6e5,this.agentDir=a.agentDir??(0,f.$M)(),this.activeToolNames=a.toolNames}get sessionId(){return this.realSessionId}get sessionFile(){return this.realSessionFile}listPendingExtensionRequests(){return Array.from(this.extensionUi?.pendingSnapshot.values()??[])}get inner(){let a=this.runtime?.session;if(a)return{sessionManager:a.sessionManager}}isAlive(){return this._alive&&null!==this.runtime}isRunning(){if(!this._alive||!this.runtime)return!1;let a=this.runtime.session;return this.promptRunning||this.bashRunning||a.isStreaming||a.isCompacting}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] sdk host listener error:",a)}}notifyRunning(){this.options.onRunningChange?.()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()||this.followUpQueue.length>0&&!this.isFollowUpHeld()?this.resetIdleTimer():this.destroyAsync()},this.idleTimeoutMs)}isSettled(){return!!this.runtime&&!!this._alive&&!this.isRunning()}isFollowUpHeld(){let a=(0,g.rV)(this.agentDir);return!0===(0,g.ql)(a,`sessionQueueHold.${this.realSessionId}`)}setFollowUpHeld(a){try{(0,g.xP)(`sessionQueueHold.${this.realSessionId}`,!!a||null,this.agentDir)}catch(a){console.error("[pidance] failed to persist follow-up hold:",a)}}hydrateFollowUpQueue(){if(this.followUpQueueHydrated)return;this.followUpQueueHydrated=!0;let a=(0,g.rV)(this.agentDir),b=(0,g.ql)(a,`sessionQueue.${this.realSessionId}`);this.followUpQueue=Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}persistFollowUpQueue(){try{(0,g.xP)(`sessionQueue.${this.realSessionId}`,this.followUpQueue,this.agentDir)}catch(a){console.error("[pidance] failed to persist follow-up queue:",a)}}scheduleFollowUpFlush(){!this._alive||!this.runtime||this.flushingFollowUp||0===this.followUpQueue.length||this.isFollowUpHeld()||this.isSettled()&&(this.flushingFollowUp=!0,this.followUpFlushAsOne=!0===(0,g.rV)(this.agentDir).queueFlushAsOne,this.followUpFlushOriginal=[...this.followUpQueue],this.followUpFlushBatch=this.followUpFlushAsOne?[this.followUpFlushOriginal.join("\n\n")]:[...this.followUpFlushOriginal],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.sendNextFollowUp())}async sendNextFollowUp(){if(!this.flushingFollowUp)return;if(this.isFollowUpHeld())return void this.abortFollowUpFlush();let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return void this.finishFollowUpFlush();if(this.isSettled()){this.followUpFlushConfirmed=!1;try{await this.send({type:"prompt",message:a})}catch(b){let a=b instanceof Error?b.message:String(b);this.emit({type:"follow_up_flush_error",errorMessage:a}),this.abortFollowUpFlush()}}}confirmFollowUpFlush(){if(!this.flushingFollowUp||this.followUpFlushConfirmed)return;let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return;if(this.followUpFlushConfirmed=!0,this.followUpFlushAsOne){let a=new Set(this.followUpFlushOriginal);this.followUpQueue=this.followUpQueue.filter(b=>!a.has(b))}else{let b=this.followUpQueue.indexOf(a);b>=0&&this.followUpQueue.splice(b,1)}let b=[...this.followUpQueue];(this.persistFollowUpQueue(),this.emit({type:"follow_up_flushed",sessionId:this.realSessionId,item:a,remaining:b}),this.followUpFlushAsOne)?this.finishFollowUpFlush():(this.followUpFlushCursor+=1,this.followUpFlushCursor>=this.followUpFlushBatch.length?this.finishFollowUpFlush():this.sendNextFollowUp())}abortFollowUpFlush(){this.flushingFollowUp&&(this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer())}finishFollowUpFlush(){this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.scheduleFollowUpFlush()}get session(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.session}get services(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.services}syncIdentityFromSession(){let a=this.session,b=a.sessionId||this.realSessionId,c=a.sessionFile||this.realSessionFile,d=this.realSessionId;this.realSessionId=b,this.realSessionFile=c,c&&this.options.cacheSessionPath?.(b,c),d!==b&&this.options.onSessionRekeyed?.(d,b,this)}async rebindSession(){let a=this.session;this.extensionUi?.dispose(),this.extensionUi=(0,m.t)(a=>{this.trackExtensionSideEffects(a),this.emit(a)}),await a.bindExtensions({uiContext:this.extensionUi.uiContext,mode:"rpc",commandContextActions:{waitForIdle:()=>a.waitForIdle(),newSession:async a=>{let b=await this.runtime.newSession(a);return b.cancelled||await this.rebindSession(),b},fork:async(a,b)=>{let c=await this.runtime.fork(a,b);return c.cancelled||await this.rebindSession(),{cancelled:c.cancelled}},navigateTree:async(b,c)=>({cancelled:(await a.navigateTree(b,{summarize:c?.summarize,customInstructions:c?.customInstructions,replaceInstructions:c?.replaceInstructions,label:c?.label})).cancelled}),switchSession:async(a,b)=>{let c=await this.runtime.switchSession(a,b);return c.cancelled||await this.rebindSession(),c},reload:async()=>{await a.reload()}},onError:a=>{this.setFollowUpHeld(!0),this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})}}),this.unsubscribe?.(),this.unsubscribe=a.subscribe(a=>{this.resetIdleTimer(),this.handleSessionEvent(a)}),this.syncIdentityFromSession()}trackExtensionSideEffects(a){if("extension_ui_request"!==a.type)return;let b=r(a.method);if("setStatus"===b){let b=r(a.statusKey)??r(a.key)??"default",c=r(a.statusText)??r(a.text)??"";c?this.extensionUi?.statuses.set(b,c):this.extensionUi?.statuses.delete(b)}if("setWidget"===b){let b=r(a.widgetKey)??r(a.key)??"default",c=a.widgetLines??a.content;null==c?this.extensionUi?.widgets.delete(b):this.extensionUi?.widgets.set(b,{lines:c,placement:a.widgetPlacement})}this.notifyRunning()}maybeAutoNameSession(){try{let a=this.session?.sessionManager;if(!a||a.getSessionName())return;let b=(a.buildSessionContext().messages??[]).find(a=>"user"===a.role),c=function(a){let b="";"string"==typeof a?b=a:Array.isArray(a)&&(b=a.filter(a=>"object"==typeof a&&null!==a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"));let c=b.replace(/\s+/g," ").trim();if(c)return c.length>60?`${c.slice(0,60)}…`:c}(b?.content);c&&a.appendSessionInfo(c)}catch{}}readStopReasonFromAgentEnd(a){let b=a.messages;if(!Array.isArray(b))return null;for(let a=b.length-1;a>=0;a--){let c=b[a],d=c?.message?.stopReason??c?.stopReason;if("string"==typeof d){if("aborted"===d)return"aborted";if("error"===d||"prompt_error"===d)return"error";return"completed"}}return null}handleSessionEvent(a){switch(a.type){case"agent_start":this.promptRunning=!0,(0,i.NK)(this.realSessionId,Date.now()),this.notifyRunning();break;case"agent_end":this.promptRunning=!1,this.lastStopReason=this.readStopReasonFromAgentEnd(a)??this.lastStopReason??"completed",("aborted"===this.lastStopReason||"error"===this.lastStopReason)&&this.setFollowUpHeld(!0),(0,i.PI)(this.realSessionId),this.options.onSessionListInvalidate?.(),this.realSessionFile&&(0,k.$9)(this.realSessionFile),this.maybeAutoNameSession(),this.notifyRunning(),this.emit({type:"prompt_done"});break;case"agent_settled":this.promptRunning=!1,this.notifyRunning(),"completed"===this.lastStopReason?this.flushingFollowUp?this.followUpFlushConfirmed?this.sendNextFollowUp():this.confirmFollowUpFlush():this.scheduleFollowUpFlush():this.flushingFollowUp&&("aborted"===this.lastStopReason||"error"===this.lastStopReason)&&this.abortFollowUpFlush();break;case"compaction_start":case"auto_compaction_start":case"compaction_end":case"auto_compaction_end":this.notifyRunning();break;case"message_end":{let b=a.message;b?.role==="user"&&(this.confirmFollowUpFlush(),setImmediate(()=>{try{(0,l.kb)(this.session.sessionManager),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()}catch(a){console.error("[pidance] materialize after user message failed:",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(this.withRenderedToolLines(a))}withRenderedToolLines(a){try{if(!this.renderBridgeTheme)return a;switch(a.type){case"tool_execution_update":{if(!this.shouldRenderPartialUpdate(a.toolCallId))return a;let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!0,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,p.t_)(b,a.partialResult,{expanded:!0,isPartial:!0},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedLines:d}:a}case"tool_call":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.input,{isPartial:!1,expanded:!0,isError:!1,resultSlot:!1});if(!c)return a;let d=(0,p.GD)(b,a.input,c,b=>this.updateToolRenderLastComponent(a.toolCallId,!1,b));return d?{...a,renderedCallLines:d}:a}case"tool_result":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!1,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,p.t_)(b,{content:a.content,details:a.details,isError:!0===a.isError,...void 0!==a.usage?{usage:a.usage}:{}},{expanded:!0,isPartial:!1},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedResultLines:d}:a}case"message_start":case"message_end":{let b=a.message;if(b?.role!=="custom"||"string"!=typeof b.customType||""===b.customType)return a;let c=this.session.extensionRunner,d="function"==typeof c?.getMessageRenderer?c.getMessageRenderer(b.customType):void 0,e=(0,p.Mf)(d,a.message,this.renderBridgeTheme);return e?{...a,renderedLines:e}:a}default:return a}}catch{return a}}getToolRenderDefinition(a){if("string"==typeof a&&""!==a)try{return this.session.getToolDefinition(a)}catch{return}}buildToolRenderContext(a,b,c){let d=this.getOrCreateToolRenderState(a);return d?{args:b,toolCallId:a,invalidate:()=>{},lastComponent:c.resultSlot?d.lastResultComponent:d.lastCallComponent,state:d.state,cwd:this.realCwd,executionStarted:!0,argsComplete:!0,isPartial:c.isPartial,expanded:c.expanded,showImages:!1,isError:c.isError}:null}getOrCreateToolRenderState(a){if("string"!=typeof a||""===a)return null;let b=this.toolRenderStates.get(a);return b||(b={state:{},lastCallComponent:void 0,lastResultComponent:void 0,lastPartialRenderAt:void 0},this.toolRenderStates.set(a,b)),b}updateToolRenderLastComponent(a,b,c){if("string"!=typeof a||""===a)return;let d=this.toolRenderStates.get(a);d&&(b?d.lastResultComponent=c:d.lastCallComponent=c)}shouldRenderPartialUpdate(a){if("string"!=typeof a||""===a)return!0;let b=Date.now(),c=this.getOrCreateToolRenderState(a);return!c||(void 0===c.lastPartialRenderAt||!(b-c.lastPartialRenderAt<t.PARTIAL_RENDER_MIN_INTERVAL_MS))&&(c.lastPartialRenderAt=b,!0)}get realCwd(){try{return this.session.sessionManager.getHeader()?.cwd||this.options.cwd}catch{return this.options.cwd}}async start(){try{var a,b;let c=(a=this.realSessionFile,b=this.options.cwd,a?(0,l.G1)(a):(0,l.Qu)(b)),d=c.getCwd()||this.options.cwd,f=this.agentDir,g=this.activeToolNames,h=async({cwd:a,agentDir:b,sessionManager:c,sessionStartEvent:d})=>{let f=await (0,e.createAgentSessionServices)({cwd:a,agentDir:b});for(let a of f.modelRuntime.getModels())(0,o.yu)(a);return{...await (0,e.createAgentSessionFromServices)({services:f,sessionManager:c,sessionStartEvent:d,tools:g&&g.length>0?g:void 0,noTools:g&&0===g.length?"all":void 0}),services:f,diagnostics:f.diagnostics}};this.runtime=await (0,e.createAgentSessionRuntime)(h,{cwd:d,agentDir:f,sessionManager:c}),this.runtime.setRebindSession(async()=>{await this.rebindSession()}),this.runtime.setBeforeSessionInvalidate(()=>{this.extensionUi?.dispose(),this.unsubscribe?.(),this.unsubscribe=null}),await this.rebindSession(),this.syncIdentityFromSession(),this.hydrateFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.isSettled()&&this.scheduleFollowUpFlush()}catch(a){throw await this.destroyAsync(),a}}projectState(){let a=this.session,b=a.model,c={stateSources:{rpcGetState:!1,sdkSession:!0,sessionStats:!0,localQueue:!0,localExtensionUi:!0},sessionId:this.realSessionId,sessionFile:this.realSessionFile,sessionName:a.sessionName,isStreaming:a.isStreaming,isCompacting:a.isCompacting,isPromptRunning:this.promptRunning,lastStopReason:this.lastStopReason,isBashRunning:this.bashRunning,pendingBash:this.bashCommand,autoCompactionEnabled:a.autoCompactionEnabled,steeringMode:a.steeringMode,followUpMode:a.followUpMode,thinkingLevel:a.thinkingLevel,systemPrompt:a.systemPrompt??"",model:b?{id:b.id,provider:b.provider}:void 0,messageCount:a.messages.length,pendingMessageCount:a.pendingMessageCount,extensionStatuses:Array.from(this.extensionUi?.statuses.entries()??[],([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionUi?.widgets.entries()??[],([a,b])=>({key:a,lines:Array.isArray(b?.lines)?b.lines:[],placement:b?.placement==="belowEditor"?"belowEditor":"aboveEditor"})),pendingExtensionRequests:Array.from(this.extensionUi?.pendingSnapshot.values()??[])};c.queuedMessages={steering:this.hasQueueSnapshot?[...this.localQueue.steering]:[],followUp:[...this.followUpQueue]};try{let b=a.getSessionStats(),d=b?.contextUsage;d&&"number"==typeof d.contextWindow&&d.contextWindow>0&&(c.contextUsage={contextWindow:d.contextWindow,percent:"number"==typeof d.percent?d.percent:null,tokens:"number"==typeof d.tokens?d.tokens:null})}catch{}return c}appendActivity(a){if(!this.runtime)throw Error("Cannot append activity: session not alive");let b=a&&"object"==typeof a&&"type"in a&&"append_activity"===a.type?(0,j.qF)(a):(0,j.l$)(a),c=this.session.sessionManager.appendCustomEntry(j.cP,b);return this.options.onSessionListInvalidate?.(),{entryId:c,activity:b}}async send(a){if(this.resetIdleTimer(),!this.runtime)throw Error("SDK session is not alive");let b=a.type,c=this.session;switch(b){case"prompt":if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");if(!(0,h.kP)(this.realSessionId))throw Error(h.GT);this.promptRunning=!0,this.lastStopReason=null,(0,i.NK)(this.realSessionId,Date.now()),this.notifyRunning();try{return await new Promise((b,d)=>{let e=!1,f=()=>{c.isStreaming||c.isCompacting||this.bashRunning||this.promptRunning&&(this.promptRunning=!1,"aborted"!==this.lastStopReason&&"error"!==this.lastStopReason&&(this.lastStopReason="completed"),(0,i.PI)(this.realSessionId),this.notifyRunning(),this.emit({type:"prompt_done"}))};c.prompt(String(a.message??""),{images:a.images,streamingBehavior:a.streamingBehavior,source:"rpc",preflightResult:a=>{a&&(e=!0,this.syncIdentityFromSession(),this.setFollowUpHeld(!1),this.options.onSessionListInvalidate?.(),b())}}).then(()=>{if(!e){e=!0;try{(0,l.kb)(c.sessionManager)}catch(a){console.error("[pidance] materialize after prompt failed:",a)}this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.(),b()}f()}).catch(a=>{"aborted"!==this.lastStopReason&&(this.lastStopReason="error"),this.setFollowUpHeld(!0),f(),e||(e=!0,d(a))})}),null}catch(b){this.promptRunning=!1,this.lastStopReason="aborted"===this.lastStopReason?"aborted":"error",this.setFollowUpHeld(!0),(0,i.PI)(this.realSessionId),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":return this.lastStopReason="aborted",this.setFollowUpHeld(!0),this.promptRunning=!1,this.notifyRunning(),await c.abort(),this.notifyRunning(),null;case"get_state":return this.projectState();case"set_model":{let b=String(a.provider??""),d=String(a.modelId??""),e=(0,n.E)(c.modelRuntime,b,d);if(!e)try{e=(await c.modelRuntime.getAvailable()).find(a=>a.provider===b&&a.id===d)}catch{e=void 0}if(!e)throw Error(`Model not found: ${b}/${d}`);return await c.setModel((0,o.eU)(e)),this.options.onSessionListInvalidate?.(),e}case"set_thinking_level":return c.model&&(0,o.yu)(c.model),c.setThinkingLevel(a.level),this.options.onSessionListInvalidate?.(),null;case"compact":{let b=await c.compact("string"==typeof a.customInstructions?a.customInstructions:void 0);return this.options.onSessionListInvalidate?.(),b}case"steer":return await c.steer(String(a.message??""),a.images),null;case"set_follow_up_queue":{let b=Array.isArray(a.items)?a.items.filter(a=>"string"==typeof a&&a.trim().length>0):[];return this.followUpQueue=b,this.persistFollowUpQueue(),this.isSettled()&&this.scheduleFollowUpFlush(),{ok:!0,queued:this.followUpQueue.length}}case"follow_up":return await c.followUp(String(a.message??""),a.images),null;case"set_session_name":{let b=String(a.name??"").trim();if(!b)throw Error("Session name cannot be empty");return c.setSessionName(b),this.options.onSessionListInvalidate?.(),null}case"set_auto_compaction":return c.setAutoCompactionEnabled(!!a.enabled),null;case"set_auto_retry":return c.setAutoRetryEnabled(!!a.enabled),null;case"clear_queue":return c.clearQueue();case"get_tools":{let a=c.getAllTools(),b=new Set(c.getActiveToolNames());return{source:"sdk",tools:a.map(a=>({name:a.name,description:a.description??"",active:b.has(a.name)}))}}case"set_tools":{let b=Array.isArray(a.tools)?a.tools.filter(a=>"string"==typeof a):[];return c.setActiveToolsByName(b),this.activeToolNames=b,null}case"get_commands":{let a=[];for(let b of c.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of c.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt_template"});return{commands:a}}case"get_session_stats":return c.getSessionStats();case"bash":if(c.isStreaming)throw Error("Cannot run bash while agent is streaming");this.bashRunning=!0,this.bashCommand={command:String(a.command??""),excludeFromContext:!!a.excludeFromContext,startedAt:Date.now()},this.notifyRunning();try{return await c.executeBash(String(a.command??""),void 0,{excludeFromContext:!!a.excludeFromContext})}finally{this.bashRunning=!1,this.bashCommand=null,this.notifyRunning()}case"abort_bash":return c.abortBash(),this.bashRunning=!1,this.bashCommand=null,this.notifyRunning(),null;case"abort_compaction":return c.abortCompaction(),null;case"extension_ui_response":{let b=r(a.id);if(!b)throw Error("extension_ui_response requires id");let c={...a};return delete c.type,delete c.id,!this.extensionUi?.respond(b,c),this.notifyRunning(),null}case"extension_ui_input":case"ensure_session":return null;case"append_activity":return this.appendActivity(a);case"fork":{if(this.bashRunning)throw Error("Cannot fork while a shell command is running");let b=String(a.entryId??"");if(!b)throw Error("entryId is required");let c=await this.runtime.fork(b);return c.cancelled||(await this.rebindSession(),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()),{cancelled:c.cancelled,newSessionId:c.cancelled?void 0:this.realSessionId,text:c.selectedText}}case"navigate_tree":{if(this.bashRunning)throw Error("Cannot navigate while a shell command is running");let b=r(a.targetId);if(!b)throw Error("targetId is required");let d=await c.navigateTree(b,{summarize:a.summarize,customInstructions:r(a.customInstructions)});if(!d.cancelled&&this.realSessionFile){c.sessionManager.getLeafId();let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries(),d=b.at(-1)?.id;a&&d&&a!==d?(0,k.R3)(this.realSessionFile,a):this.realSessionFile&&(0,k.$9)(this.realSessionFile)}return this.options.onSessionListInvalidate?.(),{cancelled:d.cancelled}}case"select_leaf_exact":{let b=r(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.selectLeafExact(this.sessionId,b);let d=await c.navigateTree(b,{summarize:!1});if(!d.cancelled&&this.realSessionFile){let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries().at(-1)?.id;a&&b&&a!==b?(0,k.R3)(this.realSessionFile,a):(0,k.$9)(this.realSessionFile)}return{cancelled:d.cancelled}}case"branch_from_assistant":{let b=r(a.assistantEntryId);if(!b)throw Error("assistantEntryId is required");if(this.options.navigationActions)return this.options.navigationActions.branchFromAssistant(this.sessionId,b);throw Error("branch_from_assistant is unavailable")}case"create_session_from_leaf":{let b=r(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.createSessionFromLeaf(this.sessionId,b);throw Error("create_session_from_leaf is unavailable")}case"set_branch_label":{let b=r(a.targetId);if(!b)throw Error("targetId is required");let d=void 0===a.label||null===a.label?void 0:String(a.label);return c.sessionManager.appendLabelChange(b,d),this.options.onSessionListInvalidate?.(),null}case"reload":return await c.reload(),await this.rebindSession(),null;case"get_last_assistant_text":return{text:c.getLastAssistantText()};default:throw Error(`Unsupported command: ${b}`)}}destroy(){this.destroyAsync()}async destroyAsync(){if(!this._alive&&!this.runtime)return;this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null,this.unsubscribe?.(),this.unsubscribe=null,this.extensionUi?.dispose(),this.extensionUi=null;let a=this.runtime;if(this.runtime=null,a)try{await a.dispose()}catch(a){console.error("[pidance] sdk runtime dispose error:",a)}this.promptRunning=!1,this.bashRunning=!1,this.bashCommand=null,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],(0,i.PI)(this.realSessionId),this.onDestroyCallback?.(),this.notifyRunning()}}async function s(a){let b=new t(a);return await b.start(),b}d()}catch(a){d(a)}})},31119:(a,b,c)=>{function d(a){if(!a.reasoning)return a;let b=a.thinkingLevelMap,c={...b??{}},d=!1;for(let a of["xhigh","max"])Object.prototype.hasOwnProperty.call(c,a)&&void 0!==c[a]||(c[a]=a,d=!0);return!d&&b?a:{...a,thinkingLevelMap:c}}function e(a){let b=d(a);if(b===a)return a;try{return a.thinkingLevelMap=b.thinkingLevelMap,a}catch{return b}}c.d(b,{eU:()=>d,yu:()=>e})},31360:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G1:()=>j,Qu:()=>k,kW:()=>l,kb:()=>i});var e=c(75430),f=c(89477),g=c(89358),h=a([e]);function i(a){let b=a.getSessionFile();!b||((0,f.existsSync)(b)||a._rewriteFile?.(),(0,f.existsSync)(b)&&(a.flushed=!0))}function j(a,b){let c=e.SessionManager.open(a,b),d=(0,g.ek)(a);if(d&&c.getEntry(d)){if(c.getLeafId()!==d)try{c.branch(d)}catch{(0,g.$9)(a)}}else d&&(0,g.$9)(a);return c}function k(a,b){return e.SessionManager.create(a,b)}function l(a,b){var c;return c=j(a,b),{getEntries:()=>c.getEntries(),getLeafId:()=>c.getLeafId(),getTree:()=>c.getTree(),getHeader:()=>c.getHeader(),getSessionName:()=>c.getSessionName(),getSessionId:()=>c.getSessionId(),getSessionFile:()=>c.getSessionFile(),getCwd:()=>c.getCwd(),getEntry:a=>c.getEntry(a),getBranch:a=>void 0===a?c.getBranch():c.getBranch(a),buildSessionContext:()=>c.buildSessionContext(),appendSessionInfo:a=>c.appendSessionInfo(a),appendCustomEntry:(a,b)=>c.appendCustomEntry(a,b),appendModelChange:(a,b)=>c.appendModelChange(a,b),branch:a=>c.branch(a),createBranchedSession:a=>c.createBranchedSession(a),getSessionDir:()=>c.getSessionDir(),getLastEntryId:()=>(function(a){let b=a.getEntries();for(let a=b.length-1;a>=0;a--){let c=b[a];if(c&&"object"==typeof c&&"id"in c&&"string"==typeof c.id)return c.id}return null})(c)}}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},35304:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{recoverFollowUpQueues:()=>q});var e=c(69453),f=c(31360),g=c(84127),h=c(10611),i=c(82356),j=a([e,f,h]);function k(){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 l(){return globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks}function m(){let a=new Set([...l().keys()]);for(let[b,c]of k())c.isRunning()&&a.add(c.sessionId||b);return[...a]}[e,f,h]=j.then?(await j)():j;let s="",t=new Set,u=null;function n(){!function a(){let b=new Set(m());for(let a of b)(0,i.AZ)(a),t.add(a);for(let a of[...t])b.has(a)||((0,i.Hl)(a),t.delete(a));if(0===b.size){u&&(clearInterval(u),u=null);return}u||(u=setInterval(()=>{a()},8e3),u.unref?.())}();let a=function(){let a=new Set(m());for(let b of(0,i.mr)())a.add(b);return[...a]}(),b=function(){let a=[];for(let[b,c]of k()){let d=c.listPendingExtensionRequests();0!==d.length&&a.push({sessionId:c.sessionId||b,requests:d})}return a}(),c=JSON.stringify({ids:[...a].sort(),pending:b.map(a=>({sessionId:a.sessionId,ids:a.requests.map(a=>a.id??null)}))});if(c!==s)for(let b of(s=c,globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners))try{b(a)}catch{}}async function o(a,b,c,d,e){return r(a,b,c,d,e)}function p(a){return Array.isArray(a)&&a.some(a=>"string"==typeof a&&a.trim().length>0)}async function q(){let a=(0,g.rV)();for(let b of function(a){let b=new Set,c=a.sessionQueue;if("object"==typeof c&&null!==c&&!Array.isArray(c))for(let[a,d]of Object.entries(c))a&&p(d)&&b.add(a);for(let[c,d]of Object.entries(a)){if(!c.startsWith("sessionQueue.")||!p(d))continue;let a=c.slice(13);a&&b.add(a)}return[...b].filter(b=>!0!==(0,g.ql)(a,`sessionQueueHold.${b}`)&&!0!==a[`sessionQueueHold.${b}`]).sort()}(a)){let a=k().get(b);if(a?.isAlive())continue;let c=await (0,e.os)(b);if(!c)continue;let d=process.cwd();try{d=(0,f.kW)(c).getHeader()?.cwd||process.cwd()}catch{}try{await o(b,c,d)}catch(a){console.error(`[pidance] recover follow-up queue failed for ${b}:`,a)}}}async function r(a,b,c,d,f){let g=k(),j=l(),m=g.get(a);if(m?.isAlive())return{session:m,realSessionId:a};let o=j.get(a);if(o)return o;if(!(0,i.kP)(a))throw Error(i.GT);n();let p=(async()=>{try{let j=await (0,h.j1)({sessionId:a,sessionFile:b,cwd:c,toolNames:d,navigationActions:f,onRunningChange:()=>n(),onSessionListInvalidate:()=>(0,e.mD)(),cacheSessionPath:(a,b)=>(0,e.O8)(a,b),onSessionRekeyed:(a,b,c)=>{let d;d=k(),a!==b&&d.delete(a),d.set(b,c),a!==b&&((0,i.kP)(b),(0,i.Hl)(a))}}),l=j.sessionId,m=j.sessionFile;return m&&(0,e.O8)(l,m),l!==a&&(0,i.kP)(l),j.onDestroy(()=>{g.get(l)===j&&g.delete(l),a!==l&&g.get(a)===j&&g.delete(a),(0,i.Hl)(l),a!==l&&(0,i.Hl)(a),n()}),g.set(l,j),j.beginExtensionBinding(),{session:j,realSessionId:l}}catch(b){throw(0,i.Hl)(a),n(),b}})().finally(()=>{j.delete(a),n()});return j.set(a,p),p}d()}catch(a){d(a)}})},36315:(a,b,c)=>{let d;c.d(b,{Lm:()=>i,Mf:()=>n,GD:()=>l,t_:()=>k,tU:()=>m});let e=JSON.parse('{"$schema":"https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json","name":"dark","vars":{"cyan":"#00d7ff","blue":"#5f87ff","green":"#b5bd68","red":"#cc6666","yellow":"#ffff00","text":"#d4d4d4","gray":"#808080","dimGray":"#666666","darkGray":"#505050","accent":"#8abeb7","selectedBg":"#3a3a4a","userMsgBg":"#343541","toolPendingBg":"#282832","toolSuccessBg":"#283228","toolErrorBg":"#3c2828","customMsgBg":"#2d2838"},"colors":{"accent":"accent","border":"blue","borderAccent":"cyan","borderMuted":"darkGray","success":"green","error":"red","warning":"yellow","muted":"gray","dim":"dimGray","text":"text","thinkingText":"gray","selectedBg":"selectedBg","userMessageBg":"userMsgBg","userMessageText":"text","customMessageBg":"customMsgBg","customMessageText":"text","customMessageLabel":"#9575cd","toolPendingBg":"toolPendingBg","toolSuccessBg":"toolSuccessBg","toolErrorBg":"toolErrorBg","toolTitle":"text","toolOutput":"gray","mdHeading":"#f0c674","mdLink":"#81a2be","mdLinkUrl":"dimGray","mdCode":"accent","mdCodeBlock":"green","mdCodeBlockBorder":"gray","mdQuote":"gray","mdQuoteBorder":"gray","mdHr":"gray","mdListBullet":"accent","toolDiffAdded":"green","toolDiffRemoved":"red","toolDiffContext":"gray","syntaxComment":"#6A9955","syntaxKeyword":"#569CD6","syntaxFunction":"#DCDCAA","syntaxVariable":"#9CDCFE","syntaxString":"#CE9178","syntaxNumber":"#B5CEA8","syntaxType":"#4EC9B0","syntaxOperator":"#D4D4D4","syntaxPunctuation":"#D4D4D4","thinkingOff":"darkGray","thinkingMinimal":"#6e6e6e","thinkingLow":"#5f87af","thinkingMedium":"#81a2be","thinkingHigh":"#b294bb","thinkingXhigh":"#d183e8","thinkingMax":"#ff5fff","bashMode":"green"},"export":{"pageBg":"#18181e","cardBg":"#1e1e24","infoBg":"#3c3728"}}');function f(a){let b=a.replace("#",""),c=Number.parseInt(3===b.length?b.split("").map(a=>a+a).join(""):b,16);return{r:c>>16&255,g:c>>8&255,b:255&c}}class g{constructor(a,b,c="truecolor",d){for(const[b,e]of(this.fgAnsiMap=new Map,this.bgAnsiMap=new Map,this.mode=c,this.name=d?.name,Object.entries({...a,thinkingMax:a.thinkingMax??a.thinkingXhigh})))this.fgAnsiMap.set(b,function(a,b){if(""===a)return"\x1b[39m";if("number"==typeof a)return`\x1b[38;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[38;2;${b};${c};${d}m`}return"\x1b[38;5;7m"}throw Error(`Invalid color value: ${String(a)}`)}(e,c));for(const[a,d]of Object.entries(b))this.bgAnsiMap.set(a,function(a,b){if(""===a)return"\x1b[49m";if("number"==typeof a)return`\x1b[48;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[48;2;${b};${c};${d}m`}return"\x1b[48;5;0m"}throw Error(`Invalid color value: ${String(a)}`)}(d,c))}fg(a,b){let c=this.fgAnsiMap.get(a);if(!c)throw Error(`Unknown theme color: ${a}`);return`${c}${b}\x1b[39m`}bg(a,b){let c=this.bgAnsiMap.get(a);if(!c)throw Error(`Unknown theme background color: ${a}`);return`${c}${b}\x1b[49m`}bold(a){return`\x1b[1m${a}\x1b[22m`}italic(a){return`\x1b[3m${a}\x1b[23m`}underline(a){return`\x1b[4m${a}\x1b[24m`}inverse(a){return`\x1b[7m${a}\x1b[27m`}strikethrough(a){return`\x1b[9m${a}\x1b[29m`}getFgAnsi(a){let b=this.fgAnsiMap.get(a);if(!b)throw Error(`Unknown theme color: ${a}`);return b}getBgAnsi(a){let b=this.bgAnsiMap.get(a);if(!b)throw Error(`Unknown theme background color: ${a}`);return b}getColorMode(){return this.mode}getThinkingBorderColor(a){let b={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"}[a]??"thinkingOff";return a=>this.fg(b,a)}getBashModeBorderColor(){return a=>this.fg("bashMode",a)}}let h=new Set(["selectedBg","userMessageBg","customMessageBg","toolPendingBg","toolSuccessBg","toolErrorBg"]);function i(){if(void 0!==d)return d;try{d=function(a){let b={...a.colors,thinkingMax:a.colors.thinkingMax??a.colors.thinkingXhigh},c=a.vars??{},d={},e={};for(let[a,f]of Object.entries(b)){let b=function a(b,c,d=new Set){if("number"==typeof b||""===b||b.startsWith("#"))return b;if(d.has(b))throw Error(`Circular variable reference detected: ${b}`);if(!(b in c))throw Error(`Variable reference not found: ${b}`);return d.add(b),a(c[b],c,d)}(f,c);h.has(a)?e[a]=b:d[a]=b}return new g(d,e,"truecolor",{name:a.name})}(e)}catch{d=null}return d}function j(a,b=100){if(!a||"object"!=typeof a||"function"!=typeof a.render)return null;try{let c=a.render(b);if(!function(a){if(!Array.isArray(a)||0===a.length||!a.every(a=>"string"==typeof a)||a.length>500)return!1;let b=0;for(let c of a)if(c.length>4e3||(b+=c.length)>204800)return!1;return!0}(c))return null;return c}catch{return null}}function k(a,b,c,d,e){let f=function(a){if(!a||"object"!=typeof a)return;let b=a.renderResult??a.ln;return"function"==typeof b?b:void 0}(a);if(!f)return null;let g=i();if(!g)return null;try{let a=f(b,c,g,d);return a&&"object"==typeof a&&e?.(a),j(a)}catch{return null}}function l(a,b,c,d){let e=function(a){if(!a||"object"!=typeof a)return;let b=a.renderCall;return"function"==typeof b?b:void 0}(a);if(!e)return null;let f=i();if(!f)return null;try{let a=e(b,f,c);return a&&"object"==typeof a&&d?.(a),j(a)}catch{return null}}function m(a,b,c=100){if("function"!=typeof a||!b)return null;try{let d=a(void 0,b);return j(d,c)}catch{return null}}function n(a,b,c,d=100){if("function"!=typeof a||!c)return null;try{let e=a(b,{expanded:!0},c);return j(e,d)}catch{return null}}},36862:(a,b,c)=>{c.d(b,{KI:()=>i});var d=c(79646),e=c(29021),f=c(33873);let g=(0,c(28354).promisify)(d.execFile);async function h(a,b){let{stdout:c}=await g("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}async function i(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,i,j]=(await h(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),k=a;try{k=(0,e.realpathSync)(a)}catch{}let l=i===k,m=g!==d&&l;b={projectRoot:m?(0,f.dirname)(d):a,branch:j&&"HEAD"!==j?j: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}},54518:(a,b,c)=>{c.d(b,{ob:()=>k});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){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 k(a,b){let c=a.endsWith(".jsonl")?a.slice(0,-6):"";if(!c)return[];let k=new Set,l=new Set,m=[];for(let n 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)&&(j(a,b),b.length>=512))break}e.length<=131072&&b.length<512&&j(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(m.length>=256)break;let a=function(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}}((0,e.resolve)(n.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)||k.has(a))continue;let j=(0,e.relative)((0,e.resolve)(c),(0,e.resolve)(a)).split(/[\\/]/),o=2===j.length&&h.test(j[0]),p=o?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=function(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)}}(a);if(!q||l.has(q.id)||q.id===b)continue;let r=o?j[0].slice(6):n.runId??(0,e.basename)((0,e.dirname)((0,e.dirname)(a)));k.add(a),l.add(q.id),m.push({path:a,header:q,runIndex:p,parentSessionId:b,runId:r,agent:n.agent})}return m}},63480:(a,b,c)=>{c.d(b,{E:()=>d});function d(a,b,c){let d=a.getModel?.(b,c);return d||a.getAvailableSnapshot?.().find(a=>a.provider===b&&a.id===c)}},68642:(a,b,c)=>{c.d(b,{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)}},69453:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O8:()=>q,mD:()=>n,os:()=>p});var e=c(29021),f=c(33873),g=c(2078);c(99595);var h=c(36862),i=c(54518);c(92783);var j=c(31360),k=a([j]);async function l(){let a=await (0,g.Jz)(),b=(0,g.iw)(),c=new Map;if(b)for(let[a,d]of Object.entries(b.sessions))c.set(a,d);let d=a.filter(a=>{let b=c.get(a.path);return!b||b.m!==a.mtimeMs||b.s!==a.size}),j=d.length>0,k=new Map;for(let a of(await Promise.all(d.map(async a=>{let b=await (0,g.O)(a.path,a);b&&k.set(a.path,b)})),d)){let b=k.get(a.path);if(!b){c.delete(a.path);continue}c.set(a.path,{m:a.mtimeMs,s:a.size,i:b})}let l=new Set(a.map(a=>a.path)),m=0;for(let a of[...c.keys()])!l.has(a)&&(c.delete(a),m++);m>0&&(j=!0);let n=[...c.entries()].map(([a,b])=>({path:a,...b.i})).filter(a=>!!(a&&a.id)),o=new Map,p=new Map;for(let a of n){let b=(0,f.normalize)(a.path);o.has(b)||p.has(a.id)||(o.set(b,a.id),p.set(a.id,b))}let r=[...new Set(n.map(a=>a.cwd).filter(Boolean))],s=new Map;await Promise.all(r.map(async a=>{s.set(a,await (0,h.KI)(a))}));let t=new Set,u=new Set,v=n.sort((a,b)=>a.modified<b.modified?1:a.modified>b.modified?-1:0).flatMap(a=>{let b=(0,f.normalize)(a.path);if(t.has(b)||u.has(a.id))return[];t.add(b),u.add(a.id),q(a.id,a.path);let c=a.cwd?s.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?o.get((0,f.normalize)(a.parentSessionPath)):void 0,projectRoot:c?.projectRoot??a.cwd,...c?.isWorktree&&c.branch?{worktreeBranch:c.branch}:{}}]}),w=new Map(v.map(a=>[(0,f.normalize)(a.path),a])),x=new Map(v.map(a=>[a.id,a])),y=new Set,z=new Set,A=[],B=new Map;if(b)for(let[a,c]of Object.entries(b.discovery))B.set(a,c);let C=v.map(a=>({parent:a,depth:0}));for(;C.length&&z.size<256;){let a=C.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,B,(a,b)=>(j=!0,(0,i.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(y.has(c)||z.has(b.id))continue;y.add(c),z.add(b.id);let d=w.get(c),e=x.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,C.push({parent:g,depth:a.depth+1});continue}t.has(c)||u.has(b.id)||(t.add(c),u.add(b.id),o.set(c,b.id),A.push({child:b}),C.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 D=await Promise.all(A.map(async({child:a})=>{let b=await (0,h.KI)(a.cwd),c=a.timestamp;try{c=(0,e.statSync)(a.path).mtime.toISOString()}catch{}return q(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 j&&(0,g.If)(c,B),[...v,...D]}async function m(){let a=globalThis.__piSessionListGeneration??0;if(globalThis.__piSessionListCache&&Date.now()-globalThis.__piSessionListCache.ts<r)return globalThis.__piSessionListCache.data;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===a)return globalThis.__piSessionListPromise;let b=l().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}j=(k.then?(await k)():k)[0];let r=3e4;function n(){globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0}function o(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function p(a){let b=o().get(a);return b||(await m(),o().get(a)??null)}function q(a,b){let c=(0,f.normalize)(b),d=o(),e=(globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache),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)}d()}catch(a){d(a)}})},75377:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(716),e=c(36315);function f(a,b,c,e,f,g,h){let i=(0,d.randomUUID)();return new Promise((d,j)=>{let k,l=!1,m=()=>{a.delete(i),b.delete(i),k&&clearTimeout(k),e?.signal?.removeEventListener("abort",o)},n=a=>{l||(l=!0,m(),d(a))},o=()=>n(f);e?.signal?.addEventListener("abort",o,{once:!0}),e?.timeout&&(k=setTimeout(()=>n(f),e.timeout)),a.set(i,{resolve:a=>{try{n(h(a))}catch(a){if(l)return;l=!0,m(),j(a instanceof Error?a:Error(String(a)))}},reject:a=>{l||(l=!0,m(),j(a))}});let p={type:"extension_ui_request",id:i,...g};b.set(i,p),c(p)})}function g(a){let b=new Map,c=new Map,g=new Map,h=new Map;return{uiContext:{select:(d,e,g)=>f(b,c,a,g,void 0,{method:"select",title:d,options:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),confirm:(d,e,g)=>f(b,c,a,g,!1,{method:"confirm",title:d,message:e,timeout:g?.timeout},a=>(!("cancelled"in a)||!a.cancelled)&&"confirmed"in a&&!!a.confirmed),input:(d,e,g)=>f(b,c,a,g,void 0,{method:"input",title:d,placeholder:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),notify(b,c){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"notify",message:b,notifyType:c})},onTerminalInput:()=>()=>{},setStatus(b,c){c?g.set(b,c):g.delete(b),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setStatus",statusKey:b,statusText:c})},setWorkingMessage(){},setWorkingVisible(){},setWorkingIndicator(){},setHiddenThinkingLabel(){},setWidget(b,c,f){if("function"==typeof c){let a=(0,e.tU)(c,(0,e.Lm)());if(null===a)return;c=a}(void 0===c||Array.isArray(c))&&(null==c?h.delete(b):h.set(b,{lines:c,placement:f?.placement}),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setWidget",widgetKey:b,widgetLines:c,widgetPlacement:f?.placement}))},setFooter(){},setHeader(){},setTitle(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setTitle",title:b})},async custom(b){let c=(0,d.randomUUID)();return new Promise(d=>{let e=!1,f=b=>{e||(e=!0,a({type:"extension_ui_request",id:c,method:"custom_close"}),d(b))};Promise.resolve(b(function(a,b=92,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}(()=>{a({type:"extension_ui_request",id:c,method:"custom_render"})},92,40),{},{},f)).catch(()=>{f(void 0)}),a({type:"extension_ui_request",id:c,method:"custom"})})},pasteToEditor(a){this.setEditorText(a)},setEditorText(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"set_editor_text",text:b})},getEditorText:()=>"",editor:async(d,e)=>f(b,c,a,void 0,void 0,{method:"editor",title:d,prefill:e},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),addAutocompleteProvider(){},setEditorComponent(){},getEditorComponent(){},get theme(){let a=a=>String(a??""),b=(a,b)=>void 0===b?"":String(b);return new Proxy({fg:b,bg:b,bold:a,dim:a,italic:a},{get:(b,c)=>c in b?b[c]:"then"!==c?a:void 0})},getAllThemes:()=>[],getTheme(){},setTheme:()=>({success:!1,error:"Theme switching not supported in Web mode"}),getToolsExpanded:()=>!1,setToolsExpanded(){}},pending:b,statuses:g,widgets:h,pendingSnapshot:c,respond(a,c){let d=b.get(a);return!!d&&(d.resolve(c),!0)},dispose(){for(let[a,d]of b)b.delete(a),c.delete(a),d.reject(Error("Extension UI disposed"));g.clear(),h.clear()}}}},82356:(a,b,c)=>{c.d(b,{AZ:()=>n,GT:()=>g,Hl:()=>o,kP:()=>m,mr:()=>p});var d=c(89477),e=c(86697),f=c(92783);let g="Session is locked by another Pidance process (writable host ownership)";function h(a){return(0,e.join)(a,"pidance-running-leases")}function i(a,b){let c=b.replace(/[^a-zA-Z0-9._-]+/g,"_").slice(0,180);return(0,e.join)(h(a),`${c}.json`)}function j(a){try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));if("number"!=typeof b.pid||"string"!=typeof b.sessionId||"number"!=typeof b.heartbeatAt)return null;return{pid:b.pid,sessionId:b.sessionId,heartbeatAt:b.heartbeatAt}}catch{return null}}function k(a,b){return b-a.heartbeatAt<=2e4&&function(a){if(!Number.isFinite(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}}(a.pid)}function l(a,b){(0,d.writeFileSync)(a,`${JSON.stringify(b)}
|
|
2
|
+
`,{mode:384})}function m(a,b=(0,f.$M)(),c=Date.now()){if(!a)return!1;let e=h(b);(0,d.existsSync)(e)||(0,d.mkdirSync)(e,{recursive:!0,mode:448});let g=i(b,a),n=(0,d.existsSync)(g)?j(g):null;return(!(n&&k(n,c))||n.pid===process.pid)&&(l(g,{pid:process.pid,sessionId:a,heartbeatAt:c}),!0)}function n(a,b=(0,f.$M)(),c=Date.now()){if(!a)return;let e=i(b,a),g=(0,d.existsSync)(e)?j(e):null;g&&g.pid!==process.pid&&k(g,c)||((0,d.existsSync)(h(b))||(0,d.mkdirSync)(h(b),{recursive:!0,mode:448}),l(e,{pid:process.pid,sessionId:a,heartbeatAt:c}))}function o(a,b=(0,f.$M)()){if(!a)return;let c=i(b,a),e=(0,d.existsSync)(c)?j(c):null;if(!e||e.pid===process.pid)try{(0,d.unlinkSync)(c)}catch{}}function p(a=(0,f.$M)(),b=Date.now()){let c=h(a);if(!(0,d.existsSync)(c))return[];let g=[];for(let a of(0,d.readdirSync)(c)){if(!a.endsWith(".json"))continue;let d=j((0,e.join)(c,a));d&&k(d,b)&&g.push(d.sessionId)}return g}},84127:(a,b,c)=>{c.d(b,{ql:()=>i,rV:()=>h,xP:()=>j});var d=c(89477),e=c(86697),f=c(92783);function g(a=(0,f.$M)()){return(0,e.join)(a,"pidance-preferences.json")}function h(a=(0,f.$M)()){let b=g(a);if(!(0,d.existsSync)(b))return{};try{let a=JSON.parse((0,d.readFileSync)(b,"utf8"));return"object"!=typeof a||null===a||Array.isArray(a)?{}:a}catch{return{}}}function i(a,b){let c=b.split("."),d=a;for(let a of c){if("object"!=typeof d||null===d)return;d=d[a]}return d}function j(a,b,c=(0,f.$M)()){let i=h(c);!function(a,b,c){let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++){let b=d[a],c=e[b];("object"!=typeof c||null===c||Array.isArray(c))&&(e[b]={}),e=e[b]}let f=d[d.length-1];null==c?delete e[f]:e[f]=c}(i,a,b),function(a,b=(0,f.$M)()){let c=g(b),h=(0,e.dirname)(c);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0,mode:448});let i=`${c}.${process.pid}.${Date.now()}.tmp`;try{(0,d.writeFileSync)(i,JSON.stringify(a,null,2),{flag:"wx",mode:384}),(0,d.renameSync)(i,c)}catch(a){try{(0,d.unlinkSync)(i)}catch{}throw a}}(i,c)}},89358:(a,b,c)=>{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{}}},92783:(a,b,c)=>{c.d(b,{$M:()=>f});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")}},99595:(a,b,c)=>{c.d(b,{cP:()=>d,l$:()=>j,qF:()=>k});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){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)}}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";exports.id=6192,exports.ids=[6192],exports.modules={1060:(a,b,c)=>{c.d(b,{Ac:()=>
|
|
1
|
+
"use strict";exports.id=6192,exports.ids=[6192],exports.modules={1060:(a,b,c)=>{c.d(b,{Ac:()=>l,GO:()=>h,X:()=>j,_4:()=>d,cV:()=>i,oC:()=>k});let d=262144,e={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},f={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},g={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function h(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function i(a){return e[h(a)]??null}function j(a){return f[h(a)]??null}function k(a){return g[h(a)]??null}function l(a){let b=h(a);return"pdf"===b||"docx"===b?b:null}},59216:(a,b,c)=>{c.d(b,{SQ:()=>A,$G:()=>w});var d=c(79646),e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(28354),j=c(1060);let k=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function l(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:k.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}function m(a,b){return`${a}\u0000${b}`}let n=(0,i.promisify)(d.execFile),o=new Map,p=new Map;function q(a,b){o.delete(m(a,b))}async function r(a,b,c=8388608){let{stdout:d}=await n("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function s(a){try{return(await r(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}async function t(a){try{let[b,c]=(await r(a,["rev-parse","--show-toplevel","HEAD"])).trim().split("\n");if(!b)return null;return{repositoryRoot:b,head:c?.trim()||null}}catch{try{let b=(await r(a,["rev-parse","--show-toplevel"])).trim();return b?{repositoryRoot:b,head:null}:null}catch{return null}}}function u(a,b){let c=h().relative(h().resolve(a),h().resolve(b));return""===c||!c.startsWith(`..${h().sep}`)&&".."!==c&&!h().isAbsolute(c)}async function v(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a++){let d=b[a];if(!d||d.length<4||" "!==d[2])continue;let e=d[0],f=d[1],g={path:d.slice(3),indexStatus:e,worktreeStatus:f};("R"===e||"C"===e||"R"===f||"C"===f)&&(g.originalPath=b[++a]||void 0),c.push(g)}return c}(await r(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function w(a){let b=Date.now(),c=p.get(a);if(c&&b-c.fetchedAt<800)return c.response;let d=await x(a);return p.set(a,{fetchedAt:b,response:d}),d}async function x(a){let b=await s(a);if(!b)return{isGitRepository:!1,repositoryRoot:null,files:[]};let c=(await v(b)).flatMap(c=>{let d=h().resolve(b,c.path);return u(a,d)?[{filePath:d,...l(c),indexStatus:c.indexStatus,worktreeStatus:c.worktreeStatus}]:[]});return{isGitRepository:!0,repositoryRoot:b,files:c}}function y(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
|
|
2
2
|
new file mode 100644
|
|
3
3
|
--- /dev/null
|
|
4
4
|
+++ b/${a}
|
|
5
5
|
@@ -0,0 +1,${d.length} @@
|
|
6
|
-
${e}${f}`}async function z(a,b,c){try{return await r(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*j._4)}catch{return null}}async function A(a,b,c={}){let d,e,g=await t(a);if(!g||!u(g.repositoryRoot,b))return{supported:!1};let{repositoryRoot:i,head:k}=g,n=h().resolve(b);try{d=f().lstatSync(n)}catch{return q(a,b),{supported:!1}}if(!d.isFile()||d.size>j._4)return{supported:!1};let p=m(a,b),r=o.get(p);if(!c.force&&r&&r.mtimeMs===d.mtimeMs&&r.size===d.size&&r.head===k)return r.response;let s=h().relative(i,n).split(h().sep).join("/"),w=(await v(i)).find(a=>a.path===s);if(!w)return q(a,b),{supported:!1};let{status:x}=l(w);if("deleted"===x)return q(a,b),{supported:!1};let B=f().readFileSync(n);if(B.includes(0))return{supported:!1};let C=B.toString("utf8");if("untracked"===x)e=y(s,C);else{let a=await z(i,s,w.originalPath);if(null===a){if("added"!==x)return{supported:!1};e=y(s,C)}else e=a}let D=e.includes("\n@@ ")?{supported:!0,status:x,patch:e}:{supported:!1};return o.set(p,{mtimeMs:d.mtimeMs,size:d.size,head:k,response:D}),D}},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.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,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>
|
|
6
|
+
${e}${f}`}async function z(a,b,c){try{return await r(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*j._4)}catch{return null}}async function A(a,b,c={}){let d,e,g=await t(a);if(!g||!u(g.repositoryRoot,b))return{supported:!1};let{repositoryRoot:i,head:k}=g,n=h().resolve(b);try{d=f().lstatSync(n)}catch{return q(a,b),{supported:!1}}if(!d.isFile()||d.size>j._4)return{supported:!1};let p=m(a,b),r=o.get(p);if(!c.force&&r&&r.mtimeMs===d.mtimeMs&&r.size===d.size&&r.head===k)return r.response;let s=h().relative(i,n).split(h().sep).join("/"),w=(await v(i)).find(a=>a.path===s);if(!w)return q(a,b),{supported:!1};let{status:x}=l(w);if("deleted"===x)return q(a,b),{supported:!1};let B=f().readFileSync(n);if(B.includes(0))return{supported:!1};let C=B.toString("utf8");if("untracked"===x)e=y(s,C);else{let a=await z(i,s,w.originalPath);if(null===a){if("added"!==x)return{supported:!1};e=y(s,C)}else e=a}let D=e.includes("\n@@ ")?{supported:!0,status:x,patch:e}:{supported:!1};return o.set(p,{mtimeMs:d.mtimeMs,size:d.size,head:k,response:D}),D}},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.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,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>r,Nw:()=>j.Nw,bk:()=>q,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let s=/^[a-zA-Z]:[\\/]/;function o(a){return s.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(){return!0}function r(a,b){return!0}d()}catch(a){d(a)}})}};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=7594,exports.ids=[7594],exports.modules={2416:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j1:()=>r});var e=c(75430),f=c(60396),g=c(68524),h=c(5815),i=c(85664),j=c(65107),k=c(95237),l=c(38195),m=c(62693),n=c(31524),o=c(87538),p=a([e,k]);function q(a){return"string"==typeof a&&a?a:void 0}[e,k]=p.then?(await p)():p;class s{static{this.PARTIAL_RENDER_MIN_INTERVAL_MS=100}constructor(a){this.options=a,this.listeners=[],this.runtime=null,this.unsubscribe=null,this.extensionUi=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0,this.promptRunning=!1,this.lastStopReason=null,this.followUpQueue=[],this.followUpQueueHydrated=!1,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.bashRunning=!1,this.bashCommand=null,this.localQueue={steering:[],followUp:[]},this.hasQueueSnapshot=!1,this.renderBridgeTheme=(0,o.Lm)(),this.toolRenderStates=new Map,this.realSessionId=a.sessionId,this.realSessionFile=a.sessionFile,this.idleTimeoutMs=a.idleTimeoutMs??6e5,this.agentDir=a.agentDir??(0,f.$M)(),this.activeToolNames=a.toolNames}get sessionId(){return this.realSessionId}get sessionFile(){return this.realSessionFile}listPendingExtensionRequests(){return Array.from(this.extensionUi?.pendingSnapshot.values()??[])}get inner(){let a=this.runtime?.session;if(a)return{sessionManager:a.sessionManager}}isAlive(){return this._alive&&null!==this.runtime}isRunning(){if(!this._alive||!this.runtime)return!1;let a=this.runtime.session;return this.promptRunning||this.bashRunning||a.isStreaming||a.isCompacting}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] sdk host listener error:",a)}}notifyRunning(){this.options.onRunningChange?.()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()||this.followUpQueue.length>0&&!this.isFollowUpHeld()?this.resetIdleTimer():this.destroyAsync()},this.idleTimeoutMs)}isSettled(){return!!this.runtime&&!!this._alive&&!this.isRunning()}isFollowUpHeld(){let a=(0,g.rV)(this.agentDir);return!0===(0,g.ql)(a,`sessionQueueHold.${this.realSessionId}`)}hydrateFollowUpQueue(){if(this.followUpQueueHydrated)return;this.followUpQueueHydrated=!0;let a=(0,g.rV)(this.agentDir),b=(0,g.ql)(a,`sessionQueue.${this.realSessionId}`);this.followUpQueue=Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}persistFollowUpQueue(){try{(0,g.xP)(`sessionQueue.${this.realSessionId}`,this.followUpQueue,this.agentDir)}catch(a){console.error("[pidance] failed to persist follow-up queue:",a)}}scheduleFollowUpFlush(){!this._alive||!this.runtime||this.flushingFollowUp||0===this.followUpQueue.length||this.isFollowUpHeld()||this.isSettled()&&(this.flushingFollowUp=!0,this.followUpFlushAsOne=!0===(0,g.rV)(this.agentDir).queueFlushAsOne,this.followUpFlushOriginal=[...this.followUpQueue],this.followUpFlushBatch=this.followUpFlushAsOne?[this.followUpFlushOriginal.join("\n\n")]:[...this.followUpFlushOriginal],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.sendNextFollowUp())}async sendNextFollowUp(){if(!this.flushingFollowUp)return;if(this.isFollowUpHeld())return void this.abortFollowUpFlush();let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return void this.finishFollowUpFlush();if(this.isSettled()){this.followUpFlushConfirmed=!1;try{await this.send({type:"prompt",message:a})}catch(b){let a=b instanceof Error?b.message:String(b);this.emit({type:"follow_up_flush_error",errorMessage:a}),this.abortFollowUpFlush()}}}confirmFollowUpFlush(){if(!this.flushingFollowUp||this.followUpFlushConfirmed)return;let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return;if(this.followUpFlushConfirmed=!0,this.followUpFlushAsOne){let a=new Set(this.followUpFlushOriginal);this.followUpQueue=this.followUpQueue.filter(b=>!a.has(b))}else{let b=this.followUpQueue.indexOf(a);b>=0&&this.followUpQueue.splice(b,1)}let b=[...this.followUpQueue];(this.persistFollowUpQueue(),this.emit({type:"follow_up_flushed",sessionId:this.realSessionId,item:a,remaining:b}),this.followUpFlushAsOne)?this.finishFollowUpFlush():(this.followUpFlushCursor+=1,this.followUpFlushCursor>=this.followUpFlushBatch.length?this.finishFollowUpFlush():this.sendNextFollowUp())}abortFollowUpFlush(){this.flushingFollowUp&&(this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer())}finishFollowUpFlush(){this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.scheduleFollowUpFlush()}get session(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.session}get services(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.services}syncIdentityFromSession(){let a=this.session,b=a.sessionId||this.realSessionId,c=a.sessionFile||this.realSessionFile,d=this.realSessionId;this.realSessionId=b,this.realSessionFile=c,c&&this.options.cacheSessionPath?.(b,c),d!==b&&this.options.onSessionRekeyed?.(d,b,this)}async rebindSession(){let a=this.session;this.extensionUi?.dispose(),this.extensionUi=(0,l.t)(a=>{this.trackExtensionSideEffects(a),this.emit(a)}),await a.bindExtensions({uiContext:this.extensionUi.uiContext,mode:"rpc",commandContextActions:{waitForIdle:()=>a.waitForIdle(),newSession:async a=>{let b=await this.runtime.newSession(a);return b.cancelled||await this.rebindSession(),b},fork:async(a,b)=>{let c=await this.runtime.fork(a,b);return c.cancelled||await this.rebindSession(),{cancelled:c.cancelled}},navigateTree:async(b,c)=>({cancelled:(await a.navigateTree(b,{summarize:c?.summarize,customInstructions:c?.customInstructions,replaceInstructions:c?.replaceInstructions,label:c?.label})).cancelled}),switchSession:async(a,b)=>{let c=await this.runtime.switchSession(a,b);return c.cancelled||await this.rebindSession(),c},reload:async()=>{await a.reload()}},onError:a=>{this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})}}),this.unsubscribe?.(),this.unsubscribe=a.subscribe(a=>{this.resetIdleTimer(),this.handleSessionEvent(a)}),this.syncIdentityFromSession()}trackExtensionSideEffects(a){if("extension_ui_request"!==a.type)return;let b=q(a.method);if("setStatus"===b){let b=q(a.statusKey)??q(a.key)??"default",c=q(a.statusText)??q(a.text)??"";c?this.extensionUi?.statuses.set(b,c):this.extensionUi?.statuses.delete(b)}if("setWidget"===b){let b=q(a.widgetKey)??q(a.key)??"default",c=a.widgetLines??a.content;null==c?this.extensionUi?.widgets.delete(b):this.extensionUi?.widgets.set(b,{lines:c,placement:a.widgetPlacement})}this.notifyRunning()}maybeAutoNameSession(){try{let a=this.session?.sessionManager;if(!a||a.getSessionName())return;let b=(a.buildSessionContext().messages??[]).find(a=>"user"===a.role),c=function(a){let b="";"string"==typeof a?b=a:Array.isArray(a)&&(b=a.filter(a=>"object"==typeof a&&null!==a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"));let c=b.replace(/\s+/g," ").trim();if(c)return c.length>60?`${c.slice(0,60)}…`:c}(b?.content);c&&a.appendSessionInfo(c)}catch{}}readStopReasonFromAgentEnd(a){let b=a.messages;if(!Array.isArray(b))return null;for(let a=b.length-1;a>=0;a--){let c=b[a],d=c?.message?.stopReason??c?.stopReason;if("string"==typeof d){if("aborted"===d)return"aborted";if("error"===d||"prompt_error"===d)return"error";return"completed"}}return null}handleSessionEvent(a){switch(a.type){case"agent_start":this.promptRunning=!0,(0,h.NK)(this.realSessionId,Date.now()),this.notifyRunning();break;case"agent_end":this.promptRunning=!1,this.lastStopReason=this.readStopReasonFromAgentEnd(a)??this.lastStopReason??"completed",(0,h.PI)(this.realSessionId),this.options.onSessionListInvalidate?.(),this.realSessionFile&&(0,j.$9)(this.realSessionFile),this.maybeAutoNameSession(),this.notifyRunning(),this.emit({type:"prompt_done"});break;case"agent_settled":this.promptRunning=!1,this.notifyRunning(),"completed"===this.lastStopReason?this.flushingFollowUp?this.sendNextFollowUp():this.scheduleFollowUpFlush():this.flushingFollowUp&&("aborted"===this.lastStopReason||"error"===this.lastStopReason)&&this.abortFollowUpFlush();break;case"compaction_start":case"auto_compaction_start":case"compaction_end":case"auto_compaction_end":this.notifyRunning();break;case"message_end":{let b=a.message;b?.role==="user"&&(this.confirmFollowUpFlush(),setImmediate(()=>{try{(0,k.kb)(this.session.sessionManager),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()}catch(a){console.error("[pidance] materialize after user message failed:",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(this.withRenderedToolLines(a))}withRenderedToolLines(a){try{if(!this.renderBridgeTheme)return a;switch(a.type){case"tool_execution_update":{if(!this.shouldRenderPartialUpdate(a.toolCallId))return a;let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!0,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,o.t_)(b,a.partialResult,{expanded:!0,isPartial:!0},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedLines:d}:a}case"tool_call":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.input,{isPartial:!1,expanded:!0,isError:!1,resultSlot:!1});if(!c)return a;let d=(0,o.GD)(b,a.input,c,b=>this.updateToolRenderLastComponent(a.toolCallId,!1,b));return d?{...a,renderedCallLines:d}:a}case"tool_result":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!1,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,o.t_)(b,{content:a.content,details:a.details,isError:!0===a.isError,...void 0!==a.usage?{usage:a.usage}:{}},{expanded:!0,isPartial:!1},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedResultLines:d}:a}case"message_start":case"message_end":{let b=a.message;if(b?.role!=="custom"||"string"!=typeof b.customType||""===b.customType)return a;let c=this.session.extensionRunner,d="function"==typeof c?.getMessageRenderer?c.getMessageRenderer(b.customType):void 0,e=(0,o.Mf)(d,a.message,this.renderBridgeTheme);return e?{...a,renderedLines:e}:a}default:return a}}catch{return a}}getToolRenderDefinition(a){if("string"==typeof a&&""!==a)try{return this.session.getToolDefinition(a)}catch{return}}buildToolRenderContext(a,b,c){let d=this.getOrCreateToolRenderState(a);return d?{args:b,toolCallId:a,invalidate:()=>{},lastComponent:c.resultSlot?d.lastResultComponent:d.lastCallComponent,state:d.state,cwd:this.realCwd,executionStarted:!0,argsComplete:!0,isPartial:c.isPartial,expanded:c.expanded,showImages:!1,isError:c.isError}:null}getOrCreateToolRenderState(a){if("string"!=typeof a||""===a)return null;let b=this.toolRenderStates.get(a);return b||(b={state:{},lastCallComponent:void 0,lastResultComponent:void 0,lastPartialRenderAt:void 0},this.toolRenderStates.set(a,b)),b}updateToolRenderLastComponent(a,b,c){if("string"!=typeof a||""===a)return;let d=this.toolRenderStates.get(a);d&&(b?d.lastResultComponent=c:d.lastCallComponent=c)}shouldRenderPartialUpdate(a){if("string"!=typeof a||""===a)return!0;let b=Date.now(),c=this.getOrCreateToolRenderState(a);return!c||(void 0===c.lastPartialRenderAt||!(b-c.lastPartialRenderAt<s.PARTIAL_RENDER_MIN_INTERVAL_MS))&&(c.lastPartialRenderAt=b,!0)}get realCwd(){try{return this.session.sessionManager.getHeader()?.cwd||this.options.cwd}catch{return this.options.cwd}}async start(){try{var a,b;let c=(a=this.realSessionFile,b=this.options.cwd,a?(0,k.G1)(a):(0,k.Qu)(b)),d=c.getCwd()||this.options.cwd,f=this.agentDir,g=this.activeToolNames,h=async({cwd:a,agentDir:b,sessionManager:c,sessionStartEvent:d})=>{let f=await (0,e.createAgentSessionServices)({cwd:a,agentDir:b});for(let a of f.modelRuntime.getModels())(0,n.yu)(a);return{...await (0,e.createAgentSessionFromServices)({services:f,sessionManager:c,sessionStartEvent:d,tools:g&&g.length>0?g:void 0,noTools:g&&0===g.length?"all":void 0}),services:f,diagnostics:f.diagnostics}};this.runtime=await (0,e.createAgentSessionRuntime)(h,{cwd:d,agentDir:f,sessionManager:c}),this.runtime.setRebindSession(async()=>{await this.rebindSession()}),this.runtime.setBeforeSessionInvalidate(()=>{this.extensionUi?.dispose(),this.unsubscribe?.(),this.unsubscribe=null}),await this.rebindSession(),this.syncIdentityFromSession(),this.hydrateFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.isSettled()&&this.scheduleFollowUpFlush()}catch(a){throw await this.destroyAsync(),a}}projectState(){let a=this.session,b=a.model,c={stateSources:{rpcGetState:!1,sdkSession:!0,sessionStats:!0,localQueue:this.hasQueueSnapshot,localExtensionUi:!0},sessionId:this.realSessionId,sessionFile:this.realSessionFile,sessionName:a.sessionName,isStreaming:a.isStreaming,isCompacting:a.isCompacting,isPromptRunning:this.promptRunning,lastStopReason:this.lastStopReason,isBashRunning:this.bashRunning,pendingBash:this.bashCommand,autoCompactionEnabled:a.autoCompactionEnabled,steeringMode:a.steeringMode,followUpMode:a.followUpMode,thinkingLevel:a.thinkingLevel,systemPrompt:a.systemPrompt??"",model:b?{id:b.id,provider:b.provider}:void 0,messageCount:a.messages.length,pendingMessageCount:a.pendingMessageCount,extensionStatuses:Array.from(this.extensionUi?.statuses.entries()??[],([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionUi?.widgets.entries()??[],([a,b])=>({key:a,lines:Array.isArray(b?.lines)?b.lines:[],placement:b?.placement==="belowEditor"?"belowEditor":"aboveEditor"})),pendingExtensionRequests:Array.from(this.extensionUi?.pendingSnapshot.values()??[])};this.hasQueueSnapshot&&(c.queuedMessages={steering:[...this.localQueue.steering],followUp:[...this.localQueue.followUp]});try{let b=a.getSessionStats(),d=b?.contextUsage;d&&"number"==typeof d.contextWindow&&d.contextWindow>0&&(c.contextUsage={contextWindow:d.contextWindow,percent:"number"==typeof d.percent?d.percent:null,tokens:"number"==typeof d.tokens?d.tokens:null})}catch{}return c}appendActivity(a){if(!this.runtime)throw Error("Cannot append activity: session not alive");let b=a&&"object"==typeof a&&"type"in a&&"append_activity"===a.type?(0,i.qF)(a):(0,i.l$)(a),c=this.session.sessionManager.appendCustomEntry(i.cP,b);return this.options.onSessionListInvalidate?.(),{entryId:c,activity:b}}async send(a){if(this.resetIdleTimer(),!this.runtime)throw Error("SDK session is not alive");let b=a.type,c=this.session;switch(b){case"prompt":if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");this.promptRunning=!0,this.lastStopReason=null,(0,h.NK)(this.realSessionId,Date.now()),this.notifyRunning();try{return await new Promise((b,d)=>{let e=!1,f=()=>{c.isStreaming||c.isCompacting||this.bashRunning||this.promptRunning&&(this.promptRunning=!1,"aborted"!==this.lastStopReason&&"error"!==this.lastStopReason&&(this.lastStopReason="completed"),(0,h.PI)(this.realSessionId),this.notifyRunning(),this.emit({type:"prompt_done"}))};c.prompt(String(a.message??""),{images:a.images,streamingBehavior:a.streamingBehavior,source:"rpc",preflightResult:a=>{a&&(e=!0,this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.(),b())}}).then(()=>{if(!e){e=!0;try{(0,k.kb)(c.sessionManager)}catch(a){console.error("[pidance] materialize after prompt failed:",a)}this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.(),b()}f()}).catch(a=>{"aborted"!==this.lastStopReason&&(this.lastStopReason="error"),f(),e||(e=!0,d(a))})}),null}catch(b){this.promptRunning=!1,this.lastStopReason="aborted"===this.lastStopReason?"aborted":"error",(0,h.PI)(this.realSessionId),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":return this.lastStopReason="aborted",this.promptRunning=!1,this.notifyRunning(),await c.abort(),this.notifyRunning(),null;case"get_state":return this.projectState();case"set_model":{let b=String(a.provider??""),d=String(a.modelId??""),e=(0,m.E)(c.modelRuntime,b,d);if(!e)try{e=(await c.modelRuntime.getAvailable()).find(a=>a.provider===b&&a.id===d)}catch{e=void 0}if(!e)throw Error(`Model not found: ${b}/${d}`);return await c.setModel((0,n.eU)(e)),this.options.onSessionListInvalidate?.(),e}case"set_thinking_level":return c.model&&(0,n.yu)(c.model),c.setThinkingLevel(a.level),this.options.onSessionListInvalidate?.(),null;case"compact":{let b=await c.compact("string"==typeof a.customInstructions?a.customInstructions:void 0);return this.options.onSessionListInvalidate?.(),b}case"steer":return await c.steer(String(a.message??""),a.images),null;case"set_follow_up_queue":{let b=Array.isArray(a.items)?a.items.filter(a=>"string"==typeof a&&a.trim().length>0):[];return this.followUpQueue=b,this.persistFollowUpQueue(),this.isSettled()&&this.scheduleFollowUpFlush(),{ok:!0,queued:this.followUpQueue.length}}case"follow_up":return await c.followUp(String(a.message??""),a.images),null;case"set_session_name":{let b=String(a.name??"").trim();if(!b)throw Error("Session name cannot be empty");return c.setSessionName(b),this.options.onSessionListInvalidate?.(),null}case"set_auto_compaction":return c.setAutoCompactionEnabled(!!a.enabled),null;case"set_auto_retry":return c.setAutoRetryEnabled(!!a.enabled),null;case"clear_queue":return c.clearQueue();case"get_tools":{let a=c.getAllTools(),b=new Set(c.getActiveToolNames());return{source:"sdk",tools:a.map(a=>({name:a.name,description:a.description??"",active:b.has(a.name)}))}}case"set_tools":{let b=Array.isArray(a.tools)?a.tools.filter(a=>"string"==typeof a):[];return c.setActiveToolsByName(b),this.activeToolNames=b,null}case"get_commands":{let a=[];for(let b of c.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of c.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt_template"});return{commands:a}}case"get_session_stats":return c.getSessionStats();case"bash":if(c.isStreaming)throw Error("Cannot run bash while agent is streaming");this.bashRunning=!0,this.bashCommand={command:String(a.command??""),excludeFromContext:!!a.excludeFromContext,startedAt:Date.now()},this.notifyRunning();try{return await c.executeBash(String(a.command??""),void 0,{excludeFromContext:!!a.excludeFromContext})}finally{this.bashRunning=!1,this.bashCommand=null,this.notifyRunning()}case"abort_bash":return c.abortBash(),this.bashRunning=!1,this.bashCommand=null,this.notifyRunning(),null;case"abort_compaction":return c.abortCompaction(),null;case"extension_ui_response":{let b=q(a.id);if(!b)throw Error("extension_ui_response requires id");let c={...a};return delete c.type,delete c.id,!this.extensionUi?.respond(b,c),this.notifyRunning(),null}case"extension_ui_input":case"ensure_session":return null;case"append_activity":return this.appendActivity(a);case"fork":{if(this.bashRunning)throw Error("Cannot fork while a shell command is running");let b=String(a.entryId??"");if(!b)throw Error("entryId is required");let c=await this.runtime.fork(b);return c.cancelled||(await this.rebindSession(),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()),{cancelled:c.cancelled,newSessionId:c.cancelled?void 0:this.realSessionId,text:c.selectedText}}case"navigate_tree":{if(this.bashRunning)throw Error("Cannot navigate while a shell command is running");let b=q(a.targetId);if(!b)throw Error("targetId is required");let d=await c.navigateTree(b,{summarize:a.summarize,customInstructions:q(a.customInstructions)});if(!d.cancelled&&this.realSessionFile){c.sessionManager.getLeafId();let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries(),d=b.at(-1)?.id;a&&d&&a!==d?(0,j.R3)(this.realSessionFile,a):this.realSessionFile&&(0,j.$9)(this.realSessionFile)}return this.options.onSessionListInvalidate?.(),{cancelled:d.cancelled}}case"select_leaf_exact":{let b=q(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.selectLeafExact(this.sessionId,b);let d=await c.navigateTree(b,{summarize:!1});if(!d.cancelled&&this.realSessionFile){let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries().at(-1)?.id;a&&b&&a!==b?(0,j.R3)(this.realSessionFile,a):(0,j.$9)(this.realSessionFile)}return{cancelled:d.cancelled}}case"branch_from_assistant":{let b=q(a.assistantEntryId);if(!b)throw Error("assistantEntryId is required");if(this.options.navigationActions)return this.options.navigationActions.branchFromAssistant(this.sessionId,b);throw Error("branch_from_assistant is unavailable")}case"create_session_from_leaf":{let b=q(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.createSessionFromLeaf(this.sessionId,b);throw Error("create_session_from_leaf is unavailable")}case"set_branch_label":{let b=q(a.targetId);if(!b)throw Error("targetId is required");let d=void 0===a.label||null===a.label?void 0:String(a.label);return c.sessionManager.appendLabelChange(b,d),this.options.onSessionListInvalidate?.(),null}case"reload":return await c.reload(),await this.rebindSession(),null;case"get_last_assistant_text":return{text:c.getLastAssistantText()};default:throw Error(`Unsupported command: ${b}`)}}destroy(){this.destroyAsync()}async destroyAsync(){if(!this._alive&&!this.runtime)return;this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null,this.unsubscribe?.(),this.unsubscribe=null,this.extensionUi?.dispose(),this.extensionUi=null;let a=this.runtime;if(this.runtime=null,a)try{await a.dispose()}catch(a){console.error("[pidance] sdk runtime dispose error:",a)}this.promptRunning=!1,this.bashRunning=!1,this.bashCommand=null,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],(0,h.PI)(this.realSessionId),this.onDestroyCallback?.(),this.notifyRunning()}}async function r(a){let b=new s(a);return await b.start(),b}d()}catch(a){d(a)}})},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()}},26773:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>m,A4:()=>i,Fn:()=>l,HG:()=>j,OF:()=>n});var e=c(40402),f=c(2416),g=a([e,f]);function h(){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 i(a){return h().get(a)}function j(){let a=new Set;for(let[b,c]of h())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function k(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}function l(a){let b=k();return b.add(a),()=>{b.delete(a)}}function m(){let a=[];for(let[b,c]of h()){let d=c.listPendingExtensionRequests();0!==d.length&&a.push({sessionId:c.sessionId||b,requests:d})}return a}[e,f]=g.then?(await g)():g;let p="";async function n(a,b,c,d,e){return o(a,b,c,d,e)}async function o(a,b,c,d,g){let i=h(),l=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),n=i.get(a);if(n?.isAlive())return{session:n,realSessionId:a};let o=l.get(a);if(o)return o;let q=(async()=>{let l=await (0,f.j1)({sessionId:a,sessionFile:b,cwd:c,toolNames:d,navigationActions:g,onRunningChange:()=>(function(){let a=j(),b=m(),c=JSON.stringify({ids:[...a].sort(),pending:b.map(a=>({sessionId:a.sessionId,ids:a.requests.map(a=>a.id??null)}))});if(c!==p)for(let b of(p=c,k()))try{b(a)}catch{}})(),onSessionListInvalidate:()=>(0,e.mD)(),cacheSessionPath:(a,b)=>(0,e.O8)(a,b),onSessionRekeyed:(a,b,c)=>{let d;d=h(),a!==b&&d.delete(a),d.set(b,c)}}),n=l.sessionId,o=l.sessionFile;return o&&(0,e.O8)(n,o),l.onDestroy(()=>{i.get(n)===l&&i.delete(n),a!==n&&i.get(a)===l&&i.delete(a)}),i.set(n,l),a!==n&&i.get(a),l.beginExtensionBinding(),{session:l,realSessionId:n}})().finally(()=>l.delete(a));return l.set(a,q),q}d()}catch(a){d(a)}})},31524:(a,b,c)=>{c.d(b,{Ut:()=>e,eU:()=>f,yu:()=>g});let d=["off","minimal","low","medium","high","xhigh","max"];function e(a,b){return a?d.filter(a=>b?.[a]!==null):["off"]}function f(a){if(!a.reasoning)return a;let b=a.thinkingLevelMap,c={...b??{}},d=!1;for(let a of["xhigh","max"])Object.prototype.hasOwnProperty.call(c,a)&&void 0!==c[a]||(c[a]=a,d=!0);return!d&&b?a:{...a,thinkingLevelMap:c}}function g(a){let b=f(a);if(b===a)return a;try{return a.thinkingLevelMap=b.thinkingLevelMap,a}catch{return b}}},37594:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C9:()=>x,DQ:()=>w,Md:()=>v,Yz:()=>u,mB:()=>z});var e=c(29021),f=c(33873),g=c(80547),h=c(60396),i=c(95237),j=c(65107),k=c(56429),l=c(40402),m=c(85664),n=c(15461),o=c(76817),p=c(86226),q=c(68524),r=c(50955),s=c(40239),t=a([g,i,k,l]);[g,i,k,l]=t.then?(await t)():t;let w="Subagent sessions are read-only";class x extends Error{constructor(){super(w)}toString(){return this.message}}async function u(a,b){if(await b(a))throw new x}function v(a){let b=a instanceof Error?a.message:String(a);return a instanceof x||b===w?403:b.includes("Session not found")?404:500}let y={listAllSessions:l.dQ,resolveSessionPath:l.os,getRpcSession:k.A4,startRpcSession:k.OF,getRunningRpcSessionIds:k.HG,listPendingExtensionUi:k.$k,subscribeRunningSessions:k.Fn,allowFileRoot:g.wz,invalidateSessionListCache:l.mD,openSessionCwd:a=>(0,i.kW)(a).getHeader()?.cwd??process.cwd(),openSessionManager:a=>(0,l.Zx)({filePath:a}),existsSync:e.existsSync,now:()=>Date.now(),archiveFs:s.Iq},z=function(a={}){let b={...y,...a},c=(0,s.Ki)({fs:b.archiveFs,agentDir:b.archiveAgentDir,resolveSessionPath:b.resolveSessionPath,readSessionHeader:l.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()}),d=()=>(0,s.$T)(b.archiveFs??s.Iq,b.archiveAgentDir?.()??(0,h.$M)()),g={async listSessions(){let a=await b.listAllSessions(),{active:c,archived:e}=(0,s.uD)(a,d());return{sessions:c,archivedSessions:e,archivedCount:e.length,runningSessionIds:b.getRunningRpcSessionIds()}},async listArchivedSessions(){let a=await b.listAllSessions();return(0,s.uD)(a,d()).archived},async listActiveSessions(){let a=await b.listAllSessions();return(0,s.uD)(a,d()).active},listAllSessions:async()=>b.listAllSessions(),async isArchived(a){let c=await b.listAllSessions();return(0,s.YV)(c,d()).has(a)},archiveSession:async a=>c.archiveSession(a),restoreSession:async a=>c.restoreSession(a),archiveSessions:async a=>c.archiveSessions(a),restoreSessions:async a=>c.restoreSessions(a),removeArchiveRecordAfterPermanentDelete(a){(0,s.rQ)(b.archiveFs??s.Iq,b.archiveAgentDir?.()??(0,h.$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=>g.getLive(a),isLive:a=>!!g.getLive(a),async ensureLive(a){await u(a,g.isReadOnly);let c=g.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,k);return f},destroy(a){b.getRpcSession(a)?.destroy()},async destroyAsync(a){let c=b.getRpcSession(a);c&&("function"==typeof c.destroyAsync?await c.destroyAsync():c.destroy())},async deleteSession(a){await u(a,g.isReadOnly);let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let d=(0,l.eP)(c)?.parentSession,h=(0,l.eP)(c)?.id===a?(0,r.ku)(c,a):[],i=b.getRpcSession(a);if(i?.isAlive?.()&&b.getRunningRpcSessionIds().includes(a))try{await i.send({type:"abort"})}catch(a){console.error("[pidance] abort before delete failed:",a)}await g.destroyAsync(a);let k=c.replace(/\\/g,"/").split("/").slice(0,-1).join("/");try{for(let a of(0,e.readdirSync)(k).filter(a=>a.endsWith(".jsonl")&&(0,f.join)(k,a)!==c)){let b=(0,f.join)(k,a);try{let a=(0,e.readFileSync)(b,"utf8").split("\n"),f=JSON.parse(a[0]);"session"===f.type&&f.parentSession===c&&(f.parentSession=d,a[0]=JSON.stringify(f),(0,e.writeFileSync)(b,a.join("\n")))}catch{}}}catch{}(0,e.unlinkSync)(c),(0,j.$9)(c);let m=(0,f.resolve)(c.slice(0,-6)),n=(0,r.uq)(h,m,l.BR);try{(0,q.xP)(`sessionQueue.${a}`,null),(0,q.xP)(`sessionQueueHold.${a}`,null)}catch(a){console.error("[pidance] failed to clear queue prefs after delete:",a)}return(0,l.BR)(a),b.invalidateSessionListCache(),g.removeArchiveRecordAfterPermanentDelete(a),{skippedSubagents:n}},start:async(a,c,d,e)=>(await u(a,g.isReadOnly),b.startRpcSession(a,c,d,e,k)),send:async(a,b)=>(await g.ensureLive(a)).send(b),async appendActivity(a,c){await u(a,g.isReadOnly);let d=g.getLive(a),e=!!d?.inner?.sessionManager,f=d?.appendActivity;if(d?.isAlive()&&e&&"function"==typeof f)return await f.call(d,c);d?.isAlive()&&g.destroy(a);let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let j=(0,m.l$)(c),k=(0,i.kW)(h).appendCustomEntry(m.cP,j);return b.invalidateSessionListCache(),{entryId:k,activity:j}},async appendCommandEntry(a,c){await u(a,g.isReadOnly);let d=g.getLive(a);d?.isAlive()&&g.destroy(a);let e=await b.resolveSessionPath(a);if(!e)throw Error("Session not found");let f=(0,n.fc)(c);if(!f.command)throw Error("command is required");let h=(0,i.kW)(e).appendCustomEntry(n.OE,f);return b.invalidateSessionListCache(),{entryId:h,data:f}},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:j,realSessionId:l}=await b.startRpcSession(i,"",a,f,k);if(b.allowFileRoot(a),b.invalidateSessionListCache(),d&&e&&await j.send({type:"set_model",provider:d,modelId:e}),g&&await j.send({type:"set_thinking_level",level:g}),"ensure_session"===h.type)return{sessionId:l,data:null};let m=await j.send(h);return{sessionId:l,data:m}},getRunningIds:()=>b.getRunningRpcSessionIds(),listPendingExtensionUi:()=>b.listPendingExtensionUi(),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);if(e?.isAlive?.()){if(e.inner?.isBashRunning)throw Error("Cannot switch branch while a shell command is running");g.destroy(a)}let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let h=(0,i.kW)(f),k=h.getLeafId();if(d===k)return{cancelled:!1};if(d===h.getLastEntryId())return(0,j.$9)(f),{cancelled:!1};if(!h.getEntry(d))throw Error(`Entry ${d} not found`);try{return h.branch(d),(0,j.R3)(f,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);if(e?.isAlive?.()){if(e.inner?.isBashRunning)throw Error("Cannot branch while a shell command is running");g.destroy(a)}let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let h=(0,i.kW)(f),k=h.getLeafId();if(!k)throw Error("Session has no leaf");let l=h.getBranch(k),m=h.getEntry(d);if(!m)throw Error("Entry not found");if("message"!==m.type||m.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let n=(0,o.wo)(l,d);try{return h.branch(n),n===h.getLastEntryId()?(0,j.$9)(f):(0,j.R3)(f,n),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async createSessionFromLeaf(a,c){if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;b.getRpcSession(a)?.isAlive()&&g.destroy(a);let h=(f?.sessionFile||e?.sessionFile)??await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let j=(0,i.kW)(h),k=j.getEntry(d);if(!k)throw Error("Invalid entry ID");let m=d;if("message"===k.type&&k.message?.role==="assistant"){let a=j.getLeafId();if(!a)throw Error("Session has no leaf");let b=j.getBranch(a);m=(0,o.wo)(b,d)}let n=j.getSessionDir(),q=(0,i.G1)(h,n),r=q.createBranchedSession(m);if(!r)throw Error("Failed to create session");(0,i.kb)(q);let s=(0,i.kW)(r,n),t=s.getSessionId();(0,l.O8)(t,r),b.invalidateSessionListCache();let u=f?.model;return u&&(0,p.yN)(s.getEntries().some(a=>"model_change"===a.type),{provider:u.provider,modelId:u.id})&&s.appendModelChange(u.provider,u.id),b.getRpcSession(a)?.destroy(),{cancelled:!1,newSessionId:t}}},k={selectLeafExact:(a,b)=>g.selectLeafExact(a,b),branchFromAssistant:(a,b)=>g.branchFromAssistant(a,b),createSessionFromLeaf:(a,b)=>g.createSessionFromLeaf(a,b)};return g}();d()}catch(a){d(a)}})},38195:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(716),e=c(87538);function f(a,b,c,e,f,g,h){let i=(0,d.randomUUID)();return new Promise((d,j)=>{let k,l=!1,m=()=>{a.delete(i),b.delete(i),k&&clearTimeout(k),e?.signal?.removeEventListener("abort",o)},n=a=>{l||(l=!0,m(),d(a))},o=()=>n(f);e?.signal?.addEventListener("abort",o,{once:!0}),e?.timeout&&(k=setTimeout(()=>n(f),e.timeout)),a.set(i,{resolve:a=>{try{n(h(a))}catch(a){if(l)return;l=!0,m(),j(a instanceof Error?a:Error(String(a)))}},reject:a=>{l||(l=!0,m(),j(a))}});let p={type:"extension_ui_request",id:i,...g};b.set(i,p),c(p)})}function g(a){let b=new Map,c=new Map,g=new Map,h=new Map;return{uiContext:{select:(d,e,g)=>f(b,c,a,g,void 0,{method:"select",title:d,options:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),confirm:(d,e,g)=>f(b,c,a,g,!1,{method:"confirm",title:d,message:e,timeout:g?.timeout},a=>(!("cancelled"in a)||!a.cancelled)&&"confirmed"in a&&!!a.confirmed),input:(d,e,g)=>f(b,c,a,g,void 0,{method:"input",title:d,placeholder:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),notify(b,c){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"notify",message:b,notifyType:c})},onTerminalInput:()=>()=>{},setStatus(b,c){c?g.set(b,c):g.delete(b),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setStatus",statusKey:b,statusText:c})},setWorkingMessage(){},setWorkingVisible(){},setWorkingIndicator(){},setHiddenThinkingLabel(){},setWidget(b,c,f){if("function"==typeof c){let a=(0,e.tU)(c,(0,e.Lm)());if(null===a)return;c=a}(void 0===c||Array.isArray(c))&&(null==c?h.delete(b):h.set(b,{lines:c,placement:f?.placement}),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setWidget",widgetKey:b,widgetLines:c,widgetPlacement:f?.placement}))},setFooter(){},setHeader(){},setTitle(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setTitle",title:b})},async custom(b){let c=(0,d.randomUUID)();return new Promise(d=>{let e=!1,f=b=>{e||(e=!0,a({type:"extension_ui_request",id:c,method:"custom_close"}),d(b))};Promise.resolve(b(function(a,b=92,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}(()=>{a({type:"extension_ui_request",id:c,method:"custom_render"})},92,40),{},{},f)).catch(()=>{f(void 0)}),a({type:"extension_ui_request",id:c,method:"custom"})})},pasteToEditor(a){this.setEditorText(a)},setEditorText(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"set_editor_text",text:b})},getEditorText:()=>"",editor:async(d,e)=>f(b,c,a,void 0,void 0,{method:"editor",title:d,prefill:e},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),addAutocompleteProvider(){},setEditorComponent(){},getEditorComponent(){},get theme(){let a=a=>String(a??""),b=(a,b)=>void 0===b?"":String(b);return new Proxy({fg:b,bg:b,bold:a,dim:a,italic:a},{get:(b,c)=>c in b?b[c]:"then"!==c?a:void 0})},getAllThemes:()=>[],getTheme(){},setTheme:()=>({success:!1,error:"Theme switching not supported in Web mode"}),getToolsExpanded:()=>!1,setToolsExpanded(){}},pending:b,statuses:g,widgets:h,pendingSnapshot:c,respond(a,c){let d=b.get(a);return!!d&&(d.resolve(c),!0)},dispose(){for(let[a,d]of b)b.delete(a),c.delete(a),d.reject(Error("Extension UI disposed"));g.clear(),h.clear()}}}},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}}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>e.$k,A4:()=>e.A4,Fn:()=>e.Fn,HG:()=>e.HG,OF:()=>e.OF});var e=c(26773),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},62693:(a,b,c)=>{c.d(b,{E:()=>d});function d(a,b,c){let d=a.getModel?.(b,c);return d||a.getAvailableSnapshot?.().find(a=>a.provider===b&&a.id===c)}},68524:(a,b,c)=>{c.d(b,{IB:()=>j,fu:()=>k,ql:()=>l,rV:()=>i,xP:()=>m});var d=c(89477),e=c(86697),f=c(60396);function g(a=(0,f.$M)()){return(0,e.join)(a,"pidance-preferences.json")}function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a=(0,f.$M)()){let b=g(a);if(!(0,d.existsSync)(b))return{};try{let a=JSON.parse((0,d.readFileSync)(b,"utf8"));return h(a)?a:{}}catch{return{}}}function j(a,b=(0,f.$M)()){let c=g(b),h=(0,e.dirname)(c);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0,mode:448});let i=`${c}.${process.pid}.${Date.now()}.tmp`;try{(0,d.writeFileSync)(i,JSON.stringify(a,null,2),{flag:"wx",mode:384}),(0,d.renameSync)(i,c)}catch(a){try{(0,d.unlinkSync)(i)}catch{}throw a}}function k(a,b){let c={...a};for(let[a,d]of Object.entries(b))h(d)&&h(c[a])?c[a]={...c[a],...d}:c[a]=d;return c}function l(a,b){let c=b.split("."),d=a;for(let a of c){if("object"!=typeof d||null===d)return;d=d[a]}return d}function m(a,b,c=(0,f.$M)()){let d=i(c);!function(a,b,c){let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++){let b=d[a],c=e[b];("object"!=typeof c||null===c||Array.isArray(c))&&(e[b]={}),e=e[b]}let f=d[d.length-1];null==c?delete e[f]:e[f]=c}(d,a,b),j(d,c)}},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.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,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},76817:(a,b,c)=>{c.d(b,{wo:()=>d});function d(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}},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>q,Nw:()=>j.Nw,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let r=/^[a-zA-Z]:[\\/]/;function o(a){return r.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(a,b){for(let c of b){let b=o(a)||o(c),d=b?h().win32:h(),e=b?"\\":h().sep,f=d.resolve(a),g=d.resolve(c),i=b?f.toLowerCase():f,j=b?g.toLowerCase():g,k=j.endsWith(e)?j:j+e;if(i===j||i.startsWith(k))return!0}return!1}d()}catch(a){d(a)}})},86226:(a,b,c)=>{c.d(b,{yN:()=>d});function d(a,b){return!a&&!!b}},87538:(a,b,c)=>{let d;c.d(b,{Lm:()=>i,Mf:()=>n,GD:()=>l,t_:()=>k,tU:()=>m});let e=JSON.parse('{"$schema":"https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json","name":"dark","vars":{"cyan":"#00d7ff","blue":"#5f87ff","green":"#b5bd68","red":"#cc6666","yellow":"#ffff00","text":"#d4d4d4","gray":"#808080","dimGray":"#666666","darkGray":"#505050","accent":"#8abeb7","selectedBg":"#3a3a4a","userMsgBg":"#343541","toolPendingBg":"#282832","toolSuccessBg":"#283228","toolErrorBg":"#3c2828","customMsgBg":"#2d2838"},"colors":{"accent":"accent","border":"blue","borderAccent":"cyan","borderMuted":"darkGray","success":"green","error":"red","warning":"yellow","muted":"gray","dim":"dimGray","text":"text","thinkingText":"gray","selectedBg":"selectedBg","userMessageBg":"userMsgBg","userMessageText":"text","customMessageBg":"customMsgBg","customMessageText":"text","customMessageLabel":"#9575cd","toolPendingBg":"toolPendingBg","toolSuccessBg":"toolSuccessBg","toolErrorBg":"toolErrorBg","toolTitle":"text","toolOutput":"gray","mdHeading":"#f0c674","mdLink":"#81a2be","mdLinkUrl":"dimGray","mdCode":"accent","mdCodeBlock":"green","mdCodeBlockBorder":"gray","mdQuote":"gray","mdQuoteBorder":"gray","mdHr":"gray","mdListBullet":"accent","toolDiffAdded":"green","toolDiffRemoved":"red","toolDiffContext":"gray","syntaxComment":"#6A9955","syntaxKeyword":"#569CD6","syntaxFunction":"#DCDCAA","syntaxVariable":"#9CDCFE","syntaxString":"#CE9178","syntaxNumber":"#B5CEA8","syntaxType":"#4EC9B0","syntaxOperator":"#D4D4D4","syntaxPunctuation":"#D4D4D4","thinkingOff":"darkGray","thinkingMinimal":"#6e6e6e","thinkingLow":"#5f87af","thinkingMedium":"#81a2be","thinkingHigh":"#b294bb","thinkingXhigh":"#d183e8","thinkingMax":"#ff5fff","bashMode":"green"},"export":{"pageBg":"#18181e","cardBg":"#1e1e24","infoBg":"#3c3728"}}');function f(a){let b=a.replace("#",""),c=Number.parseInt(3===b.length?b.split("").map(a=>a+a).join(""):b,16);return{r:c>>16&255,g:c>>8&255,b:255&c}}class g{constructor(a,b,c="truecolor",d){for(const[b,e]of(this.fgAnsiMap=new Map,this.bgAnsiMap=new Map,this.mode=c,this.name=d?.name,Object.entries({...a,thinkingMax:a.thinkingMax??a.thinkingXhigh})))this.fgAnsiMap.set(b,function(a,b){if(""===a)return"\x1b[39m";if("number"==typeof a)return`\x1b[38;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[38;2;${b};${c};${d}m`}return"\x1b[38;5;7m"}throw Error(`Invalid color value: ${String(a)}`)}(e,c));for(const[a,d]of Object.entries(b))this.bgAnsiMap.set(a,function(a,b){if(""===a)return"\x1b[49m";if("number"==typeof a)return`\x1b[48;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[48;2;${b};${c};${d}m`}return"\x1b[48;5;0m"}throw Error(`Invalid color value: ${String(a)}`)}(d,c))}fg(a,b){let c=this.fgAnsiMap.get(a);if(!c)throw Error(`Unknown theme color: ${a}`);return`${c}${b}\x1b[39m`}bg(a,b){let c=this.bgAnsiMap.get(a);if(!c)throw Error(`Unknown theme background color: ${a}`);return`${c}${b}\x1b[49m`}bold(a){return`\x1b[1m${a}\x1b[22m`}italic(a){return`\x1b[3m${a}\x1b[23m`}underline(a){return`\x1b[4m${a}\x1b[24m`}inverse(a){return`\x1b[7m${a}\x1b[27m`}strikethrough(a){return`\x1b[9m${a}\x1b[29m`}getFgAnsi(a){let b=this.fgAnsiMap.get(a);if(!b)throw Error(`Unknown theme color: ${a}`);return b}getBgAnsi(a){let b=this.bgAnsiMap.get(a);if(!b)throw Error(`Unknown theme background color: ${a}`);return b}getColorMode(){return this.mode}getThinkingBorderColor(a){let b={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"}[a]??"thinkingOff";return a=>this.fg(b,a)}getBashModeBorderColor(){return a=>this.fg("bashMode",a)}}let h=new Set(["selectedBg","userMessageBg","customMessageBg","toolPendingBg","toolSuccessBg","toolErrorBg"]);function i(){if(void 0!==d)return d;try{d=function(a){let b={...a.colors,thinkingMax:a.colors.thinkingMax??a.colors.thinkingXhigh},c=a.vars??{},d={},e={};for(let[a,f]of Object.entries(b)){let b=function a(b,c,d=new Set){if("number"==typeof b||""===b||b.startsWith("#"))return b;if(d.has(b))throw Error(`Circular variable reference detected: ${b}`);if(!(b in c))throw Error(`Variable reference not found: ${b}`);return d.add(b),a(c[b],c,d)}(f,c);h.has(a)?e[a]=b:d[a]=b}return new g(d,e,"truecolor",{name:a.name})}(e)}catch{d=null}return d}function j(a,b=100){if(!a||"object"!=typeof a||"function"!=typeof a.render)return null;try{let c=a.render(b);if(!function(a){if(!Array.isArray(a)||0===a.length||!a.every(a=>"string"==typeof a)||a.length>500)return!1;let b=0;for(let c of a)if(c.length>4e3||(b+=c.length)>204800)return!1;return!0}(c))return null;return c}catch{return null}}function k(a,b,c,d,e){let f=function(a){if(!a||"object"!=typeof a)return;let b=a.renderResult??a.ln;return"function"==typeof b?b:void 0}(a);if(!f)return null;let g=i();if(!g)return null;try{let a=f(b,c,g,d);return a&&"object"==typeof a&&e?.(a),j(a)}catch{return null}}function l(a,b,c,d){let e=function(a){if(!a||"object"!=typeof a)return;let b=a.renderCall;return"function"==typeof b?b:void 0}(a);if(!e)return null;let f=i();if(!f)return null;try{let a=e(b,f,c);return a&&"object"==typeof a&&d?.(a),j(a)}catch{return null}}function m(a,b,c=100){if("function"!=typeof a||!b)return null;try{let d=a(void 0,b);return j(d,c)}catch{return null}}function n(a,b,c,d=100){if("function"!=typeof a||!c)return null;try{let e=a(b,{expanded:!0},c);return j(e,d)}catch{return null}}}};
|
|
1
|
+
"use strict";exports.id=7594,exports.ids=[7594],exports.modules={2416:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j1:()=>s});var e=c(75430),f=c(60396),g=c(68524),h=c(89953),i=c(5815),j=c(85664),k=c(65107),l=c(95237),m=c(38195),n=c(62693),o=c(31524),p=c(87538),q=a([e,l]);function r(a){return"string"==typeof a&&a?a:void 0}[e,l]=q.then?(await q)():q;class t{static{this.PARTIAL_RENDER_MIN_INTERVAL_MS=100}constructor(a){this.options=a,this.listeners=[],this.runtime=null,this.unsubscribe=null,this.extensionUi=null,this.idleTimer=null,this.onDestroyCallback=null,this._alive=!0,this.promptRunning=!1,this.lastStopReason=null,this.followUpQueue=[],this.followUpQueueHydrated=!1,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.bashRunning=!1,this.bashCommand=null,this.localQueue={steering:[],followUp:[]},this.hasQueueSnapshot=!1,this.renderBridgeTheme=(0,p.Lm)(),this.toolRenderStates=new Map,this.realSessionId=a.sessionId,this.realSessionFile=a.sessionFile,this.idleTimeoutMs=a.idleTimeoutMs??6e5,this.agentDir=a.agentDir??(0,f.$M)(),this.activeToolNames=a.toolNames}get sessionId(){return this.realSessionId}get sessionFile(){return this.realSessionFile}listPendingExtensionRequests(){return Array.from(this.extensionUi?.pendingSnapshot.values()??[])}get inner(){let a=this.runtime?.session;if(a)return{sessionManager:a.sessionManager}}isAlive(){return this._alive&&null!==this.runtime}isRunning(){if(!this._alive||!this.runtime)return!1;let a=this.runtime.session;return this.promptRunning||this.bashRunning||a.isStreaming||a.isCompacting}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] sdk host listener error:",a)}}notifyRunning(){this.options.onRunningChange?.()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()||this.followUpQueue.length>0&&!this.isFollowUpHeld()?this.resetIdleTimer():this.destroyAsync()},this.idleTimeoutMs)}isSettled(){return!!this.runtime&&!!this._alive&&!this.isRunning()}isFollowUpHeld(){let a=(0,g.rV)(this.agentDir);return!0===(0,g.ql)(a,`sessionQueueHold.${this.realSessionId}`)}setFollowUpHeld(a){try{(0,g.xP)(`sessionQueueHold.${this.realSessionId}`,!!a||null,this.agentDir)}catch(a){console.error("[pidance] failed to persist follow-up hold:",a)}}hydrateFollowUpQueue(){if(this.followUpQueueHydrated)return;this.followUpQueueHydrated=!0;let a=(0,g.rV)(this.agentDir),b=(0,g.ql)(a,`sessionQueue.${this.realSessionId}`);this.followUpQueue=Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}persistFollowUpQueue(){try{(0,g.xP)(`sessionQueue.${this.realSessionId}`,this.followUpQueue,this.agentDir)}catch(a){console.error("[pidance] failed to persist follow-up queue:",a)}}scheduleFollowUpFlush(){!this._alive||!this.runtime||this.flushingFollowUp||0===this.followUpQueue.length||this.isFollowUpHeld()||this.isSettled()&&(this.flushingFollowUp=!0,this.followUpFlushAsOne=!0===(0,g.rV)(this.agentDir).queueFlushAsOne,this.followUpFlushOriginal=[...this.followUpQueue],this.followUpFlushBatch=this.followUpFlushAsOne?[this.followUpFlushOriginal.join("\n\n")]:[...this.followUpFlushOriginal],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.sendNextFollowUp())}async sendNextFollowUp(){if(!this.flushingFollowUp)return;if(this.isFollowUpHeld())return void this.abortFollowUpFlush();let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return void this.finishFollowUpFlush();if(this.isSettled()){this.followUpFlushConfirmed=!1;try{await this.send({type:"prompt",message:a})}catch(b){let a=b instanceof Error?b.message:String(b);this.emit({type:"follow_up_flush_error",errorMessage:a}),this.abortFollowUpFlush()}}}confirmFollowUpFlush(){if(!this.flushingFollowUp||this.followUpFlushConfirmed)return;let a=this.followUpFlushBatch[this.followUpFlushCursor];if(void 0===a)return;if(this.followUpFlushConfirmed=!0,this.followUpFlushAsOne){let a=new Set(this.followUpFlushOriginal);this.followUpQueue=this.followUpQueue.filter(b=>!a.has(b))}else{let b=this.followUpQueue.indexOf(a);b>=0&&this.followUpQueue.splice(b,1)}let b=[...this.followUpQueue];(this.persistFollowUpQueue(),this.emit({type:"follow_up_flushed",sessionId:this.realSessionId,item:a,remaining:b}),this.followUpFlushAsOne)?this.finishFollowUpFlush():(this.followUpFlushCursor+=1,this.followUpFlushCursor>=this.followUpFlushBatch.length?this.finishFollowUpFlush():this.sendNextFollowUp())}abortFollowUpFlush(){this.flushingFollowUp&&(this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer())}finishFollowUpFlush(){this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],this.persistFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.scheduleFollowUpFlush()}get session(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.session}get services(){if(!this.runtime)throw Error("SDK session is not alive");return this.runtime.services}syncIdentityFromSession(){let a=this.session,b=a.sessionId||this.realSessionId,c=a.sessionFile||this.realSessionFile,d=this.realSessionId;this.realSessionId=b,this.realSessionFile=c,c&&this.options.cacheSessionPath?.(b,c),d!==b&&this.options.onSessionRekeyed?.(d,b,this)}async rebindSession(){let a=this.session;this.extensionUi?.dispose(),this.extensionUi=(0,m.t)(a=>{this.trackExtensionSideEffects(a),this.emit(a)}),await a.bindExtensions({uiContext:this.extensionUi.uiContext,mode:"rpc",commandContextActions:{waitForIdle:()=>a.waitForIdle(),newSession:async a=>{let b=await this.runtime.newSession(a);return b.cancelled||await this.rebindSession(),b},fork:async(a,b)=>{let c=await this.runtime.fork(a,b);return c.cancelled||await this.rebindSession(),{cancelled:c.cancelled}},navigateTree:async(b,c)=>({cancelled:(await a.navigateTree(b,{summarize:c?.summarize,customInstructions:c?.customInstructions,replaceInstructions:c?.replaceInstructions,label:c?.label})).cancelled}),switchSession:async(a,b)=>{let c=await this.runtime.switchSession(a,b);return c.cancelled||await this.rebindSession(),c},reload:async()=>{await a.reload()}},onError:a=>{this.setFollowUpHeld(!0),this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})}}),this.unsubscribe?.(),this.unsubscribe=a.subscribe(a=>{this.resetIdleTimer(),this.handleSessionEvent(a)}),this.syncIdentityFromSession()}trackExtensionSideEffects(a){if("extension_ui_request"!==a.type)return;let b=r(a.method);if("setStatus"===b){let b=r(a.statusKey)??r(a.key)??"default",c=r(a.statusText)??r(a.text)??"";c?this.extensionUi?.statuses.set(b,c):this.extensionUi?.statuses.delete(b)}if("setWidget"===b){let b=r(a.widgetKey)??r(a.key)??"default",c=a.widgetLines??a.content;null==c?this.extensionUi?.widgets.delete(b):this.extensionUi?.widgets.set(b,{lines:c,placement:a.widgetPlacement})}this.notifyRunning()}maybeAutoNameSession(){try{let a=this.session?.sessionManager;if(!a||a.getSessionName())return;let b=(a.buildSessionContext().messages??[]).find(a=>"user"===a.role),c=function(a){let b="";"string"==typeof a?b=a:Array.isArray(a)&&(b=a.filter(a=>"object"==typeof a&&null!==a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"));let c=b.replace(/\s+/g," ").trim();if(c)return c.length>60?`${c.slice(0,60)}…`:c}(b?.content);c&&a.appendSessionInfo(c)}catch{}}readStopReasonFromAgentEnd(a){let b=a.messages;if(!Array.isArray(b))return null;for(let a=b.length-1;a>=0;a--){let c=b[a],d=c?.message?.stopReason??c?.stopReason;if("string"==typeof d){if("aborted"===d)return"aborted";if("error"===d||"prompt_error"===d)return"error";return"completed"}}return null}handleSessionEvent(a){switch(a.type){case"agent_start":this.promptRunning=!0,(0,i.NK)(this.realSessionId,Date.now()),this.notifyRunning();break;case"agent_end":this.promptRunning=!1,this.lastStopReason=this.readStopReasonFromAgentEnd(a)??this.lastStopReason??"completed",("aborted"===this.lastStopReason||"error"===this.lastStopReason)&&this.setFollowUpHeld(!0),(0,i.PI)(this.realSessionId),this.options.onSessionListInvalidate?.(),this.realSessionFile&&(0,k.$9)(this.realSessionFile),this.maybeAutoNameSession(),this.notifyRunning(),this.emit({type:"prompt_done"});break;case"agent_settled":this.promptRunning=!1,this.notifyRunning(),"completed"===this.lastStopReason?this.flushingFollowUp?this.followUpFlushConfirmed?this.sendNextFollowUp():this.confirmFollowUpFlush():this.scheduleFollowUpFlush():this.flushingFollowUp&&("aborted"===this.lastStopReason||"error"===this.lastStopReason)&&this.abortFollowUpFlush();break;case"compaction_start":case"auto_compaction_start":case"compaction_end":case"auto_compaction_end":this.notifyRunning();break;case"message_end":{let b=a.message;b?.role==="user"&&(this.confirmFollowUpFlush(),setImmediate(()=>{try{(0,l.kb)(this.session.sessionManager),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()}catch(a){console.error("[pidance] materialize after user message failed:",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(this.withRenderedToolLines(a))}withRenderedToolLines(a){try{if(!this.renderBridgeTheme)return a;switch(a.type){case"tool_execution_update":{if(!this.shouldRenderPartialUpdate(a.toolCallId))return a;let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!0,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,p.t_)(b,a.partialResult,{expanded:!0,isPartial:!0},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedLines:d}:a}case"tool_call":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.input,{isPartial:!1,expanded:!0,isError:!1,resultSlot:!1});if(!c)return a;let d=(0,p.GD)(b,a.input,c,b=>this.updateToolRenderLastComponent(a.toolCallId,!1,b));return d?{...a,renderedCallLines:d}:a}case"tool_result":{let b=this.getToolRenderDefinition(a.toolName);if(!b)return a;let c=this.buildToolRenderContext(a.toolCallId,a.args??a.input,{isPartial:!1,expanded:!0,isError:!0===a.isError,resultSlot:!0});if(!c)return a;let d=(0,p.t_)(b,{content:a.content,details:a.details,isError:!0===a.isError,...void 0!==a.usage?{usage:a.usage}:{}},{expanded:!0,isPartial:!1},c,b=>this.updateToolRenderLastComponent(a.toolCallId,!0,b));return d?{...a,renderedResultLines:d}:a}case"message_start":case"message_end":{let b=a.message;if(b?.role!=="custom"||"string"!=typeof b.customType||""===b.customType)return a;let c=this.session.extensionRunner,d="function"==typeof c?.getMessageRenderer?c.getMessageRenderer(b.customType):void 0,e=(0,p.Mf)(d,a.message,this.renderBridgeTheme);return e?{...a,renderedLines:e}:a}default:return a}}catch{return a}}getToolRenderDefinition(a){if("string"==typeof a&&""!==a)try{return this.session.getToolDefinition(a)}catch{return}}buildToolRenderContext(a,b,c){let d=this.getOrCreateToolRenderState(a);return d?{args:b,toolCallId:a,invalidate:()=>{},lastComponent:c.resultSlot?d.lastResultComponent:d.lastCallComponent,state:d.state,cwd:this.realCwd,executionStarted:!0,argsComplete:!0,isPartial:c.isPartial,expanded:c.expanded,showImages:!1,isError:c.isError}:null}getOrCreateToolRenderState(a){if("string"!=typeof a||""===a)return null;let b=this.toolRenderStates.get(a);return b||(b={state:{},lastCallComponent:void 0,lastResultComponent:void 0,lastPartialRenderAt:void 0},this.toolRenderStates.set(a,b)),b}updateToolRenderLastComponent(a,b,c){if("string"!=typeof a||""===a)return;let d=this.toolRenderStates.get(a);d&&(b?d.lastResultComponent=c:d.lastCallComponent=c)}shouldRenderPartialUpdate(a){if("string"!=typeof a||""===a)return!0;let b=Date.now(),c=this.getOrCreateToolRenderState(a);return!c||(void 0===c.lastPartialRenderAt||!(b-c.lastPartialRenderAt<t.PARTIAL_RENDER_MIN_INTERVAL_MS))&&(c.lastPartialRenderAt=b,!0)}get realCwd(){try{return this.session.sessionManager.getHeader()?.cwd||this.options.cwd}catch{return this.options.cwd}}async start(){try{var a,b;let c=(a=this.realSessionFile,b=this.options.cwd,a?(0,l.G1)(a):(0,l.Qu)(b)),d=c.getCwd()||this.options.cwd,f=this.agentDir,g=this.activeToolNames,h=async({cwd:a,agentDir:b,sessionManager:c,sessionStartEvent:d})=>{let f=await (0,e.createAgentSessionServices)({cwd:a,agentDir:b});for(let a of f.modelRuntime.getModels())(0,o.yu)(a);return{...await (0,e.createAgentSessionFromServices)({services:f,sessionManager:c,sessionStartEvent:d,tools:g&&g.length>0?g:void 0,noTools:g&&0===g.length?"all":void 0}),services:f,diagnostics:f.diagnostics}};this.runtime=await (0,e.createAgentSessionRuntime)(h,{cwd:d,agentDir:f,sessionManager:c}),this.runtime.setRebindSession(async()=>{await this.rebindSession()}),this.runtime.setBeforeSessionInvalidate(()=>{this.extensionUi?.dispose(),this.unsubscribe?.(),this.unsubscribe=null}),await this.rebindSession(),this.syncIdentityFromSession(),this.hydrateFollowUpQueue(),this.resetIdleTimer(),this.followUpQueue.length>0&&!this.isFollowUpHeld()&&this.isSettled()&&this.scheduleFollowUpFlush()}catch(a){throw await this.destroyAsync(),a}}projectState(){let a=this.session,b=a.model,c={stateSources:{rpcGetState:!1,sdkSession:!0,sessionStats:!0,localQueue:!0,localExtensionUi:!0},sessionId:this.realSessionId,sessionFile:this.realSessionFile,sessionName:a.sessionName,isStreaming:a.isStreaming,isCompacting:a.isCompacting,isPromptRunning:this.promptRunning,lastStopReason:this.lastStopReason,isBashRunning:this.bashRunning,pendingBash:this.bashCommand,autoCompactionEnabled:a.autoCompactionEnabled,steeringMode:a.steeringMode,followUpMode:a.followUpMode,thinkingLevel:a.thinkingLevel,systemPrompt:a.systemPrompt??"",model:b?{id:b.id,provider:b.provider}:void 0,messageCount:a.messages.length,pendingMessageCount:a.pendingMessageCount,extensionStatuses:Array.from(this.extensionUi?.statuses.entries()??[],([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionUi?.widgets.entries()??[],([a,b])=>({key:a,lines:Array.isArray(b?.lines)?b.lines:[],placement:b?.placement==="belowEditor"?"belowEditor":"aboveEditor"})),pendingExtensionRequests:Array.from(this.extensionUi?.pendingSnapshot.values()??[])};c.queuedMessages={steering:this.hasQueueSnapshot?[...this.localQueue.steering]:[],followUp:[...this.followUpQueue]};try{let b=a.getSessionStats(),d=b?.contextUsage;d&&"number"==typeof d.contextWindow&&d.contextWindow>0&&(c.contextUsage={contextWindow:d.contextWindow,percent:"number"==typeof d.percent?d.percent:null,tokens:"number"==typeof d.tokens?d.tokens:null})}catch{}return c}appendActivity(a){if(!this.runtime)throw Error("Cannot append activity: session not alive");let b=a&&"object"==typeof a&&"type"in a&&"append_activity"===a.type?(0,j.qF)(a):(0,j.l$)(a),c=this.session.sessionManager.appendCustomEntry(j.cP,b);return this.options.onSessionListInvalidate?.(),{entryId:c,activity:b}}async send(a){if(this.resetIdleTimer(),!this.runtime)throw Error("SDK session is not alive");let b=a.type,c=this.session;switch(b){case"prompt":if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");if(!(0,h.kP)(this.realSessionId))throw Error(h.GT);this.promptRunning=!0,this.lastStopReason=null,(0,i.NK)(this.realSessionId,Date.now()),this.notifyRunning();try{return await new Promise((b,d)=>{let e=!1,f=()=>{c.isStreaming||c.isCompacting||this.bashRunning||this.promptRunning&&(this.promptRunning=!1,"aborted"!==this.lastStopReason&&"error"!==this.lastStopReason&&(this.lastStopReason="completed"),(0,i.PI)(this.realSessionId),this.notifyRunning(),this.emit({type:"prompt_done"}))};c.prompt(String(a.message??""),{images:a.images,streamingBehavior:a.streamingBehavior,source:"rpc",preflightResult:a=>{a&&(e=!0,this.syncIdentityFromSession(),this.setFollowUpHeld(!1),this.options.onSessionListInvalidate?.(),b())}}).then(()=>{if(!e){e=!0;try{(0,l.kb)(c.sessionManager)}catch(a){console.error("[pidance] materialize after prompt failed:",a)}this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.(),b()}f()}).catch(a=>{"aborted"!==this.lastStopReason&&(this.lastStopReason="error"),this.setFollowUpHeld(!0),f(),e||(e=!0,d(a))})}),null}catch(b){this.promptRunning=!1,this.lastStopReason="aborted"===this.lastStopReason?"aborted":"error",this.setFollowUpHeld(!0),(0,i.PI)(this.realSessionId),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":return this.lastStopReason="aborted",this.setFollowUpHeld(!0),this.promptRunning=!1,this.notifyRunning(),await c.abort(),this.notifyRunning(),null;case"get_state":return this.projectState();case"set_model":{let b=String(a.provider??""),d=String(a.modelId??""),e=(0,n.E)(c.modelRuntime,b,d);if(!e)try{e=(await c.modelRuntime.getAvailable()).find(a=>a.provider===b&&a.id===d)}catch{e=void 0}if(!e)throw Error(`Model not found: ${b}/${d}`);return await c.setModel((0,o.eU)(e)),this.options.onSessionListInvalidate?.(),e}case"set_thinking_level":return c.model&&(0,o.yu)(c.model),c.setThinkingLevel(a.level),this.options.onSessionListInvalidate?.(),null;case"compact":{let b=await c.compact("string"==typeof a.customInstructions?a.customInstructions:void 0);return this.options.onSessionListInvalidate?.(),b}case"steer":return await c.steer(String(a.message??""),a.images),null;case"set_follow_up_queue":{let b=Array.isArray(a.items)?a.items.filter(a=>"string"==typeof a&&a.trim().length>0):[];return this.followUpQueue=b,this.persistFollowUpQueue(),this.isSettled()&&this.scheduleFollowUpFlush(),{ok:!0,queued:this.followUpQueue.length}}case"follow_up":return await c.followUp(String(a.message??""),a.images),null;case"set_session_name":{let b=String(a.name??"").trim();if(!b)throw Error("Session name cannot be empty");return c.setSessionName(b),this.options.onSessionListInvalidate?.(),null}case"set_auto_compaction":return c.setAutoCompactionEnabled(!!a.enabled),null;case"set_auto_retry":return c.setAutoRetryEnabled(!!a.enabled),null;case"clear_queue":return c.clearQueue();case"get_tools":{let a=c.getAllTools(),b=new Set(c.getActiveToolNames());return{source:"sdk",tools:a.map(a=>({name:a.name,description:a.description??"",active:b.has(a.name)}))}}case"set_tools":{let b=Array.isArray(a.tools)?a.tools.filter(a=>"string"==typeof a):[];return c.setActiveToolsByName(b),this.activeToolNames=b,null}case"get_commands":{let a=[];for(let b of c.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of c.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt_template"});return{commands:a}}case"get_session_stats":return c.getSessionStats();case"bash":if(c.isStreaming)throw Error("Cannot run bash while agent is streaming");this.bashRunning=!0,this.bashCommand={command:String(a.command??""),excludeFromContext:!!a.excludeFromContext,startedAt:Date.now()},this.notifyRunning();try{return await c.executeBash(String(a.command??""),void 0,{excludeFromContext:!!a.excludeFromContext})}finally{this.bashRunning=!1,this.bashCommand=null,this.notifyRunning()}case"abort_bash":return c.abortBash(),this.bashRunning=!1,this.bashCommand=null,this.notifyRunning(),null;case"abort_compaction":return c.abortCompaction(),null;case"extension_ui_response":{let b=r(a.id);if(!b)throw Error("extension_ui_response requires id");let c={...a};return delete c.type,delete c.id,!this.extensionUi?.respond(b,c),this.notifyRunning(),null}case"extension_ui_input":case"ensure_session":return null;case"append_activity":return this.appendActivity(a);case"fork":{if(this.bashRunning)throw Error("Cannot fork while a shell command is running");let b=String(a.entryId??"");if(!b)throw Error("entryId is required");let c=await this.runtime.fork(b);return c.cancelled||(await this.rebindSession(),this.syncIdentityFromSession(),this.options.onSessionListInvalidate?.()),{cancelled:c.cancelled,newSessionId:c.cancelled?void 0:this.realSessionId,text:c.selectedText}}case"navigate_tree":{if(this.bashRunning)throw Error("Cannot navigate while a shell command is running");let b=r(a.targetId);if(!b)throw Error("targetId is required");let d=await c.navigateTree(b,{summarize:a.summarize,customInstructions:r(a.customInstructions)});if(!d.cancelled&&this.realSessionFile){c.sessionManager.getLeafId();let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries(),d=b.at(-1)?.id;a&&d&&a!==d?(0,k.R3)(this.realSessionFile,a):this.realSessionFile&&(0,k.$9)(this.realSessionFile)}return this.options.onSessionListInvalidate?.(),{cancelled:d.cancelled}}case"select_leaf_exact":{let b=r(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.selectLeafExact(this.sessionId,b);let d=await c.navigateTree(b,{summarize:!1});if(!d.cancelled&&this.realSessionFile){let a=c.sessionManager.getLeafId(),b=c.sessionManager.getEntries().at(-1)?.id;a&&b&&a!==b?(0,k.R3)(this.realSessionFile,a):(0,k.$9)(this.realSessionFile)}return{cancelled:d.cancelled}}case"branch_from_assistant":{let b=r(a.assistantEntryId);if(!b)throw Error("assistantEntryId is required");if(this.options.navigationActions)return this.options.navigationActions.branchFromAssistant(this.sessionId,b);throw Error("branch_from_assistant is unavailable")}case"create_session_from_leaf":{let b=r(a.entryId);if(!b)throw Error("entryId is required");if(this.options.navigationActions)return this.options.navigationActions.createSessionFromLeaf(this.sessionId,b);throw Error("create_session_from_leaf is unavailable")}case"set_branch_label":{let b=r(a.targetId);if(!b)throw Error("targetId is required");let d=void 0===a.label||null===a.label?void 0:String(a.label);return c.sessionManager.appendLabelChange(b,d),this.options.onSessionListInvalidate?.(),null}case"reload":return await c.reload(),await this.rebindSession(),null;case"get_last_assistant_text":return{text:c.getLastAssistantText()};default:throw Error(`Unsupported command: ${b}`)}}destroy(){this.destroyAsync()}async destroyAsync(){if(!this._alive&&!this.runtime)return;this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null,this.unsubscribe?.(),this.unsubscribe=null,this.extensionUi?.dispose(),this.extensionUi=null;let a=this.runtime;if(this.runtime=null,a)try{await a.dispose()}catch(a){console.error("[pidance] sdk runtime dispose error:",a)}this.promptRunning=!1,this.bashRunning=!1,this.bashCommand=null,this.flushingFollowUp=!1,this.followUpFlushBatch=[],this.followUpFlushCursor=0,this.followUpFlushConfirmed=!1,this.followUpFlushAsOne=!1,this.followUpFlushOriginal=[],(0,i.PI)(this.realSessionId),this.onDestroyCallback?.(),this.notifyRunning()}}async function s(a){let b=new t(a);return await b.start(),b}d()}catch(a){d(a)}})},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()}},26773:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>q,A4:()=>l,Fn:()=>p,HG:()=>n,OF:()=>s});var e=c(40402),f=c(95237);c(68524);var g=c(2416),h=c(89953),i=a([e,f,g]);function j(){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 k(){return globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks}function l(a){return j().get(a)}function m(){let a=new Set([...k().keys()]);for(let[b,c]of j())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function n(){let a=new Set(m());for(let b of(0,h.mr)())a.add(b);return[...a]}function o(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}function p(a){let b=o();return b.add(a),()=>{b.delete(a)}}function q(){let a=[];for(let[b,c]of j()){let d=c.listPendingExtensionRequests();0!==d.length&&a.push({sessionId:c.sessionId||b,requests:d})}return a}[e,f,g]=i.then?(await i)():i;let u="",v=new Set,w=null;function r(){!function a(){let b=new Set(m());for(let a of b)(0,h.AZ)(a),v.add(a);for(let a of[...v])b.has(a)||((0,h.Hl)(a),v.delete(a));if(0===b.size){w&&(clearInterval(w),w=null);return}w||(w=setInterval(()=>{a()},8e3),w.unref?.())}();let a=n(),b=q(),c=JSON.stringify({ids:[...a].sort(),pending:b.map(a=>({sessionId:a.sessionId,ids:a.requests.map(a=>a.id??null)}))});if(c!==u)for(let b of(u=c,o()))try{b(a)}catch{}}async function s(a,b,c,d,e){return t(a,b,c,d,e)}async function t(a,b,c,d,f){let i=j(),l=k(),m=i.get(a);if(m?.isAlive())return{session:m,realSessionId:a};let n=l.get(a);if(n)return n;if(!(0,h.kP)(a))throw Error(h.GT);r();let o=(async()=>{try{let k=await (0,g.j1)({sessionId:a,sessionFile:b,cwd:c,toolNames:d,navigationActions:f,onRunningChange:()=>r(),onSessionListInvalidate:()=>(0,e.mD)(),cacheSessionPath:(a,b)=>(0,e.O8)(a,b),onSessionRekeyed:(a,b,c)=>{let d;d=j(),a!==b&&d.delete(a),d.set(b,c),a!==b&&((0,h.kP)(b),(0,h.Hl)(a))}}),l=k.sessionId,m=k.sessionFile;return m&&(0,e.O8)(l,m),l!==a&&(0,h.kP)(l),k.onDestroy(()=>{i.get(l)===k&&i.delete(l),a!==l&&i.get(a)===k&&i.delete(a),(0,h.Hl)(l),a!==l&&(0,h.Hl)(a),r()}),i.set(l,k),k.beginExtensionBinding(),{session:k,realSessionId:l}}catch(b){throw(0,h.Hl)(a),r(),b}})().finally(()=>{l.delete(a),r()});return l.set(a,o),o}d()}catch(a){d(a)}})},31524:(a,b,c)=>{c.d(b,{Ut:()=>e,eU:()=>f,yu:()=>g});let d=["off","minimal","low","medium","high","xhigh","max"];function e(a,b){return a?d.filter(a=>b?.[a]!==null):["off"]}function f(a){if(!a.reasoning)return a;let b=a.thinkingLevelMap,c={...b??{}},d=!1;for(let a of["xhigh","max"])Object.prototype.hasOwnProperty.call(c,a)&&void 0!==c[a]||(c[a]=a,d=!0);return!d&&b?a:{...a,thinkingLevelMap:c}}function g(a){let b=f(a);if(b===a)return a;try{return a.thinkingLevelMap=b.thinkingLevelMap,a}catch{return b}}},37594:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C9:()=>y,DQ:()=>x,Md:()=>w,Yz:()=>v,mB:()=>A});var e=c(29021),f=c(33873),g=c(80547),h=c(60396),i=c(95237),j=c(65107),k=c(56429),l=c(40402),m=c(85664),n=c(15461),o=c(76817),p=c(86226),q=c(68524),r=c(89953),s=c(50955),t=c(40239),u=a([g,i,k,l]);[g,i,k,l]=u.then?(await u)():u;let x="Subagent sessions are read-only";class y extends Error{constructor(){super(x)}toString(){return this.message}}async function v(a,b){if(await b(a))throw new y}function w(a){let b=a instanceof Error?a.message:String(a);return a instanceof y||b===x?403:b.includes("Session not found")?404:(0,r.wE)(a)||b===r.GT?409:500}let z={listAllSessions:l.dQ,resolveSessionPath:l.os,getRpcSession:k.A4,startRpcSession:k.OF,getRunningRpcSessionIds:k.HG,listPendingExtensionUi:k.$k,subscribeRunningSessions:k.Fn,allowFileRoot:g.wz,invalidateSessionListCache:l.mD,openSessionCwd:a=>(0,i.kW)(a).getHeader()?.cwd??process.cwd(),openSessionManager:a=>(0,l.Zx)({filePath:a}),existsSync:e.existsSync,now:()=>Date.now(),archiveFs:t.Iq},A=function(a={}){let b={...z,...a},c=(0,t.Ki)({fs:b.archiveFs,agentDir:b.archiveAgentDir,resolveSessionPath:b.resolveSessionPath,readSessionHeader:l.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()}),d=()=>(0,t.$T)(b.archiveFs??t.Iq,b.archiveAgentDir?.()??(0,h.$M)()),g={async listSessions(){let a=await b.listAllSessions(),{active:c,archived:e}=(0,t.uD)(a,d());return{sessions:c,archivedSessions:e,archivedCount:e.length,runningSessionIds:b.getRunningRpcSessionIds()}},async listArchivedSessions(){let a=await b.listAllSessions();return(0,t.uD)(a,d()).archived},async listActiveSessions(){let a=await b.listAllSessions();return(0,t.uD)(a,d()).active},listAllSessions:async()=>b.listAllSessions(),async isArchived(a){let c=await b.listAllSessions();return(0,t.YV)(c,d()).has(a)},archiveSession:async a=>c.archiveSession(a),restoreSession:async a=>c.restoreSession(a),archiveSessions:async a=>c.archiveSessions(a),restoreSessions:async a=>c.restoreSessions(a),removeArchiveRecordAfterPermanentDelete(a){(0,t.rQ)(b.archiveFs??t.Iq,b.archiveAgentDir?.()??(0,h.$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=>g.getLive(a),isLive:a=>!!g.getLive(a),async ensureLive(a){await v(a,g.isReadOnly);let c=g.getLive(a);if(c)return c;if((0,r.wy)(a))throw Error(r.GT);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,k);return f},destroy(a){b.getRpcSession(a)?.destroy()},async destroyAsync(a){let c=b.getRpcSession(a);c&&("function"==typeof c.destroyAsync?await c.destroyAsync():c.destroy())},async deleteSession(a){await v(a,g.isReadOnly);let c=await b.resolveSessionPath(a);if(!c)throw Error("Session not found");let d=(0,l.eP)(c)?.parentSession,h=(0,l.eP)(c)?.id===a?(0,s.ku)(c,a):[],i=b.getRpcSession(a);if(i?.isAlive?.()&&b.getRunningRpcSessionIds().includes(a))try{await i.send({type:"abort"})}catch(a){console.error("[pidance] abort before delete failed:",a)}await g.destroyAsync(a);let k=c.replace(/\\/g,"/").split("/").slice(0,-1).join("/");try{for(let a of(0,e.readdirSync)(k).filter(a=>a.endsWith(".jsonl")&&(0,f.join)(k,a)!==c)){let b=(0,f.join)(k,a);try{let a=(0,e.readFileSync)(b,"utf8").split("\n"),f=JSON.parse(a[0]);"session"===f.type&&f.parentSession===c&&(f.parentSession=d,a[0]=JSON.stringify(f),(0,e.writeFileSync)(b,a.join("\n")))}catch{}}}catch{}(0,e.unlinkSync)(c),(0,j.$9)(c);let m=(0,f.resolve)(c.slice(0,-6)),n=(0,s.uq)(h,m,l.BR);try{(0,q.xP)(`sessionQueue.${a}`,null),(0,q.xP)(`sessionQueueHold.${a}`,null)}catch(a){console.error("[pidance] failed to clear queue prefs after delete:",a)}return(0,l.BR)(a),b.invalidateSessionListCache(),g.removeArchiveRecordAfterPermanentDelete(a),{skippedSubagents:n}},start:async(a,c,d,e)=>(await v(a,g.isReadOnly),b.startRpcSession(a,c,d,e,k)),send:async(a,b)=>(await g.ensureLive(a)).send(b),async appendActivity(a,c){await v(a,g.isReadOnly);let d=g.getLive(a),e=!!d?.inner?.sessionManager,f=d?.appendActivity;if(d?.isAlive()&&e&&"function"==typeof f)return await f.call(d,c);d?.isAlive()&&g.destroy(a);let h=await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let j=(0,m.l$)(c),k=(0,i.kW)(h).appendCustomEntry(m.cP,j);return b.invalidateSessionListCache(),{entryId:k,activity:j}},async appendCommandEntry(a,c){await v(a,g.isReadOnly);let d=g.getLive(a);d?.isAlive()&&g.destroy(a);let e=await b.resolveSessionPath(a);if(!e)throw Error("Session not found");let f=(0,n.fc)(c);if(!f.command)throw Error("command is required");let h=(0,i.kW)(e).appendCustomEntry(n.OE,f);return b.invalidateSessionListCache(),{entryId:h,data:f}},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:j,realSessionId:l}=await b.startRpcSession(i,"",a,f,k);if(b.allowFileRoot(a),b.invalidateSessionListCache(),d&&e&&await j.send({type:"set_model",provider:d,modelId:e}),g&&await j.send({type:"set_thinking_level",level:g}),"ensure_session"===h.type)return{sessionId:l,data:null};let m=await j.send(h);return{sessionId:l,data:m}},getRunningIds:()=>b.getRunningRpcSessionIds(),listPendingExtensionUi:()=>b.listPendingExtensionUi(),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);if(e?.isAlive?.()){if(e.inner?.isBashRunning)throw Error("Cannot switch branch while a shell command is running");g.destroy(a)}let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let h=(0,i.kW)(f),k=h.getLeafId();if(d===k)return{cancelled:!1};if(d===h.getLastEntryId())return(0,j.$9)(f),{cancelled:!1};if(!h.getEntry(d))throw Error(`Entry ${d} not found`);try{return h.branch(d),(0,j.R3)(f,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);if(e?.isAlive?.()){if(e.inner?.isBashRunning)throw Error("Cannot branch while a shell command is running");g.destroy(a)}let f=await b.resolveSessionPath(a);if(!f)throw Error("Session not found");let h=(0,i.kW)(f),k=h.getLeafId();if(!k)throw Error("Session has no leaf");let l=h.getBranch(k),m=h.getEntry(d);if(!m)throw Error("Entry not found");if("message"!==m.type||m.message?.role!=="assistant")throw Error("Only assistant messages can be branched from");let n=(0,o.wo)(l,d);try{return h.branch(n),n===h.getLastEntryId()?(0,j.$9)(f):(0,j.R3)(f,n),{cancelled:!1}}finally{b.invalidateSessionListCache()}},async createSessionFromLeaf(a,c){if("string"!=typeof c||""===c.trim())throw Error("entryId is required");let d=c.trim(),e=b.getRpcSession(a),f=e?.inner;b.getRpcSession(a)?.isAlive()&&g.destroy(a);let h=(f?.sessionFile||e?.sessionFile)??await b.resolveSessionPath(a);if(!h)throw Error("Session not found");let j=(0,i.kW)(h),k=j.getEntry(d);if(!k)throw Error("Invalid entry ID");let m=d;if("message"===k.type&&k.message?.role==="assistant"){let a=j.getLeafId();if(!a)throw Error("Session has no leaf");let b=j.getBranch(a);m=(0,o.wo)(b,d)}let n=j.getSessionDir(),q=(0,i.G1)(h,n),r=q.createBranchedSession(m);if(!r)throw Error("Failed to create session");(0,i.kb)(q);let s=(0,i.kW)(r,n),t=s.getSessionId();(0,l.O8)(t,r),b.invalidateSessionListCache();let u=f?.model;return u&&(0,p.yN)(s.getEntries().some(a=>"model_change"===a.type),{provider:u.provider,modelId:u.id})&&s.appendModelChange(u.provider,u.id),b.getRpcSession(a)?.destroy(),{cancelled:!1,newSessionId:t}}},k={selectLeafExact:(a,b)=>g.selectLeafExact(a,b),branchFromAssistant:(a,b)=>g.branchFromAssistant(a,b),createSessionFromLeaf:(a,b)=>g.createSessionFromLeaf(a,b)};return g}();d()}catch(a){d(a)}})},38195:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(716),e=c(87538);function f(a,b,c,e,f,g,h){let i=(0,d.randomUUID)();return new Promise((d,j)=>{let k,l=!1,m=()=>{a.delete(i),b.delete(i),k&&clearTimeout(k),e?.signal?.removeEventListener("abort",o)},n=a=>{l||(l=!0,m(),d(a))},o=()=>n(f);e?.signal?.addEventListener("abort",o,{once:!0}),e?.timeout&&(k=setTimeout(()=>n(f),e.timeout)),a.set(i,{resolve:a=>{try{n(h(a))}catch(a){if(l)return;l=!0,m(),j(a instanceof Error?a:Error(String(a)))}},reject:a=>{l||(l=!0,m(),j(a))}});let p={type:"extension_ui_request",id:i,...g};b.set(i,p),c(p)})}function g(a){let b=new Map,c=new Map,g=new Map,h=new Map;return{uiContext:{select:(d,e,g)=>f(b,c,a,g,void 0,{method:"select",title:d,options:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),confirm:(d,e,g)=>f(b,c,a,g,!1,{method:"confirm",title:d,message:e,timeout:g?.timeout},a=>(!("cancelled"in a)||!a.cancelled)&&"confirmed"in a&&!!a.confirmed),input:(d,e,g)=>f(b,c,a,g,void 0,{method:"input",title:d,placeholder:e,timeout:g?.timeout},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),notify(b,c){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"notify",message:b,notifyType:c})},onTerminalInput:()=>()=>{},setStatus(b,c){c?g.set(b,c):g.delete(b),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setStatus",statusKey:b,statusText:c})},setWorkingMessage(){},setWorkingVisible(){},setWorkingIndicator(){},setHiddenThinkingLabel(){},setWidget(b,c,f){if("function"==typeof c){let a=(0,e.tU)(c,(0,e.Lm)());if(null===a)return;c=a}(void 0===c||Array.isArray(c))&&(null==c?h.delete(b):h.set(b,{lines:c,placement:f?.placement}),a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setWidget",widgetKey:b,widgetLines:c,widgetPlacement:f?.placement}))},setFooter(){},setHeader(){},setTitle(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"setTitle",title:b})},async custom(b){let c=(0,d.randomUUID)();return new Promise(d=>{let e=!1,f=b=>{e||(e=!0,a({type:"extension_ui_request",id:c,method:"custom_close"}),d(b))};Promise.resolve(b(function(a,b=92,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}(()=>{a({type:"extension_ui_request",id:c,method:"custom_render"})},92,40),{},{},f)).catch(()=>{f(void 0)}),a({type:"extension_ui_request",id:c,method:"custom"})})},pasteToEditor(a){this.setEditorText(a)},setEditorText(b){a({type:"extension_ui_request",id:(0,d.randomUUID)(),method:"set_editor_text",text:b})},getEditorText:()=>"",editor:async(d,e)=>f(b,c,a,void 0,void 0,{method:"editor",title:d,prefill:e},a=>"cancelled"in a&&a.cancelled?void 0:"value"in a?a.value:void 0),addAutocompleteProvider(){},setEditorComponent(){},getEditorComponent(){},get theme(){let a=a=>String(a??""),b=(a,b)=>void 0===b?"":String(b);return new Proxy({fg:b,bg:b,bold:a,dim:a,italic:a},{get:(b,c)=>c in b?b[c]:"then"!==c?a:void 0})},getAllThemes:()=>[],getTheme(){},setTheme:()=>({success:!1,error:"Theme switching not supported in Web mode"}),getToolsExpanded:()=>!1,setToolsExpanded(){}},pending:b,statuses:g,widgets:h,pendingSnapshot:c,respond(a,c){let d=b.get(a);return!!d&&(d.resolve(c),!0)},dispose(){for(let[a,d]of b)b.delete(a),c.delete(a),d.reject(Error("Extension UI disposed"));g.clear(),h.clear()}}}},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}}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>e.$k,A4:()=>e.A4,Fn:()=>e.Fn,HG:()=>e.HG,OF:()=>e.OF});var e=c(26773),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},62693:(a,b,c)=>{c.d(b,{E:()=>d});function d(a,b,c){let d=a.getModel?.(b,c);return d||a.getAvailableSnapshot?.().find(a=>a.provider===b&&a.id===c)}},68524:(a,b,c)=>{c.d(b,{IB:()=>j,fu:()=>k,ql:()=>l,rV:()=>i,xP:()=>m});var d=c(89477),e=c(86697),f=c(60396);function g(a=(0,f.$M)()){return(0,e.join)(a,"pidance-preferences.json")}function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a=(0,f.$M)()){let b=g(a);if(!(0,d.existsSync)(b))return{};try{let a=JSON.parse((0,d.readFileSync)(b,"utf8"));return h(a)?a:{}}catch{return{}}}function j(a,b=(0,f.$M)()){let c=g(b),h=(0,e.dirname)(c);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0,mode:448});let i=`${c}.${process.pid}.${Date.now()}.tmp`;try{(0,d.writeFileSync)(i,JSON.stringify(a,null,2),{flag:"wx",mode:384}),(0,d.renameSync)(i,c)}catch(a){try{(0,d.unlinkSync)(i)}catch{}throw a}}function k(a,b){let c={...a};for(let[a,d]of Object.entries(b))h(d)&&h(c[a])?c[a]={...c[a],...d}:c[a]=d;return c}function l(a,b){let c=b.split("."),d=a;for(let a of c){if("object"!=typeof d||null===d)return;d=d[a]}return d}function m(a,b,c=(0,f.$M)()){let d=i(c);!function(a,b,c){let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++){let b=d[a],c=e[b];("object"!=typeof c||null===c||Array.isArray(c))&&(e[b]={}),e=e[b]}let f=d[d.length-1];null==c?delete e[f]:e[f]=c}(d,a,b),j(d,c)}},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.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,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},76817:(a,b,c)=>{c.d(b,{wo:()=>d});function d(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}},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>r,Nw:()=>j.Nw,bk:()=>q,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let s=/^[a-zA-Z]:[\\/]/;function o(a){return s.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(){return!0}function r(a,b){return!0}d()}catch(a){d(a)}})},86226:(a,b,c)=>{c.d(b,{yN:()=>d});function d(a,b){return!a&&!!b}},87538:(a,b,c)=>{let d;c.d(b,{Lm:()=>i,Mf:()=>n,GD:()=>l,t_:()=>k,tU:()=>m});let e=JSON.parse('{"$schema":"https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json","name":"dark","vars":{"cyan":"#00d7ff","blue":"#5f87ff","green":"#b5bd68","red":"#cc6666","yellow":"#ffff00","text":"#d4d4d4","gray":"#808080","dimGray":"#666666","darkGray":"#505050","accent":"#8abeb7","selectedBg":"#3a3a4a","userMsgBg":"#343541","toolPendingBg":"#282832","toolSuccessBg":"#283228","toolErrorBg":"#3c2828","customMsgBg":"#2d2838"},"colors":{"accent":"accent","border":"blue","borderAccent":"cyan","borderMuted":"darkGray","success":"green","error":"red","warning":"yellow","muted":"gray","dim":"dimGray","text":"text","thinkingText":"gray","selectedBg":"selectedBg","userMessageBg":"userMsgBg","userMessageText":"text","customMessageBg":"customMsgBg","customMessageText":"text","customMessageLabel":"#9575cd","toolPendingBg":"toolPendingBg","toolSuccessBg":"toolSuccessBg","toolErrorBg":"toolErrorBg","toolTitle":"text","toolOutput":"gray","mdHeading":"#f0c674","mdLink":"#81a2be","mdLinkUrl":"dimGray","mdCode":"accent","mdCodeBlock":"green","mdCodeBlockBorder":"gray","mdQuote":"gray","mdQuoteBorder":"gray","mdHr":"gray","mdListBullet":"accent","toolDiffAdded":"green","toolDiffRemoved":"red","toolDiffContext":"gray","syntaxComment":"#6A9955","syntaxKeyword":"#569CD6","syntaxFunction":"#DCDCAA","syntaxVariable":"#9CDCFE","syntaxString":"#CE9178","syntaxNumber":"#B5CEA8","syntaxType":"#4EC9B0","syntaxOperator":"#D4D4D4","syntaxPunctuation":"#D4D4D4","thinkingOff":"darkGray","thinkingMinimal":"#6e6e6e","thinkingLow":"#5f87af","thinkingMedium":"#81a2be","thinkingHigh":"#b294bb","thinkingXhigh":"#d183e8","thinkingMax":"#ff5fff","bashMode":"green"},"export":{"pageBg":"#18181e","cardBg":"#1e1e24","infoBg":"#3c3728"}}');function f(a){let b=a.replace("#",""),c=Number.parseInt(3===b.length?b.split("").map(a=>a+a).join(""):b,16);return{r:c>>16&255,g:c>>8&255,b:255&c}}class g{constructor(a,b,c="truecolor",d){for(const[b,e]of(this.fgAnsiMap=new Map,this.bgAnsiMap=new Map,this.mode=c,this.name=d?.name,Object.entries({...a,thinkingMax:a.thinkingMax??a.thinkingXhigh})))this.fgAnsiMap.set(b,function(a,b){if(""===a)return"\x1b[39m";if("number"==typeof a)return`\x1b[38;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[38;2;${b};${c};${d}m`}return"\x1b[38;5;7m"}throw Error(`Invalid color value: ${String(a)}`)}(e,c));for(const[a,d]of Object.entries(b))this.bgAnsiMap.set(a,function(a,b){if(""===a)return"\x1b[49m";if("number"==typeof a)return`\x1b[48;5;${a}m`;if("string"==typeof a&&a.startsWith("#")){if("truecolor"===b){let{r:b,g:c,b:d}=f(a);return`\x1b[48;2;${b};${c};${d}m`}return"\x1b[48;5;0m"}throw Error(`Invalid color value: ${String(a)}`)}(d,c))}fg(a,b){let c=this.fgAnsiMap.get(a);if(!c)throw Error(`Unknown theme color: ${a}`);return`${c}${b}\x1b[39m`}bg(a,b){let c=this.bgAnsiMap.get(a);if(!c)throw Error(`Unknown theme background color: ${a}`);return`${c}${b}\x1b[49m`}bold(a){return`\x1b[1m${a}\x1b[22m`}italic(a){return`\x1b[3m${a}\x1b[23m`}underline(a){return`\x1b[4m${a}\x1b[24m`}inverse(a){return`\x1b[7m${a}\x1b[27m`}strikethrough(a){return`\x1b[9m${a}\x1b[29m`}getFgAnsi(a){let b=this.fgAnsiMap.get(a);if(!b)throw Error(`Unknown theme color: ${a}`);return b}getBgAnsi(a){let b=this.bgAnsiMap.get(a);if(!b)throw Error(`Unknown theme background color: ${a}`);return b}getColorMode(){return this.mode}getThinkingBorderColor(a){let b={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"}[a]??"thinkingOff";return a=>this.fg(b,a)}getBashModeBorderColor(){return a=>this.fg("bashMode",a)}}let h=new Set(["selectedBg","userMessageBg","customMessageBg","toolPendingBg","toolSuccessBg","toolErrorBg"]);function i(){if(void 0!==d)return d;try{d=function(a){let b={...a.colors,thinkingMax:a.colors.thinkingMax??a.colors.thinkingXhigh},c=a.vars??{},d={},e={};for(let[a,f]of Object.entries(b)){let b=function a(b,c,d=new Set){if("number"==typeof b||""===b||b.startsWith("#"))return b;if(d.has(b))throw Error(`Circular variable reference detected: ${b}`);if(!(b in c))throw Error(`Variable reference not found: ${b}`);return d.add(b),a(c[b],c,d)}(f,c);h.has(a)?e[a]=b:d[a]=b}return new g(d,e,"truecolor",{name:a.name})}(e)}catch{d=null}return d}function j(a,b=100){if(!a||"object"!=typeof a||"function"!=typeof a.render)return null;try{let c=a.render(b);if(!function(a){if(!Array.isArray(a)||0===a.length||!a.every(a=>"string"==typeof a)||a.length>500)return!1;let b=0;for(let c of a)if(c.length>4e3||(b+=c.length)>204800)return!1;return!0}(c))return null;return c}catch{return null}}function k(a,b,c,d,e){let f=function(a){if(!a||"object"!=typeof a)return;let b=a.renderResult??a.ln;return"function"==typeof b?b:void 0}(a);if(!f)return null;let g=i();if(!g)return null;try{let a=f(b,c,g,d);return a&&"object"==typeof a&&e?.(a),j(a)}catch{return null}}function l(a,b,c,d){let e=function(a){if(!a||"object"!=typeof a)return;let b=a.renderCall;return"function"==typeof b?b:void 0}(a);if(!e)return null;let f=i();if(!f)return null;try{let a=e(b,f,c);return a&&"object"==typeof a&&d?.(a),j(a)}catch{return null}}function m(a,b,c=100){if("function"!=typeof a||!b)return null;try{let d=a(void 0,b);return j(d,c)}catch{return null}}function n(a,b,c,d=100){if("function"!=typeof a||!c)return null;try{let e=a(b,{expanded:!0},c);return j(e,d)}catch{return null}}},89953:(a,b,c)=>{c.d(b,{AZ:()=>o,GT:()=>g,Hl:()=>p,kP:()=>n,mr:()=>q,wE:()=>m,wy:()=>r});var d=c(89477),e=c(86697),f=c(60396);let g="Session is locked by another Pidance process (writable host ownership)";function h(a){return(0,e.join)(a,"pidance-running-leases")}function i(a,b){let c=b.replace(/[^a-zA-Z0-9._-]+/g,"_").slice(0,180);return(0,e.join)(h(a),`${c}.json`)}function j(a){try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));if("number"!=typeof b.pid||"string"!=typeof b.sessionId||"number"!=typeof b.heartbeatAt)return null;return{pid:b.pid,sessionId:b.sessionId,heartbeatAt:b.heartbeatAt}}catch{return null}}function k(a,b){return b-a.heartbeatAt<=2e4&&function(a){if(!Number.isFinite(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}}(a.pid)}function l(a,b){(0,d.writeFileSync)(a,`${JSON.stringify(b)}
|
|
2
|
+
`,{mode:384})}function m(a){return(a instanceof Error?a.message:String(a)).includes("locked by another Pidance process")}function n(a,b=(0,f.$M)(),c=Date.now()){if(!a)return!1;let e=h(b);(0,d.existsSync)(e)||(0,d.mkdirSync)(e,{recursive:!0,mode:448});let g=i(b,a),m=(0,d.existsSync)(g)?j(g):null;return(!(m&&k(m,c))||m.pid===process.pid)&&(l(g,{pid:process.pid,sessionId:a,heartbeatAt:c}),!0)}function o(a,b=(0,f.$M)(),c=Date.now()){if(!a)return;let e=i(b,a),g=(0,d.existsSync)(e)?j(e):null;g&&g.pid!==process.pid&&k(g,c)||((0,d.existsSync)(h(b))||(0,d.mkdirSync)(h(b),{recursive:!0,mode:448}),l(e,{pid:process.pid,sessionId:a,heartbeatAt:c}))}function p(a,b=(0,f.$M)()){if(!a)return;let c=i(b,a),e=(0,d.existsSync)(c)?j(c):null;if(!e||e.pid===process.pid)try{(0,d.unlinkSync)(c)}catch{}}function q(a=(0,f.$M)(),b=Date.now()){let c=h(a);if(!(0,d.existsSync)(c))return[];let g=[];for(let a of(0,d.readdirSync)(c)){if(!a.endsWith(".json"))continue;let d=j((0,e.join)(c,a));d&&k(d,b)&&g.push(d.sessionId)}return g}function r(a,b=(0,f.$M)(),c=Date.now()){if(!a)return!1;let e=(0,d.existsSync)(i(b,a))?j(i(b,a)):null;return!!e&&!!k(e,c)&&e.pid!==process.pid}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=9874,exports.ids=[9874],exports.modules={29874:(a,b,c)=>{c.d(b,{configurePiSubagentBinaryFromPackage:()=>g});var d=c(89477),e=c(86697);let f="PI_SUBAGENT_PI_BINARY";function g(a=process.env,b=process.cwd()){if("win32"===process.platform)return null;let c=function(a=process.cwd()){let b=a;for(let a=0;a<12;a++){let a=(0,e.join)(
|
|
1
|
+
"use strict";exports.id=9874,exports.ids=[9874],exports.modules={29874:(a,b,c)=>{c.d(b,{configurePiSubagentBinaryFromPackage:()=>g});var d=c(89477),e=c(86697);let f="PI_SUBAGENT_PI_BINARY";function g(a=process.env,b=process.cwd()){if("win32"===process.platform)return null;let c=function(a=process.cwd()){let b=a;for(let a=0;a<12;a++){let a=function(a){try{let b=JSON.parse((0,d.readFileSync)((0,e.join)(a,"package.json"),"utf8"));if("object"!=typeof b||null===b)return null;let c=b.bin,f="string"==typeof c?c:"object"!=typeof c||null===c||Array.isArray(c)?null:c.pi;if("string"!=typeof f||!f.trim())return null;let g=(0,e.resolve)(a,f),h=(0,e.relative)(a,g);if(!h||".."===h||h.startsWith(`..${e.sep}`)||(0,e.isAbsolute)(h))return null;return!function(a){try{return(0,d.statSync)(a).isFile()}catch{return!1}}(g)?null:g}catch{return null}}((0,e.join)(b,"node_modules","@earendil-works","pi-coding-agent"));if(a)return a;let c=(0,e.dirname)(b);if(c===b)break;b=c}return null}(b);return c?(process.env[f]=c,a!==process.env&&(a[f]=c),c):null}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={9956:a=>{a.exports=require("undici")},53861:(a,b,c)=>{async function d(){let{configureHttpDispatcher:a}=await c.e(2349).then(c.bind(c,42349));a();let{configurePiSubagentBinaryFromPackage:b}=await c.e(9874).then(c.bind(c,29874)),d=b();d?console.log(`[pidance] subagent Pi CLI: ${d}`):console.error("[pidance] 未解析到包内 Pi CLI(@earendil-works/pi-coding-agent
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={716:a=>{a.exports=require("node:crypto")},4984:a=>{a.exports=require("readline")},9956:a=>{a.exports=require("undici")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},53861:(a,b,c)=>{async function d(){let{configureHttpDispatcher:a}=await c.e(2349).then(c.bind(c,42349));a();let{configurePiSubagentBinaryFromPackage:b}=await c.e(9874).then(c.bind(c,29874)),d=b();d?console.log(`[pidance] subagent Pi CLI: ${d}`):console.error("[pidance] 未解析到包内 Pi CLI(@earendil-works/pi-coding-agent package.json#bin.pi)。subagent 可能失败。"),console.log("[pidance] 主 Agent runtime: 同进程 Pi SDK 0.84.4");try{let{recoverFollowUpQueues:a}=await c.e(5304).then(c.bind(c,35304));a()}catch(a){console.error("[pidance] recover follow-up queues failed:",a)}}c.r(b),c.d(b,{register:()=>d})},62228:a=>{a.exports=require("node:os")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86697:a=>{a.exports=require("node:path")},89477:a=>{a.exports=require("node:fs")},93351:a=>{a.exports=require("node:events")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=53861);module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/iHxt-Xda8hRsmFHhXX43R/_buildManifest.js","static/iHxt-Xda8hRsmFHhXX43R/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-d2379fd13c5c78c6.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-907785a527d8128b.js","static/chunks/main-app-06b2b50b226e40d1.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|