@dahawa/hawa-code 1.38.7 → 1.38.9

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/cli.js CHANGED
@@ -676,7 +676,7 @@ globstar while`,t,p,r,f,A),this.matchOne(t.slice(p),r.slice(f),n))return this.de
676
676
  `)),BFn(e,o,{encoding:r,flush:!0})}var nGt=new lle.default({fetchMethod:e=>GFn(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});async function dGt(e){let t=L$(e);return nGt.get(t)||nGt.fetchMethod?.(t)}async function GFn(e){let t=new AbortController;setTimeout(()=>{t.abort()},1e3);let r=await nMt(e,t.signal,15),n=0;for(let o of r)pw(o)==="CRLF"&&n++;return n>3?"CRLF":"LF"}function pGt(e,t,r){if(e.has(t))return e.get(t);let n=r();return e.set(t,n),n}var HFn=new lle.default({fetchMethod:e=>fGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function Rm(e){let t=L$(e);return pGt(HFn,t,()=>fGt(t))}function fGt(e){let r=Buffer.alloc(4096),n;try{n=oGt(e,"r");let o=iGt(n,r,0,4096,0);return o===0?"utf8":o>=2&&r[0]===255&&r[1]===254?"utf16le":o>=3&&r[0]===239&&r[1]===187&&r[2]===191||r.slice(0,o).toString("utf8").length>0?"utf8":"ascii"}catch(o){return Re(`Error detecting encoding for file ${e}: ${o}`),"utf8"}finally{n&&sGt(n)}}var qFn=new lle.default({fetchMethod:e=>mGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function pw(e){let t=L$(e);return pGt(qFn,t,()=>mGt(t))}function mGt(e,t="utf8"){try{if(!aGt(e).isFile())return"LF";let n=Buffer.alloc(4096),o=oGt(e,"r"),i=iGt(o,n,0,4096,0);sGt(o);let s=n.toString(t,0,i),a=0,c=0;for(let l=0;l<s.length;l++)s[l]===`
677
677
  `&&(l>0&&s[l-1]==="\r"?a++:c++);return a>c?"CRLF":"LF"}catch(r){return Re(`Error detecting line endings for file ${e}: ${r}`),"LF"}}function kBe(e){let t=cGt(e)?e:L$(Le(),e);return t.endsWith(" AM.png")?t.replace(" AM.png","\u202FAM.png"):t.endsWith(" PM.png")?t.replace(" PM.png","\u202FPM.png"):t}function PBe(e){return e?cGt(e)?e:L$(Le(),e):void 0}function gGt(e){try{let t=PBe(e),r=t?FFn(Le(),t):void 0;return{absolutePath:t,relativePath:r}}catch(t){return he("getAbsoluteAndRelativePaths error ",t),{absolutePath:null,relativePath:null}}}function dle(e){try{let t=UFn(e),r=eGt(e,tGt(e));if(!kFn(t))return;let i=PFn(t).filter(s=>eGt(s,tGt(s))===r&&QFn(t,s)!==e)[0];return i||void 0}catch(t){Re(`Error finding similar file for ${e}: ${t}`);return}}function LBe(){let e=process.env.HAWA_CODE_COMPACT_LINE_PREFIX;return!(e==="0"||e==="false")}function cD({content:e,startLine:t}){if(!e)return"";let r=e.split(/\r?\n/);return LBe()?r.map((n,o)=>`${o+t} ${n}`).join(`
678
678
  `):r.map((n,o)=>{let i=String(o+t);return i.length>=6?`${i}\u2192${n}`:`${i.padStart(6," ")}\u2192${n}`}).join(`
679
- `)}function AGt(e){try{let t=LFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Re(`Error checking directory: ${t}`),!1}}He();function oD(){let e=Qn();e.hasCompletedProjectOnboarding||xi({...e,hasCompletedProjectOnboarding:!0})}function zFn(){let e=_r();bo({...e,lastReleaseNotesSeen:MACRO.VERSION})}function FBe({workspaceDir:e}){let r=!Qn().hasCompletedProjectOnboarding,o=_r().lastReleaseNotesSeen,i=[];(!o||(0,hGt.gt)(MACRO.VERSION,o))&&(i=Nce[MACRO.VERSION]||[]);let s=i.length>0;if(Hi.useEffect(()=>{s&&!r&&zFn()},[s,r]),!r&&!s)return null;let a=$Fn(YFn(e,_i)),c=AGt(e),l=!a&&!c,u=_U.isEnabled&&!_r().shiftEnterKeyBindingInstalled,d=X();return Hi.createElement(D,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Hi.createElement(Hi.Fragment,null,Hi.createElement(C,{color:d.secondaryText},"Tips for getting started:"),Hi.createElement(vd,{children:[]},(()=>{let p=[];return c&&p.push(Hi.createElement(vd.Item,{key:"workspace"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," to create a new app or clone a repository."))),l&&p.push(Hi.createElement(vd.Item,{key:"claudemd"},Hi.createElement(C,{color:d.secondaryText},"Run ",Hi.createElement(C,{color:d.text},"/init")," to create a",_i," file with instructions for Hawa code."))),u&&p.push(Hi.createElement(vd.Item,{key:"terminal"},Hi.createElement(C,{color:d.secondaryText},"Run ",Hi.createElement(C,{color:d.text},"/terminal-setup"),Hi.createElement(C,{bold:!1}," to set up terminal integration")))),p.push(Hi.createElement(vd.Item,{key:"questions"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," questions about your codebase."))),p.push(Hi.createElement(vd.Item,{key:"changes"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," to implement changes to your codebase."))),p})())),!r&&s&&Hi.createElement(D,{borderColor:X().secondaryBorder,flexDirection:"column",marginRight:1},Hi.createElement(D,{flexDirection:"column",gap:0},Hi.createElement(D,{marginBottom:1},Hi.createElement(C,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Hi.createElement(D,{flexDirection:"column",marginLeft:1},i.map((p,f)=>Hi.createElement(C,{key:f,color:X().secondaryText},"\u2022 ",p))))),e===VFn()&&Hi.createElement(C,{color:X().warning},"Note: You have launched ",Hi.createElement(C,{bold:!0},Je)," in your home directory. For the best experience, launch it in a project directory instead."))}var BU=G(ce(),1);var MU=G(ce(),1);var F$=G(ce(),1);function UBe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=is("Select");return F$.default.createElement(D,{...o.option({isFocused:e})},e&&F$.default.createElement(C,{...o.focusIndicator()},r?tn.triangleDownSmall:tn.pointer),F$.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&F$.default.createElement(C,{...o.selectedIndicator()},tn.tick))}var Dm=G(ce(),1);import{isDeepStrictEqual as WFn}from"node:util";var U$=class extends Map{first;constructor(t){let r=[],n,o,i=0;for(let s of t){let a={...s,previous:o,next:void 0,index:i};o&&(o.next=a),n||=a;let c="value"in s?s.value:QBe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var jFn=(e,t)=>{switch(t.type){case"focus-next-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.next;for(;n&&!("value"in n);)n=n.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let i=Math.min(e.optionMap.size,e.visibleToIndex+1),s=i-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:i}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;for(;n&&!("value"in n);)n=n.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let i=Math.max(0,e.visibleFromIndex-1),s=i+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state;case"set-focus":return{...e,focusedValue:t.value}}},GBe=e=>e.flatMap(t=>{if("options"in t){let r=GBe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),_Gt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=GBe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new U$(n),s=i.first,a=s&&"value"in s?s.value:void 0;return{optionMap:i,visibleOptionCount:o,focusedValue:a,visibleFromIndex:0,visibleToIndex:o,previousValue:t,value:t}},HBe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=GBe(t),[a,c]=(0,Dm.useReducer)(jFn,{visibleOptionCount:e,defaultValue:r,options:t},_Gt),[l,u]=(0,Dm.useState)(s);s!==l&&!WFn(s,l)&&(c({type:"reset",state:_Gt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Dm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Dm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Dm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Dm.useMemo)(()=>s.map((h,_)=>({...h,index:_})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Dm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Dm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Dm.useEffect)(()=>{i&&c({type:"set-focus",value:i})},[i]),{focusedValue:a.focusedValue,visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,value:a.value,visibleOptions:A,focusNextOption:d,focusPreviousOption:p,selectFocusedOption:f}};var qBe=({isDisabled:e=!1,state:t})=>{Nt((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var QBe=e=>`HEADER-${e.optionValues.join(",")}`;function $C({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=HBe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});qBe({isDisabled:e,state:c});let{styles:l}=is("Select");return MU.default.createElement(D,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:QBe(u),p=!e&&c.focusedValue!==void 0&&("value"in u?c.focusedValue===u.value:u.optionValues.includes(c.focusedValue)),f=!!c.value&&("value"in u?c.value===u.value:u.optionValues.includes(c.value)),A="header"in u,h="label"in u?u.label:u.header,_=h;if(r&&h.includes(r)){let T=h.indexOf(r);_=MU.default.createElement(MU.default.Fragment,null,h.slice(0,T),MU.default.createElement(C,{...l.highlightedText()},r),h.slice(T+r.length))}return MU.default.createElement(UBe,{key:d,isFocused:p,isSelected:f,smallPointer:A},_)}))}function EGt({onDone:e}){return Nt((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),BU.default.createElement(D,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:X().secondaryBorder},BU.default.createElement(D,{marginBottom:1,flexDirection:"column"},BU.default.createElement(C,{bold:!0},"You've spent $5 this session.")),BU.default.createElement(D,null,BU.default.createElement($C,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var Mn=G(ce(),1),Sr=G(ce(),1);var Ef=G(ce(),1);He();xr();He();Be();import KFn from"os";import JFn from"path";import Q$ from"fs";var ZFn={sources:{},routing:{}};function bGt(){let e=KFn.homedir();return JFn.join(e,lo,"config.json")}function SGt(){try{let e=bGt();if(!Q$.existsSync(e))return ZFn;let t=Q$.readFileSync(e,"utf-8"),r=JSON.parse(t);return r.sources&&r.routing?r:XFn(r)}catch(e){throw Re(e),e}}function XFn(e){let t={},r={};for(let[n,o]of Object.entries(e))if(o?.enable===!0&&o?.env){let i=o.env,s=n;t[s]={base_url:i.BASE_URL||"",auth_token:i.AUTH_TOKEN||"",api_type:i.API_TYPE||"anthropic",models:[]},i.MODEL&&(r.MODEL=[{source:s,model:i.MODEL,weight:100}],t[s].models.push(i.MODEL)),i.SMALL_FAST_MODEL&&(r.SMALL_FAST_MODEL=[{source:s,model:i.SMALL_FAST_MODEL,weight:100}],t[s].models.includes(i.SMALL_FAST_MODEL)||t[s].models.push(i.SMALL_FAST_MODEL));break}return{sources:t,routing:r}}function TGt(e){if(e.length===0)throw new Error("No items to select from");if(e.length===1)return e[0];let t=e.reduce((n,o)=>n+(o.weight??100),0),r=Math.random()*t;for(let n of e){let o=n.weight??100;if(r-=o,r<=0)return n}return e[e.length-1]}var $Be=class{config;constructor(){try{this.config=SGt()}catch(t){console.log(t)}}reload(){this.config=SGt()}getConfig(){return this.config}hasModelRouting(){return!!(this.config.routing?.MODEL&&this.config.routing.MODEL.length>0)}getModelRoutingModels(){let t=this.config.routing?.MODEL;return!t||t.length===0?[]:t.map(r=>r.model)}hasSmallFastModelRouting(){return!!(this.config.routing?.SMALL_FAST_MODEL&&this.config.routing.SMALL_FAST_MODEL.length>0)}getModel(){let t=this.config.routing?.MODEL;if(!t||t.length===0)throw new Error("No MODEL routing configuration found");let r=TGt(t);return`${r.source}__${r.model}`}getSmallFastModel(){let t=this.config.routing?.SMALL_FAST_MODEL;if(!t||t.length===0)throw new Error("No SMALL_FAST_MODEL routing configuration found");let r=TGt(t);return`${r.source}__${r.model}`}getSourceConfig(t){return this.config.sources?.[t]}parseModelKey(t){let r=t.indexOf("__");return r===-1?{source:"",model:t}:{source:t.slice(0,r),model:t.slice(r+2)}}getModelSourceConfig(t){let{source:r}=this.parseModelKey(t);if(r)return this.getSourceConfig(r)}setModelRouting(t){this.config.routing.MODEL=t,this.saveConfig()}setSmallFastModelRouting(t){this.config.routing.SMALL_FAST_MODEL=t,this.saveConfig()}getAvailableModels(){let t=[];for(let[r,n]of Object.entries(this.config.sources||{}))for(let o of n.models||[])t.push(`${r}__${o}`);return t}saveConfig(){try{let t=bGt(),r={};if(Q$.existsSync(t)){let o=Q$.readFileSync(t,"utf-8");r=JSON.parse(o)}let n={...r,sources:this.config.sources,routing:this.config.routing};Q$.writeFileSync(t,JSON.stringify(n,null,2))}catch(t){Re(t)}}},Wo=new $Be;var eUn="1.38.7",JT={VERSION:eUn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var YBe=46,yGt=["(\u2740\u2579\u25E1\u2579)","(\u25D5\u072B\u25D5)","\u239D(\u25D5u\u25D5)\u23A0","\u10DA(\u25C9\u25DE\u0C6A\u25DF\u25C9 )\u10DA","(\xB4\u25C9\u203F\u25C9\uFF40)","\u0E01\u0E47\u0295\u2022\u0361\u1D25\u2022\u0294 \u0E01\u0E49","\uFF0F/( \u25D5\u203F\u203F\u25D5 )\uFF3C"];function ple({isDefaultModel:e=!1}){let t=Math.max(YBe,Le().length+12),r=X(),n=yGt[Math.floor(Math.random()*yGt.length)];return Ef.createElement(D,{flexDirection:"column"},Ef.createElement(D,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Ef.createElement(C,null,Ef.createElement(C,null,n)," Welcome to"," ",Ef.createElement(C,{bold:!0},Je),Ef.createElement(C,{color:r.secondaryText}," v",JT.VERSION)),Ef.createElement(Ef.Fragment,null,Ef.createElement(D,{paddingLeft:2,flexDirection:"column",gap:1},Ef.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Ef.createElement(C,{color:r.secondaryText},"cwd: ",Le()),Ef.createElement(C,{color:r.secondaryText},"model: ",Wo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Ef.createElement(C,{color:r.secondaryText},"small fast model: ",Wo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var qS=G(ce(),1);Be();var q7=G(ce(),1);import{randomUUID as US}from"crypto";var CGt=()=>[],IGt=()=>{};function vGt(e){CGt=e}function fle(){return CGt}function RGt(e){IGt=e}function DGt(){return IGt}Be();hr();xr();Be();He();import{existsSync as zC,readdirSync as y3n,statSync as C3n}from"fs";import{join as dD,relative as I3n}from"path";import{homedir as t4t}from"os";import{platform as v3n}from"process";import{readFile as pD}from"fs/promises";xr();ZT();Yr();import{join as sUn,sep as aUn}from"path";function Sf(){if(!Nm())return!1;try{let e=wt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function xm(){return(sUn(Le(),".hcode","team-memory")+aUn).normalize("NFC")}function LU(e){let t=e.normalize("NFC"),r=xm();return t.startsWith(r)}var r4t=G(Ile(),1);Zo();var J9t=G(Ile(),1);xr();He();Be();vm();import{readFile as j9t}from"fs/promises";import{existsSync as lke,readdirSync as E3n,statSync as S3n}from"fs";import{join as uke,relative as Z9t}from"path";import{homedir as T3n}from"os";function K9t(e){try{let t=(0,J9t.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(o=>o.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(o=>typeof o=="string")),{paths:n,content:t.content.trim()}}catch(t){return Re(t),{paths:[],content:e.trim()}}}function b3n(e,t){return t.length===0?!0:t.some(r=>{try{return Dd(e,r,{matchBase:!0,dot:!0})}catch(n){return Re(n),!1}})}function dke(e){let t=[];try{if(!lke(e))return t;let r=E3n(e);for(let n of r){let o=uke(e,n),i=S3n(o);i.isDirectory()?t.push(...dke(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Re(r)}return t}async function X9t(){let e=[];try{let t=uke(T3n(),lo,"rules");if(lke(t)){let r=dke(t);for(let n of r)try{let o=await j9t(n,"utf-8"),{paths:i,content:s}=K9t(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Re(o)}}}catch(t){Re(t)}try{let t=uke(Le(),lo,"rules");if(lke(t)){let r=dke(t);for(let n of r)try{let o=await j9t(n,"utf-8"),{paths:i,content:s}=K9t(o);i.length>0&&e.push({filePath:Z9t(Le(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Re(o)}}}catch(t){Re(t)}return e}function e4t(e,t){e=uae(e);let r=uae(Le()),n=e.startsWith(r)?Z9t(r,e):e;return t.filter(o=>b3n(n,o.paths))}var R3n=`# hawaCodeMd
679
+ `)}function AGt(e){try{let t=LFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Re(`Error checking directory: ${t}`),!1}}He();function oD(){let e=Qn();e.hasCompletedProjectOnboarding||xi({...e,hasCompletedProjectOnboarding:!0})}function zFn(){let e=_r();bo({...e,lastReleaseNotesSeen:MACRO.VERSION})}function FBe({workspaceDir:e}){let r=!Qn().hasCompletedProjectOnboarding,o=_r().lastReleaseNotesSeen,i=[];(!o||(0,hGt.gt)(MACRO.VERSION,o))&&(i=Nce[MACRO.VERSION]||[]);let s=i.length>0;if(Hi.useEffect(()=>{s&&!r&&zFn()},[s,r]),!r&&!s)return null;let a=$Fn(YFn(e,_i)),c=AGt(e),l=!a&&!c,u=_U.isEnabled&&!_r().shiftEnterKeyBindingInstalled,d=X();return Hi.createElement(D,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Hi.createElement(Hi.Fragment,null,Hi.createElement(C,{color:d.secondaryText},"Tips for getting started:"),Hi.createElement(vd,{children:[]},(()=>{let p=[];return c&&p.push(Hi.createElement(vd.Item,{key:"workspace"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," to create a new app or clone a repository."))),l&&p.push(Hi.createElement(vd.Item,{key:"claudemd"},Hi.createElement(C,{color:d.secondaryText},"Run ",Hi.createElement(C,{color:d.text},"/init")," to create a",_i," file with instructions for Hawa code."))),u&&p.push(Hi.createElement(vd.Item,{key:"terminal"},Hi.createElement(C,{color:d.secondaryText},"Run ",Hi.createElement(C,{color:d.text},"/terminal-setup"),Hi.createElement(C,{bold:!1}," to set up terminal integration")))),p.push(Hi.createElement(vd.Item,{key:"questions"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," questions about your codebase."))),p.push(Hi.createElement(vd.Item,{key:"changes"},Hi.createElement(C,{color:d.secondaryText},"Ask ",Je," to implement changes to your codebase."))),p})())),!r&&s&&Hi.createElement(D,{borderColor:X().secondaryBorder,flexDirection:"column",marginRight:1},Hi.createElement(D,{flexDirection:"column",gap:0},Hi.createElement(D,{marginBottom:1},Hi.createElement(C,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Hi.createElement(D,{flexDirection:"column",marginLeft:1},i.map((p,f)=>Hi.createElement(C,{key:f,color:X().secondaryText},"\u2022 ",p))))),e===VFn()&&Hi.createElement(C,{color:X().warning},"Note: You have launched ",Hi.createElement(C,{bold:!0},Je)," in your home directory. For the best experience, launch it in a project directory instead."))}var BU=G(ce(),1);var MU=G(ce(),1);var F$=G(ce(),1);function UBe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=is("Select");return F$.default.createElement(D,{...o.option({isFocused:e})},e&&F$.default.createElement(C,{...o.focusIndicator()},r?tn.triangleDownSmall:tn.pointer),F$.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&F$.default.createElement(C,{...o.selectedIndicator()},tn.tick))}var Dm=G(ce(),1);import{isDeepStrictEqual as WFn}from"node:util";var U$=class extends Map{first;constructor(t){let r=[],n,o,i=0;for(let s of t){let a={...s,previous:o,next:void 0,index:i};o&&(o.next=a),n||=a;let c="value"in s?s.value:QBe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var jFn=(e,t)=>{switch(t.type){case"focus-next-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.next;for(;n&&!("value"in n);)n=n.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let i=Math.min(e.optionMap.size,e.visibleToIndex+1),s=i-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:i}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;for(;n&&!("value"in n);)n=n.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let i=Math.max(0,e.visibleFromIndex-1),s=i+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state;case"set-focus":return{...e,focusedValue:t.value}}},GBe=e=>e.flatMap(t=>{if("options"in t){let r=GBe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),_Gt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=GBe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new U$(n),s=i.first,a=s&&"value"in s?s.value:void 0;return{optionMap:i,visibleOptionCount:o,focusedValue:a,visibleFromIndex:0,visibleToIndex:o,previousValue:t,value:t}},HBe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=GBe(t),[a,c]=(0,Dm.useReducer)(jFn,{visibleOptionCount:e,defaultValue:r,options:t},_Gt),[l,u]=(0,Dm.useState)(s);s!==l&&!WFn(s,l)&&(c({type:"reset",state:_Gt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Dm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Dm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Dm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Dm.useMemo)(()=>s.map((h,_)=>({...h,index:_})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Dm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Dm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Dm.useEffect)(()=>{i&&c({type:"set-focus",value:i})},[i]),{focusedValue:a.focusedValue,visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,value:a.value,visibleOptions:A,focusNextOption:d,focusPreviousOption:p,selectFocusedOption:f}};var qBe=({isDisabled:e=!1,state:t})=>{Nt((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var QBe=e=>`HEADER-${e.optionValues.join(",")}`;function $C({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=HBe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});qBe({isDisabled:e,state:c});let{styles:l}=is("Select");return MU.default.createElement(D,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:QBe(u),p=!e&&c.focusedValue!==void 0&&("value"in u?c.focusedValue===u.value:u.optionValues.includes(c.focusedValue)),f=!!c.value&&("value"in u?c.value===u.value:u.optionValues.includes(c.value)),A="header"in u,h="label"in u?u.label:u.header,_=h;if(r&&h.includes(r)){let T=h.indexOf(r);_=MU.default.createElement(MU.default.Fragment,null,h.slice(0,T),MU.default.createElement(C,{...l.highlightedText()},r),h.slice(T+r.length))}return MU.default.createElement(UBe,{key:d,isFocused:p,isSelected:f,smallPointer:A},_)}))}function EGt({onDone:e}){return Nt((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),BU.default.createElement(D,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:X().secondaryBorder},BU.default.createElement(D,{marginBottom:1,flexDirection:"column"},BU.default.createElement(C,{bold:!0},"You've spent $5 this session.")),BU.default.createElement(D,null,BU.default.createElement($C,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var Mn=G(ce(),1),Sr=G(ce(),1);var Ef=G(ce(),1);He();xr();He();Be();import KFn from"os";import JFn from"path";import Q$ from"fs";var ZFn={sources:{},routing:{}};function bGt(){let e=KFn.homedir();return JFn.join(e,lo,"config.json")}function SGt(){try{let e=bGt();if(!Q$.existsSync(e))return ZFn;let t=Q$.readFileSync(e,"utf-8"),r=JSON.parse(t);return r.sources&&r.routing?r:XFn(r)}catch(e){throw Re(e),e}}function XFn(e){let t={},r={};for(let[n,o]of Object.entries(e))if(o?.enable===!0&&o?.env){let i=o.env,s=n;t[s]={base_url:i.BASE_URL||"",auth_token:i.AUTH_TOKEN||"",api_type:i.API_TYPE||"anthropic",models:[]},i.MODEL&&(r.MODEL=[{source:s,model:i.MODEL,weight:100}],t[s].models.push(i.MODEL)),i.SMALL_FAST_MODEL&&(r.SMALL_FAST_MODEL=[{source:s,model:i.SMALL_FAST_MODEL,weight:100}],t[s].models.includes(i.SMALL_FAST_MODEL)||t[s].models.push(i.SMALL_FAST_MODEL));break}return{sources:t,routing:r}}function TGt(e){if(e.length===0)throw new Error("No items to select from");if(e.length===1)return e[0];let t=e.reduce((n,o)=>n+(o.weight??100),0),r=Math.random()*t;for(let n of e){let o=n.weight??100;if(r-=o,r<=0)return n}return e[e.length-1]}var $Be=class{config;constructor(){try{this.config=SGt()}catch(t){console.log(t)}}reload(){this.config=SGt()}getConfig(){return this.config}hasModelRouting(){return!!(this.config.routing?.MODEL&&this.config.routing.MODEL.length>0)}getModelRoutingModels(){let t=this.config.routing?.MODEL;return!t||t.length===0?[]:t.map(r=>r.model)}hasSmallFastModelRouting(){return!!(this.config.routing?.SMALL_FAST_MODEL&&this.config.routing.SMALL_FAST_MODEL.length>0)}getModel(){let t=this.config.routing?.MODEL;if(!t||t.length===0)throw new Error("No MODEL routing configuration found");let r=TGt(t);return`${r.source}__${r.model}`}getSmallFastModel(){let t=this.config.routing?.SMALL_FAST_MODEL;if(!t||t.length===0)throw new Error("No SMALL_FAST_MODEL routing configuration found");let r=TGt(t);return`${r.source}__${r.model}`}getSourceConfig(t){return this.config.sources?.[t]}parseModelKey(t){let r=t.indexOf("__");return r===-1?{source:"",model:t}:{source:t.slice(0,r),model:t.slice(r+2)}}getModelSourceConfig(t){let{source:r}=this.parseModelKey(t);if(r)return this.getSourceConfig(r)}setModelRouting(t){this.config.routing.MODEL=t,this.saveConfig()}setSmallFastModelRouting(t){this.config.routing.SMALL_FAST_MODEL=t,this.saveConfig()}getAvailableModels(){let t=[];for(let[r,n]of Object.entries(this.config.sources||{}))for(let o of n.models||[])t.push(`${r}__${o}`);return t}saveConfig(){try{let t=bGt(),r={};if(Q$.existsSync(t)){let o=Q$.readFileSync(t,"utf-8");r=JSON.parse(o)}let n={...r,sources:this.config.sources,routing:this.config.routing};Q$.writeFileSync(t,JSON.stringify(n,null,2))}catch(t){Re(t)}}},Wo=new $Be;var eUn="1.38.9",JT={VERSION:eUn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var YBe=46,yGt=["(\u2740\u2579\u25E1\u2579)","(\u25D5\u072B\u25D5)","\u239D(\u25D5u\u25D5)\u23A0","\u10DA(\u25C9\u25DE\u0C6A\u25DF\u25C9 )\u10DA","(\xB4\u25C9\u203F\u25C9\uFF40)","\u0E01\u0E47\u0295\u2022\u0361\u1D25\u2022\u0294 \u0E01\u0E49","\uFF0F/( \u25D5\u203F\u203F\u25D5 )\uFF3C"];function ple({isDefaultModel:e=!1}){let t=Math.max(YBe,Le().length+12),r=X(),n=yGt[Math.floor(Math.random()*yGt.length)];return Ef.createElement(D,{flexDirection:"column"},Ef.createElement(D,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Ef.createElement(C,null,Ef.createElement(C,null,n)," Welcome to"," ",Ef.createElement(C,{bold:!0},Je),Ef.createElement(C,{color:r.secondaryText}," v",JT.VERSION)),Ef.createElement(Ef.Fragment,null,Ef.createElement(D,{paddingLeft:2,flexDirection:"column",gap:1},Ef.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Ef.createElement(C,{color:r.secondaryText},"cwd: ",Le()),Ef.createElement(C,{color:r.secondaryText},"model: ",Wo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Ef.createElement(C,{color:r.secondaryText},"small fast model: ",Wo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var qS=G(ce(),1);Be();var q7=G(ce(),1);import{randomUUID as US}from"crypto";var CGt=()=>[],IGt=()=>{};function vGt(e){CGt=e}function fle(){return CGt}function RGt(e){IGt=e}function DGt(){return IGt}Be();hr();xr();Be();He();import{existsSync as zC,readdirSync as y3n,statSync as C3n}from"fs";import{join as dD,relative as I3n}from"path";import{homedir as t4t}from"os";import{platform as v3n}from"process";import{readFile as pD}from"fs/promises";xr();ZT();Yr();import{join as sUn,sep as aUn}from"path";function Sf(){if(!Nm())return!1;try{let e=wt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function xm(){return(sUn(Le(),".hcode","team-memory")+aUn).normalize("NFC")}function LU(e){let t=e.normalize("NFC"),r=xm();return t.startsWith(r)}var r4t=G(Ile(),1);Zo();var J9t=G(Ile(),1);xr();He();Be();vm();import{readFile as j9t}from"fs/promises";import{existsSync as lke,readdirSync as E3n,statSync as S3n}from"fs";import{join as uke,relative as Z9t}from"path";import{homedir as T3n}from"os";function K9t(e){try{let t=(0,J9t.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(o=>o.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(o=>typeof o=="string")),{paths:n,content:t.content.trim()}}catch(t){return Re(t),{paths:[],content:e.trim()}}}function b3n(e,t){return t.length===0?!0:t.some(r=>{try{return Dd(e,r,{matchBase:!0,dot:!0})}catch(n){return Re(n),!1}})}function dke(e){let t=[];try{if(!lke(e))return t;let r=E3n(e);for(let n of r){let o=uke(e,n),i=S3n(o);i.isDirectory()?t.push(...dke(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Re(r)}return t}async function X9t(){let e=[];try{let t=uke(T3n(),lo,"rules");if(lke(t)){let r=dke(t);for(let n of r)try{let o=await j9t(n,"utf-8"),{paths:i,content:s}=K9t(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Re(o)}}}catch(t){Re(t)}try{let t=uke(Le(),lo,"rules");if(lke(t)){let r=dke(t);for(let n of r)try{let o=await j9t(n,"utf-8"),{paths:i,content:s}=K9t(o);i.length>0&&e.push({filePath:Z9t(Le(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Re(o)}}}catch(t){Re(t)}return e}function e4t(e,t){e=uae(e);let r=uae(Le()),n=e.startsWith(r)?Z9t(r,e):e;return t.filter(o=>b3n(n,o.paths))}var R3n=`# hawaCodeMd
680
680
  Codebase and user instructions are shown below. Be sure to adhere to these instructions. IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.`;function D3n(e="default"){let r=Ye.getSessionContext(e).getData("matchedPathRules");return!r||r.length===0?"":r.map(o=>{let i=o.isProjectRule?"project instructions, checked into the codebase":"user's private global instructions for all projects";return`Contents of ${o.filePath} (${i}):
681
681
 
682
682
  ${o.content}`}).join(`
@@ -774,7 +774,7 @@ data: ${JSON.stringify(F)}
774
774
  Stack trace: `+d.stack)),new Response(c.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var ife=null,VQe=!1;function uno(){ife=null,VQe=!1}Nr.on("proxy:changed",uno);function dno(){if(VQe)return ife;if(VQe=!0,wt().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(ife=new djt.ProxyAgent({uri:e}),qt(`[proxy] using proxy: ${e}`)),ife}function pno(){let e=dno();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function afe(e){let t=e||process.env.API_TYPE,r=pno();switch(t){case"openai":return sno(r);case"openai-responses":return ano(r);case"gemini":return cno(r);default:return lno(r)}}var fjt=G(ce(),1);function pjt(e,t){let r=[],n=Math.max(1,Math.floor(t)),o="",i=0;for(let s of e){let a=fno(s);o&&i+a>n?(r.push(o),o=s,i=a):(o+=s,i+=a)}return o&&r.push(o),r}function fno(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||mno(t)?0:gno(t)?2:1}function mno(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function gno(e){return e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=129280&&e<=129535||e>=131072&&e<=262141)}function rS(e){if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),n=(e%6e4/1e3).toFixed(1);return t>0?`${t}h ${r}m ${n}s`:r>0?`${r}m ${n}s`:`${n}s`}function jQe(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m ${o}s`:`${n}m ${o}s`}function m0(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function cfe(e,t,r){let n=[];return typeof e=="number"&&n.push(jQe(e)),typeof t=="number"&&n.push(`${t} ${t===1?"turn":"turns"}`),typeof r=="number"&&n.push(`${m0(r)} tokens`),n.length>0?` (${n.join(" \xB7 ")})`:""}Be();va();var pA={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0};function lfe(e,t){pA.totalCost+=e,pA.totalAPIDuration+=t}function ufe(e,t){pA.inputTokens+=e,pA.outputTokens+=t,Nr.emit("token:change",{inputTokens:pA.inputTokens,outputTokens:pA.outputTokens})}function VY(){return{inputTokens:pA.inputTokens,outputTokens:pA.outputTokens}}function dfe(){return pA.totalCost}function mjt(){return Date.now()-pA.startTime}function KQe(){return Ct.grey(`Total duration (API): ${rS(pA.totalAPIDuration)}
775
775
  Total duration (wall): ${rS(mjt())}`)}function gjt(){(0,fjt.useEffect)(()=>{let e=()=>{process.stdout.write(`
776
776
  `+KQe()+`
777
- `);let t=Qn();xi({...t,lastCost:pA.totalCost,lastAPIDuration:pA.totalAPIDuration,lastDuration:mjt(),lastSessionId:xE})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Be();He();He();var JQe="1.38.7";globalThis.MACRO={VERSION:JQe,PACKAGE_URL:`@dahawa/${Gi}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var pfe=process.env.HAWA_CODE_USER_AGENT||`${Gi}/${JQe} (${process.env.USER_TYPE})`;Be();Be();hr();function xp(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=gp(t);if(n?.type==="user"){t[t.length-1]=Eno(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=gp(t);n?.type==="user"&&(t[t.length-1]=Ano(n,r));return}}}),t}function Ano(e,t){return{...e,message:{...e.message,content:_no(e.message.content,hno(t.content.content))}}}function hno(e){return`
777
+ `);let t=Qn();xi({...t,lastCost:pA.totalCost,lastAPIDuration:pA.totalAPIDuration,lastDuration:mjt(),lastSessionId:xE})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Be();He();He();var JQe="1.38.9";globalThis.MACRO={VERSION:JQe,PACKAGE_URL:`@dahawa/${Gi}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var pfe=process.env.HAWA_CODE_USER_AGENT||`${Gi}/${JQe} (${process.env.USER_TYPE})`;Be();Be();hr();function xp(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=gp(t);if(n?.type==="user"){t[t.length-1]=Eno(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=gp(t);n?.type==="user"&&(t[t.length-1]=Ano(n,r));return}}}),t}function Ano(e,t){return{...e,message:{...e.message,content:_no(e.message.content,hno(t.content.content))}}}function hno(e){return`
778
778
  <system-reminder>
779
779
  The user sent the following message:
780
780
  ${e}
package/hands.js CHANGED
@@ -751,7 +751,7 @@ data: ${JSON.stringify($)}
751
751
 
752
752
  [Search queries used: ${r.groundingMetadata.webSearchQueries.join(", ")}]`}));let i={id:`msg_${Math.random().toString(36).slice(2)}`,type:"message",role:"assistant",model:t.modelVersion||"gemini",content:n,stop_reason:r.finishReason?r.finishReason==="STOP"&&n.some(o=>o.type==="tool_use")?"tool_use":this.mapGeminiFinishReason(r.finishReason):"end_turn",stop_sequence:null,usage:{input_tokens:t.usageMetadata?.promptTokenCount||0,output_tokens:t.usageMetadata?.candidatesTokenCount||0}};return this.logger&&this.logger.debug({result:i},"Conversion complete, final Anthropic response"),i}catch{throw xFr(`Provider error: ${JSON.stringify(t)}`,500,"provider_error")}}mapGeminiFinishReason(t){switch(t){case"STOP":return"end_turn";case"MAX_TOKENS":return"max_tokens";case"SAFETY":case"RECITATION":return"stop_sequence";default:return"end_turn"}}},d0e=new c0e;var Qlt=ne(klt(),1);Tr();ea();function AA(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function Mlt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function qzr(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function Gzr(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function $zr(e,t="chat"){let r={request:{},response:{},openai:{request:{},response:{}}};return r.request.model=e.request.body.model,r.request.messages=e.request.body.messages,r.request.system=e.request.body.system,r.response.content=e.response.body.content,t==="responses"?(r.openai.request.model=e.openai.request.body.model,r.openai.request.input=e.openai.request.body.input,r.openai.response.output=e.openai.response.body?.output):(r.openai.request.model=e.openai.request.body.model,r.openai.request.messages=e.openai.request.body.messages,r.openai.response.choices=e.openai.response.body.choices),r}function oU(e,t,r){_G(t,e),yG(t,$zr(e,r),r)}function AR(e){let t=[],r=e.getReader(),n,i=new Promise(u=>n=u),o=!1,s=()=>{o||(o=!0,n(Buffer.concat(t).toString("utf8")))};return{stream:new ReadableStream({async pull(u){try{let{done:l,value:c}=await r.read();if(l){u.close(),s();return}t.push(c),u.enqueue(c)}catch(l){u.error(l),s()}},cancel(u){r.cancel(u).catch(()=>{}),s()}}),done:i}}function sU(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function PCe(e,t,r,n,i){let o;try{o={type:"error",error:{type:"api_error",message:JSON.parse(i).error?.message??`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}catch{o={type:"error",error:{type:"api_error",message:`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}return new Response(JSON.stringify(o),{status:r,statusText:n,headers:{"Content-Type":"application/json"}})}var Flt=["/v1/messages"];function UCe(e){let t;try{typeof e=="string"?t=new vT(e):e instanceof vT?t=e:t=new vT(e.url)}catch{return""}let r=t.pathname;for(let n of Flt){let i=r.indexOf(n);if(i!==-1)return t.origin+r.slice(0,i)}return t.origin}function OK(e,t){let r=typeof e=="string"?e:e instanceof vT?e.toString():e.url,n;try{n=new vT(r).pathname}catch{return!1}return Flt.some(i=>n.includes(i))&&(t.method==="POST"||t.method==="post")}function zzr(e){return async(t,r)=>{if(!OK(t,r))return e(t,r);let n=JSON.parse(r.body),i=await kV.transformRequestOut(n),o=UCe(t)+"/chat/completions",s=AA(r.headers),a=s.authorization??s.Authorization??"";qzr(i,Mlt(s));let u=await e(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(i),signal:r.signal});if(!u.ok){let _=await u.text();return le(`OpenAI Chat Completions API error: ${u.status}`,{url:o,errorResponse:_}),PCe("OpenAI Chat Completions API error","OPENROUTER",u.status,u.statusText,_)}let l=n.stream===!0,c=s["x-agent-id"],f={request:{url:o,method:r.method,headers:s,body:n},response:{status:u.status,statusText:u.statusText,headers:AA(u.headers)},openai:{request:{body:i},response:{}}};if(!l){let _=await u.text(),C=new Response(_,{status:u.status,statusText:u.statusText,headers:sU(u.headers)}),S=await kV.transformResponseIn(C,n),T=await S.text();try{oU({...f,openai:{...f.openai,response:{body:JSON.parse(_)}},response:{...f.response,body:JSON.parse(T)}},c)}catch(x){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u975E\u6D41\u5F0F):",x)}return new Response(T,{status:S.status,statusText:S.statusText,headers:S.headers})}let A=AR(u.body),m=new Response(A.stream,{status:u.status,statusText:u.statusText,headers:sU(u.headers)}),g=await kV.transformResponseIn(m,n),E=AR(g.body);return Promise.all([A.done,E.done]).then(async([_,C])=>{try{oU({...f,openai:{...f.openai,response:{body:await uet(_)}},response:{...f.response,body:await JL(C)}},c)}catch(S){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+S?.stack)}}).catch(_=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+_)),new Response(E.stream,{status:g.status,statusText:g.statusText,headers:g.headers})}}function Yzr(e){return async(t,r)=>{if(!OK(t,r))return e(t,r);let n=JSON.parse(r.body),i=await MV.transformRequestOut(n),o=AA(r.headers);Gzr(i,Mlt(o));let s=JSON.stringify(i),u=UCe(t)+"/responses",l=o.authorization??o.Authorization??"";if(!l)return new Response(JSON.stringify({type:"error",error:{type:"api_error",message:"Missing Authorization header",code:"RESPONSES_AUTH_MISSING"}}),{status:401,headers:{"Content-Type":"application/json"}});let c=await e(u,{method:"POST",headers:{"Content-Type":"application/json",Authorization:l,"x-api-key":l.replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal});if(!c.ok){let S=await c.text();return le(`OpenAI Responses API error: ${c.status} ${c.statusText}`,{url:u,status:c.status,errorResponse:S}),PCe("OpenAI Responses API error","RESPONSES",c.status,c.statusText,S)}let f=n.stream===!0,A=o["x-agent-id"],m={request:{url:u,method:r.method,headers:o,body:n},response:{status:c.status,statusText:c.statusText,headers:AA(c.headers)},openai:{request:{body:i},response:{}}};if(!f){let S=await c.text(),T=new Response(S,{status:c.status,statusText:c.statusText,headers:sU(c.headers)}),x=await MV.transformResponseIn(T,n),O=await x.text();try{oU({...m,openai:{...m.openai,response:{body:JSON.parse(S)}},response:{...m.response,body:JSON.parse(O)}},A,"responses")}catch(q){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",q)}return new Response(O,{status:x.status,statusText:x.statusText,headers:x.headers})}let g=AR(c.body),E=new Response(g.stream,{status:c.status,statusText:c.statusText,headers:sU(c.headers)}),_=await MV.transformResponseIn(E,n),C=AR(_.body);return Promise.all([g.done,C.done]).then(async([S,T])=>{try{oU({...m,openai:{...m.openai,response:{body:await aet(S)}},response:{...m.response,body:await JL(T)}},A,"responses")}catch(x){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+x?.stack)}}).catch(S=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+S)),new Response(C.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function jzr(e){return async(t,r)=>{if(!OK(t,r))return e(t,r);let n=JSON.parse(r.body),i=AA(r.headers),o=await d0e.transformRequestOut(n),s=JSON.stringify(o),a=UCe(t)+`/models/${n.model}:streamGenerateContent?alt=sse`,u=i.authorization??i.Authorization??"",l;try{l=await e(a,{method:"POST",headers:{"Content-Type":"application/json","x-goog-api-key":String(u).replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal})}catch(C){throw le("gemini request error:",C),C}if(!l.ok){let C=await l.text();return le(`Gemini API error response: ${l.status} ${l.statusText}`,{url:a,status:l.status,errorResponse:C}),PCe("Gemini API error","Gemini",l.status,l.statusText,C)}let c=n.stream===!0,f=i["x-agent-id"],A={request:{url:a,method:r.method,headers:AA(r.headers),body:n},response:{status:l.status,statusText:l.statusText,headers:AA(l.headers)},openai:{request:{body:o},response:{}}},m=AR(l.body),g=new Response(m.stream,{status:l.status,statusText:l.statusText,headers:sU(l.headers)}),E=await d0e.transformResponseIn(g),_=AR(E.body);return Promise.all([m.done,_.done]).then(async([C,S])=>{try{let T=c?cet(C):JSON.parse(C),x=c?await JL(S):JSON.parse(S);oU({...A,openai:{...A.openai,response:{body:T}},response:{...A.response,body:x}},f)}catch(T){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+T?.stack)}}).catch(C=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+C)),new Response(_.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function Vzr(e){return async(t,r)=>{if(!OK(t,r))return e(t,r);let n=r.body;if(r.body)try{let f=JSON.parse(r.body);n=JSON.stringify(f)}catch{}let i=AA(r.headers);["1","true"].includes(String(process.env.HAWA_CODE_X_API_KEY_DISABLED??"").toLowerCase())&&(delete i["x-api-key"],delete i["X-API-Key"]),["1","true"].includes(String(process.env.HAWA_CODE_AUTH_DISABLED??"").toLowerCase())&&(delete i.authorization,delete i.Authorization),delete i["content-length"];let a=await e(t,{method:r.method,headers:i,body:n,signal:r.signal});if(!a.ok){let f=await a.text();le(`API error response: ${a.status} ${a.statusText}`,{url:typeof t=="string"?t:t instanceof vT?t.toString():t.url,status:a.status,errorResponse:f});let A;try{let m=JSON.parse(f);A={type:"error",error:{type:"api_error",message:m.error?.message||m.message||`API error: ${a.statusText}`,code:m.error?.code||m.code||`API_${a.status}_ERROR`}},m.error?.details&&(A.error.details=m.error.details)}catch{A={type:"error",error:{type:"api_error",message:`API error: ${a.statusText}`,code:`API_${a.status}_ERROR`}}}return new Response(JSON.stringify(A),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"application/json"}})}let u=a.clone(),l=!(Object.hasOwn(JSON.parse(n),"stream")&&!JSON.parse(n).stream),c={request:{url:typeof t=="string"?t:t instanceof vT?t.toString():t.url,method:r.method,headers:AA(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:AA(a.headers)}};return(async()=>{if(l){let m=await a.text();c.response.body=await JL(m)}else c.response.body=await a.json();let A=AA(r.headers)["x-agent-id"];_G(A,c),yG(A,{request:c.request.body.messages,response:c.response.body.content})})().catch(f=>le(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
753
753
  Stack trace: `+f.stack)),new Response(u.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var RK=null,LCe=!1;function Wzr(){RK=null,LCe=!1}Qr.on("proxy:changed",Wzr);function Kzr(){if(LCe)return RK;if(LCe=!0,Zt().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(RK=new Qlt.ProxyAgent({uri:e}),Gt(`[proxy] using proxy: ${e}`)),RK}function Jzr(){let e=Kzr();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function kK(e){let t=e||process.env.API_TYPE,r=Jzr();switch(t){case"openai":return zzr(r);case"openai-responses":return Yzr(r);case"gemini":return jzr(r);default:return Vzr(r)}}var tYr=ne(be(),1);function Llt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=Zzr(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function Zzr(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Xzr(t)?0:eYr(t)?2:1}function Xzr(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function eYr(e){return e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=129280&&e<=129535||e>=131072&&e<=262141)}function gA(e){if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),n=(e%6e4/1e3).toFixed(1);return t>0?`${t}h ${r}m ${n}s`:r>0?`${r}m ${n}s`:`${n}s`}function nC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}He();ea();var iC={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0};function MK(e,t){iC.totalCost+=e,iC.totalAPIDuration+=t}function FK(e,t){iC.inputTokens+=e,iC.outputTokens+=t,Qr.emit("token:change",{inputTokens:iC.inputTokens,outputTokens:iC.outputTokens})}function rYr(){return Date.now()-iC.startTime}function Plt(){return _r.grey(`Total duration (API): ${gA(iC.totalAPIDuration)}
754
- Total duration (wall): ${gA(rYr())}`)}He();Pe();Pe();var HCe="1.38.7";globalThis.MACRO={VERSION:HCe,PACKAGE_URL:`@dahawa/${Ao}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var QK=process.env.HAWA_CODE_USER_AGENT||`${Ao}/${HCe} (${process.env.USER_TYPE})`;import{randomUUID as B_}from"crypto";var nYr=()=>[],iYr=()=>{};function LK(){return nYr}function Ult(){return iYr}He();nr();xr();He();Pe();import{existsSync as w0,readdirSync as vWr,statSync as DWr}from"fs";import{join as aC,relative as xWr}from"path";import{homedir as dft}from"os";import{platform as wWr}from"process";import{readFile as uC}from"fs/promises";xr();v0();Tr();import{join as lYr,sep as cYr}from"path";function zp(){if(!$p())return!1;try{let e=Zt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function vf(){return(lYr(Le(),".hcode","team-memory")+cYr).normalize("NFC")}function GCe(e){let t=e.normalize("NFC"),r=vf();return t.startsWith(r)}var fft=ne(JK(),1);xi();var aft=ne(JK(),1);xr();Pe();He();ad();import{readFile as oft}from"fs/promises";import{existsSync as s1e,readdirSync as CWr,statSync as SWr}from"fs";import{join as a1e,relative as uft}from"path";import{homedir as IWr}from"os";function sft(e){try{let t=(0,aft.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(i=>i.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(i=>typeof i=="string")),{paths:n,content:t.content.trim()}}catch(t){return we(t),{paths:[],content:e.trim()}}}function TWr(e,t){return t.length===0?!0:t.some(r=>{try{return tl(e,r,{matchBase:!0,dot:!0})}catch(n){return we(n),!1}})}function u1e(e){let t=[];try{if(!s1e(e))return t;let r=CWr(e);for(let n of r){let i=a1e(e,n),o=SWr(i);o.isDirectory()?t.push(...u1e(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){we(r)}return t}async function lft(){let e=[];try{let t=a1e(IWr(),fn,"rules");if(s1e(t)){let r=u1e(t);for(let n of r)try{let i=await oft(n,"utf-8"),{paths:o,content:s}=sft(i);o.length>0&&e.push({filePath:n,content:s,paths:o,isProjectRule:!1})}catch(i){we(i)}}}catch(t){we(t)}try{let t=a1e(Le(),fn,"rules");if(s1e(t)){let r=u1e(t);for(let n of r)try{let i=await oft(n,"utf-8"),{paths:o,content:s}=sft(i);o.length>0&&e.push({filePath:uft(Le(),n),content:s,paths:o,isProjectRule:!0})}catch(i){we(i)}}}catch(t){we(t)}return e}function cft(e,t){e=gY(e);let r=gY(Le()),n=e.startsWith(r)?uft(r,e):e;return t.filter(i=>TWr(n,i.paths))}var BWr=`# hawaCodeMd
754
+ Total duration (wall): ${gA(rYr())}`)}He();Pe();Pe();var HCe="1.38.9";globalThis.MACRO={VERSION:HCe,PACKAGE_URL:`@dahawa/${Ao}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var QK=process.env.HAWA_CODE_USER_AGENT||`${Ao}/${HCe} (${process.env.USER_TYPE})`;import{randomUUID as B_}from"crypto";var nYr=()=>[],iYr=()=>{};function LK(){return nYr}function Ult(){return iYr}He();nr();xr();He();Pe();import{existsSync as w0,readdirSync as vWr,statSync as DWr}from"fs";import{join as aC,relative as xWr}from"path";import{homedir as dft}from"os";import{platform as wWr}from"process";import{readFile as uC}from"fs/promises";xr();v0();Tr();import{join as lYr,sep as cYr}from"path";function zp(){if(!$p())return!1;try{let e=Zt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function vf(){return(lYr(Le(),".hcode","team-memory")+cYr).normalize("NFC")}function GCe(e){let t=e.normalize("NFC"),r=vf();return t.startsWith(r)}var fft=ne(JK(),1);xi();var aft=ne(JK(),1);xr();Pe();He();ad();import{readFile as oft}from"fs/promises";import{existsSync as s1e,readdirSync as CWr,statSync as SWr}from"fs";import{join as a1e,relative as uft}from"path";import{homedir as IWr}from"os";function sft(e){try{let t=(0,aft.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(i=>i.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(i=>typeof i=="string")),{paths:n,content:t.content.trim()}}catch(t){return we(t),{paths:[],content:e.trim()}}}function TWr(e,t){return t.length===0?!0:t.some(r=>{try{return tl(e,r,{matchBase:!0,dot:!0})}catch(n){return we(n),!1}})}function u1e(e){let t=[];try{if(!s1e(e))return t;let r=CWr(e);for(let n of r){let i=a1e(e,n),o=SWr(i);o.isDirectory()?t.push(...u1e(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){we(r)}return t}async function lft(){let e=[];try{let t=a1e(IWr(),fn,"rules");if(s1e(t)){let r=u1e(t);for(let n of r)try{let i=await oft(n,"utf-8"),{paths:o,content:s}=sft(i);o.length>0&&e.push({filePath:n,content:s,paths:o,isProjectRule:!1})}catch(i){we(i)}}}catch(t){we(t)}try{let t=a1e(Le(),fn,"rules");if(s1e(t)){let r=u1e(t);for(let n of r)try{let i=await oft(n,"utf-8"),{paths:o,content:s}=sft(i);o.length>0&&e.push({filePath:uft(Le(),n),content:s,paths:o,isProjectRule:!0})}catch(i){we(i)}}}catch(t){we(t)}return e}function cft(e,t){e=gY(e);let r=gY(Le()),n=e.startsWith(r)?uft(r,e):e;return t.filter(i=>TWr(n,i.paths))}var BWr=`# hawaCodeMd
755
755
  Codebase and user instructions are shown below. Be sure to adhere to these instructions. IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.`;function NWr(e="default"){let r=Ge.getSessionContext(e).getData("matchedPathRules");return!r||r.length===0?"":r.map(i=>{let o=i.isProjectRule?"project instructions, checked into the codebase":"user's private global instructions for all projects";return`Contents of ${i.filePath} (${o}):
756
756
 
757
757
  ${i.content}`}).join(`
@@ -1014,7 +1014,7 @@ try {
1014
1014
  `],{encoding:"utf8",maxBuffer:KAt,stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function kXr(){try{let e=WU("where",["pwsh.exe"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim().split(/\r?\n/)[0];if(e)return e}catch{}return"powershell.exe"}var MXr="[Image pasted]";function egt(e){return function(t){return(new Map(e).get(t)??(()=>{}))(t)}}function rgt({value:e,onChange:t,onSubmit:r,onExit:n,onExitMessage:i,onMessage:o,onHistoryUp:s,onHistoryDown:a,onHistoryReset:u,mask:l="",multiline:c=!1,cursorChar:f,invert:A,columns:m,onImagePaste:g,disableCursorMovementForUpDownKeys:E=!1,externalOffset:_,onOffsetChange:C}){let S=_,T=C,x=VU.fromText(e,m,S),[O,q]=(0,tgt.useState)(null);function $(){O&&(clearTimeout(O),q(null),o?.(!1))}let H=YT(ce=>{$(),i?.(ce,"Ctrl-C")},()=>n?.(),()=>{e&&(t(""),u?.())}),M=YT(ce=>{$(),o?.(!!e&&ce,"Press Escape again to clear")},()=>{e&&t("")});function Y(){return VU.fromText("",m,0)}let z=YT(ce=>i?.(ce,"Ctrl-D"),()=>n?.());function fe(){return $(),x.text===""?(z(),x):x.del()}function me(){if(l)return x;let ce=XAt();return ce===null?(ZAt()&&(o?.(!0,JAt),$(),q(setTimeout(()=>{o?.(!1)},4e3))),x):(g?.(ce),x.insert(MXr))}let F=egt([["a",()=>x.startOfLine()],["b",()=>x.left()],["c",H],["d",fe],["e",()=>x.endOfLine()],["f",()=>x.right()],["h",()=>($(),x.backspace())],["k",()=>x.deleteToLineEnd()],["l",()=>Y()],["n",()=>ee()],["p",()=>ae()],["u",()=>x.deleteToLineStart()],["v",me],["w",()=>x.deleteWordBefore()],["o",me]]),ue=egt([["b",()=>x.prevWord()],["f",()=>x.nextWord()],["d",()=>x.deleteWordAfter()]]);function Ae(ce){if(c&&x.offset>0&&x.text[x.offset-1]==="\\")return x.backspace().insert(`
1015
1015
  `);if(ce.meta)return x.insert(`
1016
1016
  `);r?.(e)}function ae(){if(E)return s?.(),x;let ce=x.up();return ce.equals(x)&&s?.(),ce}function ee(){if(E)return a?.(),x;let ce=x.down();return ce.equals(x)&&a?.(),ce}function ve(ce,$e){if($e.tab)return;if($e.backspace||$e.delete||ce==="\b"||ce==="\x7F"||ce==="\b"){let K=x.backspace();x.equals(K)||(T(K.offset),x.text!==K.text&&t(K.text));return}if(!$e.ctrl&&!$e.meta&&ce.length>1){let K=x.insert(ce);x.equals(K)||(T(K.offset),x.text!==K.text&&t(K.text));return}let _e=Ie($e)(ce);_e&&(x.equals(_e)||(T(_e.offset),x.text!==_e.text&&t(_e.text)))}function Ie(ce){if(ce.backspace||ce.delete)return $(),()=>x.backspace();switch(!0){case ce.escape:return M;case(ce.leftArrow&&(ce.ctrl||ce.meta||"fn"in ce&&ce.fn)):return()=>x.prevWord();case(ce.rightArrow&&(ce.ctrl||ce.meta||"fn"in ce&&ce.fn)):return()=>x.nextWord();case ce.ctrl:return F;case("home"in ce&&ce.home):return()=>x.startOfLine();case("end"in ce&&ce.end):return()=>x.endOfLine();case ce.pageDown:return()=>x.endOfLine();case ce.pageUp:return()=>x.startOfLine();case ce.meta:return ue;case ce.return:return()=>Ae(ce);case ce.upArrow:return ae;case ce.downArrow:return ee;case ce.leftArrow:return()=>x.left();case ce.rightArrow:return()=>x.right()}return function($e){switch(!0){case($e=="\x1B[H"||$e=="\x1B[1~"):return x.startOfLine();case($e=="\x1B[F"||$e=="\x1B[4~"):return x.endOfLine();case($e==="\b"||$e==="\x7F"||$e==="\b"):return $(),x.backspace();default:return x.insert($e.replace(/\r/g,`
1017
- `))}}}return{onInput:ve,renderedValue:x.render(f,l,A),offset:S,setOffset:T}}function KU({value:e,placeholder:t="",focus:r=!0,mask:n,multiline:i=!1,highlightPastedText:o=!1,showCursor:s=!0,onChange:a,onSubmit:u,onExit:l,onHistoryUp:c,onHistoryDown:f,onExitMessage:A,onMessage:m,onHistoryReset:g,columns:E,onImagePaste:_,onPaste:C,isDimmed:S=!1,disableCursorMovementForUpDownKeys:T=!1,cursorOffset:x,onChangeCursorOffset:O}){let{onInput:q,renderedValue:$}=rgt({value:e,onChange:a,onSubmit:u,onExit:l,onExitMessage:A,onMessage:m,onHistoryReset:g,onHistoryUp:c,onHistoryDown:f,focus:r,mask:n,multiline:i,cursorChar:s?" ":"",highlightPastedText:o,invert:ue=>_r.bgHex("#ffffff").hex("#000000")(ue),themeText:ue=>_r.hex(Ee().text)(ue),columns:E,onImagePaste:_,disableCursorMovementForUpDownKeys:T,externalOffset:x,onOffsetChange:O}),[H,M]=CSe.default.useState({chunks:[],timeoutId:null}),Y=ue=>(ue&&clearTimeout(ue),setTimeout(()=>{M(({chunks:Ae})=>{let ae=Ae.join("");return Promise.resolve().then(()=>C(ae)),{chunks:[],timeoutId:null}})},100));ur((ue,Ae)=>{if(C&&(ue.length>10||H.timeoutId)){M(({chunks:ae,timeoutId:ee})=>({chunks:[...ae,ue],timeoutId:Y(ee)}));return}q(ue,Ae)},{isActive:r});let fe=t?_r.hex(Ee().secondaryText)(t):void 0,me=ue=>_r.bgHex("#ffffff").hex("#000000")(ue);s&&r&&(fe=t.length>0?me(t[0])+_r.hex(Ee().secondaryText)(t.slice(1)):me(" "));let F=e.length==0&&t;return CSe.default.createElement(v,{wrap:"truncate-end",dimColor:S},F?fe:$)}var SSe=ne(be(),1),JU=ne(be(),1);hU();ea();xi();$T();Tr();var ngt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function JT(){let e=[...ngt,...[...ngt].reverse()],[t,r]=(0,JU.useState)(0);return(0,JU.useEffect)(()=>{let n=setInterval(()=>{r(i=>(i+1)%e.length)},120);return()=>clearInterval(n)},[e.length]),SSe.createElement(N,{flexWrap:"nowrap",height:1,width:2},SSe.createElement(v,{color:Ee().claude},e[t]))}xi();function fC(){return Ge.getSessionContext().window_size?{...Ge.getSessionContext().window_size}:{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}Pe();import{homedir as s3}from"os";import{join as XR}from"path";import{existsSync as a3,mkdirSync as Yht,appendFileSync as zht,readFileSync as jht,constants as Rrn,writeFileSync as Orn,unlinkSync as Vht,statSync as krn}from"fs";import{platform as Wht}from"process";He();import{accessSync as Mrn}from"fs";He();var ybi=ne($Se(),1);var Nrn="1.38.7",o3={VERSION:Nrn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};Pe();var XT=XR(wI,".update.lock"),Frn=300*1e3;function Kht(){try{if(a3(wI)||Yht(wI,{recursive:!0}),a3(XT)){let e=krn(XT);if(Date.now()-e.mtimeMs<Frn)return!1;try{Vht(XT)}catch(r){return we(`Failed to remove stale lock file: ${r}`),!1}}return Orn(XT,`${process.pid}`,"utf8"),!0}catch(e){return we(`Failed to acquire lock: ${e}`),!1}}function Jht(){try{a3(XT)&&jht(XT,"utf8")===`${process.pid}`&&Vht(XT)}catch(e){we(`Failed to release lock: ${e}`)}}async function zSe(){try{let e=await Kn("npm -g config get prefix");if(e.code!==0)return we("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{Mrn(t,Rrn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(we("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return we(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function Zht(e){if(!Kht())throw dt("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:o3.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{a3(e)||Yht(e,{recursive:!0});let t=await Kn(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
1017
+ `))}}}return{onInput:ve,renderedValue:x.render(f,l,A),offset:S,setOffset:T}}function KU({value:e,placeholder:t="",focus:r=!0,mask:n,multiline:i=!1,highlightPastedText:o=!1,showCursor:s=!0,onChange:a,onSubmit:u,onExit:l,onHistoryUp:c,onHistoryDown:f,onExitMessage:A,onMessage:m,onHistoryReset:g,columns:E,onImagePaste:_,onPaste:C,isDimmed:S=!1,disableCursorMovementForUpDownKeys:T=!1,cursorOffset:x,onChangeCursorOffset:O}){let{onInput:q,renderedValue:$}=rgt({value:e,onChange:a,onSubmit:u,onExit:l,onExitMessage:A,onMessage:m,onHistoryReset:g,onHistoryUp:c,onHistoryDown:f,focus:r,mask:n,multiline:i,cursorChar:s?" ":"",highlightPastedText:o,invert:ue=>_r.bgHex("#ffffff").hex("#000000")(ue),themeText:ue=>_r.hex(Ee().text)(ue),columns:E,onImagePaste:_,disableCursorMovementForUpDownKeys:T,externalOffset:x,onOffsetChange:O}),[H,M]=CSe.default.useState({chunks:[],timeoutId:null}),Y=ue=>(ue&&clearTimeout(ue),setTimeout(()=>{M(({chunks:Ae})=>{let ae=Ae.join("");return Promise.resolve().then(()=>C(ae)),{chunks:[],timeoutId:null}})},100));ur((ue,Ae)=>{if(C&&(ue.length>10||H.timeoutId)){M(({chunks:ae,timeoutId:ee})=>({chunks:[...ae,ue],timeoutId:Y(ee)}));return}q(ue,Ae)},{isActive:r});let fe=t?_r.hex(Ee().secondaryText)(t):void 0,me=ue=>_r.bgHex("#ffffff").hex("#000000")(ue);s&&r&&(fe=t.length>0?me(t[0])+_r.hex(Ee().secondaryText)(t.slice(1)):me(" "));let F=e.length==0&&t;return CSe.default.createElement(v,{wrap:"truncate-end",dimColor:S},F?fe:$)}var SSe=ne(be(),1),JU=ne(be(),1);hU();ea();xi();$T();Tr();var ngt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function JT(){let e=[...ngt,...[...ngt].reverse()],[t,r]=(0,JU.useState)(0);return(0,JU.useEffect)(()=>{let n=setInterval(()=>{r(i=>(i+1)%e.length)},120);return()=>clearInterval(n)},[e.length]),SSe.createElement(N,{flexWrap:"nowrap",height:1,width:2},SSe.createElement(v,{color:Ee().claude},e[t]))}xi();function fC(){return Ge.getSessionContext().window_size?{...Ge.getSessionContext().window_size}:{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}Pe();import{homedir as s3}from"os";import{join as XR}from"path";import{existsSync as a3,mkdirSync as Yht,appendFileSync as zht,readFileSync as jht,constants as Rrn,writeFileSync as Orn,unlinkSync as Vht,statSync as krn}from"fs";import{platform as Wht}from"process";He();import{accessSync as Mrn}from"fs";He();var ybi=ne($Se(),1);var Nrn="1.38.9",o3={VERSION:Nrn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};Pe();var XT=XR(wI,".update.lock"),Frn=300*1e3;function Kht(){try{if(a3(wI)||Yht(wI,{recursive:!0}),a3(XT)){let e=krn(XT);if(Date.now()-e.mtimeMs<Frn)return!1;try{Vht(XT)}catch(r){return we(`Failed to remove stale lock file: ${r}`),!1}}return Orn(XT,`${process.pid}`,"utf8"),!0}catch(e){return we(`Failed to acquire lock: ${e}`),!1}}function Jht(){try{a3(XT)&&jht(XT,"utf8")===`${process.pid}`&&Vht(XT)}catch(e){we(`Failed to release lock: ${e}`)}}async function zSe(){try{let e=await Kn("npm -g config get prefix");if(e.code!==0)return we("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{Mrn(t,Rrn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(we("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return we(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function Zht(e){if(!Kht())throw dt("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:o3.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{a3(e)||Yht(e,{recursive:!0});let t=await Kn(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
1018
1018
  # npm global path
1019
1019
  export PATH="${e}/bin:$PATH"
1020
1020
  `;if(Wht==="win32"){let n=await Kn(`setx PATH "${process.env.PATH};${e}"`);if(n.code!==0)throw new Error(`Failed to update PATH on Windows: ${n.stderr}`)}else{let n=[XR(s3(),".bashrc"),XR(s3(),".bash_profile"),XR(s3(),".zshrc"),XR(s3(),".config","fish","config.fish")];for(let i of n)if(a3(i))try{if(!jht(i,"utf8").includes(e)){if(i.includes("fish")){let s=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dahawa/hawa-code",
3
- "version": "1.38.7",
3
+ "version": "1.38.9",
4
4
  "bin": {
5
5
  "hcode": "hawa.js"
6
6
  },