@dahawa/hawa-code 2.3.1 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +3 -3
- package/hands.js +3 -3
- package/package.json +1 -1
- package/webServer/app.js +44 -44
- package/webServer/index.html +2 -1
- package/webServer/interrupt-icon.svg +3 -0
- package/webServer/logo.svg +1 -0
- package/webServer/send-icon.svg +3 -0
- package/webServer/style.css +207 -36
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
|
`)),dUn(e,o,{encoding:r,flush:!0})}var xHt=new cde.default({fetchMethod:e=>EUn(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});async function kHt(e){let t=EV(e);return xHt.get(t)||xHt.fetchMethod?.(t)}async function EUn(e){let t=new AbortController;setTimeout(()=>{t.abort()},1e3);let r=await Xkt(e,t.signal,15),n=0;for(let o of r)mB(o)==="CRLF"&&n++;return n>3?"CRLF":"LF"}function PHt(e,t,r){if(e.has(t))return e.get(t);let n=r();return e.set(t,n),n}var _Un=new cde.default({fetchMethod:e=>LHt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function Ym(e){let t=EV(e);return PHt(_Un,t,()=>LHt(t))}function LHt(e){let r=Buffer.alloc(4096),n;try{n=wHt(e,"r");let o=RHt(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 Se(`Error detecting encoding for file ${e}: ${o}`),"utf8"}finally{n&&NHt(n)}}var SUn=new cde.default({fetchMethod:e=>QHt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function mB(e){let t=EV(e);return PHt(SUn,t,()=>QHt(t))}function QHt(e,t="utf8"){try{if(!DHt(e).isFile())return"LF";let n=Buffer.alloc(4096),o=wHt(e,"r"),i=RHt(o,n,0,4096,0);NHt(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 Se(`Error detecting line endings for file ${e}: ${r}`),"LF"}}function VF(e){let t=OHt(e)?e:EV(ke(),e);return t.endsWith(" AM.png")?t.replace(" AM.png","\u202FAM.png"):t.endsWith(" PM.png")?t.replace(" PM.png","\u202FPM.png"):t}function fPe(e){return e?OHt(e)?e:EV(ke(),e):void 0}function UHt(e){try{let t=fPe(e),r=t?gUn(ke(),t):void 0;return{absolutePath:t,relativePath:r}}catch(t){return ee("getAbsoluteAndRelativePaths error ",t),{absolutePath:null,relativePath:null}}}function ude(e){try{let t=AUn(e),r=CHt(e,IHt(e));if(!fUn(t))return;let i=pUn(t).filter(s=>CHt(s,IHt(s))===r&&hUn(t,s)!==e)[0];return i||void 0}catch(t){Se(`Error finding similar file for ${e}: ${t}`);return}}function pPe(){let e=process.env.HAWA_CODE_COMPACT_LINE_PREFIX;return!(e==="0"||e==="false")}function ew({content:e,startLine:t}){if(!e)return"";let r=e.split(/\r?\n/);return pPe()?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 FHt(e){try{let t=mUn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function Kx(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function CUn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function mPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,HHt.gt)(MACRO.VERSION,o))&&(i=wue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&CUn()},[s,r]),!r&&!s)return null;let a=yUn(TUn(e,Ci)),c=FHt(e),l=!a&&!c,u=NF.isEnabled&&!hr().shiftEnterKeyBindingInstalled,d=X();return Ki.createElement(x,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Ki.createElement(Ki.Fragment,null,Ki.createElement(C,{color:d.secondaryText},"Tips for getting started:"),Ki.createElement(Ud,{children:[]},(()=>{let p=[];return c&&p.push(Ki.createElement(Ud.Item,{key:"workspace"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," to create a new app or clone a repository."))),l&&p.push(Ki.createElement(Ud.Item,{key:"claudemd"},Ki.createElement(C,{color:d.secondaryText},"Run ",Ki.createElement(C,{color:d.text},"/init")," to create a",Ci," file with instructions for Hawa code."))),u&&p.push(Ki.createElement(Ud.Item,{key:"terminal"},Ki.createElement(C,{color:d.secondaryText},"Run ",Ki.createElement(C,{color:d.text},"/terminal-setup"),Ki.createElement(C,{bold:!1}," to set up terminal integration")))),p.push(Ki.createElement(Ud.Item,{key:"questions"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," questions about your codebase."))),p.push(Ki.createElement(Ud.Item,{key:"changes"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," to implement changes to your codebase."))),p})())),!r&&s&&Ki.createElement(x,{borderColor:X().secondaryBorder,flexDirection:"column",marginRight:1},Ki.createElement(x,{flexDirection:"column",gap:0},Ki.createElement(x,{marginBottom:1},Ki.createElement(C,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Ki.createElement(x,{flexDirection:"column",marginLeft:1},i.map((p,f)=>Ki.createElement(C,{key:f,color:X().secondaryText},"\u2022 ",p))))),e===bUn()&&Ki.createElement(C,{color:X().warning},"Note: You have launched ",Ki.createElement(C,{bold:!0},et)," in your home directory. For the best experience, launch it in a project directory instead."))}var jF=F(ne(),1);var YF=F(ne(),1);var _V=F(ne(),1);function gPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return _V.default.createElement(x,{...o.option({isFocused:e})},e&&_V.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),_V.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&_V.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var jm=F(ne(),1);import{isDeepStrictEqual as IUn}from"node:util";var SV=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:APe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var vUn=(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}}},hPe=e=>e.flatMap(t=>{if("options"in t){let r=hPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),GHt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=hPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new SV(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}},EPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=hPe(t),[a,c]=(0,jm.useReducer)(vUn,{visibleOptionCount:e,defaultValue:r,options:t},GHt),[l,u]=(0,jm.useState)(s);s!==l&&!IUn(s,l)&&(c({type:"reset",state:GHt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,jm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,jm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,jm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,jm.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,jm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,jm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,jm.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 _Pe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var APe=e=>`HEADER-${e.optionValues.join(",")}`;function CC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=EPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});_Pe({isDisabled:e,state:c});let{styles:l}=ms("Select");return YF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:APe(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,E=h;if(r&&h.includes(r)){let S=h.indexOf(r);E=YF.default.createElement(YF.default.Fragment,null,h.slice(0,S),YF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return YF.default.createElement(gPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function $Ht({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),jF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:X().secondaryBorder},jF.default.createElement(x,{marginBottom:1,flexDirection:"column"},jF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),jF.default.createElement(x,null,jF.default.createElement(CC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Pp=F(ne(),1);Ge();Ar();by();var RUn="2.3.1",Cy={VERSION:RUn,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 TPe=46,YHt=["(\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 dde({isDefaultModel:e=!1}){let t=Math.max(TPe,ke().length+12),r=X(),n=YHt[Math.floor(Math.random()*YHt.length)];return Pp.createElement(x,{flexDirection:"column"},Pp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Pp.createElement(C,null,Pp.createElement(C,null,n)," Welcome to"," ",Pp.createElement(C,{bold:!0},et),Pp.createElement(C,{color:r.secondaryText}," v",Cy.VERSION)),Pp.createElement(Pp.Fragment,null,Pp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Pp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Pp.createElement(C,{color:r.secondaryText},"cwd: ",ke()),Pp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Pp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var gS=F(ne(),1);De();var NJ=F(ne(),1);import{randomUUID as dS}from"crypto";$s();De();nr();Ar();De();Ge();import{existsSync as xC,readdirSync as Z9n,statSync as X9n}from"fs";import{join as ow,relative as e4n}from"path";import{homedir as _8t}from"os";import{platform as t4n}from"process";import{readFile as iw}from"fs/promises";Ar();fE();gr();import{join as kUn,sep as PUn}from"path";function Lp(){if(!zm())return!1;try{let e=nt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Wm(){return(kUn(ke(),".hcode","team-memory")+PUn).normalize("NFC")}function pE(e){let t=e.normalize("NFC"),r=Wm();return t.startsWith(r)}var S8t=F(RV(),1);Xo();var g8t=F(RV(),1);Ar();Ge();De();Op();import{readFile as p8t}from"fs/promises";import{existsSync as FPe,readdirSync as z9n,statSync as W9n}from"fs";import{join as HPe,relative as A8t}from"path";import{homedir as K9n}from"os";function m8t(e){try{let t=(0,g8t.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 Se(t),{paths:[],content:e.trim()}}}function J9n(e,t){return t.length===0?!0:t.some(r=>{try{return Hd(e,r,{matchBase:!0,dot:!0})}catch(n){return Se(n),!1}})}function GPe(e){let t=[];try{if(!FPe(e))return t;let r=z9n(e);for(let n of r){let o=HPe(e,n),i=W9n(o);i.isDirectory()?t.push(...GPe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function h8t(){let e=[];try{let t=HPe(K9n(),Fn,"rules");if(FPe(t)){let r=GPe(t);for(let n of r)try{let o=await p8t(n,"utf-8"),{paths:i,content:s}=m8t(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Se(o)}}}catch(t){Se(t)}try{let t=HPe(ke(),Fn,"rules");if(FPe(t)){let r=GPe(t);for(let n of r)try{let o=await p8t(n,"utf-8"),{paths:i,content:s}=m8t(o);i.length>0&&e.push({filePath:A8t(ke(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function E8t(e,t){e=zce(e);let r=zce(ke()),n=e.startsWith(r)?A8t(r,e):e;return t.filter(o=>J9n(n,o.paths))}var r4n=`# hawaCodeMd
|
|
679
|
+
`)}function FHt(e){try{let t=mUn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function Kx(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function CUn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function mPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,HHt.gt)(MACRO.VERSION,o))&&(i=wue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&CUn()},[s,r]),!r&&!s)return null;let a=yUn(TUn(e,Ci)),c=FHt(e),l=!a&&!c,u=NF.isEnabled&&!hr().shiftEnterKeyBindingInstalled,d=X();return Ki.createElement(x,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Ki.createElement(Ki.Fragment,null,Ki.createElement(C,{color:d.secondaryText},"Tips for getting started:"),Ki.createElement(Ud,{children:[]},(()=>{let p=[];return c&&p.push(Ki.createElement(Ud.Item,{key:"workspace"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," to create a new app or clone a repository."))),l&&p.push(Ki.createElement(Ud.Item,{key:"claudemd"},Ki.createElement(C,{color:d.secondaryText},"Run ",Ki.createElement(C,{color:d.text},"/init")," to create a",Ci," file with instructions for Hawa code."))),u&&p.push(Ki.createElement(Ud.Item,{key:"terminal"},Ki.createElement(C,{color:d.secondaryText},"Run ",Ki.createElement(C,{color:d.text},"/terminal-setup"),Ki.createElement(C,{bold:!1}," to set up terminal integration")))),p.push(Ki.createElement(Ud.Item,{key:"questions"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," questions about your codebase."))),p.push(Ki.createElement(Ud.Item,{key:"changes"},Ki.createElement(C,{color:d.secondaryText},"Ask ",et," to implement changes to your codebase."))),p})())),!r&&s&&Ki.createElement(x,{borderColor:X().secondaryBorder,flexDirection:"column",marginRight:1},Ki.createElement(x,{flexDirection:"column",gap:0},Ki.createElement(x,{marginBottom:1},Ki.createElement(C,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Ki.createElement(x,{flexDirection:"column",marginLeft:1},i.map((p,f)=>Ki.createElement(C,{key:f,color:X().secondaryText},"\u2022 ",p))))),e===bUn()&&Ki.createElement(C,{color:X().warning},"Note: You have launched ",Ki.createElement(C,{bold:!0},et)," in your home directory. For the best experience, launch it in a project directory instead."))}var jF=F(ne(),1);var YF=F(ne(),1);var _V=F(ne(),1);function gPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return _V.default.createElement(x,{...o.option({isFocused:e})},e&&_V.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),_V.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&_V.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var jm=F(ne(),1);import{isDeepStrictEqual as IUn}from"node:util";var SV=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:APe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var vUn=(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}}},hPe=e=>e.flatMap(t=>{if("options"in t){let r=hPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),GHt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=hPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new SV(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}},EPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=hPe(t),[a,c]=(0,jm.useReducer)(vUn,{visibleOptionCount:e,defaultValue:r,options:t},GHt),[l,u]=(0,jm.useState)(s);s!==l&&!IUn(s,l)&&(c({type:"reset",state:GHt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,jm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,jm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,jm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,jm.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,jm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,jm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,jm.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 _Pe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var APe=e=>`HEADER-${e.optionValues.join(",")}`;function CC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=EPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});_Pe({isDisabled:e,state:c});let{styles:l}=ms("Select");return YF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:APe(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,E=h;if(r&&h.includes(r)){let S=h.indexOf(r);E=YF.default.createElement(YF.default.Fragment,null,h.slice(0,S),YF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return YF.default.createElement(gPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function $Ht({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),jF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:X().secondaryBorder},jF.default.createElement(x,{marginBottom:1,flexDirection:"column"},jF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),jF.default.createElement(x,null,jF.default.createElement(CC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Pp=F(ne(),1);Ge();Ar();by();var RUn="2.3.4",Cy={VERSION:RUn,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 TPe=46,YHt=["(\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 dde({isDefaultModel:e=!1}){let t=Math.max(TPe,ke().length+12),r=X(),n=YHt[Math.floor(Math.random()*YHt.length)];return Pp.createElement(x,{flexDirection:"column"},Pp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Pp.createElement(C,null,Pp.createElement(C,null,n)," Welcome to"," ",Pp.createElement(C,{bold:!0},et),Pp.createElement(C,{color:r.secondaryText}," v",Cy.VERSION)),Pp.createElement(Pp.Fragment,null,Pp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Pp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Pp.createElement(C,{color:r.secondaryText},"cwd: ",ke()),Pp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Pp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var gS=F(ne(),1);De();var NJ=F(ne(),1);import{randomUUID as dS}from"crypto";$s();De();nr();Ar();De();Ge();import{existsSync as xC,readdirSync as Z9n,statSync as X9n}from"fs";import{join as ow,relative as e4n}from"path";import{homedir as _8t}from"os";import{platform as t4n}from"process";import{readFile as iw}from"fs/promises";Ar();fE();gr();import{join as kUn,sep as PUn}from"path";function Lp(){if(!zm())return!1;try{let e=nt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Wm(){return(kUn(ke(),".hcode","team-memory")+PUn).normalize("NFC")}function pE(e){let t=e.normalize("NFC"),r=Wm();return t.startsWith(r)}var S8t=F(RV(),1);Xo();var g8t=F(RV(),1);Ar();Ge();De();Op();import{readFile as p8t}from"fs/promises";import{existsSync as FPe,readdirSync as z9n,statSync as W9n}from"fs";import{join as HPe,relative as A8t}from"path";import{homedir as K9n}from"os";function m8t(e){try{let t=(0,g8t.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 Se(t),{paths:[],content:e.trim()}}}function J9n(e,t){return t.length===0?!0:t.some(r=>{try{return Hd(e,r,{matchBase:!0,dot:!0})}catch(n){return Se(n),!1}})}function GPe(e){let t=[];try{if(!FPe(e))return t;let r=z9n(e);for(let n of r){let o=HPe(e,n),i=W9n(o);i.isDirectory()?t.push(...GPe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function h8t(){let e=[];try{let t=HPe(K9n(),Fn,"rules");if(FPe(t)){let r=GPe(t);for(let n of r)try{let o=await p8t(n,"utf-8"),{paths:i,content:s}=m8t(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Se(o)}}}catch(t){Se(t)}try{let t=HPe(ke(),Fn,"rules");if(FPe(t)){let r=GPe(t);for(let n of r)try{let o=await p8t(n,"utf-8"),{paths:i,content:s}=m8t(o);i.length>0&&e.push({filePath:A8t(ke(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function E8t(e,t){e=zce(e);let r=zce(ke()),n=e.startsWith(r)?A8t(r,e):e;return t.filter(o=>J9n(n,o.paths))}var r4n=`# 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 n4n(e="default"){let r=Ke.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(`
|
|
@@ -745,7 +745,7 @@ ${n}
|
|
|
745
745
|
|
|
746
746
|
Your recent commits:
|
|
747
747
|
${o||"(no recent commits)"}`}catch(e){return Se(e),null}}),wi=Ye(async()=>{let e=await bde(),t=Xn(),r=t.dontCrawlDirectory,[n,o,i,s]=await Promise.all([A4n(),r?Promise.resolve(""):h4n(),r?Promise.resolve(""):m4n(),g4n()]);return{...t.context,...o?{directoryStructure:o}:{},...n?{gitStatus:n}:{},...e?{codeStyle:e}:{},...i?{claudeFiles:i}:{},...s?{readme:s}:{}}}),h4n=Ye(async function(){return""});var i4=F(rpe(),1);import{createHash as qgo,randomUUID as zz}from"crypto";(function(){z$t().config(Object.assign({},K$t(),Z$t()(process.argv)))})();nr();var X$t="claude-code-20250219";var eqt=Ye(async()=>[X$t]);De();import{URL as lM}from"url";function hY(e){return n8n(e.split(`
|
|
748
|
-
`))}function n8n(e){let t={type:"message",role:"assistant",content:[],usage:{input_tokens:0,output_tokens:0},stop_reason:null,stop_sequence:null},r=new Map,n={parsedCount:0,ignoredCount:0,errors:[]},o=c=>{let l=c.trim();if(!l||l==="data: [DONE]")return null;let u=l.startsWith("data:")?l.slice(5).trim():l;if(!u||u==="[DONE]")return null;try{return JSON.parse(u)}catch(d){throw new Error(`JSON parse failed: ${d.message}`)}},i=(c,l)=>{if(r.has(c))return r.get(c);let u,d="";if(
|
|
748
|
+
`))}function n8n(e){let t={id:void 0,type:"message",role:"assistant",model:void 0,content:[],usage:{input_tokens:0,output_tokens:0},stop_reason:null,stop_sequence:null},r=new Map,n={parsedCount:0,ignoredCount:0,errors:[]},o=c=>{let l=c.trim();if(!l||l==="data: [DONE]")return null;let u=l.startsWith("data:")?l.slice(5).trim():l;if(!u||u==="[DONE]")return null;try{return JSON.parse(u)}catch(d){throw new Error(`JSON parse failed: ${d.message}`)}},i=(c,l)=>{if(r.has(c))return r.get(c);let u,d="",p=l?.content_block||l;if(p?.type==="tool_use"){u={type:"tool_use",id:p.id,name:p.name,input:{}},t.content.push(u);let A={ref:u,toolJsonBuffer:d};return r.set(c,A),A}if(p?.type==="thinking"){u={type:"thinking",thinking:typeof p.thinking=="string"?p.thinking:"",signature:typeof p.signature=="string"?p.signature:""},t.content.push(u);let A={ref:u,toolJsonBuffer:d};return r.set(c,A),A}if(p?.type==="redacted_thinking"){u={type:"redacted_thinking",data:typeof p.data=="string"?p.data:""},t.content.push(u);let A={ref:u,toolJsonBuffer:d};return r.set(c,A),A}u={type:"text",text:""},t.content.push(u);let f={ref:u,toolJsonBuffer:d};return r.set(c,f),f},s=(c,l)=>{if(typeof l=="string"){c.toolJsonBuffer+=l;return}try{c.toolJsonBuffer+=JSON.stringify(l)}catch{c.toolJsonBuffer+=String(l)}},a=c=>{if(!c||c.ref?.type!=="tool_use"||!c.toolJsonBuffer)return;let l=c.toolJsonBuffer.trim();if(l){try{c.ref.input=JSON.parse(l)}catch{c.ref.input=l}c.toolJsonBuffer=""}};for(let c=0;c<e.length;c++){let l=e[c],u;try{if(u=o(l),!u){n.ignoredCount++;continue}n.parsedCount++}catch(p){n.errors.push({idx:c,error:p.message,raw:l});continue}switch(u.type){case"ping":break;case"message_start":{let p=u.message||{};p.id&&(t.id=p.id),p.model&&(t.model=p.model),p.usage?.input_tokens&&(t.usage.input_tokens+=Number(p.usage.input_tokens)||0),p.usage?.output_tokens&&(t.usage.output_tokens+=Number(p.usage.output_tokens)||0);break}case"content_block_start":{let p=u.index??0,f=u.content_block;i(p,{content_block:f});break}case"content_block_delta":{let p=u.index??0,f=i(p),A=u.delta||u;if(A.type==="text_delta"&&typeof A.text=="string"){f.ref.type!=="text"&&(f.ref={type:"text",text:""},t.content.push(f.ref)),f.ref.text+=A.text;break}if(A.type==="thinking_delta"&&typeof A.thinking=="string"){f.ref.type!=="thinking"&&(f.ref={type:"thinking",thinking:"",signature:""},t.content.push(f.ref)),f.ref.thinking+=A.thinking;break}if(A.type==="signature_delta"&&typeof A.signature=="string"){f.ref.type!=="thinking"&&(f.ref={type:"thinking",thinking:"",signature:""},t.content.push(f.ref)),f.ref.signature+=A.signature;break}f.ref.type==="tool_use"&&(typeof A.partial_json=="string"?s(f,A.partial_json):typeof A.input_json=="string"?s(f,A.input_json):typeof A.input_json_delta=="string"?s(f,A.input_json_delta):A.json!==void 0&&s(f,A.json));break}case"content_block_stop":{let p=u.index??0,f=r.get(p);a(f);break}case"message_delta":{u.delta?.stop_reason!==void 0&&(t.stop_reason=u.delta.stop_reason),u.delta?.stop_sequence!==void 0&&(t.stop_sequence=u.delta.stop_sequence),u.usage&&(u.usage.output_tokens&&(t.usage.output_tokens+=Number(u.usage.output_tokens)||0),u.usage.input_tokens&&(t.usage.input_tokens+=Number(u.usage.input_tokens)||0));break}case"message_stop":break;default:n.ignoredCount++}}for(let c of r.values())a(c);return t.content=t.content.filter(c=>!(c.type==="text"&&c.text.trim()==="")),t}async function tqt(e){return o8n(e.split(`
|
|
749
749
|
|
|
750
750
|
`))}function o8n(e){let t=new Map,r=new Map,n=null,o=null;function i(d){if(typeof d!="string")return null;let p=d.trim();if(!p)return null;let f=[];for(let h of p.split(/\r?\n/)){let E=h.trimStart();E.startsWith("data:")&&f.push(E.slice(5).replace(/^ /,""))}let A=f.length?f.join(`
|
|
751
751
|
`):p;if(!A||A==="[DONE]")return null;try{return JSON.parse(A)}catch{return null}}function s(d,p="message"){if(!t.has(d)){let f=p==="reasoning"?{id:d,type:"reasoning",status:"in_progress",summary:[]}:{id:d,type:"message",status:"in_progress",role:"assistant",content:[]};t.set(d,f)}return t.get(d)}function a(d,p){let f=s(d,"message");for(Array.isArray(f.content)||(f.content=[]);f.content.length<=p;)f.content.push({type:"output_text",text:"",annotations:[]});return f}function c(d,p){let f=s(d,"reasoning");for(Array.isArray(f.summary)||(f.summary=[]);f.summary.length<=p;)f.summary.push({type:"summary_text",text:""});return f}for(let d of e){let p=i(d);if(!(!p||!p.type))switch(p.type){case"response.created":case"response.in_progress":p.response&&(n=p.response);break;case"response.output_item.added":{let{item:f,output_index:A}=p;if(f&&f.id){let h=JSON.parse(JSON.stringify(f));h.type==="message"&&!Array.isArray(h.content)&&(h.content=[]),h.type==="reasoning"&&!Array.isArray(h.summary)&&(h.summary=[]),t.set(f.id,h),typeof A=="number"&&r.set(f.id,A)}break}case"response.content_part.added":{let{item_id:f,content_index:A,part:h}=p;if(f!=null&&A!=null&&h){let E=a(f,A);h.type==="output_text"?E.content[A]={type:"output_text",text:h.text||"",annotations:Array.isArray(h.annotations)?h.annotations:[]}:E.content[A]=JSON.parse(JSON.stringify(h))}break}case"response.output_text.delta":{let{item_id:f,content_index:A,delta:h}=p;if(f!=null&&A!=null&&typeof h=="string"){let E=a(f,A),S=E.content[A];S&&S.type==="output_text"?S.text=(S.text||"")+h:E.content[A]={type:"output_text",text:(S?.text||"")+h,annotations:Array.isArray(S?.annotations)?S.annotations:[]}}break}case"response.output_text.done":{let{item_id:f,content_index:A,text:h}=p;if(f!=null&&A!=null){let E=a(f,A),S=E.content[A]||{type:"output_text",text:"",annotations:[]};E.content[A]={...S,type:"output_text",text:typeof h=="string"?h:S.text||""}}break}case"response.content_part.done":{let{item_id:f,content_index:A,part:h}=p;if(f!=null&&A!=null&&h){let E=a(f,A),S=E.content[A]||{};E.content[A]={type:h.type||S.type||"output_text",text:typeof h.text=="string"?h.text:S.text||"",annotations:Array.isArray(h.annotations)?h.annotations:S.annotations||[]}}break}case"response.reasoning_summary_part.added":{let{item_id:f,summary_index:A,part:h}=p;if(f!=null&&A!=null){let E=c(f,A);E.summary[A]={type:h?.type||"summary_text",text:h?.text||""}}break}case"response.reasoning_summary_text.delta":{let{item_id:f,summary_index:A,delta:h}=p;if(f!=null&&A!=null&&typeof h=="string"){let S=c(f,A).summary[A];S.text=(S.text||"")+h}break}case"response.reasoning_summary_text.done":{let{item_id:f,summary_index:A,text:h}=p;if(f!=null&&A!=null){let E=c(f,A);typeof h=="string"&&(E.summary[A].text=h)}break}case"response.reasoning_summary_part.done":{let{item_id:f,summary_index:A,part:h}=p;if(f!=null&&A!=null&&h){let E=c(f,A);E.summary[A]={type:h.type||"summary_text",text:typeof h.text=="string"?h.text:E.summary[A].text||""}}break}case"response.reasoning_text.delta":{let{item_id:f,delta:A}=p;if(f!=null&&typeof A=="string"){let h=s(f,"reasoning");h.reasoning_text=(h.reasoning_text||"")+A}break}case"response.reasoning_text.done":{let{item_id:f,text:A}=p;if(f!=null&&typeof A=="string"){let h=s(f,"reasoning");h.reasoning_text=A}break}case"response.output_item.done":{let{item:f,output_index:A}=p;if(f&&f.id){let h=t.get(f.id),E=JSON.parse(JSON.stringify(f));h&&(Array.isArray(h.content)&&h.content.length&&(E.content=h.content),Array.isArray(h.summary)&&h.summary.length&&(E.summary=h.summary),typeof h.reasoning_text=="string"&&h.reasoning_text&&(E.reasoning_text=h.reasoning_text)),t.set(f.id,E),typeof A=="number"&&r.set(f.id,A)}break}case"response.completed":p.response&&(o=p.response,n=p.response);break;default:break}}let l=Array.from(t.values()).sort((d,p)=>{let f=r.get(d.id),A=r.get(p.id);return(f??0)-(A??0)});if(o){let d=JSON.parse(JSON.stringify(o));if(Array.isArray(d.output)){let p=new Map(d.output.map(h=>[h.id,h]));for(let h of l){let E=p.get(h.id);if(!E){p.set(h.id,h);continue}let S={...E};Array.isArray(h.content)&&h.content.length&&(S.content=h.content),Array.isArray(h.summary)&&h.summary.length&&(S.summary=h.summary),typeof h.reasoning_text=="string"&&h.reasoning_text&&(S.reasoning_text=h.reasoning_text),p.set(h.id,S)}let f=new Set(d.output.map(h=>h.id)),A=l.filter(h=>!f.has(h.id));d.output=d.output.map(h=>p.get(h.id)).concat(A)}else l.length&&(d.output=l);return d}let u=n?JSON.parse(JSON.stringify(n)):{id:null,object:"response",created_at:Math.floor(Date.now()/1e3),status:"in_progress",output:[]};return u.output=l,u}async function rqt(e){return i8n(e.split(`
|
|
@@ -774,7 +774,7 @@ data: ${JSON.stringify(H)}
|
|
|
774
774
|
Stack trace: `+d.stack)),new Response(c.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var rge=null,b4e=!1;function Uno(){rge=null,b4e=!1}kt.on("proxy:changed",Uno);function Fno(){if(b4e)return rge;if(b4e=!0,nt().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(rge=new RZt.ProxyAgent({uri:e}),zt(`[proxy] using proxy: ${e}`)),rge}function Hno(){let e=Fno();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function oge(e){let t=e||process.env.API_TYPE,r=Hno();switch(t){case"openai":return kno(r);case"openai-responses":return Pno(r);case"gemini":return Lno(r);default:return Qno(r)}}by();var DZt=F(ne(),1);function NZt(e,t){let r=[],n=Math.max(1,Math.floor(t)),o="",i=0;for(let s of e){let a=Gno(s);o&&i+a>n?(r.push(o),o=s,i=a):(o+=s,i+=a)}return o&&r.push(o),r}function Gno(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||$no(t)?0:qno(t)?2:1}function $no(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function qno(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 C0(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 v4e(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 zC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function ige(e,t,r){let n=[];return typeof e=="number"&&n.push(v4e(e)),typeof t=="number"&&n.push(`${t} ${t===1?"turn":"turns"}`),typeof r=="number"&&n.push(`${zC(r)} tokens`),n.length>0?` (${n.join(" \xB7 ")})`:""}De();$s();var eu={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function sge(e,t){eu.totalCost+=e,eu.totalAPIDuration+=t}function age(e,t){eu.inputTokens+=e,eu.outputTokens+=t,kt.emit("token:change",{inputTokens:eu.inputTokens,outputTokens:eu.outputTokens})}function cge(e,t){eu.cacheCreationTokens+=e,eu.cacheReadTokens+=t}function uM(){return{inputTokens:eu.inputTokens,outputTokens:eu.outputTokens,cacheCreationTokens:eu.cacheCreationTokens,cacheReadTokens:eu.cacheReadTokens}}function m9(){return eu.totalCost}function lge(){return Date.now()-eu.startTime}function OZt(){return eu.totalAPIDuration}function BZt(e){eu.currentContextTokens=e}function MZt(){return eu.currentContextTokens}function Vno(){return St.grey(`Total duration (API): ${C0(eu.totalAPIDuration)}
|
|
775
775
|
Total duration (wall): ${C0(lge())}`)}function kZt(){(0,DZt.useEffect)(()=>{let e=()=>{process.stdout.write(`
|
|
776
776
|
`+Vno()+`
|
|
777
|
-
`);let t=Xn();ps({...t,lastCost:eu.totalCost,lastAPIDuration:eu.totalAPIDuration,lastDuration:lge(),lastSessionId:Z_})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}De();Ge();Ge();var x4e="2.3.
|
|
777
|
+
`);let t=Xn();ps({...t,lastCost:eu.totalCost,lastAPIDuration:eu.totalAPIDuration,lastDuration:lge(),lastSessionId:Z_})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}De();Ge();Ge();var x4e="2.3.4";globalThis.MACRO={VERSION:x4e,PACKAGE_URL:`@dahawa/${Ii}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var uge=process.env.HAWA_CODE_USER_AGENT||`${Ii}/${x4e} (${process.env.USER_TYPE})`;De();De();nr();function Yf(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=Nf(t);if(n?.type==="user"){t[t.length-1]=Wno(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=Nf(t);n?.type==="user"&&(t[t.length-1]=Yno(n,r));return}}}),t}function Yno(e,t){return{...e,message:{...e.message,content:zno(e.message.content,jno(t.content.content))}}}function jno(e){return`
|
|
778
778
|
<system-reminder>
|
|
779
779
|
The user sent the following message:
|
|
780
780
|
${e}
|
package/hands.js
CHANGED
|
@@ -731,7 +731,7 @@ Important:
|
|
|
731
731
|
`);if(r.length<=KV)return r.join(`
|
|
732
732
|
`);let n=r.slice(-KV);return[sr.grey(`Showing last ${KV} lines of ${t} total lines`),...n].join(`
|
|
733
733
|
`)}function mB({content:e,lines:t,verbose:r,isError:n}){return pB.createElement(N,{justifyContent:"space-between",width:"100%"},pB.createElement(N,{flexDirection:"row"},pB.createElement(v,null,"\xA0\xA0\u23BF \xA0"),pB.createElement(N,{flexDirection:"column"},pB.createElement(v,{color:n?Pe().error:void 0},r?e.trim():NFr(e.trim(),t)))))}var DT=X(Ae(),1);function BFr({content:e,verbose:t}){let{stdout:r,stdoutLines:n,stderr:i,stderrLines:o}=e;return DT.default.createElement(N,{flexDirection:"column"},r!==""?DT.default.createElement(mB,{content:r,lines:n,verbose:t}):null,i!==""?DT.default.createElement(mB,{content:i,lines:o,verbose:t,isError:!0}):null,r===""&&i===""?DT.default.createElement(N,{flexDirection:"row"},DT.default.createElement(v,null,"\xA0\xA0\u23BF \xA0"),DT.default.createElement(v,{color:Pe().secondaryText},"(No content)")):null)}var fnt=BFr;qe();var GM=X(DK(),1);import{createHash as d9n,randomUUID as L6}from"crypto";(function(){kit().config(Object.assign({},Qit(),Lit()(process.argv)))})();Zt();var Fit="claude-code-20250219";var Uit=Fe(async()=>[Fit]);Me();import{URL as hv}from"url";function CU(e){return E3r(e.split(`
|
|
734
|
-
`))}function E3r(e){let t={type:"message",role:"assistant",content:[],usage:{input_tokens:0,output_tokens:0},stop_reason:null,stop_sequence:null},r=new Map,n={parsedCount:0,ignoredCount:0,errors:[]},i=l=>{let c=l.trim();if(!c||c==="data: [DONE]")return null;let u=c.startsWith("data:")?c.slice(5).trim():c;if(!u||u==="[DONE]")return null;try{return JSON.parse(u)}catch(f){throw new Error(`JSON parse failed: ${f.message}`)}},o=(l,c)=>{if(r.has(l))return r.get(l);let u,f="";if(
|
|
734
|
+
`))}function E3r(e){let t={id:void 0,type:"message",role:"assistant",model:void 0,content:[],usage:{input_tokens:0,output_tokens:0},stop_reason:null,stop_sequence:null},r=new Map,n={parsedCount:0,ignoredCount:0,errors:[]},i=l=>{let c=l.trim();if(!c||c==="data: [DONE]")return null;let u=c.startsWith("data:")?c.slice(5).trim():c;if(!u||u==="[DONE]")return null;try{return JSON.parse(u)}catch(f){throw new Error(`JSON parse failed: ${f.message}`)}},o=(l,c)=>{if(r.has(l))return r.get(l);let u,f="",g=c?.content_block||c;if(g?.type==="tool_use"){u={type:"tool_use",id:g.id,name:g.name,input:{}},t.content.push(u);let A={ref:u,toolJsonBuffer:f};return r.set(l,A),A}if(g?.type==="thinking"){u={type:"thinking",thinking:typeof g.thinking=="string"?g.thinking:"",signature:typeof g.signature=="string"?g.signature:""},t.content.push(u);let A={ref:u,toolJsonBuffer:f};return r.set(l,A),A}if(g?.type==="redacted_thinking"){u={type:"redacted_thinking",data:typeof g.data=="string"?g.data:""},t.content.push(u);let A={ref:u,toolJsonBuffer:f};return r.set(l,A),A}u={type:"text",text:""},t.content.push(u);let m={ref:u,toolJsonBuffer:f};return r.set(l,m),m},s=(l,c)=>{if(typeof c=="string"){l.toolJsonBuffer+=c;return}try{l.toolJsonBuffer+=JSON.stringify(c)}catch{l.toolJsonBuffer+=String(c)}},a=l=>{if(!l||l.ref?.type!=="tool_use"||!l.toolJsonBuffer)return;let c=l.toolJsonBuffer.trim();if(c){try{l.ref.input=JSON.parse(c)}catch{l.ref.input=c}l.toolJsonBuffer=""}};for(let l=0;l<e.length;l++){let c=e[l],u;try{if(u=i(c),!u){n.ignoredCount++;continue}n.parsedCount++}catch(g){n.errors.push({idx:l,error:g.message,raw:c});continue}switch(u.type){case"ping":break;case"message_start":{let g=u.message||{};g.id&&(t.id=g.id),g.model&&(t.model=g.model),g.usage?.input_tokens&&(t.usage.input_tokens+=Number(g.usage.input_tokens)||0),g.usage?.output_tokens&&(t.usage.output_tokens+=Number(g.usage.output_tokens)||0);break}case"content_block_start":{let g=u.index??0,m=u.content_block;o(g,{content_block:m});break}case"content_block_delta":{let g=u.index??0,m=o(g),A=u.delta||u;if(A.type==="text_delta"&&typeof A.text=="string"){m.ref.type!=="text"&&(m.ref={type:"text",text:""},t.content.push(m.ref)),m.ref.text+=A.text;break}if(A.type==="thinking_delta"&&typeof A.thinking=="string"){m.ref.type!=="thinking"&&(m.ref={type:"thinking",thinking:"",signature:""},t.content.push(m.ref)),m.ref.thinking+=A.thinking;break}if(A.type==="signature_delta"&&typeof A.signature=="string"){m.ref.type!=="thinking"&&(m.ref={type:"thinking",thinking:"",signature:""},t.content.push(m.ref)),m.ref.signature+=A.signature;break}m.ref.type==="tool_use"&&(typeof A.partial_json=="string"?s(m,A.partial_json):typeof A.input_json=="string"?s(m,A.input_json):typeof A.input_json_delta=="string"?s(m,A.input_json_delta):A.json!==void 0&&s(m,A.json));break}case"content_block_stop":{let g=u.index??0,m=r.get(g);a(m);break}case"message_delta":{u.delta?.stop_reason!==void 0&&(t.stop_reason=u.delta.stop_reason),u.delta?.stop_sequence!==void 0&&(t.stop_sequence=u.delta.stop_sequence),u.usage&&(u.usage.output_tokens&&(t.usage.output_tokens+=Number(u.usage.output_tokens)||0),u.usage.input_tokens&&(t.usage.input_tokens+=Number(u.usage.input_tokens)||0));break}case"message_stop":break;default:n.ignoredCount++}}for(let l of r.values())a(l);return t.content=t.content.filter(l=>!(l.type==="text"&&l.text.trim()==="")),t}async function Hit(e){return _3r(e.split(`
|
|
735
735
|
|
|
736
736
|
`))}function _3r(e){let t=new Map,r=new Map,n=null,i=null;function o(f){if(typeof f!="string")return null;let g=f.trim();if(!g)return null;let m=[];for(let E of g.split(/\r?\n/)){let _=E.trimStart();_.startsWith("data:")&&m.push(_.slice(5).replace(/^ /,""))}let A=m.length?m.join(`
|
|
737
737
|
`):g;if(!A||A==="[DONE]")return null;try{return JSON.parse(A)}catch{return null}}function s(f,g="message"){if(!t.has(f)){let m=g==="reasoning"?{id:f,type:"reasoning",status:"in_progress",summary:[]}:{id:f,type:"message",status:"in_progress",role:"assistant",content:[]};t.set(f,m)}return t.get(f)}function a(f,g){let m=s(f,"message");for(Array.isArray(m.content)||(m.content=[]);m.content.length<=g;)m.content.push({type:"output_text",text:"",annotations:[]});return m}function l(f,g){let m=s(f,"reasoning");for(Array.isArray(m.summary)||(m.summary=[]);m.summary.length<=g;)m.summary.push({type:"summary_text",text:""});return m}for(let f of e){let g=o(f);if(!(!g||!g.type))switch(g.type){case"response.created":case"response.in_progress":g.response&&(n=g.response);break;case"response.output_item.added":{let{item:m,output_index:A}=g;if(m&&m.id){let E=JSON.parse(JSON.stringify(m));E.type==="message"&&!Array.isArray(E.content)&&(E.content=[]),E.type==="reasoning"&&!Array.isArray(E.summary)&&(E.summary=[]),t.set(m.id,E),typeof A=="number"&&r.set(m.id,A)}break}case"response.content_part.added":{let{item_id:m,content_index:A,part:E}=g;if(m!=null&&A!=null&&E){let _=a(m,A);E.type==="output_text"?_.content[A]={type:"output_text",text:E.text||"",annotations:Array.isArray(E.annotations)?E.annotations:[]}:_.content[A]=JSON.parse(JSON.stringify(E))}break}case"response.output_text.delta":{let{item_id:m,content_index:A,delta:E}=g;if(m!=null&&A!=null&&typeof E=="string"){let _=a(m,A),b=_.content[A];b&&b.type==="output_text"?b.text=(b.text||"")+E:_.content[A]={type:"output_text",text:(b?.text||"")+E,annotations:Array.isArray(b?.annotations)?b.annotations:[]}}break}case"response.output_text.done":{let{item_id:m,content_index:A,text:E}=g;if(m!=null&&A!=null){let _=a(m,A),b=_.content[A]||{type:"output_text",text:"",annotations:[]};_.content[A]={...b,type:"output_text",text:typeof E=="string"?E:b.text||""}}break}case"response.content_part.done":{let{item_id:m,content_index:A,part:E}=g;if(m!=null&&A!=null&&E){let _=a(m,A),b=_.content[A]||{};_.content[A]={type:E.type||b.type||"output_text",text:typeof E.text=="string"?E.text:b.text||"",annotations:Array.isArray(E.annotations)?E.annotations:b.annotations||[]}}break}case"response.reasoning_summary_part.added":{let{item_id:m,summary_index:A,part:E}=g;if(m!=null&&A!=null){let _=l(m,A);_.summary[A]={type:E?.type||"summary_text",text:E?.text||""}}break}case"response.reasoning_summary_text.delta":{let{item_id:m,summary_index:A,delta:E}=g;if(m!=null&&A!=null&&typeof E=="string"){let b=l(m,A).summary[A];b.text=(b.text||"")+E}break}case"response.reasoning_summary_text.done":{let{item_id:m,summary_index:A,text:E}=g;if(m!=null&&A!=null){let _=l(m,A);typeof E=="string"&&(_.summary[A].text=E)}break}case"response.reasoning_summary_part.done":{let{item_id:m,summary_index:A,part:E}=g;if(m!=null&&A!=null&&E){let _=l(m,A);_.summary[A]={type:E.type||"summary_text",text:typeof E.text=="string"?E.text:_.summary[A].text||""}}break}case"response.reasoning_text.delta":{let{item_id:m,delta:A}=g;if(m!=null&&typeof A=="string"){let E=s(m,"reasoning");E.reasoning_text=(E.reasoning_text||"")+A}break}case"response.reasoning_text.done":{let{item_id:m,text:A}=g;if(m!=null&&typeof A=="string"){let E=s(m,"reasoning");E.reasoning_text=A}break}case"response.output_item.done":{let{item:m,output_index:A}=g;if(m&&m.id){let E=t.get(m.id),_=JSON.parse(JSON.stringify(m));E&&(Array.isArray(E.content)&&E.content.length&&(_.content=E.content),Array.isArray(E.summary)&&E.summary.length&&(_.summary=E.summary),typeof E.reasoning_text=="string"&&E.reasoning_text&&(_.reasoning_text=E.reasoning_text)),t.set(m.id,_),typeof A=="number"&&r.set(m.id,A)}break}case"response.completed":g.response&&(i=g.response,n=g.response);break;default:break}}let c=Array.from(t.values()).sort((f,g)=>{let m=r.get(f.id),A=r.get(g.id);return(m??0)-(A??0)});if(i){let f=JSON.parse(JSON.stringify(i));if(Array.isArray(f.output)){let g=new Map(f.output.map(E=>[E.id,E]));for(let E of c){let _=g.get(E.id);if(!_){g.set(E.id,E);continue}let b={..._};Array.isArray(E.content)&&E.content.length&&(b.content=E.content),Array.isArray(E.summary)&&E.summary.length&&(b.summary=E.summary),typeof E.reasoning_text=="string"&&E.reasoning_text&&(b.reasoning_text=E.reasoning_text),g.set(E.id,b)}let m=new Set(f.output.map(E=>E.id)),A=c.filter(E=>!m.has(E.id));f.output=f.output.map(E=>g.get(E.id)).concat(A)}else c.length&&(f.output=c);return f}let u=n?JSON.parse(JSON.stringify(n)):{id:null,object:"response",created_at:Math.floor(Date.now()/1e3),status:"in_progress",output:[]};return u.output=c,u}async function qit(e){return y3r(e.split(`
|
|
@@ -757,7 +757,7 @@ data: ${JSON.stringify(z)}
|
|
|
757
757
|
`);a=P.pop()||"";for(let z of P){let Y=z.trim();if(!(!Y||Y==="data: [DONE]"))if(Y.startsWith("data: ")){let Q=Y.slice(6);try{let G=JSON.parse(Q);w(G)}catch(G){this.logger&&this.logger.error({err:G,line:Y},"Failed to parse Gemini SSE chunk")}}else try{let Q=JSON.parse(Y);w(Q)}catch{}}};(async()=>{try{for(;;){let{value:P,done:z}=await s.read();if(z)break;a+=n.decode(P,{stream:!0}),O()}I()}catch(P){o.error(P)}})()}})}convertGeminiResponseToAnthropic(t){this.logger&&this.logger.debug({response:t},"Original Gemini response");try{if(!t.candidates||!t.candidates[0])throw new Error("No candidates found in Gemini response");let r=t.candidates[0],n=[];r.content&&r.content.parts&&r.content.parts.forEach(o=>{if(o.text&&n.push({type:"text",text:o.text}),o.functionCall){let s=`toolu_${QB()}`,a=o.functionCall.thoughtSignature||o.functionCall.thought_signature||null;n.push({type:"tool_use",id:s,name:o.functionCall.name,input:o.functionCall.args||{},thought_signature:a})}}),r.groundingMetadata&&(this.logger&&this.logger.debug({groundingMetadata:r.groundingMetadata},"Processing grounding metadata"),r.groundingMetadata.webSearchQueries&&n.push({type:"text",text:`
|
|
758
758
|
|
|
759
759
|
[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 O3r(`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"}}},zye=new Gye;var gmt=X(fmt(),1);ar();us();function kg(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function pmt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function YXr(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function VXr(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function WXr(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 R5(e,t,r){hz(t,e),Ez(t,WXr(e,r),r)}function I2(e){let t=[],r=e.getReader(),n,i=new Promise(l=>n=l),o=!1,s=()=>{o||(o=!0,n(Buffer.concat(t).toString("utf8")))};return{stream:new ReadableStream({async pull(l){try{let{done:c,value:u}=await r.read();if(c){l.close(),s();return}t.push(u),l.enqueue(u)}catch(c){l.error(c),s()}},cancel(l){r.cancel(l).catch(()=>{}),s()}}),done:i}}function N5(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function _Ie(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 mmt=["/v1/messages"];function yIe(e){let t;try{typeof e=="string"?t=new hv(e):e instanceof hv?t=e:t=new hv(e.url)}catch{return""}let r=t.pathname;for(let n of mmt){let i=r.indexOf(n);if(i!==-1)return t.origin+r.slice(0,i)}return t.origin}function RZ(e,t){let r=typeof e=="string"?e:e instanceof hv?e.toString():e.url,n;try{n=new hv(r).pathname}catch{return!1}return mmt.some(i=>n.includes(i))&&(t.method==="POST"||t.method==="post")}function KXr(e){return async(t,r)=>{if(!RZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await NK.transformRequestOut(n),o=yIe(t)+"/chat/completions",s=kg(r.headers),a=s.authorization??s.Authorization??"";YXr(i,pmt(s));let l=await e(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(i),signal:r.signal});if(!l.ok){let _=await l.text();return Z(`OpenAI Chat Completions API error: ${l.status}`,{url:o,errorResponse:_}),_Ie("OpenAI Chat Completions API error","OPENROUTER",l.status,l.statusText,_)}let c=n.stream===!0,u=s["x-agent-id"],f={request:{url:o,method:r.method,headers:s,body:n},response:{status:l.status,statusText:l.statusText,headers:kg(l.headers)},openai:{request:{body:i},response:{}}};if(!c){let _=await l.text(),b=new Response(_,{status:l.status,statusText:l.statusText,headers:N5(l.headers)}),S=await NK.transformResponseIn(b,n),I=await S.text();try{R5({...f,openai:{...f.openai,response:{body:JSON.parse(_)}},response:{...f.response,body:JSON.parse(I)}},u)}catch(w){Z("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u975E\u6D41\u5F0F):",w)}return new Response(I,{status:S.status,statusText:S.statusText,headers:S.headers})}let g=I2(l.body),m=new Response(g.stream,{status:l.status,statusText:l.statusText,headers:N5(l.headers)}),A=await NK.transformResponseIn(m,n),E=I2(A.body);return Promise.all([g.done,E.done]).then(async([_,b])=>{try{R5({...f,openai:{...f.openai,response:{body:await qit(_)}},response:{...f.response,body:await CU(b)}},u)}catch(S){Z("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+S?.stack)}}).catch(_=>Z("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+_)),new Response(E.stream,{status:A.status,statusText:A.statusText,headers:A.headers})}}function JXr(e){return async(t,r)=>{if(!RZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await BK.transformRequestOut(n),o=kg(r.headers);VXr(i,pmt(o));let s=JSON.stringify(i),l=yIe(t)+"/responses",c=o.authorization??o.Authorization??"";if(!c)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 u=await e(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:c,"x-api-key":c.replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal});if(!u.ok){let S=await u.text();return Z(`OpenAI Responses API error: ${u.status} ${u.statusText}`,{url:l,status:u.status,errorResponse:S}),_Ie("OpenAI Responses API error","RESPONSES",u.status,u.statusText,S)}let f=n.stream===!0,g=o["x-agent-id"],m={request:{url:l,method:r.method,headers:o,body:n},response:{status:u.status,statusText:u.statusText,headers:kg(u.headers)},openai:{request:{body:i},response:{}}};if(!f){let S=await u.text(),I=new Response(S,{status:u.status,statusText:u.statusText,headers:N5(u.headers)}),w=await BK.transformResponseIn(I,n),O=await w.text();try{R5({...m,openai:{...m.openai,response:{body:JSON.parse(S)}},response:{...m.response,body:JSON.parse(O)}},g,"responses")}catch(P){Z("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",P)}return new Response(O,{status:w.status,statusText:w.statusText,headers:w.headers})}let A=I2(u.body),E=new Response(A.stream,{status:u.status,statusText:u.statusText,headers:N5(u.headers)}),_=await BK.transformResponseIn(E,n),b=I2(_.body);return Promise.all([A.done,b.done]).then(async([S,I])=>{try{R5({...m,openai:{...m.openai,response:{body:await Hit(S)}},response:{...m.response,body:await CU(I)}},g,"responses")}catch(w){Z("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+w?.stack)}}).catch(S=>Z("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+S)),new Response(b.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function ZXr(e){return async(t,r)=>{if(!RZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=kg(r.headers),o=await zye.transformRequestOut(n),s=JSON.stringify(o),a=yIe(t)+`/models/${n.model}:streamGenerateContent?alt=sse`,l=i.authorization??i.Authorization??"",c;try{c=await e(a,{method:"POST",headers:{"Content-Type":"application/json","x-goog-api-key":String(l).replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal})}catch(b){throw Z("gemini request error:",b),b}if(!c.ok){let b=await c.text();return Z(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:b}),_Ie("Gemini API error","Gemini",c.status,c.statusText,b)}let u=n.stream===!0,f=i["x-agent-id"],g={request:{url:a,method:r.method,headers:kg(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:kg(c.headers)},openai:{request:{body:o},response:{}}},m=I2(c.body),A=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:N5(c.headers)}),E=await zye.transformResponseIn(A),_=I2(E.body);return Promise.all([m.done,_.done]).then(async([b,S])=>{try{let I=u?$it(b):JSON.parse(b),w=u?await CU(S):JSON.parse(S);R5({...g,openai:{...g.openai,response:{body:I}},response:{...g.response,body:w}},f)}catch(I){Z("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+I?.stack)}}).catch(b=>Z("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+b)),new Response(_.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function XXr(e){return async(t,r)=>{if(!RZ(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=kg(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();Z(`API error response: ${a.status} ${a.statusText}`,{url:typeof t=="string"?t:t instanceof hv?t.toString():t.url,status:a.status,errorResponse:f});let g;try{let m=JSON.parse(f);g={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&&(g.error.details=m.error.details)}catch{g={type:"error",error:{type:"api_error",message:`API error: ${a.statusText}`,code:`API_${a.status}_ERROR`}}}return new Response(JSON.stringify(g),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"application/json"}})}let l=a.clone(),c=!(Object.hasOwn(JSON.parse(n),"stream")&&!JSON.parse(n).stream),u={request:{url:typeof t=="string"?t:t instanceof hv?t.toString():t.url,method:r.method,headers:kg(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:kg(a.headers)}};return(async()=>{if(c){let m=await a.text();u.response.body=await CU(m)}else u.response.body=await a.json();let g=kg(r.headers)["x-agent-id"];hz(g,u),Ez(g,{request:u.request.body.messages,response:u.response.body.content})})().catch(f=>Z(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
|
|
760
|
-
Stack trace: `+f.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var DZ=null,EIe=!1;function een(){DZ=null,EIe=!1}pr.on("proxy:changed",een);function ten(){if(EIe)return DZ;if(EIe=!0,lt().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(DZ=new gmt.ProxyAgent({uri:e}),Kt(`[proxy] using proxy: ${e}`)),DZ}function ren(){let e=ten();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function NZ(e){let t=e||process.env.API_TYPE,r=ren();switch(t){case"openai":return KXr(r);case"openai-responses":return JXr(r);case"gemini":return ZXr(r);default:return XXr(r)}}dh();var sen=X(Ae(),1);function Amt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=nen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function nen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||ien(t)?0:oen(t)?2:1}function ien(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function oen(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 o_(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 zC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}Me();us();var dc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function BZ(e,t){dc.totalCost+=e,dc.totalAPIDuration+=t}function OZ(e,t){dc.inputTokens+=e,dc.outputTokens+=t,pr.emit("token:change",{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens})}function kZ(e,t){dc.cacheCreationTokens+=e,dc.cacheReadTokens+=t}function bIe(){return{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens,cacheCreationTokens:dc.cacheCreationTokens,cacheReadTokens:dc.cacheReadTokens}}function hmt(){return dc.totalCost}function Emt(){return Date.now()-dc.startTime}function _mt(){return dc.totalAPIDuration}function ymt(e){dc.currentContextTokens=e}function bmt(){return dc.currentContextTokens}Me();qe();qe();var CIe="2.3.
|
|
760
|
+
Stack trace: `+f.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var DZ=null,EIe=!1;function een(){DZ=null,EIe=!1}pr.on("proxy:changed",een);function ten(){if(EIe)return DZ;if(EIe=!0,lt().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(DZ=new gmt.ProxyAgent({uri:e}),Kt(`[proxy] using proxy: ${e}`)),DZ}function ren(){let e=ten();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function NZ(e){let t=e||process.env.API_TYPE,r=ren();switch(t){case"openai":return KXr(r);case"openai-responses":return JXr(r);case"gemini":return ZXr(r);default:return XXr(r)}}dh();var sen=X(Ae(),1);function Amt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=nen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function nen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||ien(t)?0:oen(t)?2:1}function ien(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function oen(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 o_(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 zC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}Me();us();var dc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function BZ(e,t){dc.totalCost+=e,dc.totalAPIDuration+=t}function OZ(e,t){dc.inputTokens+=e,dc.outputTokens+=t,pr.emit("token:change",{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens})}function kZ(e,t){dc.cacheCreationTokens+=e,dc.cacheReadTokens+=t}function bIe(){return{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens,cacheCreationTokens:dc.cacheCreationTokens,cacheReadTokens:dc.cacheReadTokens}}function hmt(){return dc.totalCost}function Emt(){return Date.now()-dc.startTime}function _mt(){return dc.totalAPIDuration}function ymt(e){dc.currentContextTokens=e}function bmt(){return dc.currentContextTokens}Me();qe();qe();var CIe="2.3.4";globalThis.MACRO={VERSION:CIe,PACKAGE_URL:`@dahawa/${Ki}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var MZ=process.env.HAWA_CODE_USER_AGENT||`${Ki}/${CIe} (${process.env.USER_TYPE})`;import{randomUUID as my}from"crypto";us();Me();Zt();vr();Me();qe();import{existsSync as u_,readdirSync as wnn,statSync as Dnn}from"fs";import{join as VC,relative as Rnn}from"path";import{homedir as jAt}from"os";import{platform as Nnn}from"process";import{readFile as WC}from"fs/promises";vr();Mg();ar();import{join as den,sep as fen}from"path";function dm(){if(!um())return!1;try{let e=lt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function $f(){return(den(Qe(),".hcode","team-memory")+fen).normalize("NFC")}function a_(e){let t=e.normalize("NFC"),r=$f();return t.startsWith(r)}var YAt=X(U5(),1);Qi();var qAt=X(U5(),1);vr();qe();Me();Cu();import{readFile as UAt}from"fs/promises";import{existsSync as FIe,readdirSync as Inn,statSync as Tnn}from"fs";import{join as UIe,relative as $At}from"path";import{homedir as vnn}from"os";function HAt(e){try{let t=(0,qAt.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 ve(t),{paths:[],content:e.trim()}}}function xnn(e,t){return t.length===0?!0:t.some(r=>{try{return ac(e,r,{matchBase:!0,dot:!0})}catch(n){return ve(n),!1}})}function HIe(e){let t=[];try{if(!FIe(e))return t;let r=Inn(e);for(let n of r){let i=UIe(e,n),o=Tnn(i);o.isDirectory()?t.push(...HIe(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){ve(r)}return t}async function GAt(){let e=[];try{let t=UIe(vnn(),Xr,"rules");if(FIe(t)){let r=HIe(t);for(let n of r)try{let i=await UAt(n,"utf-8"),{paths:o,content:s}=HAt(i);o.length>0&&e.push({filePath:n,content:s,paths:o,isProjectRule:!1})}catch(i){ve(i)}}}catch(t){ve(t)}try{let t=UIe(Qe(),Xr,"rules");if(FIe(t)){let r=HIe(t);for(let n of r)try{let i=await UAt(n,"utf-8"),{paths:o,content:s}=HAt(i);o.length>0&&e.push({filePath:$At(Qe(),n),content:s,paths:o,isProjectRule:!0})}catch(i){ve(i)}}}catch(t){ve(t)}return e}function zAt(e,t){e=mV(e);let r=mV(Qe()),n=e.startsWith(r)?$At(r,e):e;return t.filter(i=>xnn(n,i.paths))}var Bnn=`# hawaCodeMd
|
|
761
761
|
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 Onn(e="default"){let r=Je.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}):
|
|
762
762
|
|
|
763
763
|
${i.content}`}).join(`
|
|
@@ -1129,7 +1129,7 @@ You are powered by the model ${e}.`}async function Kv(){return H5()?`gitStatus:
|
|
|
1129
1129
|
<context name="${c}">${u}</context>`;let s=i.map(c=>{let u=c.prompt({},t),f=JSON.stringify("inputJSONSchema"in c&&c.inputJSONSchema?c.inputJSONSchema:AI(c.inputSchema));return{name:c.name,description:`${u}
|
|
1130
1130
|
|
|
1131
1131
|
Schema:
|
|
1132
|
-
${f}`}}),{messages:a}=t,l=iln(o);return oln(o,l,s,a)}},$_t=sln;Pg();var ku=X(Ae(),1),uO=X(Ae(),1);Me();Me();import{existsSync as aln,readdirSync as lln,statSync as cln}from"fs";import{join as uln}from"path";function dln(){let e=Ji.plan();if(!aln(e))return[];try{return lln(e).filter(r=>r.endsWith(".md")).map(r=>{let n=uln(e,r),i=cln(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var G_t=({onSelect:e})=>{let[t,r]=(0,uO.useState)([]),[n,i]=(0,uO.useState)(0),[o,s]=(0,uO.useState)(!1);(0,uO.useEffect)(()=>{let c=dln();r(c),s(!0)},[]);let a=[{label:"New plan",value:"__NEW_PLAN__",isNew:!0},...t.map(c=>({label:c.name,value:c.path,isNew:!1,modified:c.modified}))];Tr((c,u)=>{if(u.upArrow)i(f=>f>0?f-1:a.length-1);else if(u.downArrow)i(f=>f<a.length-1?f+1:0);else if(u.return){let f=a[n];f&&e(f.value)}else u.escape&&e("__CANCELLED__")});let l=Pe();return o?ku.createElement(N,{flexDirection:"column",marginY:1},ku.createElement(N,{marginBottom:1},ku.createElement(v,{bold:!0,color:l.claude},"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),ku.createElement(N,{marginBottom:1},ku.createElement(v,{bold:!0,color:l.claude}," Select a plan to continue, or create a new one")),a.map((c,u)=>{let f=u===n;return ku.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},ku.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),ku.createElement(v,{color:f?l.claude:l.text}," "),ku.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&ku.createElement(v,{dimColor:!0}," ","(",Oge(c.modified),")"))}),ku.createElement(N,{marginTop:1,marginLeft:2},ku.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):ku.createElement(N,{flexDirection:"column",marginY:1},ku.createElement(v,null,"Loading plan history..."))};var z_t=X(Ae(),1),fln={type:"local-jsx",name:"plan",description:()=>"Enable plan mode",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Ti.isPlanMode()?(e("Already in plan mode."),null):z_t.createElement(G_t,{onSelect:t=>{if(t==="__CANCELLED__"){e("Cancelled.");return}t&&t!=="__NEW_PLAN__"?Ti.setCurrentPlanFilePath(t):Ti.generatePlanFilePath(),Ti.setMode("plan",!0,!1),e("Enabled plan mode")}})},userFacingName(){return"plan"}},j_t=fln;Pg();var pln={type:"local",name:"auto",description:()=>"Enable auto mode",isEnabled:!0,isHidden:!1,async call(){return Ti.isAutoMode()?"Already in auto mode.":(Ti.setMode("auto",!0),"Enabled auto mode")},userFacingName(){return"auto"}},Y_t=pln;vr();import{resolve as mln}from"path";var gln={type:"local",name:"cd",description:()=>"Move this session to a new working directory",isEnabled:!0,isHidden:!1,argNames:["path"],async call(e){let t=e.trim();if(t==="")throw new Error("Missing directory path. Usage: /cd <path>");let r=Qe(),n=mln(r,t);la(n);let i=Qe();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},V_t=gln;var TCt=X(Ae(),1);var Hn=X(Ae(),1);var Yln=X(Ae(),1);var S9=X(Ae(),1),Gln=X(Z_t(),1);var X_t={info:"blue",success:"green",error:"red",warning:"yellow"},Dln={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:X_t[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:X_t[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=Qr.info),e==="success"&&(t=Qr.tick),e==="error"&&(t=Qr.cross),e==="warning"&&(t=Qr.warning),{icon:t}}},eyt=Dln;var Rln={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},tyt=Rln;var Nln={styles:{input:({isFocused:e})=>({dimColor:!e})}},ryt=Nln;var Bln={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},nyt=Bln;var Oln={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},iyt=Oln;var kln={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Qr.square,remainingCharacter:Qr.squareLightShade})},oyt=kln;var Mln={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},syt=Mln;var Qln={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},ayt=Qln;var Pln={success:"green",error:"red",warning:"yellow",info:"blue"},Lln={success:Qr.tick,error:Qr.cross,warning:Qr.warning,info:Qr.info},Fln={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Pln[e]}),message:()=>({})},config:({variant:e})=>({icon:Lln[e]})},lyt=Fln;var Uln={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Qr.line})},cyt=Uln;var Hln={styles:{value:()=>({})}},uyt=Hln;var qln={styles:{value:()=>({})}},dyt=qln;var $ln={styles:{value:()=>({})}},fyt=$ln;var zln={components:{Alert:eyt,Badge:tyt,ConfirmInput:ryt,MultiSelect:nyt,OrderedList:iyt,ProgressBar:oyt,Select:syt,Spinner:ayt,StatusMessage:lyt,UnorderedList:cyt,TextInput:uyt,EmailInput:dyt,PasswordInput:fyt}},jln=(0,S9.createContext)(zln);var po=e=>(0,S9.useContext)(jln).components[e];var Vln=X(Ae(),1);var __=X(Ae(),1);var fO=X(Ae(),1);var pyt=X(Ae(),1);var I9=Qr.line;var ZX=(0,pyt.createContext)({marker:I9});function myt({children:e}){let{marker:t}=(0,fO.useContext)(ZX),{styles:r}=po("UnorderedList");return fO.default.createElement(N,{...r.listItem()},fO.default.createElement(v,{...r.marker()},t),fO.default.createElement(N,{...r.content()},e))}var gyt=X(Ae(),1),Tve=(0,gyt.createContext)({depth:0});function Wln({children:e}){let{depth:t}=(0,__.useContext)(Tve),{styles:r,config:n}=po("UnorderedList"),i=(0,__.useMemo)(()=>({depth:t+1}),[t]),o=(0,__.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??I9}:{marker:I9}},[n,t]);return __.default.createElement(Tve.Provider,{value:i},__.default.createElement(ZX.Provider,{value:o},__.default.createElement(N,{...r.list()},e)))}Wln.Item=myt;var Jln=X(Ae(),1);var Kln=X(Ae(),1);var T9=X(Ae(),1);var pO=class extends Map{first;constructor(t){let r=[],n,i,o=0;for(let s of t){let a={...s,previous:i,next:void 0,index:o};i&&(i.next=a),n||=a,r.push([s.value,a]),o++,i=a}super(r),this.first=n}};var Ayt=X(Ae(),1);var mO=X(Ae(),1);var v9=X(Ae(),1);function hyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return v9.default.createElement(N,{...n.option({isFocused:e})},e&&v9.default.createElement(v,{...n.focusIndicator()},Qr.pointer),v9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&v9.default.createElement(v,{...n.selectedIndicator()},Qr.tick))}var hm=X(Ae(),1);import{isDeepStrictEqual as Zln}from"node:util";var Xln=(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;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let o=Math.min(e.optionMap.size,e.visibleToIndex+1),s=o-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:o}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let o=Math.max(0,e.visibleFromIndex-1),s=o+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:o,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state}},Eyt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new pO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},_yt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,hm.useReducer)(Xln,{visibleOptionCount:e,defaultValue:r,options:t},Eyt),[s,a]=(0,hm.useState)(t);t!==s&&!Zln(t,s)&&(o({type:"reset",state:Eyt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,hm.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,hm.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,hm.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,hm.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,hm.useEffect)(()=>{i.value&&i.previousValue!==i.value&&n?.(i.value)},[i.previousValue,i.value,t,n]),{focusedValue:i.focusedValue,visibleFromIndex:i.visibleFromIndex,visibleToIndex:i.visibleToIndex,value:i.value,visibleOptions:f,focusNextOption:l,focusPreviousOption:c,selectFocusedOption:u}};var yyt=({isDisabled:e=!1,state:t})=>{Tr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function gO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=_yt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});yyt({isDisabled:e,state:s});let{styles:a}=po("Select");return mO.default.createElement(N,{...a.container()},s.visibleOptions.map(l=>{let c=l.label;if(r&&l.label.includes(r)){let u=l.label.indexOf(r);c=mO.default.createElement(mO.default.Fragment,null,l.label.slice(0,u),mO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return mO.default.createElement(hyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var ecn=X(Ae(),1);var byt=X(Ae(),1);var rcn=X(Ae(),1);var XX=X(Ae(),1);var tcn=X(Ae(),1);var oBi=sr.inverse(" ");var qg=X(Ae(),1);var AO=X(Ae(),1);var Cyt=X(Ae(),1);var eee=(0,Cyt.createContext)({marker:Qr.line});function tee({children:e}){let{marker:t}=(0,AO.useContext)(eee),{styles:r}=po("OrderedList");return AO.default.createElement(N,{...r.listItem()},AO.default.createElement(v,{...r.marker()},t),AO.default.createElement(N,{...r.content()},e))}var Syt=X(Ae(),1),vve=(0,Syt.createContext)({marker:""});function $g({children:e}){let{marker:t}=(0,qg.useContext)(vve),{styles:r}=po("OrderedList"),n=0;for(let o of qg.default.Children.toArray(e))!(0,qg.isValidElement)(o)||o.type!==tee||n++;let i=String(n).length;return qg.default.createElement(N,{...r.list()},qg.default.Children.map(e,(o,s)=>{if(!(0,qg.isValidElement)(o)||o.type!==tee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return qg.default.createElement(vve.Provider,{value:{marker:l}},qg.default.createElement(eee.Provider,{value:{marker:l}},o))}))}$g.Item=tee;var icn=X(Ae(),1);var xve=X(Ae(),1);var ncn=X(Ae(),1);var kBi=sr.inverse(" ");var ocn=X(Ae(),1);var scn=X(Ae(),1);var lcn=X(Ae(),1);var ree=X(Ae(),1);var acn=X(Ae(),1);var i2i=sr.inverse(" ");var qi=X(Ae(),1);var wve=X(Ae(),1),Dve=X(Ae(),1);$5();us();Qi();Lv();ar();var Iyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function Jv(){let e=[...Iyt,...[...Iyt].reverse()],{frame:t}=pR({interval:120});return wve.createElement(N,{flexWrap:"nowrap",height:1,width:2},wve.createElement(v,{color:Pe().claude},e[t%e.length]))}var oee=X(Ae(),1);var iee=null,y_=null,nee=new Set;function Nve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=bpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Rve(){y_&&(iee=Nve(y_),nee.forEach(e=>e(iee)))}function ccn(e,t){return y_!==e&&(y_&&y_.off("resize",Rve),y_=e,iee=Nve(e),e.on("resize",Rve)),nee.add(t),()=>{nee.delete(t),nee.size===0&&y_&&(y_.off("resize",Rve),y_=null,iee=null)}}function Bve(){let{stdout:e}=fR(),[t,r]=(0,oee.useState)(()=>Nve(e));return(0,oee.useEffect)(()=>ccn(e,r),[e]),t}function hO(){return Bve()}qe();bf();Me();sh();Me();var YOi=X(Xve(),1);import{homedir as M9}from"os";import{join as yO}from"path";import{existsSync as Q9,mkdirSync as pCt,appendFileSync as fCt,readFileSync as mCt,constants as sfn,writeFileSync as afn,unlinkSync as gCt,statSync as lfn}from"fs";import{platform as ACt}from"process";import{accessSync as cfn}from"fs";var ofn="2.3.1",k9={VERSION:ofn,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"};qe();var Xv=yO(O0,".update.lock"),ufn=300*1e3;function hCt(){try{if(Q9(O0)||pCt(O0,{recursive:!0}),Q9(Xv)){let e=lfn(Xv);if(Date.now()-e.mtimeMs<ufn)return!1;try{gCt(Xv)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return afn(Xv,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function ECt(){try{Q9(Xv)&&mCt(Xv,"utf8")===`${process.pid}`&&gCt(Xv)}catch(e){ve(`Failed to release lock: ${e}`)}}async function exe(){try{let e=await si("npm -g config get prefix");if(e.code!==0)return ve("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{cfn(t,sfn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(ve("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return ve(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function _Ct(e){if(!hCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:k9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{Q9(e)||pCt(e,{recursive:!0});let t=await si(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
|
|
1132
|
+
${f}`}}),{messages:a}=t,l=iln(o);return oln(o,l,s,a)}},$_t=sln;Pg();var ku=X(Ae(),1),uO=X(Ae(),1);Me();Me();import{existsSync as aln,readdirSync as lln,statSync as cln}from"fs";import{join as uln}from"path";function dln(){let e=Ji.plan();if(!aln(e))return[];try{return lln(e).filter(r=>r.endsWith(".md")).map(r=>{let n=uln(e,r),i=cln(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var G_t=({onSelect:e})=>{let[t,r]=(0,uO.useState)([]),[n,i]=(0,uO.useState)(0),[o,s]=(0,uO.useState)(!1);(0,uO.useEffect)(()=>{let c=dln();r(c),s(!0)},[]);let a=[{label:"New plan",value:"__NEW_PLAN__",isNew:!0},...t.map(c=>({label:c.name,value:c.path,isNew:!1,modified:c.modified}))];Tr((c,u)=>{if(u.upArrow)i(f=>f>0?f-1:a.length-1);else if(u.downArrow)i(f=>f<a.length-1?f+1:0);else if(u.return){let f=a[n];f&&e(f.value)}else u.escape&&e("__CANCELLED__")});let l=Pe();return o?ku.createElement(N,{flexDirection:"column",marginY:1},ku.createElement(N,{marginBottom:1},ku.createElement(v,{bold:!0,color:l.claude},"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),ku.createElement(N,{marginBottom:1},ku.createElement(v,{bold:!0,color:l.claude}," Select a plan to continue, or create a new one")),a.map((c,u)=>{let f=u===n;return ku.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},ku.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),ku.createElement(v,{color:f?l.claude:l.text}," "),ku.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&ku.createElement(v,{dimColor:!0}," ","(",Oge(c.modified),")"))}),ku.createElement(N,{marginTop:1,marginLeft:2},ku.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):ku.createElement(N,{flexDirection:"column",marginY:1},ku.createElement(v,null,"Loading plan history..."))};var z_t=X(Ae(),1),fln={type:"local-jsx",name:"plan",description:()=>"Enable plan mode",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Ti.isPlanMode()?(e("Already in plan mode."),null):z_t.createElement(G_t,{onSelect:t=>{if(t==="__CANCELLED__"){e("Cancelled.");return}t&&t!=="__NEW_PLAN__"?Ti.setCurrentPlanFilePath(t):Ti.generatePlanFilePath(),Ti.setMode("plan",!0,!1),e("Enabled plan mode")}})},userFacingName(){return"plan"}},j_t=fln;Pg();var pln={type:"local",name:"auto",description:()=>"Enable auto mode",isEnabled:!0,isHidden:!1,async call(){return Ti.isAutoMode()?"Already in auto mode.":(Ti.setMode("auto",!0),"Enabled auto mode")},userFacingName(){return"auto"}},Y_t=pln;vr();import{resolve as mln}from"path";var gln={type:"local",name:"cd",description:()=>"Move this session to a new working directory",isEnabled:!0,isHidden:!1,argNames:["path"],async call(e){let t=e.trim();if(t==="")throw new Error("Missing directory path. Usage: /cd <path>");let r=Qe(),n=mln(r,t);la(n);let i=Qe();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},V_t=gln;var TCt=X(Ae(),1);var Hn=X(Ae(),1);var Yln=X(Ae(),1);var S9=X(Ae(),1),Gln=X(Z_t(),1);var X_t={info:"blue",success:"green",error:"red",warning:"yellow"},Dln={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:X_t[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:X_t[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=Qr.info),e==="success"&&(t=Qr.tick),e==="error"&&(t=Qr.cross),e==="warning"&&(t=Qr.warning),{icon:t}}},eyt=Dln;var Rln={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},tyt=Rln;var Nln={styles:{input:({isFocused:e})=>({dimColor:!e})}},ryt=Nln;var Bln={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},nyt=Bln;var Oln={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},iyt=Oln;var kln={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Qr.square,remainingCharacter:Qr.squareLightShade})},oyt=kln;var Mln={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},syt=Mln;var Qln={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},ayt=Qln;var Pln={success:"green",error:"red",warning:"yellow",info:"blue"},Lln={success:Qr.tick,error:Qr.cross,warning:Qr.warning,info:Qr.info},Fln={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Pln[e]}),message:()=>({})},config:({variant:e})=>({icon:Lln[e]})},lyt=Fln;var Uln={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Qr.line})},cyt=Uln;var Hln={styles:{value:()=>({})}},uyt=Hln;var qln={styles:{value:()=>({})}},dyt=qln;var $ln={styles:{value:()=>({})}},fyt=$ln;var zln={components:{Alert:eyt,Badge:tyt,ConfirmInput:ryt,MultiSelect:nyt,OrderedList:iyt,ProgressBar:oyt,Select:syt,Spinner:ayt,StatusMessage:lyt,UnorderedList:cyt,TextInput:uyt,EmailInput:dyt,PasswordInput:fyt}},jln=(0,S9.createContext)(zln);var po=e=>(0,S9.useContext)(jln).components[e];var Vln=X(Ae(),1);var __=X(Ae(),1);var fO=X(Ae(),1);var pyt=X(Ae(),1);var I9=Qr.line;var ZX=(0,pyt.createContext)({marker:I9});function myt({children:e}){let{marker:t}=(0,fO.useContext)(ZX),{styles:r}=po("UnorderedList");return fO.default.createElement(N,{...r.listItem()},fO.default.createElement(v,{...r.marker()},t),fO.default.createElement(N,{...r.content()},e))}var gyt=X(Ae(),1),Tve=(0,gyt.createContext)({depth:0});function Wln({children:e}){let{depth:t}=(0,__.useContext)(Tve),{styles:r,config:n}=po("UnorderedList"),i=(0,__.useMemo)(()=>({depth:t+1}),[t]),o=(0,__.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??I9}:{marker:I9}},[n,t]);return __.default.createElement(Tve.Provider,{value:i},__.default.createElement(ZX.Provider,{value:o},__.default.createElement(N,{...r.list()},e)))}Wln.Item=myt;var Jln=X(Ae(),1);var Kln=X(Ae(),1);var T9=X(Ae(),1);var pO=class extends Map{first;constructor(t){let r=[],n,i,o=0;for(let s of t){let a={...s,previous:i,next:void 0,index:o};i&&(i.next=a),n||=a,r.push([s.value,a]),o++,i=a}super(r),this.first=n}};var Ayt=X(Ae(),1);var mO=X(Ae(),1);var v9=X(Ae(),1);function hyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return v9.default.createElement(N,{...n.option({isFocused:e})},e&&v9.default.createElement(v,{...n.focusIndicator()},Qr.pointer),v9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&v9.default.createElement(v,{...n.selectedIndicator()},Qr.tick))}var hm=X(Ae(),1);import{isDeepStrictEqual as Zln}from"node:util";var Xln=(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;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let o=Math.min(e.optionMap.size,e.visibleToIndex+1),s=o-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:o}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let o=Math.max(0,e.visibleFromIndex-1),s=o+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:o,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state}},Eyt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new pO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},_yt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,hm.useReducer)(Xln,{visibleOptionCount:e,defaultValue:r,options:t},Eyt),[s,a]=(0,hm.useState)(t);t!==s&&!Zln(t,s)&&(o({type:"reset",state:Eyt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,hm.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,hm.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,hm.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,hm.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,hm.useEffect)(()=>{i.value&&i.previousValue!==i.value&&n?.(i.value)},[i.previousValue,i.value,t,n]),{focusedValue:i.focusedValue,visibleFromIndex:i.visibleFromIndex,visibleToIndex:i.visibleToIndex,value:i.value,visibleOptions:f,focusNextOption:l,focusPreviousOption:c,selectFocusedOption:u}};var yyt=({isDisabled:e=!1,state:t})=>{Tr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function gO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=_yt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});yyt({isDisabled:e,state:s});let{styles:a}=po("Select");return mO.default.createElement(N,{...a.container()},s.visibleOptions.map(l=>{let c=l.label;if(r&&l.label.includes(r)){let u=l.label.indexOf(r);c=mO.default.createElement(mO.default.Fragment,null,l.label.slice(0,u),mO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return mO.default.createElement(hyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var ecn=X(Ae(),1);var byt=X(Ae(),1);var rcn=X(Ae(),1);var XX=X(Ae(),1);var tcn=X(Ae(),1);var oBi=sr.inverse(" ");var qg=X(Ae(),1);var AO=X(Ae(),1);var Cyt=X(Ae(),1);var eee=(0,Cyt.createContext)({marker:Qr.line});function tee({children:e}){let{marker:t}=(0,AO.useContext)(eee),{styles:r}=po("OrderedList");return AO.default.createElement(N,{...r.listItem()},AO.default.createElement(v,{...r.marker()},t),AO.default.createElement(N,{...r.content()},e))}var Syt=X(Ae(),1),vve=(0,Syt.createContext)({marker:""});function $g({children:e}){let{marker:t}=(0,qg.useContext)(vve),{styles:r}=po("OrderedList"),n=0;for(let o of qg.default.Children.toArray(e))!(0,qg.isValidElement)(o)||o.type!==tee||n++;let i=String(n).length;return qg.default.createElement(N,{...r.list()},qg.default.Children.map(e,(o,s)=>{if(!(0,qg.isValidElement)(o)||o.type!==tee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return qg.default.createElement(vve.Provider,{value:{marker:l}},qg.default.createElement(eee.Provider,{value:{marker:l}},o))}))}$g.Item=tee;var icn=X(Ae(),1);var xve=X(Ae(),1);var ncn=X(Ae(),1);var kBi=sr.inverse(" ");var ocn=X(Ae(),1);var scn=X(Ae(),1);var lcn=X(Ae(),1);var ree=X(Ae(),1);var acn=X(Ae(),1);var i2i=sr.inverse(" ");var qi=X(Ae(),1);var wve=X(Ae(),1),Dve=X(Ae(),1);$5();us();Qi();Lv();ar();var Iyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function Jv(){let e=[...Iyt,...[...Iyt].reverse()],{frame:t}=pR({interval:120});return wve.createElement(N,{flexWrap:"nowrap",height:1,width:2},wve.createElement(v,{color:Pe().claude},e[t%e.length]))}var oee=X(Ae(),1);var iee=null,y_=null,nee=new Set;function Nve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=bpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Rve(){y_&&(iee=Nve(y_),nee.forEach(e=>e(iee)))}function ccn(e,t){return y_!==e&&(y_&&y_.off("resize",Rve),y_=e,iee=Nve(e),e.on("resize",Rve)),nee.add(t),()=>{nee.delete(t),nee.size===0&&y_&&(y_.off("resize",Rve),y_=null,iee=null)}}function Bve(){let{stdout:e}=fR(),[t,r]=(0,oee.useState)(()=>Nve(e));return(0,oee.useEffect)(()=>ccn(e,r),[e]),t}function hO(){return Bve()}qe();bf();Me();sh();Me();var YOi=X(Xve(),1);import{homedir as M9}from"os";import{join as yO}from"path";import{existsSync as Q9,mkdirSync as pCt,appendFileSync as fCt,readFileSync as mCt,constants as sfn,writeFileSync as afn,unlinkSync as gCt,statSync as lfn}from"fs";import{platform as ACt}from"process";import{accessSync as cfn}from"fs";var ofn="2.3.4",k9={VERSION:ofn,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"};qe();var Xv=yO(O0,".update.lock"),ufn=300*1e3;function hCt(){try{if(Q9(O0)||pCt(O0,{recursive:!0}),Q9(Xv)){let e=lfn(Xv);if(Date.now()-e.mtimeMs<ufn)return!1;try{gCt(Xv)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return afn(Xv,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function ECt(){try{Q9(Xv)&&mCt(Xv,"utf8")===`${process.pid}`&&gCt(Xv)}catch(e){ve(`Failed to release lock: ${e}`)}}async function exe(){try{let e=await si("npm -g config get prefix");if(e.code!==0)return ve("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{cfn(t,sfn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(ve("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return ve(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function _Ct(e){if(!hCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:k9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{Q9(e)||pCt(e,{recursive:!0});let t=await si(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
|
|
1133
1133
|
# npm global path
|
|
1134
1134
|
export PATH="${e}/bin:$PATH"
|
|
1135
1135
|
`;if(ACt==="win32"){let n=await si(`setx PATH "${process.env.PATH};${e}"`);if(n.code!==0)throw new Error(`Failed to update PATH on Windows: ${n.stderr}`)}else{let n=[yO(M9(),".bashrc"),yO(M9(),".bash_profile"),yO(M9(),".zshrc"),yO(M9(),".config","fish","config.fish")];for(let i of n)if(Q9(i))try{if(!mCt(i,"utf8").includes(e)){if(i.includes("fish")){let s=`
|