@pithosai/pithosai 1.0.32 → 1.0.33

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.
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as t}from"node:module";let e=t(import.meta.url);var r,i,n,o,a,s,p,c={3565(t){t.exports=import("@earendil-works/pi-coding-agent").then(function(t){return t})},4082(t){t.exports=import("log4js").then(function(t){return t})},6698(t){t.exports=e("node:async_hooks")},1421(t){t.exports=e("node:child_process")},6760(t){t.exports=e("node:path")},3136(t){t.exports=e("node:url")},7975(t){t.exports=e("node:util")},6622(t,e,r){r.a(t,async function(t,e){try{var i=r(6760),n=r(3136),o=r(5193),a=r(4071),s=t([o,a]);async function p(t=process.stdin){let e="";for await(let r of t)e+=r;return e}async function c(t={}){let e=t.args??process.argv.slice(2),r=t.stdinText??"",i=t.runAdapter??o.HA,n=function(t){let e=String(t??"").trim();if(!e)return{};try{let t=JSON.parse(e);if(null!=t&&"object"==typeof t&&!Array.isArray(t))return t;return{}}catch(t){return(0,a.CN)("[git-ai-cli] invalid hook stdin JSON:",t),{}}}(r);try{let t=await i(e,n);return{ok:t?.ok!==!1,skipped:!!t?.skipped,exitCode:0}}catch(t){return(0,a.CN)("[git-ai-cli] adapter error:",t),{ok:!1,skipped:!1,exitCode:0}}}if([o,a]=s.then?(await s)():s,function(){let t=process.argv[1];if(!t)return!1;try{if((0,i.resolve)(t)===(0,n.fileURLToPath)("file:///Users/lidh04/Projects/scripts/pithosai/scripts/pithosai-git-ai-adapter.js"))return!0}catch(t){(0,a.CN)("[git-ai-cli] failed to resolve CLI entry:",t)}let e=(0,i.basename)(t);return"pithosai-git-ai-adapter"===e||"pithosai-git-ai-adapter.js"===e||"pithosai-git-ai-adapter.mjs"===e}()&&!process.env.VITEST){let t=await p(),e=await c({args:process.argv.slice(2),stdinText:t});process.exit(e.exitCode)}e()}catch(t){e(t)}},1)},2711(t,e,r){r.d(e,{OC:()=>n});let i=new(r(6698)).AsyncLocalStorage;function n(){return i.getStore()}},5193(t,e,r){r.a(t,async function(t,i){try{r.d(e,{HA:()=>u});var n=r(4071),o=r(9522),a=r(7648),s=r(2711),p=r(1078),c=t([a,o,p,n]);async function l(t,e){try{return await e(t)}catch(t){return(0,n.CN)("[git-ai] checkpoint handler error:",t),{ok:!1,skipped:!1}}}async function u(t,e,r={}){let i,c=r.runCheckpoint??p.E2,d=r.isInstalled??p.fD,f=r.isEnabled??(()=>(0,p.Gp)()),y=(i=Array.isArray(t)?t.map(t=>String(t).trim().toLowerCase()):[]).includes("post")||i.includes("after")?"post":i.includes("pre")||i.includes("before")?"pre":null;try{let r,i,u,g,m,k,h,w;if(!f())return{ok:!0,skipped:!0,exitCode:0};if(null==y)return(0,n.JX)("[git-ai] skip: unknown adapter phase",t),{ok:!0,skipped:!0,exitCode:0};let _=!1;try{_=await d()}catch(t){return(0,n.CN)("[git-ai] install check failed:",t),{ok:!1,skipped:!0,exitCode:0}}if(!_)return(0,n.JX)("[git-ai] skip: git-ai not installed"),{ok:!0,skipped:!0,exitCode:0};let S=e?.name,v=(0,o.Rg)(e?.params);if(!v)return(0,n.JX)("[git-ai] skip: no file path on tool params",{toolName:S}),{ok:!0,skipped:!0,exitCode:0};let x=(r=(0,s.OC)(),i=(0,a.n8)()?.agentTaskId,u="string"==typeof e?.cwd?e.cwd.trim():"",g="string"==typeof r?.cwd?r.cwd.trim():"",m="string"==typeof e?.taskId?e.taskId.trim():"",k="string"==typeof r?.taskId?r.taskId.trim():"",h="string"==typeof i?i.trim():"",w=Array.isArray(e?.messages)?e.messages:Array.isArray(r?.messages)?r.messages:[],{cwd:u||g||process.cwd(),conversationId:m||k||h,model:e?.model??r?.model,messages:w});if("pre"===y){(0,n.JX)("[git-ai] human checkpoint",{toolName:S,filePath:v,action:"checkpoint pre"});let t=await l((0,p.or)({repoWorkingDir:x.cwd,willEditFilepaths:[v]}),c);return{ok:!1!==t.ok,skipped:!!t.skipped,exitCode:0}}if(e?.error)return(0,n.JX)("[git-ai] skip AI checkpoint: tool error",{toolName:S,filePath:v}),{ok:!0,skipped:!0,exitCode:0};let C=x.conversationId,A=(0,p.WI)(x.model);if(!C||!A)return(0,n.JX)("[git-ai] skip AI checkpoint: missing conversationId or model",{toolName:S,filePath:v,conversationId:C,model:A}),{ok:!0,skipped:!0,exitCode:0};(0,n.JX)("[git-ai] AI checkpoint",{toolName:S,filePath:v,action:"checkpoint post"});let b=await l((0,p.QO)({repoWorkingDir:x.cwd,editedFilepaths:[v],transcript:(0,p.St)((0,p.yy)(x.messages),{name:"string"==typeof S?S:"write",input:e?.params,timestamp:e?.timestamp}),model:A,conversationId:C}),c);return{ok:!1!==b.ok,skipped:!!b.skipped,exitCode:0}}catch(t){return(0,n.CN)("[git-ai] adapter error:",t),{ok:!1,skipped:!1,exitCode:0}}}[a,o,p,n]=c.then?(await c)():c,i()}catch(t){i(t)}})},1078(t,e,r){r.a(t,async function(t,i){try{let _;r.d(e,{E2:()=>w,Gp:()=>p,QO:()=>u,St:()=>y,WI:()=>c,fD:()=>h,or:()=>l,yy:()=>m});var n=r(1421),o=r(7975),a=r(4071),s=t([a]);a=(s.then?(await s)():s)[0];let S=(0,o.promisify)(n.execFile);function p(t=process.env){let e=t.PITHOSAI_GIT_AI;if(null==e||""===String(e).trim())return!0;let r=String(e).trim().toLowerCase();return"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r}function c(t){if("string"==typeof t&&""!==t.trim())return t.trim();if(null!=t&&"object"==typeof t){let e=t.id;if("string"==typeof e&&""!==e.trim())return e.trim()}return""}function l(t){return{type:"human",repo_working_dir:t.repoWorkingDir,will_edit_filepaths:t.willEditFilepaths}}function u(t){return{type:"ai_agent",repo_working_dir:t.repoWorkingDir,transcript:t.transcript,agent_name:"ai-agent",edited_filepaths:t.editedFilepaths,model:t.model,conversation_id:t.conversationId}}function d(t){return"string"==typeof t&&""!==t.trim()?t.trim():"number"==typeof t&&Number.isFinite(t)?new Date(t).toISOString():new Date().toISOString()}function f(t){if(null!=t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"==typeof t&&""!==t.trim())try{let e=JSON.parse(t);if(null!=e&&"object"==typeof e&&!Array.isArray(e))return e}catch(t){(0,a.CN)("[git-ai] failed to parse tool_use input JSON:",t)}return{}}function y(t,e){let r=Array.isArray(t?.messages)?[...t.messages]:[],i="string"==typeof e?.name&&""!==e.name.trim()?e.name.trim():"tool",n=f(e?.input),o=d(e?.timestamp),s=[...r].reverse().find(t=>t?.type==="tool_use");return s&&s.name===i&&function(t,e){try{return JSON.stringify(t)===JSON.stringify(e)}catch(t){return(0,a.CN)("[git-ai] failed to compare tool_use input:",t),!1}}(s.input,n)||r.push({type:"tool_use",name:i,input:n,timestamp:o}),{messages:r}}function g(t){let e=t?.content;return"string"==typeof e?e:Array.isArray(e)?e.filter(t=>t?.type==="text"&&"string"==typeof t.text).map(t=>t.text).join(""):""}function m(t){if(!Array.isArray(t))return{messages:[]};let e=[];for(let r of t){if(null==r||"object"!=typeof r)continue;let t=String(r.role??""),i=d(r.timestamp);if("user"===t){e.push({type:"user",text:g(r),timestamp:i});continue}if("assistant"===t){let t=g(r);for(let n of(t&&e.push({type:"assistant",text:t,timestamp:i}),Array.isArray(r.content)?r.content:[])){if(null==n||"object"!=typeof n)continue;let t=String(n.type??"");if("toolCall"!==t&&"tool_use"!==t)continue;let r="string"==typeof n.name&&""!==n.name.trim()?n.name:"tool",o=f(n.arguments??n.input);e.push({type:"tool_use",name:r,input:o,timestamp:i})}}}return{messages:e}}async function k(t={}){if(void 0!==_)return _;let e=t.platform??process.platform,r=t.execFileFn??S;try{let{stdout:t}=await r("win32"===e?"where":"which",["git-ai"],{timeout:3e3,encoding:"utf8"});_=String(t??"").split(/\r?\n/).map(t=>t.trim()).find(Boolean)||null}catch(t){(0,a.JX)(`[git-ai] not found on PATH: ${t?.message??t}`),_=null}return _}async function h(t={}){let e=await k(t);return null!=e}async function w(t,e={}){let r=e.spawnFn??n.spawn,i="number"==typeof e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:1e4,o=void 0!==e.bin?e.bin:await k(e);return o?new Promise(e=>{let n,s,p=!1,c=t=>{p||(p=!0,n&&clearTimeout(n),e(t))},l="string"==typeof t?.repo_working_dir&&""!==t.repo_working_dir.trim()?t.repo_working_dir.trim():void 0;try{s=r(o,["checkpoint","agent-v1","--hook-input","stdin"],{stdio:["pipe","pipe","pipe"],windowsHide:!0,cwd:l})}catch(t){(0,a.CN)("[git-ai] failed to spawn checkpoint:",t),c({ok:!1,skipped:!1});return}let u="";s.stderr?.on("data",t=>{u+=String(t)}),s.stdout?.on("data",()=>{}),s.on("error",t=>{(0,a.CN)("[git-ai] checkpoint process error:",t),c({ok:!1,skipped:!1})}),s.on("close",e=>{if(0===e){(0,a.JX)("[git-ai] checkpoint ok",JSON.stringify({type:t?.type})),c({ok:!0,skipped:!1});return}let r=u.trim()||`exit ${e}`;(0,a.CN)("[git-ai] checkpoint failed:",r),c({ok:!1,skipped:!1})}),n=setTimeout(()=>{(0,a.CN)("[git-ai] checkpoint timed out");try{s.kill()}catch(t){(0,a.CN)("[git-ai] failed to kill timed-out checkpoint:",t)}c({ok:!1,skipped:!1})},i);try{s.stdin.write(JSON.stringify(t)),s.stdin.end()}catch(t){(0,a.CN)("[git-ai] failed to write checkpoint stdin:",t);try{s.kill()}catch(t){(0,a.CN)("[git-ai] failed to kill after stdin error:",t)}c({ok:!1,skipped:!1})}}):((0,a.JX)("[git-ai] skipped checkpoint: git-ai not installed"),{ok:!1,skipped:!0})}i()}catch(t){i(t)}})},7648(t,e,r){r.a(t,async function(t,i){try{r.d(e,{n8:()=>s});var n=r(6698),o=r(4071),a=t([o]);o=(a.then?(await a)():a)[0];let p=new n.AsyncLocalStorage;function s(){return p.getStore()}i()}catch(t){i(t)}})},9522(t,e,r){r.a(t,async function(t,i){try{r.d(e,{Rg:()=>s});var n=r(3565),o=r(7648),a=t([n,o]);function s(t){if(null==t||"object"!=typeof t)return null;for(let e of["path","file_path","filePath","file"]){let r=t[e];if("string"==typeof r&&""!==r.trim())return r.trim()}return null}[n,o]=a.then?(await a)():a,i()}catch(t){i(t)}})},4071(t,e,r){r.a(t,async function(t,i){try{let l,u;r.d(e,{CN:()=>p,JX:()=>c});var n,o=r(4082),a=t([o]);function s(t){return t.map(t=>t instanceof Error?t.message||String(t):"object"==typeof t&&null!==t?JSON.stringify(t):String(t)).join(" ")}function p(...t){try{let e=t.length>1?s(t):t[0]??"";l.error(e)}catch{}}function c(...t){try{let e=t.length>1?s(t):t[0]??"";l.debug(e)}catch{}}o=(a.then?(await a)():a)[0],n=process.env.PITHOSAI_LOG_FILEPATH,u=function(t=process.argv[1]){return"string"!=typeof t||0===t.length?"all":t.includes("/dist/")?"INFO":"all"}(),o.default.configure({appenders:{file:{type:"file",filename:n||"/tmp/pithosai_log_file.log",layout:{type:"pattern",pattern:"%d{yyyy-MM-dd hh:mm:ss.SSS} %p %f:%l %m"}}},categories:{default:{appenders:["file"],level:u,enableCallStack:!0}}}),(l=o.default.getLogger()).callStackLinesToSkip=1,i()}catch(t){i(t)}})}},l={};function u(t){var e=l[t];if(void 0!==e)return e.exports;var r=l[t]={exports:{}};return c[t](r,r.exports,u),r.exports}i=(r="function"==typeof Symbol)?Symbol("rspack queues"):"__rspack_queues",n=u.aE=r?Symbol("rspack exports"):"__webpack_exports__",o=r?Symbol("rspack error"):"__rspack_error",a=r?Symbol("rspack done"):"__rspack_done",s=u.zS=r?Symbol("rspack defer"):"__rspack_defer",p=t=>{t&&t.d<1&&(t.d=1,t.forEach(t=>t.r--),t.forEach(t=>t.r--?t.r++:t()))},u.a=(t,e,r)=>{r&&((c=[]).d=-1);var c,d,f,y,g=new Set,m=t.exports,k=new Promise((t,e)=>{y=e,f=t});k[n]=m,k[i]=t=>{c&&t(c),g.forEach(t),k.catch(()=>{})},t.exports=k,e(t=>{d=t.map(t=>{if(null!==t&&"object"==typeof t){if(!t[i]&&t[s]){var e=t[s];if(!e.some(t=>{var e=l[t];return!e||!1===e[a]}))return t;var r=t;t={then(t){Promise.all(e.map(u)).then(()=>t(r))}}}if(t[i])return t;if(t.then){var c=[];c.d=0,t.then(t=>{d[n]=t,p(c)},t=>{d[o]=t,p(c)});var d={};return d[s]=!1,d[i]=t=>t(c),d}}var f={};return f[i]=()=>{},f[n]=t,f});var e,r=()=>d.map(t=>{if(t[s])return t;if(t[o])throw t[o];return t[n]}),f=new Promise(t=>{(e=()=>t(r)).r=0;var n=t=>t!==c&&!g.has(t)&&(g.add(t),t&&!t.d&&(e.r++,t.push(e)));d.map(t=>t[s]||t[i](n))});return e.r?f:r()},t=>(t?y(k[o]=t):f(m),p(c),k[a]=!0)),c&&c.d<0&&(c.d=0)},u.d=(t,e)=>{for(var r in e)u.o(e,r)&&!u.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},u.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),u.rv=()=>"1.7.6",u.ruid="bundler=rspack@1.7.6",u(6622);
2
+ import{createRequire as t}from"node:module";let e=t(import.meta.url);var r,i,n,o,a,s,p,c={3565(t){t.exports=import("@earendil-works/pi-coding-agent").then(function(t){return t})},4082(t){t.exports=import("log4js").then(function(t){return t})},6698(t){t.exports=e("node:async_hooks")},1421(t){t.exports=e("node:child_process")},3024(t){t.exports=e("node:fs")},6760(t){t.exports=e("node:path")},7975(t){t.exports=e("node:util")},6622(t,e,r){r.a(t,async function(t,e){try{var i=r(6760),n=r(3458),o=r(5193),a=r(4071),s=t([o,a]);async function p(t=process.stdin){let e="";for await(let r of t)e+=r;return e}async function c(t={}){let e=t.args??process.argv.slice(2),r=t.stdinText??"",i=t.runAdapter??o.HA,n=function(t){let e=String(t??"").trim();if(!e)return{};try{let t=JSON.parse(e);if(null!=t&&"object"==typeof t&&!Array.isArray(t))return t;return{}}catch(t){return(0,a.CN)("[git-ai-cli] invalid hook stdin JSON:",t),{}}}(r);try{let t=await i(e,n);return{ok:t?.ok!==!1,skipped:!!t?.skipped,exitCode:0}}catch(t){return(0,a.CN)("[git-ai-cli] adapter error:",t),{ok:!1,skipped:!1,exitCode:0}}}if([o,a]=s.then?(await s)():s,function(){let t=process.argv[1];if(!t)return!1;let e=(0,n.O)();if(e&&(0,i.basename)(e).startsWith("pithosai-git-ai-adapter"))return!0;let r=(0,i.basename)(t);return"pithosai-git-ai-adapter"===r||"pithosai-git-ai-adapter.js"===r||"pithosai-git-ai-adapter.mjs"===r}()&&!process.env.VITEST){let t=await p(),e=await c({args:process.argv.slice(2),stdinText:t});process.exit(e.exitCode)}e()}catch(t){e(t)}},1)},2711(t,e,r){r.d(e,{OC:()=>n});let i=new(r(6698)).AsyncLocalStorage;function n(){return i.getStore()}},5193(t,e,r){r.a(t,async function(t,i){try{r.d(e,{HA:()=>u});var n=r(4071),o=r(9522),a=r(7648),s=r(2711),p=r(1078),c=t([a,o,p,n]);async function l(t,e){try{return await e(t)}catch(t){return(0,n.CN)("[git-ai] checkpoint handler error:",t),{ok:!1,skipped:!1}}}async function u(t,e,r={}){let i,c=r.runCheckpoint??p.E2,d=r.isInstalled??p.fD,f=r.isEnabled??(()=>(0,p.Gp)()),y=(i=Array.isArray(t)?t.map(t=>String(t).trim().toLowerCase()):[]).includes("post")||i.includes("after")?"post":i.includes("pre")||i.includes("before")?"pre":null;try{let r,i,u,g,m,k,h,w;if(!f())return{ok:!0,skipped:!0,exitCode:0};if(null==y)return(0,n.JX)("[git-ai] skip: unknown adapter phase",t),{ok:!0,skipped:!0,exitCode:0};let _=!1;try{_=await d()}catch(t){return(0,n.CN)("[git-ai] install check failed:",t),{ok:!1,skipped:!0,exitCode:0}}if(!_)return(0,n.JX)("[git-ai] skip: git-ai not installed"),{ok:!0,skipped:!0,exitCode:0};let S=e?.name,v=(0,o.Rg)(e?.params);if(!v)return(0,n.JX)("[git-ai] skip: no file path on tool params",{toolName:S}),{ok:!0,skipped:!0,exitCode:0};let x=(r=(0,s.OC)(),i=(0,a.n8)()?.agentTaskId,u="string"==typeof e?.cwd?e.cwd.trim():"",g="string"==typeof r?.cwd?r.cwd.trim():"",m="string"==typeof e?.taskId?e.taskId.trim():"",k="string"==typeof r?.taskId?r.taskId.trim():"",h="string"==typeof i?i.trim():"",w=Array.isArray(e?.messages)?e.messages:Array.isArray(r?.messages)?r.messages:[],{cwd:u||g||process.cwd(),conversationId:m||k||h,model:e?.model??r?.model,messages:w});if("pre"===y){(0,n.JX)("[git-ai] human checkpoint",{toolName:S,filePath:v,action:"checkpoint pre"});let t=await l((0,p.or)({repoWorkingDir:x.cwd,willEditFilepaths:[v]}),c);return{ok:!1!==t.ok,skipped:!!t.skipped,exitCode:0}}if(e?.error)return(0,n.JX)("[git-ai] skip AI checkpoint: tool error",{toolName:S,filePath:v}),{ok:!0,skipped:!0,exitCode:0};let C=x.conversationId,A=(0,p.WI)(x.model);if(!C||!A)return(0,n.JX)("[git-ai] skip AI checkpoint: missing conversationId or model",{toolName:S,filePath:v,conversationId:C,model:A}),{ok:!0,skipped:!0,exitCode:0};(0,n.JX)("[git-ai] AI checkpoint",{toolName:S,filePath:v,action:"checkpoint post"});let b=await l((0,p.QO)({repoWorkingDir:x.cwd,editedFilepaths:[v],transcript:(0,p.St)((0,p.yy)(x.messages),{name:"string"==typeof S?S:"write",input:e?.params,timestamp:e?.timestamp}),model:A,conversationId:C}),c);return{ok:!1!==b.ok,skipped:!!b.skipped,exitCode:0}}catch(t){return(0,n.CN)("[git-ai] adapter error:",t),{ok:!1,skipped:!1,exitCode:0}}}[a,o,p,n]=c.then?(await c)():c,i()}catch(t){i(t)}})},1078(t,e,r){r.a(t,async function(t,i){try{let _;r.d(e,{E2:()=>w,Gp:()=>p,QO:()=>u,St:()=>y,WI:()=>c,fD:()=>h,or:()=>l,yy:()=>m});var n=r(1421),o=r(7975),a=r(4071),s=t([a]);a=(s.then?(await s)():s)[0];let S=(0,o.promisify)(n.execFile);function p(t=process.env){let e=t.PITHOSAI_GIT_AI;if(null==e||""===String(e).trim())return!0;let r=String(e).trim().toLowerCase();return"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r}function c(t){if("string"==typeof t&&""!==t.trim())return t.trim();if(null!=t&&"object"==typeof t){let e=t.id;if("string"==typeof e&&""!==e.trim())return e.trim()}return""}function l(t){return{type:"human",repo_working_dir:t.repoWorkingDir,will_edit_filepaths:t.willEditFilepaths}}function u(t){return{type:"ai_agent",repo_working_dir:t.repoWorkingDir,transcript:t.transcript,agent_name:"ai-agent",edited_filepaths:t.editedFilepaths,model:t.model,conversation_id:t.conversationId}}function d(t){return"string"==typeof t&&""!==t.trim()?t.trim():"number"==typeof t&&Number.isFinite(t)?new Date(t).toISOString():new Date().toISOString()}function f(t){if(null!=t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"==typeof t&&""!==t.trim())try{let e=JSON.parse(t);if(null!=e&&"object"==typeof e&&!Array.isArray(e))return e}catch(t){(0,a.CN)("[git-ai] failed to parse tool_use input JSON:",t)}return{}}function y(t,e){let r=Array.isArray(t?.messages)?[...t.messages]:[],i="string"==typeof e?.name&&""!==e.name.trim()?e.name.trim():"tool",n=f(e?.input),o=d(e?.timestamp),s=[...r].reverse().find(t=>t?.type==="tool_use");return s&&s.name===i&&function(t,e){try{return JSON.stringify(t)===JSON.stringify(e)}catch(t){return(0,a.CN)("[git-ai] failed to compare tool_use input:",t),!1}}(s.input,n)||r.push({type:"tool_use",name:i,input:n,timestamp:o}),{messages:r}}function g(t){let e=t?.content;return"string"==typeof e?e:Array.isArray(e)?e.filter(t=>t?.type==="text"&&"string"==typeof t.text).map(t=>t.text).join(""):""}function m(t){if(!Array.isArray(t))return{messages:[]};let e=[];for(let r of t){if(null==r||"object"!=typeof r)continue;let t=String(r.role??""),i=d(r.timestamp);if("user"===t){e.push({type:"user",text:g(r),timestamp:i});continue}if("assistant"===t){let t=g(r);for(let n of(t&&e.push({type:"assistant",text:t,timestamp:i}),Array.isArray(r.content)?r.content:[])){if(null==n||"object"!=typeof n)continue;let t=String(n.type??"");if("toolCall"!==t&&"tool_use"!==t)continue;let r="string"==typeof n.name&&""!==n.name.trim()?n.name:"tool",o=f(n.arguments??n.input);e.push({type:"tool_use",name:r,input:o,timestamp:i})}}}return{messages:e}}async function k(t={}){if(void 0!==_)return _;let e=t.platform??process.platform,r=t.execFileFn??S;try{let{stdout:t}=await r("win32"===e?"where":"which",["git-ai"],{timeout:3e3,encoding:"utf8"});_=String(t??"").split(/\r?\n/).map(t=>t.trim()).find(Boolean)||null}catch(t){(0,a.JX)(`[git-ai] not found on PATH: ${t?.message??t}`),_=null}return _}async function h(t={}){let e=await k(t);return null!=e}async function w(t,e={}){let r=e.spawnFn??n.spawn,i="number"==typeof e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:1e4,o=void 0!==e.bin?e.bin:await k(e);return o?new Promise(e=>{let n,s,p=!1,c=t=>{p||(p=!0,n&&clearTimeout(n),e(t))},l="string"==typeof t?.repo_working_dir&&""!==t.repo_working_dir.trim()?t.repo_working_dir.trim():void 0;try{s=r(o,["checkpoint","agent-v1","--hook-input","stdin"],{stdio:["pipe","pipe","pipe"],windowsHide:!0,cwd:l})}catch(t){(0,a.CN)("[git-ai] failed to spawn checkpoint:",t),c({ok:!1,skipped:!1});return}let u="";s.stderr?.on("data",t=>{u+=String(t)}),s.stdout?.on("data",()=>{}),s.on("error",t=>{(0,a.CN)("[git-ai] checkpoint process error:",t),c({ok:!1,skipped:!1})}),s.on("close",e=>{if(0===e){(0,a.JX)("[git-ai] checkpoint ok",JSON.stringify({type:t?.type})),c({ok:!0,skipped:!1});return}let r=u.trim()||`exit ${e}`;(0,a.CN)("[git-ai] checkpoint failed:",r),c({ok:!1,skipped:!1})}),n=setTimeout(()=>{(0,a.CN)("[git-ai] checkpoint timed out");try{s.kill()}catch(t){(0,a.CN)("[git-ai] failed to kill timed-out checkpoint:",t)}c({ok:!1,skipped:!1})},i);try{s.stdin.write(JSON.stringify(t)),s.stdin.end()}catch(t){(0,a.CN)("[git-ai] failed to write checkpoint stdin:",t);try{s.kill()}catch(t){(0,a.CN)("[git-ai] failed to kill after stdin error:",t)}c({ok:!1,skipped:!1})}}):((0,a.JX)("[git-ai] skipped checkpoint: git-ai not installed"),{ok:!1,skipped:!0})}i()}catch(t){i(t)}})},7648(t,e,r){r.a(t,async function(t,i){try{r.d(e,{n8:()=>s});var n=r(6698),o=r(4071),a=t([o]);o=(a.then?(await a)():a)[0];let p=new n.AsyncLocalStorage;function s(){return p.getStore()}i()}catch(t){i(t)}})},9522(t,e,r){r.a(t,async function(t,i){try{r.d(e,{Rg:()=>s});var n=r(3565),o=r(7648),a=t([n,o]);function s(t){if(null==t||"object"!=typeof t)return null;for(let e of["path","file_path","filePath","file"]){let r=t[e];if("string"==typeof r&&""!==r.trim())return r.trim()}return null}[n,o]=a.then?(await a)():a,i()}catch(t){i(t)}})},3458(t,e,r){r.d(e,{O:()=>n});var i=r(3024);function n(){let t=process.argv[1];if(!t||"-"===t||t.startsWith("-"))return null;try{let e=(0,i.realpathSync)(t);return"string"==typeof e&&e.length>0?e:null}catch{return null}}},4071(t,e,r){r.a(t,async function(t,i){try{let l,u;r.d(e,{CN:()=>p,JX:()=>c});var n,o=r(4082),a=t([o]);function s(t){return t.map(t=>t instanceof Error?t.message||String(t):"object"==typeof t&&null!==t?JSON.stringify(t):String(t)).join(" ")}function p(...t){try{let e=t.length>1?s(t):t[0]??"";l.error(e)}catch{}}function c(...t){try{let e=t.length>1?s(t):t[0]??"";l.debug(e)}catch{}}o=(a.then?(await a)():a)[0],n=process.env.PITHOSAI_LOG_FILEPATH,u=function(t=process.argv[1]){return"string"!=typeof t||0===t.length?"all":t.includes("/dist/")?"INFO":"all"}(),o.default.configure({appenders:{file:{type:"file",filename:n||"/tmp/pithosai_log_file.log",layout:{type:"pattern",pattern:"%d{yyyy-MM-dd hh:mm:ss.SSS} %p %f:%l %m"}}},categories:{default:{appenders:["file"],level:u,enableCallStack:!0}}}),(l=o.default.getLogger()).callStackLinesToSkip=1,i()}catch(t){i(t)}})}},l={};function u(t){var e=l[t];if(void 0!==e)return e.exports;var r=l[t]={exports:{}};return c[t](r,r.exports,u),r.exports}i=(r="function"==typeof Symbol)?Symbol("rspack queues"):"__rspack_queues",n=u.aE=r?Symbol("rspack exports"):"__webpack_exports__",o=r?Symbol("rspack error"):"__rspack_error",a=r?Symbol("rspack done"):"__rspack_done",s=u.zS=r?Symbol("rspack defer"):"__rspack_defer",p=t=>{t&&t.d<1&&(t.d=1,t.forEach(t=>t.r--),t.forEach(t=>t.r--?t.r++:t()))},u.a=(t,e,r)=>{r&&((c=[]).d=-1);var c,d,f,y,g=new Set,m=t.exports,k=new Promise((t,e)=>{y=e,f=t});k[n]=m,k[i]=t=>{c&&t(c),g.forEach(t),k.catch(()=>{})},t.exports=k,e(t=>{d=t.map(t=>{if(null!==t&&"object"==typeof t){if(!t[i]&&t[s]){var e=t[s];if(!e.some(t=>{var e=l[t];return!e||!1===e[a]}))return t;var r=t;t={then(t){Promise.all(e.map(u)).then(()=>t(r))}}}if(t[i])return t;if(t.then){var c=[];c.d=0,t.then(t=>{d[n]=t,p(c)},t=>{d[o]=t,p(c)});var d={};return d[s]=!1,d[i]=t=>t(c),d}}var f={};return f[i]=()=>{},f[n]=t,f});var e,r=()=>d.map(t=>{if(t[s])return t;if(t[o])throw t[o];return t[n]}),f=new Promise(t=>{(e=()=>t(r)).r=0;var n=t=>t!==c&&!g.has(t)&&(g.add(t),t&&!t.d&&(e.r++,t.push(e)));d.map(t=>t[s]||t[i](n))});return e.r?f:r()},t=>(t?y(k[o]=t):f(m),p(c),k[a]=!0)),c&&c.d<0&&(c.d=0)},u.d=(t,e)=>{for(var r in e)u.o(e,r)&&!u.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},u.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),u.rv=()=>"1.7.6",u.ruid="bundler=rspack@1.7.6",u(6622);