@dahawa/hawa-code 2.4.12 → 2.4.13
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/cli.js
CHANGED
|
@@ -675,7 +675,7 @@ globstar while`,t,p,r,f,A),this.matchOne(t.slice(p),r.slice(f),n))return this.de
|
|
|
675
675
|
`)),JUn(e,o,{encoding:r,flush:!0})}var zHt=new Ade.default({fetchMethod:e=>oFn(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});async function rGt(e){let t=CV(e);return zHt.get(t)||zHt.fetchMethod?.(t)}async function oFn(e){let t=new AbortController;setTimeout(()=>{t.abort()},1e3);let r=await S2t(e,t.signal,15),n=0;for(let o of r)AB(o)==="CRLF"&&n++;return n>3?"CRLF":"LF"}function nGt(e,t,r){if(e.has(t))return e.get(t);let n=r();return e.set(t,n),n}var iFn=new Ade.default({fetchMethod:e=>oGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function zm(e){let t=CV(e);return nGt(iFn,t,()=>oGt(t))}function oGt(e){let r=Buffer.alloc(4096),n;try{n=WHt(e,"r");let o=KHt(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&&JHt(n)}}var sFn=new Ade.default({fetchMethod:e=>iGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function AB(e){let t=CV(e);return nGt(sFn,t,()=>iGt(t))}function iGt(e,t="utf8"){try{if(!ZHt(e).isFile())return"LF";let n=Buffer.alloc(4096),o=WHt(e,"r"),i=KHt(o,n,0,4096,0);JHt(o);let s=n.toString(t,0,i),a=0,c=0;for(let l=0;l<s.length;l++)s[l]===`
|
|
676
676
|
`&&(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 zF(e){let t=XHt(e)?e:CV(Be(),e);return t.endsWith(" AM.png")?t.replace(" AM.png","\u202FAM.png"):t.endsWith(" PM.png")?t.replace(" PM.png","\u202FPM.png"):t}function vPe(e){return e?XHt(e)?e:CV(Be(),e):void 0}function sGt(e){try{let t=vPe(e),r=t?tFn(Be(),t):void 0;return{absolutePath:t,relativePath:r}}catch(t){return X("getAbsoluteAndRelativePaths error ",t),{absolutePath:null,relativePath:null}}}function Ede(e){try{let t=rFn(e),r=VHt(e,YHt(e));if(!ZUn(t))return;let i=XUn(t).filter(s=>VHt(s,YHt(s))===r&&nFn(t,s)!==e)[0];return i||void 0}catch(t){Se(`Error finding similar file for ${e}: ${t}`);return}}function xPe(){let e=process.env.HAWA_CODE_COMPACT_LINE_PREFIX;return!(e==="0"||e==="false")}function rw({content:e,startLine:t}){if(!e)return"";let r=e.split(/\r?\n/);return xPe()?r.map((n,o)=>`${o+t} ${n}`).join(`
|
|
677
677
|
`):r.map((n,o)=>{let i=String(o+t);return i.length>=6?`${i}\u2192${n}`:`${i.padStart(6," ")}\u2192${n}`}).join(`
|
|
678
|
-
`)}function aGt(e){try{let t=eFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function Zx(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function uFn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function wPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,cGt.gt)(MACRO.VERSION,o))&&(i=Pue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&uFn()},[s,r]),!r&&!s)return null;let a=aFn(cFn(e,Ci)),c=aGt(e),l=!a&&!c,u=BF.isEnabled&&!hr().shiftEnterKeyBindingInstalled,d=ee();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:ee().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:ee().secondaryText},"\u2022 ",p))))),e===lFn()&&Ki.createElement(C,{color:ee().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 KF=F(ne(),1);var WF=F(ne(),1);var IV=F(ne(),1);function RPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return IV.default.createElement(x,{...o.option({isFocused:e})},e&&IV.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),IV.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&IV.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var Wm=F(ne(),1);import{isDeepStrictEqual as dFn}from"node:util";var vV=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:NPe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var fFn=(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}}},DPe=e=>e.flatMap(t=>{if("options"in t){let r=DPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),lGt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=DPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new vV(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}},OPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=DPe(t),[a,c]=(0,Wm.useReducer)(fFn,{visibleOptionCount:e,defaultValue:r,options:t},lGt),[l,u]=(0,Wm.useState)(s);s!==l&&!dFn(s,l)&&(c({type:"reset",state:lGt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Wm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Wm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Wm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Wm.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Wm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Wm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Wm.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 BPe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var NPe=e=>`HEADER-${e.optionValues.join(",")}`;function vC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=OPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});BPe({isDisabled:e,state:c});let{styles:l}=ms("Select");return WF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:NPe(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=WF.default.createElement(WF.default.Fragment,null,h.slice(0,S),WF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return WF.default.createElement(RPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function uGt({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),KF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:ee().secondaryBorder},KF.default.createElement(x,{marginBottom:1,flexDirection:"column"},KF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),KF.default.createElement(x,null,KF.default.createElement(vC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Lp=F(ne(),1);Ge();sr();Cy();var gFn="2.4.12",Iy={VERSION:gFn,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 PPe=46,pGt=["(\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 _de({isDefaultModel:e=!1}){let t=Math.max(PPe,Be().length+12),r=ee(),n=pGt[Math.floor(Math.random()*pGt.length)];return Lp.createElement(x,{flexDirection:"column"},Lp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Lp.createElement(C,null,Lp.createElement(C,null,n)," Welcome to"," ",Lp.createElement(C,{bold:!0},et),Lp.createElement(C,{color:r.secondaryText}," v",Iy.VERSION)),Lp.createElement(Lp.Fragment,null,Lp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Lp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Lp.createElement(C,{color:r.secondaryText},"cwd: ",Be()),Lp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Lp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var _S=F(ne(),1);Re();var QJ=F(ne(),1);import{randomUUID as gS}from"crypto";$s();Re();nr();sr();Re();Ge();import{existsSync as RC,readdirSync as Q4n,statSync as U4n}from"fs";import{join as sw,relative as F4n}from"path";import{homedir as F$t}from"os";import{platform as H4n}from"process";import{readFile as aw}from"fs/promises";sr();AE();Ar();import{join as yFn,sep as TFn}from"path";function Qp(){if(!Km())return!1;try{let e=nt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Jm(){return(yFn(Be(),".hcode","team-memory")+TFn).normalize("NFC")}function hE(e){let t=e.normalize("NFC"),r=Jm();return t.startsWith(r)}var H$t=F(kV(),1);Xo();var P$t=F(kV(),1);sr();Ge();Re();Bp();import{readFile as M$t}from"fs/promises";import{existsSync as eLe,readdirSync as M4n,statSync as k4n}from"fs";import{join as tLe,relative as L$t}from"path";import{homedir as P4n}from"os";function k$t(e){try{let t=(0,P$t.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 L4n(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 rLe(e){let t=[];try{if(!eLe(e))return t;let r=M4n(e);for(let n of r){let o=tLe(e,n),i=k4n(o);i.isDirectory()?t.push(...rLe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function Q$t(){let e=[];try{let t=tLe(P4n(),Fn,"rules");if(eLe(t)){let r=rLe(t);for(let n of r)try{let o=await M$t(n,"utf-8"),{paths:i,content:s}=k$t(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=tLe(Be(),Fn,"rules");if(eLe(t)){let r=rLe(t);for(let n of r)try{let o=await M$t(n,"utf-8"),{paths:i,content:s}=k$t(o);i.length>0&&e.push({filePath:L$t(Be(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function U$t(e,t){e=rle(e);let r=rle(Be()),n=e.startsWith(r)?L$t(r,e):e;return t.filter(o=>L4n(n,o.paths))}var G4n=`# hawaCodeMd
|
|
678
|
+
`)}function aGt(e){try{let t=eFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function Zx(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function uFn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function wPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,cGt.gt)(MACRO.VERSION,o))&&(i=Pue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&uFn()},[s,r]),!r&&!s)return null;let a=aFn(cFn(e,Ci)),c=aGt(e),l=!a&&!c,u=BF.isEnabled&&!hr().shiftEnterKeyBindingInstalled,d=ee();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:ee().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:ee().secondaryText},"\u2022 ",p))))),e===lFn()&&Ki.createElement(C,{color:ee().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 KF=F(ne(),1);var WF=F(ne(),1);var IV=F(ne(),1);function RPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return IV.default.createElement(x,{...o.option({isFocused:e})},e&&IV.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),IV.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&IV.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var Wm=F(ne(),1);import{isDeepStrictEqual as dFn}from"node:util";var vV=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:NPe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var fFn=(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}}},DPe=e=>e.flatMap(t=>{if("options"in t){let r=DPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),lGt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=DPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new vV(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}},OPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=DPe(t),[a,c]=(0,Wm.useReducer)(fFn,{visibleOptionCount:e,defaultValue:r,options:t},lGt),[l,u]=(0,Wm.useState)(s);s!==l&&!dFn(s,l)&&(c({type:"reset",state:lGt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Wm.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Wm.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Wm.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Wm.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Wm.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Wm.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Wm.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 BPe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var NPe=e=>`HEADER-${e.optionValues.join(",")}`;function vC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=OPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});BPe({isDisabled:e,state:c});let{styles:l}=ms("Select");return WF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:NPe(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=WF.default.createElement(WF.default.Fragment,null,h.slice(0,S),WF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return WF.default.createElement(RPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function uGt({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),KF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:ee().secondaryBorder},KF.default.createElement(x,{marginBottom:1,flexDirection:"column"},KF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),KF.default.createElement(x,null,KF.default.createElement(vC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Lp=F(ne(),1);Ge();sr();Cy();var gFn="2.4.13",Iy={VERSION:gFn,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 PPe=46,pGt=["(\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 _de({isDefaultModel:e=!1}){let t=Math.max(PPe,Be().length+12),r=ee(),n=pGt[Math.floor(Math.random()*pGt.length)];return Lp.createElement(x,{flexDirection:"column"},Lp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Lp.createElement(C,null,Lp.createElement(C,null,n)," Welcome to"," ",Lp.createElement(C,{bold:!0},et),Lp.createElement(C,{color:r.secondaryText}," v",Iy.VERSION)),Lp.createElement(Lp.Fragment,null,Lp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Lp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Lp.createElement(C,{color:r.secondaryText},"cwd: ",Be()),Lp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Lp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var _S=F(ne(),1);Re();var QJ=F(ne(),1);import{randomUUID as gS}from"crypto";$s();Re();nr();sr();Re();Ge();import{existsSync as RC,readdirSync as Q4n,statSync as U4n}from"fs";import{join as sw,relative as F4n}from"path";import{homedir as F$t}from"os";import{platform as H4n}from"process";import{readFile as aw}from"fs/promises";sr();AE();Ar();import{join as yFn,sep as TFn}from"path";function Qp(){if(!Km())return!1;try{let e=nt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Jm(){return(yFn(Be(),".hcode","team-memory")+TFn).normalize("NFC")}function hE(e){let t=e.normalize("NFC"),r=Jm();return t.startsWith(r)}var H$t=F(kV(),1);Xo();var P$t=F(kV(),1);sr();Ge();Re();Bp();import{readFile as M$t}from"fs/promises";import{existsSync as eLe,readdirSync as M4n,statSync as k4n}from"fs";import{join as tLe,relative as L$t}from"path";import{homedir as P4n}from"os";function k$t(e){try{let t=(0,P$t.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 L4n(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 rLe(e){let t=[];try{if(!eLe(e))return t;let r=M4n(e);for(let n of r){let o=tLe(e,n),i=k4n(o);i.isDirectory()?t.push(...rLe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function Q$t(){let e=[];try{let t=tLe(P4n(),Fn,"rules");if(eLe(t)){let r=rLe(t);for(let n of r)try{let o=await M$t(n,"utf-8"),{paths:i,content:s}=k$t(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=tLe(Be(),Fn,"rules");if(eLe(t)){let r=rLe(t);for(let n of r)try{let o=await M$t(n,"utf-8"),{paths:i,content:s}=k$t(o);i.length>0&&e.push({filePath:L$t(Be(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function U$t(e,t){e=rle(e);let r=rle(Be()),n=e.startsWith(r)?L$t(r,e):e;return t.filter(o=>L4n(n,o.paths))}var G4n=`# hawaCodeMd
|
|
679
679
|
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 $4n(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}):
|
|
680
680
|
|
|
681
681
|
${o.content}`}).join(`
|
|
@@ -773,7 +773,7 @@ data: ${JSON.stringify(H)}
|
|
|
773
773
|
Stack trace: `+d.stack)),new Response(c.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var uge=null,L4e=!1;function Ioo(){uge=null,L4e=!1}kt.on("proxy:changed",Ioo);function voo(){if(L4e)return uge;if(L4e=!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&&(uge=new KZt.ProxyAgent({uri:e}),zt(`[proxy] using proxy: ${e}`)),uge}function xoo(){let e=voo();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function fge(e){let t=e||process.env.API_TYPE,r=xoo();switch(t){case"openai":return yoo(r);case"openai-responses":return Too(r);case"gemini":return boo(r);default:return Coo(r)}}Cy();var ZZt=F(ne(),1);function JZt(e,t){let r=[],n=Math.max(1,Math.floor(t)),o="",i=0;for(let s of e){let a=woo(s);o&&i+a>n?(r.push(o),o=s,i=a):(o+=s,i+=a)}return o&&r.push(o),r}function woo(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Roo(t)?0:Noo(t)?2:1}function Roo(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function Noo(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 w0(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 F4e(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 KC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function pge(e,t,r){let n=[];return typeof e=="number"&&n.push(F4e(e)),typeof t=="number"&&n.push(`${t} ${t===1?"turn":"turns"}`),typeof r=="number"&&n.push(`${KC(r)} tokens`),n.length>0?` (${n.join(" \xB7 ")})`:""}Re();$s();var eu={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function mge(e,t){eu.totalCost+=e,eu.totalAPIDuration+=t}function gge(e,t){eu.inputTokens+=e,eu.outputTokens+=t,kt.emit("token:change",{inputTokens:eu.inputTokens,outputTokens:eu.outputTokens})}function Age(e,t){eu.cacheCreationTokens+=e,eu.cacheReadTokens+=t}function fM(){return{inputTokens:eu.inputTokens,outputTokens:eu.outputTokens,cacheCreationTokens:eu.cacheCreationTokens,cacheReadTokens:eu.cacheReadTokens}}function h9(){return eu.totalCost}function hge(){return Date.now()-eu.startTime}function XZt(){return eu.totalAPIDuration}function eXt(e){eu.currentContextTokens=e}function tXt(){return eu.currentContextTokens}function Doo(){return St.grey(`Total duration (API): ${w0(eu.totalAPIDuration)}
|
|
774
774
|
Total duration (wall): ${w0(hge())}`)}function rXt(){(0,ZZt.useEffect)(()=>{let e=()=>{process.stdout.write(`
|
|
775
775
|
`+Doo()+`
|
|
776
|
-
`);let t=Xn();ps({...t,lastCost:eu.totalCost,lastAPIDuration:eu.totalAPIDuration,lastDuration:hge(),lastSessionId:r0})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Re();Ge();Ge();var H4e="2.4.
|
|
776
|
+
`);let t=Xn();ps({...t,lastCost:eu.totalCost,lastAPIDuration:eu.totalAPIDuration,lastDuration:hge(),lastSessionId:r0})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Re();Ge();Ge();var H4e="2.4.13";globalThis.MACRO={VERSION:H4e,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 Ege=process.env.HAWA_CODE_USER_AGENT||`${Ii}/${H4e} (${process.env.USER_TYPE})`;Re();Re();nr();function jf(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]=koo(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]=Ooo(n,r));return}}}),t}function Ooo(e,t){return{...e,message:{...e.message,content:Moo(e.message.content,Boo(t.content.content))}}}function Boo(e){return`
|
|
777
777
|
<system-reminder>
|
|
778
778
|
The user sent the following message:
|
|
779
779
|
${e}
|
|
@@ -1089,7 +1089,7 @@ You are powered by the model ${e}.`}async function jM(){return uC()?`gitStatus:
|
|
|
1089
1089
|
Recent commits:
|
|
1090
1090
|
${(await jPt()).join(`
|
|
1091
1091
|
`)}
|
|
1092
|
-
`:""}function lar(){return ct.isPowerShellToolEnable()?Yb:Df}var zM=["off","low","medium","high"],xAo={low:4e3,medium:1e4,high:32e3};function e7(e){return zM.includes(e)?e:"medium"}function wAo(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-mythos-preview")}function RAo(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-opus-4-6")||t.includes("claude-sonnet-4-6")||t.includes("claude-mythos-preview")}function dar(e,t){let r=e7(t);if(r!=="off"){if(RAo(e)){let n={type:"adaptive"};return wAo(e)&&(n.display="summarized"),n}return{budget_tokens:xAo[r],type:"enabled"}}}function far(e){return e&&"budget_tokens"in e?e.budget_tokens:0}var iR="API Error",fqe="Prompt is too long",pqe="Credit balance is too low",tEe="Invalid API key \xB7 Please run /login",Vy="(no content)",JM=!process.env.DISABLE_PROMPT_CACHING,mar=.8,gar=4,DAo=1,OAo=.08,BAo=3,MAo=15,kAo=3.75,PAo=.3,r7=1;function mqe(){return{user_id:`${ule()}_${r0}`}}async function gqe(e){let t=Date.now(),r;for await(let o of e)o.type==="message_start"&&(r=Date.now()-t);return{...await e.finalMessage(),ttftMs:r}}var Xhe=new Map;function ZM(e){let t=e||"default";if(Xhe.has(t))return Xhe.get(t);let r,n,o;if(e){let c=bo.getModelSourceConfig(e);c&&(r=c.base_url,n=c.auth_token,o=c.api_type)}let i={"x-app":"cli","User-Agent":Ege};n&&(i.Authorization=`Bearer ${n}`);let s={defaultHeaders:i,maxRetries:0,timeout:parseInt(process.env.API_TIMEOUT_MS||String(60*1e3),10)},a=new c4.default({baseURL:r,apiKey:n,dangerouslyAllowBrowser:!0,fetch:fge(o),...s});return Xhe.set(t,a),a}function Aar(){Xhe.clear()}kt.on("proxy:changed",Aar);kt.on("api-key:changed",Aar);function LAo(e,t=!1){return t?typeof e.message.content=="string"?{role:"user",content:[{type:"text",text:e.message.content,...JM?{cache_control:{type:"ephemeral"}}:{}}]}:{role:"user",content:e.message.content.map((r,n)=>({...r,...n===e.message.content.length-1?JM?{cache_control:{type:"ephemeral"}}:{}:{}}))}:{role:"user",content:e.message.content}}function QAo(e,t=!1){return t?typeof e.message.content=="string"?{role:"assistant",content:[{type:"text",text:e.message.content,...JM?{cache_control:{type:"ephemeral"}}:{}}]}:{role:"assistant",content:e.message.content.map((r,n)=>({...r,...n===e.message.content.length-1&&r.type!=="thinking"&&r.type!=="redacted_thinking"&&r.type!=="tool_use"?JM?{cache_control:{type:"ephemeral"}}:{}:{}}))}:{role:"assistant",content:e.message.content}}function eEe(e){let t=e[0]||"",r=e.slice(1);return[t,r.join(`
|
|
1092
|
+
`:""}function lar(){return ct.isPowerShellToolEnable()?Yb:Df}var zM=["off","low","medium","high"],xAo={low:4e3,medium:1e4,high:32e3};function e7(e){return zM.includes(e)?e:"medium"}function wAo(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-mythos-preview")}function RAo(e){let t=e.toLowerCase();return t.includes("claude-opus-4-8")||t.includes("claude-opus-4-7")||t.includes("claude-opus-4-6")||t.includes("claude-sonnet-4-6")||t.includes("claude-mythos-preview")}function dar(e,t){let r=e7(t);if(r!=="off"){if(RAo(e)){let n={type:"adaptive"};return wAo(e)&&(n.display="summarized"),n}return{budget_tokens:xAo[r],type:"enabled"}}}function far(e){return e&&"budget_tokens"in e?e.budget_tokens:0}var iR="API Error",fqe="Prompt is too long",pqe="Credit balance is too low",tEe="Invalid API key \xB7 Please run /login",Vy="(no content)",JM=!process.env.DISABLE_PROMPT_CACHING,mar=.8,gar=4,DAo=1,OAo=.08,BAo=3,MAo=15,kAo=3.75,PAo=.3,r7=1;function mqe(){return{user_id:`${ule()}_${r0}`}}async function gqe(e){let t=Date.now(),r;for await(let o of e)o.type==="message_start"&&(r=Date.now()-t);return{...await e.finalMessage(),ttftMs:r}}var Xhe=new Map;function ZM(e){let t=e||"default";if(Xhe.has(t))return Xhe.get(t);let r,n,o;if(e){let c=bo.getModelSourceConfig(e);c&&(r=c.base_url,n=c.auth_token,o=c.api_type)}let i={"x-app":"cli","User-Agent":Ege};n&&(i.Authorization=`Bearer ${n}`);let s={defaultHeaders:i,maxRetries:0,timeout:parseInt(process.env.API_TIMEOUT_MS||String(60*1e3),10)},a=new c4.default({baseURL:r,apiKey:n,dangerouslyAllowBrowser:!0,fetch:fge(o),...s});return Xhe.set(t,a),a}function Aar(){Xhe.clear()}kt.on("proxy:changed",Aar);kt.on("api-key:changed",Aar);function LAo(e,t=!1){return t?typeof e.message.content=="string"?{role:"user",content:[{type:"text",text:e.message.content,...JM?{cache_control:{type:"ephemeral"}}:{}}]}:{role:"user",content:e.message.content.map((r,n)=>({...r,...n===e.message.content.length-1?JM?{cache_control:{type:"ephemeral"}}:{}:{}}))}:{role:"user",content:e.message.content}}function QAo(e,t=!1){return t?typeof e.message.content=="string"?{role:"assistant",content:[{type:"text",text:e.message.content,...JM?{cache_control:{type:"ephemeral"}}:{}}]}:{role:"assistant",content:e.message.content.map((r,n)=>({...r,...n===e.message.content.length-1&&r.type!=="thinking"&&r.type!=="redacted_thinking"&&r.type!=="tool_use"?JM?{cache_control:{type:"ephemeral"}}:{}:{}}))}:{role:"assistant",content:e.message.content}}function eEe(e){let t=e[0]||"",r=e.slice(1);return[t,r.join(`
|
|
1093
1093
|
`)].filter(Boolean)}async function jc(e,t,r,n,o,i){return await cqe(e,()=>UAo(e,t,r,n,o,i))}async function har(e,t,r,n,o=!1){let i=[...e],s=[],a=Object.entries(t).length>0;if(a){let c;if(n&&n.length>0)try{let d=Yc(n);eXt(d);let p=await nR(),f=Math.round(d/p*100),A=Math.max(0,p-d);c={currentTokens:d,contextLimit:p,percentUsed:f,tokensRemaining:A}}catch{}let l=await W8e(a,{...r,contextInfo:c});l.length>0&&(s=l);let u=await Dde();s.push({foot:!1,content:`<system-reminder>
|
|
1094
1094
|
As you answer the user's questions, you can use the following context:
|
|
1095
1095
|
${u}
|
package/hands.js
CHANGED
|
@@ -756,7 +756,7 @@ data: ${JSON.stringify(z)}
|
|
|
756
756
|
`);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_${FB()}`,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:`
|
|
757
757
|
|
|
758
758
|
[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 _6r(`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"}}},obe=new ibe;var Qmt=X(Omt(),1);ar();us();function Pg(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function kmt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function Oen(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function ken(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function Men(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 Q5(e,t,r){Tz(t,e),vz(t,Men(e,r),r)}function x2(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 P5(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function OIe(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 kIe(e){let t;try{typeof e=="string"?t=new _v(e):e instanceof _v?t=e:t=new _v(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 LZ(e,t){let r=typeof e=="string"?e:e instanceof _v?e.toString():e.url,n;try{n=new _v(r).pathname}catch{return!1}return Mmt.some(i=>n.includes(i))&&(t.method==="POST"||t.method==="post")}function Qen(e){return async(t,r)=>{if(!LZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await FK.transformRequestOut(n),o=kIe(t)+"/chat/completions",s=Pg(r.headers),a=s.authorization??s.Authorization??"";Oen(i,kmt(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 J(`OpenAI Chat Completions API error: ${l.status}`,{url:o,errorResponse:_}),OIe("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:Pg(l.headers)},openai:{request:{body:i},response:{}}};if(!c){let _=await l.text(),b=new Response(_,{status:l.status,statusText:l.statusText,headers:P5(l.headers)}),S=await FK.transformResponseIn(b,n),I=await S.text();try{Q5({...f,openai:{...f.openai,response:{body:JSON.parse(_)}},response:{...f.response,body:JSON.parse(I)}},u)}catch(w){J("\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=x2(l.body),m=new Response(g.stream,{status:l.status,statusText:l.statusText,headers:P5(l.headers)}),A=await FK.transformResponseIn(m,n),E=x2(A.body);return Promise.all([g.done,E.done]).then(async([_,b])=>{try{Q5({...f,openai:{...f.openai,response:{body:await cot(_)}},response:{...f.response,body:await wU(b)}},u)}catch(S){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+S?.stack)}}).catch(_=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+_)),new Response(E.stream,{status:A.status,statusText:A.statusText,headers:A.headers})}}function Pen(e){return async(t,r)=>{if(!LZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await UK.transformRequestOut(n),o=Pg(r.headers);ken(i,kmt(o));let s=JSON.stringify(i),l=kIe(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 J(`OpenAI Responses API error: ${u.status} ${u.statusText}`,{url:l,status:u.status,errorResponse:S}),OIe("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:Pg(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:P5(u.headers)}),w=await UK.transformResponseIn(I,n),O=await w.text();try{Q5({...m,openai:{...m.openai,response:{body:JSON.parse(S)}},response:{...m.response,body:JSON.parse(O)}},g,"responses")}catch(P){J("\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=x2(u.body),E=new Response(A.stream,{status:u.status,statusText:u.statusText,headers:P5(u.headers)}),_=await UK.transformResponseIn(E,n),b=x2(_.body);return Promise.all([A.done,b.done]).then(async([S,I])=>{try{Q5({...m,openai:{...m.openai,response:{body:await lot(S)}},response:{...m.response,body:await wU(I)}},g,"responses")}catch(w){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+w?.stack)}}).catch(S=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+S)),new Response(b.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function Len(e){return async(t,r)=>{if(!LZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=Pg(r.headers),o=await obe.transformRequestOut(n),s=JSON.stringify(o),a=kIe(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 J("gemini request error:",b),b}if(!c.ok){let b=await c.text();return J(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:b}),OIe("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:Pg(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:Pg(c.headers)},openai:{request:{body:o},response:{}}},m=x2(c.body),A=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:P5(c.headers)}),E=await obe.transformResponseIn(A),_=x2(E.body);return Promise.all([m.done,_.done]).then(async([b,S])=>{try{let I=u?uot(b):JSON.parse(b),w=u?await wU(S):JSON.parse(S);Q5({...g,openai:{...g.openai,response:{body:I}},response:{...g.response,body:w}},f)}catch(I){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+I?.stack)}}).catch(b=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+b)),new Response(_.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function Fen(e){return async(t,r)=>{if(!LZ(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=Pg(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();J(`API error response: ${a.status} ${a.statusText}`,{url:typeof t=="string"?t:t instanceof _v?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 _v?t.toString():t.url,method:r.method,headers:Pg(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:Pg(a.headers)}};return(async()=>{if(c){let m=await a.text();u.response.body=await wU(m)}else u.response.body=await a.json();let g=Pg(r.headers)["x-agent-id"];Tz(g,u),vz(g,{request:u.request.body.messages,response:u.response.body.content})})().catch(f=>J(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
|
|
759
|
-
Stack trace: `+f.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var PZ=null,BIe=!1;function Uen(){PZ=null,BIe=!1}pr.on("proxy:changed",Uen);function Hen(){if(BIe)return PZ;if(BIe=!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&&(PZ=new Qmt.ProxyAgent({uri:e}),Kt(`[proxy] using proxy: ${e}`)),PZ}function $en(){let e=Hen();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function FZ(e){let t=e||process.env.API_TYPE,r=$en();switch(t){case"openai":return Qen(r);case"openai-responses":return Pen(r);case"gemini":return Len(r);default:return Fen(r)}}ph();var jen=X(Ae(),1);function Pmt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=qen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function qen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Gen(t)?0:zen(t)?2:1}function Gen(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function zen(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 l_(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 YC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}ke();us();var fc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function UZ(e,t){fc.totalCost+=e,fc.totalAPIDuration+=t}function HZ(e,t){fc.inputTokens+=e,fc.outputTokens+=t,pr.emit("token:change",{inputTokens:fc.inputTokens,outputTokens:fc.outputTokens})}function $Z(e,t){fc.cacheCreationTokens+=e,fc.cacheReadTokens+=t}function MIe(){return{inputTokens:fc.inputTokens,outputTokens:fc.outputTokens,cacheCreationTokens:fc.cacheCreationTokens,cacheReadTokens:fc.cacheReadTokens}}function Lmt(){return fc.totalCost}function Fmt(){return Date.now()-fc.startTime}function Umt(){return fc.totalAPIDuration}function Hmt(e){fc.currentContextTokens=e}function $mt(){return fc.currentContextTokens}ke();$e();$e();var QIe="2.4.
|
|
759
|
+
Stack trace: `+f.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var PZ=null,BIe=!1;function Uen(){PZ=null,BIe=!1}pr.on("proxy:changed",Uen);function Hen(){if(BIe)return PZ;if(BIe=!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&&(PZ=new Qmt.ProxyAgent({uri:e}),Kt(`[proxy] using proxy: ${e}`)),PZ}function $en(){let e=Hen();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function FZ(e){let t=e||process.env.API_TYPE,r=$en();switch(t){case"openai":return Qen(r);case"openai-responses":return Pen(r);case"gemini":return Len(r);default:return Fen(r)}}ph();var jen=X(Ae(),1);function Pmt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=qen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function qen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Gen(t)?0:zen(t)?2:1}function Gen(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function zen(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 l_(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 YC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}ke();us();var fc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function UZ(e,t){fc.totalCost+=e,fc.totalAPIDuration+=t}function HZ(e,t){fc.inputTokens+=e,fc.outputTokens+=t,pr.emit("token:change",{inputTokens:fc.inputTokens,outputTokens:fc.outputTokens})}function $Z(e,t){fc.cacheCreationTokens+=e,fc.cacheReadTokens+=t}function MIe(){return{inputTokens:fc.inputTokens,outputTokens:fc.outputTokens,cacheCreationTokens:fc.cacheCreationTokens,cacheReadTokens:fc.cacheReadTokens}}function Lmt(){return fc.totalCost}function Fmt(){return Date.now()-fc.startTime}function Umt(){return fc.totalAPIDuration}function Hmt(e){fc.currentContextTokens=e}function $mt(){return fc.currentContextTokens}ke();$e();$e();var QIe="2.4.13";globalThis.MACRO={VERSION:QIe,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 qZ=process.env.HAWA_CODE_USER_AGENT||`${Ki}/${QIe} (${process.env.USER_TYPE})`;import{randomUUID as hy}from"crypto";us();ke();Zt();_r();ke();$e();import{existsSync as p_,readdirSync as min,statSync as gin}from"fs";import{join as KC,relative as Ain}from"path";import{homedir as pht}from"os";import{platform as hin}from"process";import{readFile as JC}from"fs/promises";_r();Lg();ar();import{join as Jen,sep as Zen}from"path";function mm(){if(!pm())return!1;try{let e=lt();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function jf(){return(Jen(Be(),".hcode","team-memory")+Zen).normalize("NFC")}function u_(e){let t=e.normalize("NFC"),r=jf();return t.startsWith(r)}var mht=X(j5(),1);Qi();var cht=X(j5(),1);_r();$e();ke();Su();import{readFile as aht}from"fs/promises";import{existsSync as XIe,readdirSync as uin,statSync as din}from"fs";import{join as eTe,relative as uht}from"path";import{homedir as fin}from"os";function lht(e){try{let t=(0,cht.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 pin(e,t){return t.length===0?!0:t.some(r=>{try{return lc(e,r,{matchBase:!0,dot:!0})}catch(n){return ve(n),!1}})}function tTe(e){let t=[];try{if(!XIe(e))return t;let r=uin(e);for(let n of r){let i=eTe(e,n),o=din(i);o.isDirectory()?t.push(...tTe(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){ve(r)}return t}async function dht(){let e=[];try{let t=eTe(fin(),Xr,"rules");if(XIe(t)){let r=tTe(t);for(let n of r)try{let i=await aht(n,"utf-8"),{paths:o,content:s}=lht(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=eTe(Be(),Xr,"rules");if(XIe(t)){let r=tTe(t);for(let n of r)try{let i=await aht(n,"utf-8"),{paths:o,content:s}=lht(i);o.length>0&&e.push({filePath:uht(Be(),n),content:s,paths:o,isProjectRule:!0})}catch(i){ve(i)}}}catch(t){ve(t)}return e}function fht(e,t){e=CV(e);let r=CV(Be()),n=e.startsWith(r)?uht(r,e):e;return t.filter(i=>pin(n,i.paths))}var Ein=`# hawaCodeMd
|
|
760
760
|
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 _in(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}):
|
|
761
761
|
|
|
762
762
|
${i.content}`}).join(`
|
|
@@ -1128,7 +1128,7 @@ You are powered by the model ${e}.`}async function Zv(){return Y5()?`gitStatus:
|
|
|
1128
1128
|
<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:EI(c.inputSchema));return{name:c.name,description:`${u}
|
|
1129
1129
|
|
|
1130
1130
|
Schema:
|
|
1131
|
-
${f}`}}),{messages:a}=t,l=Gln(o);return zln(o,l,s,a)}},uyt=jln;Hg();var Mu=X(Ae(),1),pO=X(Ae(),1);ke();ke();import{existsSync as Yln,readdirSync as Vln,statSync as Wln}from"fs";import{join as Kln}from"path";function Jln(){let e=Ji.plan();if(!Yln(e))return[];try{return Vln(e).filter(r=>r.endsWith(".md")).map(r=>{let n=Kln(e,r),i=Wln(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var dyt=({onSelect:e})=>{let[t,r]=(0,pO.useState)([]),[n,i]=(0,pO.useState)(0),[o,s]=(0,pO.useState)(!1);(0,pO.useEffect)(()=>{let c=Jln();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}))];vr((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?Mu.createElement(N,{flexDirection:"column",marginY:1},Mu.createElement(N,{marginBottom:1},Mu.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")),Mu.createElement(N,{marginBottom:1},Mu.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 Mu.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},Mu.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),Mu.createElement(v,{color:f?l.claude:l.text}," "),Mu.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&Mu.createElement(v,{dimColor:!0}," ","(",Yge(c.modified),")"))}),Mu.createElement(N,{marginTop:1,marginLeft:2},Mu.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):Mu.createElement(N,{flexDirection:"column",marginY:1},Mu.createElement(v,null,"Loading plan history..."))};var fyt=X(Ae(),1),Zln={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):fyt.createElement(dyt,{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"}},pyt=Zln;Hg();var Xln={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"}},myt=Xln;_r();import{resolve as ecn}from"path";var tcn={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=Be(),n=ecn(r,t);la(n);let i=Be();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},gyt=tcn;var jCt=X(Ae(),1);var Hn=X(Ae(),1);var Ocn=X(Ae(),1);var R9=X(Ae(),1),Rcn=X(_yt(),1);var yyt={info:"blue",success:"green",error:"red",warning:"yellow"},gcn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:yyt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:yyt[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}}},byt=gcn;var Acn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},Cyt=Acn;var hcn={styles:{input:({isFocused:e})=>({dimColor:!e})}},Syt=hcn;var Ecn={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})}},Iyt=Ecn;var _cn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},Tyt=_cn;var ycn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Qr.square,remainingCharacter:Qr.squareLightShade})},vyt=ycn;var bcn={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})}},xyt=bcn;var Ccn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},wyt=Ccn;var Scn={success:"green",error:"red",warning:"yellow",info:"blue"},Icn={success:Qr.tick,error:Qr.cross,warning:Qr.warning,info:Qr.info},Tcn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Scn[e]}),message:()=>({})},config:({variant:e})=>({icon:Icn[e]})},Dyt=Tcn;var vcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Qr.line})},Ryt=vcn;var xcn={styles:{value:()=>({})}},Nyt=xcn;var wcn={styles:{value:()=>({})}},Byt=wcn;var Dcn={styles:{value:()=>({})}},Oyt=Dcn;var Ncn={components:{Alert:byt,Badge:Cyt,ConfirmInput:Syt,MultiSelect:Iyt,OrderedList:Tyt,ProgressBar:vyt,Select:xyt,Spinner:wyt,StatusMessage:Dyt,UnorderedList:Ryt,TextInput:Nyt,EmailInput:Byt,PasswordInput:Oyt}},Bcn=(0,R9.createContext)(Ncn);var po=e=>(0,R9.useContext)(Bcn).components[e];var kcn=X(Ae(),1);var C_=X(Ae(),1);var gO=X(Ae(),1);var kyt=X(Ae(),1);var N9=Qr.line;var oee=(0,kyt.createContext)({marker:N9});function Myt({children:e}){let{marker:t}=(0,gO.useContext)(oee),{styles:r}=po("UnorderedList");return gO.default.createElement(N,{...r.listItem()},gO.default.createElement(v,{...r.marker()},t),gO.default.createElement(N,{...r.content()},e))}var Qyt=X(Ae(),1),Fve=(0,Qyt.createContext)({depth:0});function Mcn({children:e}){let{depth:t}=(0,C_.useContext)(Fve),{styles:r,config:n}=po("UnorderedList"),i=(0,C_.useMemo)(()=>({depth:t+1}),[t]),o=(0,C_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??N9}:{marker:N9}},[n,t]);return C_.default.createElement(Fve.Provider,{value:i},C_.default.createElement(oee.Provider,{value:o},C_.default.createElement(N,{...r.list()},e)))}Mcn.Item=Myt;var Pcn=X(Ae(),1);var Qcn=X(Ae(),1);var B9=X(Ae(),1);var AO=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 Pyt=X(Ae(),1);var hO=X(Ae(),1);var O9=X(Ae(),1);function Lyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return O9.default.createElement(N,{...n.option({isFocused:e})},e&&O9.default.createElement(v,{...n.focusIndicator()},Qr.pointer),O9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&O9.default.createElement(v,{...n.selectedIndicator()},Qr.tick))}var ym=X(Ae(),1);import{isDeepStrictEqual as Lcn}from"node:util";var Fcn=(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}},Fyt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new AO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},Uyt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,ym.useReducer)(Fcn,{visibleOptionCount:e,defaultValue:r,options:t},Fyt),[s,a]=(0,ym.useState)(t);t!==s&&!Lcn(t,s)&&(o({type:"reset",state:Fyt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,ym.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,ym.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,ym.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,ym.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,ym.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 Hyt=({isDisabled:e=!1,state:t})=>{vr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function EO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=Uyt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Hyt({isDisabled:e,state:s});let{styles:a}=po("Select");return hO.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=hO.default.createElement(hO.default.Fragment,null,l.label.slice(0,u),hO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return hO.default.createElement(Lyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Ucn=X(Ae(),1);var $yt=X(Ae(),1);var $cn=X(Ae(),1);var see=X(Ae(),1);var Hcn=X(Ae(),1);var T2i=sr.inverse(" ");var jg=X(Ae(),1);var _O=X(Ae(),1);var qyt=X(Ae(),1);var aee=(0,qyt.createContext)({marker:Qr.line});function lee({children:e}){let{marker:t}=(0,_O.useContext)(aee),{styles:r}=po("OrderedList");return _O.default.createElement(N,{...r.listItem()},_O.default.createElement(v,{...r.marker()},t),_O.default.createElement(N,{...r.content()},e))}var Gyt=X(Ae(),1),Uve=(0,Gyt.createContext)({marker:""});function Yg({children:e}){let{marker:t}=(0,jg.useContext)(Uve),{styles:r}=po("OrderedList"),n=0;for(let o of jg.default.Children.toArray(e))!(0,jg.isValidElement)(o)||o.type!==lee||n++;let i=String(n).length;return jg.default.createElement(N,{...r.list()},jg.default.Children.map(e,(o,s)=>{if(!(0,jg.isValidElement)(o)||o.type!==lee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return jg.default.createElement(Uve.Provider,{value:{marker:l}},jg.default.createElement(aee.Provider,{value:{marker:l}},o))}))}Yg.Item=lee;var Gcn=X(Ae(),1);var Hve=X(Ae(),1);var qcn=X(Ae(),1);var eOi=sr.inverse(" ");var zcn=X(Ae(),1);var jcn=X(Ae(),1);var Vcn=X(Ae(),1);var cee=X(Ae(),1);var Ycn=X(Ae(),1);var IOi=sr.inverse(" ");var $i=X(Ae(),1);var $ve=X(Ae(),1),qve=X(Ae(),1);W5();us();Qi();Uv();ar();var zyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function Xv(){let e=[...zyt,...[...zyt].reverse()],{frame:t}=AR({interval:120});return $ve.createElement(N,{flexWrap:"nowrap",height:1,width:2},$ve.createElement(v,{color:Pe().claude},e[t%e.length]))}var fee=X(Ae(),1);var dee=null,S_=null,uee=new Set;function zve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=Mpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Gve(){S_&&(dee=zve(S_),uee.forEach(e=>e(dee)))}function Wcn(e,t){return S_!==e&&(S_&&S_.off("resize",Gve),S_=e,dee=zve(e),e.on("resize",Gve)),uee.add(t),()=>{uee.delete(t),uee.size===0&&S_&&(S_.off("resize",Gve),S_=null,dee=null)}}function jve(){let{stdout:e}=gR(),[t,r]=(0,fee.useState)(()=>zve(e));return(0,fee.useEffect)(()=>Wcn(e,r),[e]),t}function yO(){return jve()}$e();If();ke();lh();ke();var pMi=X(pxe(),1);import{homedir as $9}from"os";import{join as SO}from"path";import{existsSync as q9,mkdirSync as kCt,appendFileSync as OCt,readFileSync as MCt,constants as jfn,writeFileSync as Yfn,unlinkSync as QCt,statSync as Vfn}from"fs";import{platform as PCt}from"process";import{accessSync as Wfn}from"fs";var zfn="2.4.12",H9={VERSION:zfn,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"};$e();var tx=SO(Q0,".update.lock"),Kfn=300*1e3;function LCt(){try{if(q9(Q0)||kCt(Q0,{recursive:!0}),q9(tx)){let e=Vfn(tx);if(Date.now()-e.mtimeMs<Kfn)return!1;try{QCt(tx)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return Yfn(tx,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function FCt(){try{q9(tx)&&MCt(tx,"utf8")===`${process.pid}`&&QCt(tx)}catch(e){ve(`Failed to release lock: ${e}`)}}async function mxe(){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{Wfn(t,jfn.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 UCt(e){if(!LCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:H9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{q9(e)||kCt(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=`
|
|
1131
|
+
${f}`}}),{messages:a}=t,l=Gln(o);return zln(o,l,s,a)}},uyt=jln;Hg();var Mu=X(Ae(),1),pO=X(Ae(),1);ke();ke();import{existsSync as Yln,readdirSync as Vln,statSync as Wln}from"fs";import{join as Kln}from"path";function Jln(){let e=Ji.plan();if(!Yln(e))return[];try{return Vln(e).filter(r=>r.endsWith(".md")).map(r=>{let n=Kln(e,r),i=Wln(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var dyt=({onSelect:e})=>{let[t,r]=(0,pO.useState)([]),[n,i]=(0,pO.useState)(0),[o,s]=(0,pO.useState)(!1);(0,pO.useEffect)(()=>{let c=Jln();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}))];vr((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?Mu.createElement(N,{flexDirection:"column",marginY:1},Mu.createElement(N,{marginBottom:1},Mu.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")),Mu.createElement(N,{marginBottom:1},Mu.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 Mu.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},Mu.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),Mu.createElement(v,{color:f?l.claude:l.text}," "),Mu.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&Mu.createElement(v,{dimColor:!0}," ","(",Yge(c.modified),")"))}),Mu.createElement(N,{marginTop:1,marginLeft:2},Mu.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):Mu.createElement(N,{flexDirection:"column",marginY:1},Mu.createElement(v,null,"Loading plan history..."))};var fyt=X(Ae(),1),Zln={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):fyt.createElement(dyt,{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"}},pyt=Zln;Hg();var Xln={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"}},myt=Xln;_r();import{resolve as ecn}from"path";var tcn={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=Be(),n=ecn(r,t);la(n);let i=Be();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},gyt=tcn;var jCt=X(Ae(),1);var Hn=X(Ae(),1);var Ocn=X(Ae(),1);var R9=X(Ae(),1),Rcn=X(_yt(),1);var yyt={info:"blue",success:"green",error:"red",warning:"yellow"},gcn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:yyt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:yyt[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}}},byt=gcn;var Acn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},Cyt=Acn;var hcn={styles:{input:({isFocused:e})=>({dimColor:!e})}},Syt=hcn;var Ecn={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})}},Iyt=Ecn;var _cn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},Tyt=_cn;var ycn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Qr.square,remainingCharacter:Qr.squareLightShade})},vyt=ycn;var bcn={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})}},xyt=bcn;var Ccn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},wyt=Ccn;var Scn={success:"green",error:"red",warning:"yellow",info:"blue"},Icn={success:Qr.tick,error:Qr.cross,warning:Qr.warning,info:Qr.info},Tcn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Scn[e]}),message:()=>({})},config:({variant:e})=>({icon:Icn[e]})},Dyt=Tcn;var vcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Qr.line})},Ryt=vcn;var xcn={styles:{value:()=>({})}},Nyt=xcn;var wcn={styles:{value:()=>({})}},Byt=wcn;var Dcn={styles:{value:()=>({})}},Oyt=Dcn;var Ncn={components:{Alert:byt,Badge:Cyt,ConfirmInput:Syt,MultiSelect:Iyt,OrderedList:Tyt,ProgressBar:vyt,Select:xyt,Spinner:wyt,StatusMessage:Dyt,UnorderedList:Ryt,TextInput:Nyt,EmailInput:Byt,PasswordInput:Oyt}},Bcn=(0,R9.createContext)(Ncn);var po=e=>(0,R9.useContext)(Bcn).components[e];var kcn=X(Ae(),1);var C_=X(Ae(),1);var gO=X(Ae(),1);var kyt=X(Ae(),1);var N9=Qr.line;var oee=(0,kyt.createContext)({marker:N9});function Myt({children:e}){let{marker:t}=(0,gO.useContext)(oee),{styles:r}=po("UnorderedList");return gO.default.createElement(N,{...r.listItem()},gO.default.createElement(v,{...r.marker()},t),gO.default.createElement(N,{...r.content()},e))}var Qyt=X(Ae(),1),Fve=(0,Qyt.createContext)({depth:0});function Mcn({children:e}){let{depth:t}=(0,C_.useContext)(Fve),{styles:r,config:n}=po("UnorderedList"),i=(0,C_.useMemo)(()=>({depth:t+1}),[t]),o=(0,C_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??N9}:{marker:N9}},[n,t]);return C_.default.createElement(Fve.Provider,{value:i},C_.default.createElement(oee.Provider,{value:o},C_.default.createElement(N,{...r.list()},e)))}Mcn.Item=Myt;var Pcn=X(Ae(),1);var Qcn=X(Ae(),1);var B9=X(Ae(),1);var AO=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 Pyt=X(Ae(),1);var hO=X(Ae(),1);var O9=X(Ae(),1);function Lyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return O9.default.createElement(N,{...n.option({isFocused:e})},e&&O9.default.createElement(v,{...n.focusIndicator()},Qr.pointer),O9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&O9.default.createElement(v,{...n.selectedIndicator()},Qr.tick))}var ym=X(Ae(),1);import{isDeepStrictEqual as Lcn}from"node:util";var Fcn=(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}},Fyt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new AO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},Uyt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,ym.useReducer)(Fcn,{visibleOptionCount:e,defaultValue:r,options:t},Fyt),[s,a]=(0,ym.useState)(t);t!==s&&!Lcn(t,s)&&(o({type:"reset",state:Fyt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,ym.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,ym.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,ym.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,ym.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,ym.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 Hyt=({isDisabled:e=!1,state:t})=>{vr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function EO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=Uyt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Hyt({isDisabled:e,state:s});let{styles:a}=po("Select");return hO.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=hO.default.createElement(hO.default.Fragment,null,l.label.slice(0,u),hO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return hO.default.createElement(Lyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Ucn=X(Ae(),1);var $yt=X(Ae(),1);var $cn=X(Ae(),1);var see=X(Ae(),1);var Hcn=X(Ae(),1);var T2i=sr.inverse(" ");var jg=X(Ae(),1);var _O=X(Ae(),1);var qyt=X(Ae(),1);var aee=(0,qyt.createContext)({marker:Qr.line});function lee({children:e}){let{marker:t}=(0,_O.useContext)(aee),{styles:r}=po("OrderedList");return _O.default.createElement(N,{...r.listItem()},_O.default.createElement(v,{...r.marker()},t),_O.default.createElement(N,{...r.content()},e))}var Gyt=X(Ae(),1),Uve=(0,Gyt.createContext)({marker:""});function Yg({children:e}){let{marker:t}=(0,jg.useContext)(Uve),{styles:r}=po("OrderedList"),n=0;for(let o of jg.default.Children.toArray(e))!(0,jg.isValidElement)(o)||o.type!==lee||n++;let i=String(n).length;return jg.default.createElement(N,{...r.list()},jg.default.Children.map(e,(o,s)=>{if(!(0,jg.isValidElement)(o)||o.type!==lee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return jg.default.createElement(Uve.Provider,{value:{marker:l}},jg.default.createElement(aee.Provider,{value:{marker:l}},o))}))}Yg.Item=lee;var Gcn=X(Ae(),1);var Hve=X(Ae(),1);var qcn=X(Ae(),1);var eOi=sr.inverse(" ");var zcn=X(Ae(),1);var jcn=X(Ae(),1);var Vcn=X(Ae(),1);var cee=X(Ae(),1);var Ycn=X(Ae(),1);var IOi=sr.inverse(" ");var $i=X(Ae(),1);var $ve=X(Ae(),1),qve=X(Ae(),1);W5();us();Qi();Uv();ar();var zyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function Xv(){let e=[...zyt,...[...zyt].reverse()],{frame:t}=AR({interval:120});return $ve.createElement(N,{flexWrap:"nowrap",height:1,width:2},$ve.createElement(v,{color:Pe().claude},e[t%e.length]))}var fee=X(Ae(),1);var dee=null,S_=null,uee=new Set;function zve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=Mpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Gve(){S_&&(dee=zve(S_),uee.forEach(e=>e(dee)))}function Wcn(e,t){return S_!==e&&(S_&&S_.off("resize",Gve),S_=e,dee=zve(e),e.on("resize",Gve)),uee.add(t),()=>{uee.delete(t),uee.size===0&&S_&&(S_.off("resize",Gve),S_=null,dee=null)}}function jve(){let{stdout:e}=gR(),[t,r]=(0,fee.useState)(()=>zve(e));return(0,fee.useEffect)(()=>Wcn(e,r),[e]),t}function yO(){return jve()}$e();If();ke();lh();ke();var pMi=X(pxe(),1);import{homedir as $9}from"os";import{join as SO}from"path";import{existsSync as q9,mkdirSync as kCt,appendFileSync as OCt,readFileSync as MCt,constants as jfn,writeFileSync as Yfn,unlinkSync as QCt,statSync as Vfn}from"fs";import{platform as PCt}from"process";import{accessSync as Wfn}from"fs";var zfn="2.4.13",H9={VERSION:zfn,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"};$e();var tx=SO(Q0,".update.lock"),Kfn=300*1e3;function LCt(){try{if(q9(Q0)||kCt(Q0,{recursive:!0}),q9(tx)){let e=Vfn(tx);if(Date.now()-e.mtimeMs<Kfn)return!1;try{QCt(tx)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return Yfn(tx,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function FCt(){try{q9(tx)&&MCt(tx,"utf8")===`${process.pid}`&&QCt(tx)}catch(e){ve(`Failed to release lock: ${e}`)}}async function mxe(){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{Wfn(t,jfn.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 UCt(e){if(!LCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:H9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{q9(e)||kCt(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
1132
|
# npm global path
|
|
1133
1133
|
export PATH="${e}/bin:$PATH"
|
|
1134
1134
|
`;if(PCt==="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=[SO($9(),".bashrc"),SO($9(),".bash_profile"),SO($9(),".zshrc"),SO($9(),".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=`
|
|
@@ -3568,7 +3568,7 @@ Then confirm to the user: what's scheduled, the cron expression, the human-reada
|
|
|
3568
3568
|
## Input
|
|
3569
3569
|
|
|
3570
3570
|
${e}"`}]}]}},Rzt=e4n;var t4n={type:"local",name:"dream",description:()=>"Manually trigger autoDream memory consolidation",isEnabled:!0,isHidden:!1,async call(e,t){let r={messages:[],systemPrompt:[],userContext:{},systemContext:{},toolUseContext:{...t,freezeSystemPrompt:(await uO()).join(`
|
|
3571
|
-
`)},querySource:"dream_command"},n=await Ezt(r);return n.success?"AutoDream memory consolidation triggered successfully.":`AutoDream failed: ${n.error||"Unknown error"}`},userFacingName(){return"dream"}},Nzt=t4n;var Es=X(Ae(),1),mA=X(Ae(),1);ph();us();$e();import r4n from"os";import n4n from"path";function Bzt({onDone:e}){let t=Pe();(0,mA.useEffect)(()=>{Ln.reload()},[]);let r=Ln.getAvailableModels(),n=Ln.getConfig().routing.MODEL??[],i=Ln.getConfig().routing.SMALL_FAST_MODEL??[],o=new Set(n.map(G=>`${G.source}__${G.model}`)),s=new Set(i.map(G=>`${G.source}__${G.model}`)),[a,l]=(0,mA.useState)(o.size>0?o:new Set(r[0]?[r[0]]:[])),[c,u]=(0,mA.useState)(s.size>0?s:new Set(r[0]?[r[0]]:[])),[f,g]=(0,mA.useState)("model"),[m,A]=(0,mA.useState)(!1),[E,_]=(0,mA.useState)(!1),[b,S]=(0,mA.useState)(0),[I,w]=(0,mA.useState)(0),[O,P]=(0,mA.useState)(null),z=()=>{let G=[];if(a.size===0&&G.push("MODEL must select at least one option"),c.size===0&&G.push("SMALL_FAST_MODEL must select at least one option"),G.length>0){P(G.join("; "));return}P(null);let q=Array.from(a).map(be=>{let M=Ln.parseModelKey(be);return{source:M.source,model:M.model,weight:100}}),fe=Array.from(c).map(be=>{let M=Ln.parseModelKey(be);return{source:M.source,model:M.model,weight:100}});Ln.setModelRouting(q),Ln.setSmallFastModelRouting(fe),Ln.reload(),xl().then(()=>{pr.emit("repl:refresh");let be=Array.from(a).join(", ")||"N/A",M=Array.from(c).join(", ")||"N/A";e(`Switched MODEL to ${be}, SMALL_FAST_MODEL to ${M}`)})},Y=()=>{let G=n4n.join(r4n.homedir(),Xr,"config.json");Jee(G,{wait:!1}).catch(()=>{})};vr((G,q)=>{if(q.escape){if(m){A(!1);return}if(E){_(!1);return}e("Cancelled.");return}if(q.return){if(m){A(!1);return}if(E){_(!1);return}if(f==="confirm"){z();return}if(f==="openConfig"){Y();return}if(f==="model"){A(!0),S(0);return}if(f==="small"){_(!0),w(0);return}return}if(q.upArrow||q.downArrow){if(m){q.upArrow?S(M=>M>0?M-1:r.length-1):S(M=>M<r.length-1?M+1:0);return}if(E){q.upArrow?w(M=>M>0?M-1:r.length-1):w(M=>M<r.length-1?M+1:0);return}let fe=["model","small","confirm","openConfig"],be=fe.indexOf(f);q.upArrow?g(fe[be>0?be-1:fe.length-1]):g(fe[be<fe.length-1?be+1:0]);return}if(G===" "){if(m){let fe=r[b];fe&&l(be=>{let M=new Set(be);return M.has(fe)?M.delete(fe):M.add(fe),M});return}if(E){let fe=r[I];fe&&u(be=>{let M=new Set(be);return M.has(fe)?M.delete(fe):M.add(fe),M});return}if(f==="model"){A(!0),S(0);return}if(f==="small"){_(!0),w(0);return}if(f==="confirm"){z();return}if(f==="openConfig"){Y();return}}});let Q=(G,q,fe,be,M)=>{let pe=q.size>0?Array.from(q).join(", "):"Select models...";return Es.createElement(N,{flexDirection:"column",marginBottom:1},Es.createElement(v,{color:fe?t.claude:t.secondaryText},G),Es.createElement(N,{borderStyle:"single",borderColor:fe?t.claude:t.secondaryBorder,paddingX:1,width:60},Es.createElement(v,null,pe),Es.createElement(v,{color:t.secondaryText},be?"\u25B2":"\u25BC")),be&&Es.createElement(N,{flexDirection:"column",borderStyle:"single",borderColor:t.claude,width:60},r.map((Ce,Te)=>{let de=q.has(Ce),le=Te===M;return Es.createElement(N,{key:Ce,paddingX:1},Es.createElement(v,{color:le?t.claude:t.text},le?"\u276F ":" ",de?Es.createElement(v,{color:"blue"},"\u25A0 "):"\u2610 ",Ce))})))};return Es.createElement(N,{flexDirection:"column",marginY:1},Es.createElement(N,{marginBottom:1},Es.createElement(v,{bold:!0,color:t.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")),Es.createElement(N,{marginBottom:1},Es.createElement(v,{bold:!0,color:t.claude}," Select model routing")),Es.createElement(N,{flexDirection:"column",marginLeft:2},Q("MODEL",a,f==="model"&&!m&&!E,m,b),Q("SMALL_FAST_MODEL",c,f==="small"&&!m&&!E,E,I),O&&Es.createElement(N,{marginTop:1},Es.createElement(v,{color:t.error},O)),Es.createElement(N,{marginTop:1},Es.createElement(v,{color:f==="confirm"?t.claude:t.secondaryText,bold:f==="confirm"},f==="confirm"?"\u276F ":" ","[ Confirm ]"),Es.createElement(N,{marginLeft:2},Es.createElement(v,{color:f==="openConfig"?t.claude:t.secondaryText,bold:f==="openConfig"},f==="openConfig"?"\u276F ":" ","[ Open Config ]")))),Es.createElement(N,{marginTop:1,marginLeft:2},Es.createElement(v,{dimColor:!0},"\u2191/\u2193 to navigate \xB7 Space/Enter to select \xB7 Esc to cancel")))}var Ozt=X(Ae(),1),i4n={type:"local-jsx",name:"model",description:()=>"Switch MODEL or SMALL_FAST_MODEL routing",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Ozt.createElement(Bzt,{onDone:t=>{e(t)}})},userFacingName(){return"model"}},kzt=i4n;var Ay=X(Ae(),1),Pzt=X(Ae(),1);ar();var fw=["off","low","medium","high"],o4n={low:4e3,medium:1e4,high:32e3};function z6(e){return fw.includes(e)?e:"medium"}function s4n(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-mythos-preview")}function a4n(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-opus-4-6")||t.includes("claude-sonnet-4-6")||t.includes("claude-mythos-preview")}function Mzt(e,t){let r=z6(t);if(r!=="off"){if(a4n(e)){let n={type:"adaptive"};return s4n(e)&&(n.display="summarized"),n}return{budget_tokens:o4n[r],type:"enabled"}}}function Qzt(e){return e&&"budget_tokens"in e?e.budget_tokens:0}function Lzt({onDone:e}){let t=Pe(),r=z6(lt().thinking),[n,i]=(0,Pzt.useState)(()=>Math.max(0,fw.indexOf(r))),o=()=>{let s=fw[n];Fr.updateSetting("thinking",s),e(`Thinking level set to ${s}`)};return vr((s,a)=>{if(a.escape){e("Cancelled.");return}if(a.return||s===" "){o();return}if(a.upArrow){i(l=>l>0?l-1:fw.length-1);return}a.downArrow&&i(l=>l<fw.length-1?l+1:0)}),Ay.createElement(N,{flexDirection:"column",marginY:1},Ay.createElement(N,{marginBottom:1},Ay.createElement(v,{bold:!0,color:t.claude}," Select thinking level")),Ay.createElement(N,{flexDirection:"column",marginLeft:2},fw.map((s,a)=>{let l=a===n,c=s===r;return Ay.createElement(N,{key:s},Ay.createElement(v,{color:l?t.claude:t.text},l?"> ":" ",s,c?" (current)":""))})),Ay.createElement(N,{marginTop:1,marginLeft:2},Ay.createElement(v,{dimColor:!0},"Up/Down to navigate \xB7 Enter to save \xB7 Esc to cancel")))}var Fzt=X(Ae(),1),l4n={type:"local-jsx",name:"thinking",description:()=>"Configure model thinking level",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Fzt.createElement(Lzt,{onDone:t=>{e(t)}})},userFacingName(){return"thinking"}},Uzt=l4n;var qzt=X(Ae(),1);var Yo=X(Ae(),1),Hzt=X(Ae(),1);function c4n(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m`;let n=Math.floor(r/60),i=r%60;return i?`${n}h${i}m`:`${n}h`}function $zt({goal:e,onClear:t,onClose:r}){let{frame:n}=AR({interval:1e3,isActive:!!e}),i=(0,Hzt.useMemo)(()=>e?c4n(Date.now()-e.setAt):"",[e,n]);vr((s,a)=>{if(a.escape||s==="q"){r();return}e&&(s==="c"||s==="C")&&t()});let o=Pe();return e?Yo.createElement(Yo.Fragment,null,Yo.createElement(N,{flexDirection:"column",borderStyle:"round",borderColor:o.secondaryBorder,paddingX:1,marginTop:1},Yo.createElement(N,null,Yo.createElement(v,{bold:!0,color:"green"},"\u25CE Goal active"),Yo.createElement(v,{dimColor:!0}," \xB7 running ",i)),Yo.createElement(N,{marginTop:1},Yo.createElement(v,null,Yo.createElement(v,{bold:!0},"Goal: "),e.condition))),Yo.createElement(N,{marginLeft:3},Yo.createElement(v,{dimColor:!0},Yo.createElement(v,{color:"blue"},"c")," clear \xB7 ",Yo.createElement(v,{color:"blue"},"Esc")," dismiss"))):Yo.createElement(Yo.Fragment,null,Yo.createElement(N,{flexDirection:"column",borderStyle:"round",borderColor:o.secondaryBorder,paddingX:1,marginTop:1},Yo.createElement(v,{bold:!0},"\u25CE Goal"),Yo.createElement(v,{dimColor:!0},"No active goal."),Yo.createElement(N,{marginTop:1},Yo.createElement(v,{dimColor:!0},"Set one with ",Yo.createElement(v,{color:"blue"},"/goal <condition>")))),Yo.createElement(N,{marginLeft:3},Yo.createElement(v,{dimColor:!0},"Esc / q to dismiss")))}Qi();$e();var u4n={type:"local-jsx-prompt",name:"goal",description:()=>"View, set, or clear a session-scoped goal; the Stop hook keeps Hawa working until the condition is satisfied.",isEnabled:!0,isHidden:!1,argNames:["condition"],userFacingName(){return"goal"},async call(e,t,r){let n=(t||"").trim();if(!n){let o=Vf.getGoal();return qzt.createElement($zt,{goal:o,onClear:()=>{o?(Vf.clearGoal(),Je.getInQueryContext()[C0]=0,e({resultForUser:`Goal cleared: ${o.condition}`,componentMessages:[B3({reason:"user"})]})):e()},onClose:()=>e()})}if(n.toLowerCase()==="clear"){if(Vf.hasGoal()){let o=Vf.getGoal().condition;Vf.clearGoal(),Je.getInQueryContext()[C0]=0,e({resultForUser:`Goal cleared: ${o}`,componentMessages:[B3({reason:"user"})]})}else e({resultForUser:"No active goal to clear."});return null}Vf.setGoal(n);let i=Vf.getGoal().setAt;return e({resultForUser:`Goal set: ${n}`,additionalPromptForAI:`A session-scoped Stop hook is now active with condition: "${n}". Briefly acknowledge the goal, then immediately start (or continue) working toward it \u2014 treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met \u2014 do not tell the user to run \`/goal clear\` after success; that's only for clearing a goal early.`,componentMessages:[zzt({condition:n,setAt:i})]}),null}},Gzt=u4n;var d4n=[uyt,rSt],f4n=Fe(()=>[Rzt,BEt,GEt,$0t,e_t,gyt,YCt,KCt,XCt,eSt,NSt,pyt,myt,BSt,OSt,Qee,Exe,sUt,lUt,dUt,_Ut,kSt,Nzt,kzt,Uzt,Gzt,...wee()?[DSt,xSt()]:[],...process.env.USER_TYPE==="ant"?d4n:[]]),ago=Fe(async()=>{let[e,t,r]=await Promise.all([an.getMCPCommands(),X2(),wzt()]);return[...e,...t,...r,...f4n()].filter(n=>n.isEnabled)});tB();ke();Zt();ke();_r();var g4n=X(Ae(),1);var p4n=X(Ae(),1);Qi();$e();var Ll="[Request interrupted by user]",tFe="[Request interrupted by user for tool use]",jzt="The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.",A4n="The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.",h4n="No response requested.",OEt=new Set([Ll,tFe,jzt,A4n,h4n]),Yzt="[Tool result missing due to internal error]";function Vzt(e,t){return{type:"assistant",costUSD:0,durationMs:0,uuid:hy(),message:{id:hy(),model:"<synthetic>",role:"assistant",stop_reason:"stop_sequence",stop_sequence:"",type:"message",usage:{input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},content:e},...t}}function kr(e){return Vzt([{type:"text",text:e===""?WM:e,citations:[]}])}function pw(e){return Vzt([{type:"text",text:e===""?WM:e,citations:[]}],{isApiErrorMessage:!0})}function jt(e,t,r){if(e==null)throw new Error("createUserMessage Content cannot be null or undefined");if(typeof e!="string"&&!Array.isArray(e))throw new Error("createUserMessage Content must be either a string or an array of content blocks");return{type:"user",message:{role:"user",content:e},uuid:hy(),toolUseResult:t,...r?.hideInUI?{hideInUI:!0}:{}}}function xv(e,t,r,n,i,o={multiline:!1,freeze:!1}){return{type:"progress",content:r,normalizedMessages:n,siblingToolUseIDs:t,tools:i,toolUseID:e,uuid:hy(),meta:o}}function cE(e){return{type:"reminder",content:e,uuid:hy()}}function Tzt(e){return{type:"insert",content:{content:e},uuid:hy()}}function jke(e){return{type:"goal_status",content:e,uuid:hy()}}function zzt(e){return{type:"goal_set",content:e,uuid:hy()}}function B3(e){return{type:"goal_cleared",content:e,uuid:hy()}}function dse(e){return{type:"tool_result",content:jzt,is_error:!0,tool_use_id:e}}function ui(e){return e.filter(t=>!(t.type==="user"&&t.hideInUI)).flatMap(t=>{if(t.type==="progress"||t.type==="reminder")return[t];if(t.type==="goal_status")return[t];if(t.type==="insert")return[{...jt(t.content.content),uuid:t.uuid}];if(typeof t.message?.content=="string")return[t];if(!t.message)return[];let r=t.message.content.filter(a=>!(a.type==="text"&&/<system-reminder>.*?<\/system-reminder>/s.test(a.text.trim()))),n=r.find(a=>a.type==="text"),o=t.type==="user"&&!!n&&(n.text.includes("<command-name>")||n.text.includes("<command-message>"))?r.filter((a,l)=>{if(a.type!=="text"||a===n)return!0;let c=a.text.trimStart();return c.startsWith("<local-command-stdout>")||c.startsWith("<local-command-stderr>")}):r,s=0;return o.map(a=>{switch(s++,t.type){case"assistant":{let l;if(a.type==="tool_use"){let c=t.message.content;if(c.filter(f=>f.type==="tool_use").length>1){l=new Set;for(let f of c)f.type==="tool_use"&&f.id&&l.add(f.id)}}return{type:"assistant",uuid:t.uuid+s,message:{...t.message,content:[a]},costUSD:t.costUSD/t.message.content.length,durationMs:t.durationMs,siblingToolUseIDs:l}}case"user":return a.type==="tool_result"?{...jt([a],t.toolUseResult),uuid:t.uuid+s}:{...jt([a],t.toolUseResult),uuid:t.uuid+s}}})})}var Lgo=Fe(e=>Object.fromEntries(e.flatMap(t=>t.type==="user"&&t.message.content[0]?.type==="tool_result"?[[t.message.content[0].tool_use_id,t.message.content[0].is_error??!1]]:[])));ke();ke();Zt();function Qd(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=Mp(t);if(n?.type==="user"){t[t.length-1]=b4n(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=Mp(t);n?.type==="user"&&(t[t.length-1]=E4n(n,r));return}}}),t}function E4n(e,t){return{...e,message:{...e.message,content:y4n(e.message.content,_4n(t.content.content))}}}function _4n(e){return`
|
|
3571
|
+
`)},querySource:"dream_command"},n=await Ezt(r);return n.success?"AutoDream memory consolidation triggered successfully.":`AutoDream failed: ${n.error||"Unknown error"}`},userFacingName(){return"dream"}},Nzt=t4n;var Es=X(Ae(),1),mA=X(Ae(),1);ph();us();$e();import r4n from"os";import n4n from"path";function Bzt({onDone:e}){let t=Pe();(0,mA.useEffect)(()=>{Ln.reload()},[]);let r=Ln.getAvailableModels(),n=Ln.getConfig().routing.MODEL??[],i=Ln.getConfig().routing.SMALL_FAST_MODEL??[],o=new Set(n.map(G=>`${G.source}__${G.model}`)),s=new Set(i.map(G=>`${G.source}__${G.model}`)),[a,l]=(0,mA.useState)(o.size>0?o:new Set(r[0]?[r[0]]:[])),[c,u]=(0,mA.useState)(s.size>0?s:new Set(r[0]?[r[0]]:[])),[f,g]=(0,mA.useState)("model"),[m,A]=(0,mA.useState)(!1),[E,_]=(0,mA.useState)(!1),[b,S]=(0,mA.useState)(0),[I,w]=(0,mA.useState)(0),[O,P]=(0,mA.useState)(null),z=()=>{let G=[];if(a.size===0&&G.push("MODEL must select at least one option"),c.size===0&&G.push("SMALL_FAST_MODEL must select at least one option"),G.length>0){P(G.join("; "));return}P(null);let q=Array.from(a).map(be=>{let M=Ln.parseModelKey(be);return{source:M.source,model:M.model,weight:100}}),fe=Array.from(c).map(be=>{let M=Ln.parseModelKey(be);return{source:M.source,model:M.model,weight:100}});Ln.setModelRouting(q),Ln.setSmallFastModelRouting(fe),Ln.reload(),xl().then(()=>{pr.emit("repl:refresh");let be=Array.from(a).join(", ")||"N/A",M=Array.from(c).join(", ")||"N/A";e(`Switched MODEL to ${be}, SMALL_FAST_MODEL to ${M}`)})},Y=()=>{let G=n4n.join(r4n.homedir(),Xr,"config.json");Jee(G,{wait:!1}).catch(()=>{})};vr((G,q)=>{if(q.escape){if(m){A(!1);return}if(E){_(!1);return}e("Cancelled.");return}if(q.return){if(m){A(!1);return}if(E){_(!1);return}if(f==="confirm"){z();return}if(f==="openConfig"){Y();return}if(f==="model"){A(!0),S(0);return}if(f==="small"){_(!0),w(0);return}return}if(q.upArrow||q.downArrow){if(m){q.upArrow?S(M=>M>0?M-1:r.length-1):S(M=>M<r.length-1?M+1:0);return}if(E){q.upArrow?w(M=>M>0?M-1:r.length-1):w(M=>M<r.length-1?M+1:0);return}let fe=["model","small","confirm","openConfig"],be=fe.indexOf(f);q.upArrow?g(fe[be>0?be-1:fe.length-1]):g(fe[be<fe.length-1?be+1:0]);return}if(G===" "){if(m){let fe=r[b];fe&&l(be=>{let M=new Set(be);return M.has(fe)?M.delete(fe):M.add(fe),M});return}if(E){let fe=r[I];fe&&u(be=>{let M=new Set(be);return M.has(fe)?M.delete(fe):M.add(fe),M});return}if(f==="model"){A(!0),S(0);return}if(f==="small"){_(!0),w(0);return}if(f==="confirm"){z();return}if(f==="openConfig"){Y();return}}});let Q=(G,q,fe,be,M)=>{let pe=q.size>0?Array.from(q).join(", "):"Select models...";return Es.createElement(N,{flexDirection:"column",marginBottom:1},Es.createElement(v,{color:fe?t.claude:t.secondaryText},G),Es.createElement(N,{borderStyle:"single",borderColor:fe?t.claude:t.secondaryBorder,paddingX:1,width:60},Es.createElement(v,null,pe),Es.createElement(v,{color:t.secondaryText},be?"\u25B2":"\u25BC")),be&&Es.createElement(N,{flexDirection:"column",borderStyle:"single",borderColor:t.claude,width:60},r.map((Ce,Te)=>{let de=q.has(Ce),le=Te===M;return Es.createElement(N,{key:Ce,paddingX:1},Es.createElement(v,{color:le?t.claude:t.text},le?"\u276F ":" ",de?Es.createElement(v,{color:"blue"},"\u25A0 "):"\u2610 ",Ce))})))};return Es.createElement(N,{flexDirection:"column",marginY:1},Es.createElement(N,{marginBottom:1},Es.createElement(v,{bold:!0,color:t.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")),Es.createElement(N,{marginBottom:1},Es.createElement(v,{bold:!0,color:t.claude}," Select model routing")),Es.createElement(N,{flexDirection:"column",marginLeft:2},Q("MODEL",a,f==="model"&&!m&&!E,m,b),Q("SMALL_FAST_MODEL",c,f==="small"&&!m&&!E,E,I),O&&Es.createElement(N,{marginTop:1},Es.createElement(v,{color:t.error},O)),Es.createElement(N,{marginTop:1},Es.createElement(v,{color:f==="confirm"?t.claude:t.secondaryText,bold:f==="confirm"},f==="confirm"?"\u276F ":" ","[ Confirm ]"),Es.createElement(N,{marginLeft:2},Es.createElement(v,{color:f==="openConfig"?t.claude:t.secondaryText,bold:f==="openConfig"},f==="openConfig"?"\u276F ":" ","[ Open Config ]")))),Es.createElement(N,{marginTop:1,marginLeft:2},Es.createElement(v,{dimColor:!0},"\u2191/\u2193 to navigate \xB7 Space/Enter to select \xB7 Esc to cancel")))}var Ozt=X(Ae(),1),i4n={type:"local-jsx",name:"model",description:()=>"Switch MODEL or SMALL_FAST_MODEL routing",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Ozt.createElement(Bzt,{onDone:t=>{e(t)}})},userFacingName(){return"model"}},kzt=i4n;var Ay=X(Ae(),1),Pzt=X(Ae(),1);ar();var fw=["off","low","medium","high"],o4n={low:4e3,medium:1e4,high:32e3};function z6(e){return fw.includes(e)?e:"medium"}function s4n(e){let t=e.toLowerCase();return t.includes("claude-opus-4-7")||t.includes("claude-mythos-preview")}function a4n(e){let t=e.toLowerCase();return t.includes("claude-opus-4-8")||t.includes("claude-opus-4-7")||t.includes("claude-opus-4-6")||t.includes("claude-sonnet-4-6")||t.includes("claude-mythos-preview")}function Mzt(e,t){let r=z6(t);if(r!=="off"){if(a4n(e)){let n={type:"adaptive"};return s4n(e)&&(n.display="summarized"),n}return{budget_tokens:o4n[r],type:"enabled"}}}function Qzt(e){return e&&"budget_tokens"in e?e.budget_tokens:0}function Lzt({onDone:e}){let t=Pe(),r=z6(lt().thinking),[n,i]=(0,Pzt.useState)(()=>Math.max(0,fw.indexOf(r))),o=()=>{let s=fw[n];Fr.updateSetting("thinking",s),e(`Thinking level set to ${s}`)};return vr((s,a)=>{if(a.escape){e("Cancelled.");return}if(a.return||s===" "){o();return}if(a.upArrow){i(l=>l>0?l-1:fw.length-1);return}a.downArrow&&i(l=>l<fw.length-1?l+1:0)}),Ay.createElement(N,{flexDirection:"column",marginY:1},Ay.createElement(N,{marginBottom:1},Ay.createElement(v,{bold:!0,color:t.claude}," Select thinking level")),Ay.createElement(N,{flexDirection:"column",marginLeft:2},fw.map((s,a)=>{let l=a===n,c=s===r;return Ay.createElement(N,{key:s},Ay.createElement(v,{color:l?t.claude:t.text},l?"> ":" ",s,c?" (current)":""))})),Ay.createElement(N,{marginTop:1,marginLeft:2},Ay.createElement(v,{dimColor:!0},"Up/Down to navigate \xB7 Enter to save \xB7 Esc to cancel")))}var Fzt=X(Ae(),1),l4n={type:"local-jsx",name:"thinking",description:()=>"Configure model thinking level",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return Fzt.createElement(Lzt,{onDone:t=>{e(t)}})},userFacingName(){return"thinking"}},Uzt=l4n;var qzt=X(Ae(),1);var Yo=X(Ae(),1),Hzt=X(Ae(),1);function c4n(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m`;let n=Math.floor(r/60),i=r%60;return i?`${n}h${i}m`:`${n}h`}function $zt({goal:e,onClear:t,onClose:r}){let{frame:n}=AR({interval:1e3,isActive:!!e}),i=(0,Hzt.useMemo)(()=>e?c4n(Date.now()-e.setAt):"",[e,n]);vr((s,a)=>{if(a.escape||s==="q"){r();return}e&&(s==="c"||s==="C")&&t()});let o=Pe();return e?Yo.createElement(Yo.Fragment,null,Yo.createElement(N,{flexDirection:"column",borderStyle:"round",borderColor:o.secondaryBorder,paddingX:1,marginTop:1},Yo.createElement(N,null,Yo.createElement(v,{bold:!0,color:"green"},"\u25CE Goal active"),Yo.createElement(v,{dimColor:!0}," \xB7 running ",i)),Yo.createElement(N,{marginTop:1},Yo.createElement(v,null,Yo.createElement(v,{bold:!0},"Goal: "),e.condition))),Yo.createElement(N,{marginLeft:3},Yo.createElement(v,{dimColor:!0},Yo.createElement(v,{color:"blue"},"c")," clear \xB7 ",Yo.createElement(v,{color:"blue"},"Esc")," dismiss"))):Yo.createElement(Yo.Fragment,null,Yo.createElement(N,{flexDirection:"column",borderStyle:"round",borderColor:o.secondaryBorder,paddingX:1,marginTop:1},Yo.createElement(v,{bold:!0},"\u25CE Goal"),Yo.createElement(v,{dimColor:!0},"No active goal."),Yo.createElement(N,{marginTop:1},Yo.createElement(v,{dimColor:!0},"Set one with ",Yo.createElement(v,{color:"blue"},"/goal <condition>")))),Yo.createElement(N,{marginLeft:3},Yo.createElement(v,{dimColor:!0},"Esc / q to dismiss")))}Qi();$e();var u4n={type:"local-jsx-prompt",name:"goal",description:()=>"View, set, or clear a session-scoped goal; the Stop hook keeps Hawa working until the condition is satisfied.",isEnabled:!0,isHidden:!1,argNames:["condition"],userFacingName(){return"goal"},async call(e,t,r){let n=(t||"").trim();if(!n){let o=Vf.getGoal();return qzt.createElement($zt,{goal:o,onClear:()=>{o?(Vf.clearGoal(),Je.getInQueryContext()[C0]=0,e({resultForUser:`Goal cleared: ${o.condition}`,componentMessages:[B3({reason:"user"})]})):e()},onClose:()=>e()})}if(n.toLowerCase()==="clear"){if(Vf.hasGoal()){let o=Vf.getGoal().condition;Vf.clearGoal(),Je.getInQueryContext()[C0]=0,e({resultForUser:`Goal cleared: ${o}`,componentMessages:[B3({reason:"user"})]})}else e({resultForUser:"No active goal to clear."});return null}Vf.setGoal(n);let i=Vf.getGoal().setAt;return e({resultForUser:`Goal set: ${n}`,additionalPromptForAI:`A session-scoped Stop hook is now active with condition: "${n}". Briefly acknowledge the goal, then immediately start (or continue) working toward it \u2014 treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met \u2014 do not tell the user to run \`/goal clear\` after success; that's only for clearing a goal early.`,componentMessages:[zzt({condition:n,setAt:i})]}),null}},Gzt=u4n;var d4n=[uyt,rSt],f4n=Fe(()=>[Rzt,BEt,GEt,$0t,e_t,gyt,YCt,KCt,XCt,eSt,NSt,pyt,myt,BSt,OSt,Qee,Exe,sUt,lUt,dUt,_Ut,kSt,Nzt,kzt,Uzt,Gzt,...wee()?[DSt,xSt()]:[],...process.env.USER_TYPE==="ant"?d4n:[]]),ago=Fe(async()=>{let[e,t,r]=await Promise.all([an.getMCPCommands(),X2(),wzt()]);return[...e,...t,...r,...f4n()].filter(n=>n.isEnabled)});tB();ke();Zt();ke();_r();var g4n=X(Ae(),1);var p4n=X(Ae(),1);Qi();$e();var Ll="[Request interrupted by user]",tFe="[Request interrupted by user for tool use]",jzt="The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.",A4n="The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.",h4n="No response requested.",OEt=new Set([Ll,tFe,jzt,A4n,h4n]),Yzt="[Tool result missing due to internal error]";function Vzt(e,t){return{type:"assistant",costUSD:0,durationMs:0,uuid:hy(),message:{id:hy(),model:"<synthetic>",role:"assistant",stop_reason:"stop_sequence",stop_sequence:"",type:"message",usage:{input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},content:e},...t}}function kr(e){return Vzt([{type:"text",text:e===""?WM:e,citations:[]}])}function pw(e){return Vzt([{type:"text",text:e===""?WM:e,citations:[]}],{isApiErrorMessage:!0})}function jt(e,t,r){if(e==null)throw new Error("createUserMessage Content cannot be null or undefined");if(typeof e!="string"&&!Array.isArray(e))throw new Error("createUserMessage Content must be either a string or an array of content blocks");return{type:"user",message:{role:"user",content:e},uuid:hy(),toolUseResult:t,...r?.hideInUI?{hideInUI:!0}:{}}}function xv(e,t,r,n,i,o={multiline:!1,freeze:!1}){return{type:"progress",content:r,normalizedMessages:n,siblingToolUseIDs:t,tools:i,toolUseID:e,uuid:hy(),meta:o}}function cE(e){return{type:"reminder",content:e,uuid:hy()}}function Tzt(e){return{type:"insert",content:{content:e},uuid:hy()}}function jke(e){return{type:"goal_status",content:e,uuid:hy()}}function zzt(e){return{type:"goal_set",content:e,uuid:hy()}}function B3(e){return{type:"goal_cleared",content:e,uuid:hy()}}function dse(e){return{type:"tool_result",content:jzt,is_error:!0,tool_use_id:e}}function ui(e){return e.filter(t=>!(t.type==="user"&&t.hideInUI)).flatMap(t=>{if(t.type==="progress"||t.type==="reminder")return[t];if(t.type==="goal_status")return[t];if(t.type==="insert")return[{...jt(t.content.content),uuid:t.uuid}];if(typeof t.message?.content=="string")return[t];if(!t.message)return[];let r=t.message.content.filter(a=>!(a.type==="text"&&/<system-reminder>.*?<\/system-reminder>/s.test(a.text.trim()))),n=r.find(a=>a.type==="text"),o=t.type==="user"&&!!n&&(n.text.includes("<command-name>")||n.text.includes("<command-message>"))?r.filter((a,l)=>{if(a.type!=="text"||a===n)return!0;let c=a.text.trimStart();return c.startsWith("<local-command-stdout>")||c.startsWith("<local-command-stderr>")}):r,s=0;return o.map(a=>{switch(s++,t.type){case"assistant":{let l;if(a.type==="tool_use"){let c=t.message.content;if(c.filter(f=>f.type==="tool_use").length>1){l=new Set;for(let f of c)f.type==="tool_use"&&f.id&&l.add(f.id)}}return{type:"assistant",uuid:t.uuid+s,message:{...t.message,content:[a]},costUSD:t.costUSD/t.message.content.length,durationMs:t.durationMs,siblingToolUseIDs:l}}case"user":return a.type==="tool_result"?{...jt([a],t.toolUseResult),uuid:t.uuid+s}:{...jt([a],t.toolUseResult),uuid:t.uuid+s}}})})}var Lgo=Fe(e=>Object.fromEntries(e.flatMap(t=>t.type==="user"&&t.message.content[0]?.type==="tool_result"?[[t.message.content[0].tool_use_id,t.message.content[0].is_error??!1]]:[])));ke();ke();Zt();function Qd(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=Mp(t);if(n?.type==="user"){t[t.length-1]=b4n(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=Mp(t);n?.type==="user"&&(t[t.length-1]=E4n(n,r));return}}}),t}function E4n(e,t){return{...e,message:{...e.message,content:y4n(e.message.content,_4n(t.content.content))}}}function _4n(e){return`
|
|
3572
3572
|
<system-reminder>
|
|
3573
3573
|
The user sent the following message:
|
|
3574
3574
|
${e}
|