@dahawa/hawa-code 2.4.15 → 2.4.16
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 +2 -2
- 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
|
`)),aFn(e,o,{encoding:r,flush:!0})}var XHt=new bde.default({fetchMethod:e=>mFn(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});async function aGt(e){let t=RV(e);return XHt.get(t)||XHt.fetchMethod?.(t)}async function mFn(e){let t=new AbortController;setTimeout(()=>{t.abort()},1e3);let r=await I2t(e,t.signal,15),n=0;for(let o of r)SB(o)==="CRLF"&&n++;return n>3?"CRLF":"LF"}function cGt(e,t,r){if(e.has(t))return e.get(t);let n=r();return e.set(t,n),n}var gFn=new bde.default({fetchMethod:e=>lGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function Wm(e){let t=RV(e);return cGt(gFn,t,()=>lGt(t))}function lGt(e){let r=Buffer.alloc(4096),n;try{n=eGt(e,"r");let o=tGt(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&&rGt(n)}}var AFn=new bde.default({fetchMethod:e=>uGt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function SB(e){let t=RV(e);return cGt(AFn,t,()=>uGt(t))}function uGt(e,t="utf8"){try{if(!nGt(e).isFile())return"LF";let n=Buffer.alloc(4096),o=eGt(e,"r"),i=tGt(o,n,0,4096,0);rGt(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 KF(e){let t=oGt(e)?e:RV(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 DPe(e){return e?oGt(e)?e:RV(Be(),e):void 0}function dGt(e){try{let t=DPe(e),r=t?dFn(Be(),t):void 0;return{absolutePath:t,relativePath:r}}catch(t){return X("getAbsoluteAndRelativePaths error ",t),{absolutePath:null,relativePath:null}}}function Ide(e){try{let t=fFn(e),r=KHt(e,JHt(e));if(!cFn(t))return;let i=lFn(t).filter(s=>KHt(s,JHt(s))===r&&pFn(t,s)!==e)[0];return i||void 0}catch(t){Se(`Error finding similar file for ${e}: ${t}`);return}}function OPe(){let e=process.env.HAWA_CODE_COMPACT_LINE_PREFIX;return!(e==="0"||e==="false")}function ow({content:e,startLine:t}){if(!e)return"";let r=e.split(/\r?\n/);return OPe()?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 fGt(e){try{let t=uFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function ew(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function SFn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function BPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,pGt.gt)(MACRO.VERSION,o))&&(i=$ue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&SFn()},[s,r]),!r&&!s)return null;let a=hFn(EFn(e,Ci)),c=fGt(e),l=!a&&!c,u=kF.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===_Fn()&&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 ZF=F(ne(),1);var JF=F(ne(),1);var NV=F(ne(),1);function MPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return NV.default.createElement(x,{...o.option({isFocused:e})},e&&NV.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),NV.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&NV.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var Km=F(ne(),1);import{isDeepStrictEqual as yFn}from"node:util";var DV=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:kPe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var TFn=(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}}},PPe=e=>e.flatMap(t=>{if("options"in t){let r=PPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),mGt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=PPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new DV(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}},LPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=PPe(t),[a,c]=(0,Km.useReducer)(TFn,{visibleOptionCount:e,defaultValue:r,options:t},mGt),[l,u]=(0,Km.useState)(s);s!==l&&!yFn(s,l)&&(c({type:"reset",state:mGt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Km.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Km.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Km.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Km.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Km.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Km.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Km.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 QPe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var kPe=e=>`HEADER-${e.optionValues.join(",")}`;function xC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=LPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});QPe({isDisabled:e,state:c});let{styles:l}=ms("Select");return JF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:kPe(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=JF.default.createElement(JF.default.Fragment,null,h.slice(0,S),JF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return JF.default.createElement(MPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function gGt({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),ZF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:ee().secondaryBorder},ZF.default.createElement(x,{marginBottom:1,flexDirection:"column"},ZF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),ZF.default.createElement(x,null,ZF.default.createElement(xC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Qp=F(ne(),1);Ge();sr();Cy();var IFn="2.4.15",Iy={VERSION:IFn,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 HPe=46,EGt=["(\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 vde({isDefaultModel:e=!1}){let t=Math.max(HPe,Be().length+12),r=ee(),n=EGt[Math.floor(Math.random()*EGt.length)];return Qp.createElement(x,{flexDirection:"column"},Qp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Qp.createElement(C,null,Qp.createElement(C,null,n)," Welcome to"," ",Qp.createElement(C,{bold:!0},et),Qp.createElement(C,{color:r.secondaryText}," v",Iy.VERSION)),Qp.createElement(Qp.Fragment,null,Qp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Qp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Qp.createElement(C,{color:r.secondaryText},"cwd: ",Be()),Qp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Qp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var SS=F(ne(),1);Re();var VJ=F(ne(),1);import{randomUUID as AS}from"crypto";$s();Re();Zt();sr();Re();Ge();import{existsSync as NC,readdirSync as z4n,statSync as W4n}from"fs";import{join as cw,relative as K4n}from"path";import{homedir as V$t}from"os";import{platform as J4n}from"process";import{readFile as lw}from"fs/promises";sr();EE();gr();import{join as DFn,sep as OFn}from"path";function Up(){if(!Jm())return!1;try{let e=ot();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Zm(){return(DFn(Be(),".hcode","team-memory")+OFn).normalize("NFC")}function _E(e){let t=e.normalize("NFC"),r=Zm();return t.startsWith(r)}var j$t=F(FV(),1);Xo();var H$t=F(FV(),1);sr();Ge();Re();Mp();import{readFile as U$t}from"fs/promises";import{existsSync as iLe,readdirSync as q4n,statSync as V4n}from"fs";import{join as sLe,relative as G$t}from"path";import{homedir as j4n}from"os";function F$t(e){try{let t=(0,H$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 Y4n(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 aLe(e){let t=[];try{if(!iLe(e))return t;let r=q4n(e);for(let n of r){let o=sLe(e,n),i=V4n(o);i.isDirectory()?t.push(...aLe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function $$t(){let e=[];try{let t=sLe(j4n(),Fn,"rules");if(iLe(t)){let r=aLe(t);for(let n of r)try{let o=await U$t(n,"utf-8"),{paths:i,content:s}=F$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=sLe(Be(),Fn,"rules");if(iLe(t)){let r=aLe(t);for(let n of r)try{let o=await U$t(n,"utf-8"),{paths:i,content:s}=F$t(o);i.length>0&&e.push({filePath:G$t(Be(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function q$t(e,t){e=lle(e);let r=lle(Be()),n=e.startsWith(r)?G$t(r,e):e;return t.filter(o=>Y4n(n,o.paths))}var Z4n=`# hawaCodeMd
|
|
678
|
+
`)}function fGt(e){try{let t=uFn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Se(`Error checking directory: ${t}`),!1}}Ge();function ew(){let e=Xn();e.hasCompletedProjectOnboarding||ps({...e,hasCompletedProjectOnboarding:!0})}function SFn(){let e=hr();To({...e,lastReleaseNotesSeen:MACRO.VERSION})}function BPe({workspaceDir:e}){let r=!Xn().hasCompletedProjectOnboarding,o=hr().lastReleaseNotesSeen,i=[];(!o||(0,pGt.gt)(MACRO.VERSION,o))&&(i=$ue[MACRO.VERSION]||[]);let s=i.length>0;if(Ki.useEffect(()=>{s&&!r&&SFn()},[s,r]),!r&&!s)return null;let a=hFn(EFn(e,Ci)),c=fGt(e),l=!a&&!c,u=kF.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===_Fn()&&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 ZF=F(ne(),1);var JF=F(ne(),1);var NV=F(ne(),1);function MPe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=ms("Select");return NV.default.createElement(x,{...o.option({isFocused:e})},e&&NV.default.createElement(C,{...o.focusIndicator()},r?Jr.triangleDownSmall:Jr.pointer),NV.default.createElement(C,{...o.label({isFocused:e,isSelected:t})},n),t&&NV.default.createElement(C,{...o.selectedIndicator()},Jr.tick))}var Km=F(ne(),1);import{isDeepStrictEqual as yFn}from"node:util";var DV=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:kPe(s);r.push([c,a]),i++,o=a}super(r),this.first=n}};var TFn=(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}}},PPe=e=>e.flatMap(t=>{if("options"in t){let r=PPe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),mGt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=PPe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new DV(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}},LPe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=PPe(t),[a,c]=(0,Km.useReducer)(TFn,{visibleOptionCount:e,defaultValue:r,options:t},mGt),[l,u]=(0,Km.useState)(s);s!==l&&!yFn(s,l)&&(c({type:"reset",state:mGt({visibleOptionCount:e,defaultValue:r,options:t})}),u(s));let d=(0,Km.useCallback)(()=>{c({type:"focus-next-option"})},[]),p=(0,Km.useCallback)(()=>{c({type:"focus-previous-option"})},[]),f=(0,Km.useCallback)(()=>{c({type:"select-focused-option"})},[]),A=(0,Km.useMemo)(()=>s.map((h,E)=>({...h,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Km.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Km.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Km.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 QPe=({isDisabled:e=!1,state:t})=>{Ct((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var kPe=e=>`HEADER-${e.optionValues.join(",")}`;function xC({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let c=LPe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});QPe({isDisabled:e,state:c});let{styles:l}=ms("Select");return JF.default.createElement(x,{...l.container()},c.visibleOptions.map(u=>{let d="value"in u?u.value:kPe(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=JF.default.createElement(JF.default.Fragment,null,h.slice(0,S),JF.default.createElement(C,{...l.highlightedText()},r),h.slice(S+r.length))}return JF.default.createElement(MPe,{key:d,isFocused:p,isSelected:f,smallPointer:A},E)}))}function gGt({onDone:e}){return Ct((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),ZF.default.createElement(x,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:ee().secondaryBorder},ZF.default.createElement(x,{marginBottom:1,flexDirection:"column"},ZF.default.createElement(C,{bold:!0},"You've spent $5 this session.")),ZF.default.createElement(x,null,ZF.default.createElement(xC,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var An=F(ne(),1),Kt=F(ne(),1);var Qp=F(ne(),1);Ge();sr();Cy();var IFn="2.4.16",Iy={VERSION:IFn,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 HPe=46,EGt=["(\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 vde({isDefaultModel:e=!1}){let t=Math.max(HPe,Be().length+12),r=ee(),n=EGt[Math.floor(Math.random()*EGt.length)];return Qp.createElement(x,{flexDirection:"column"},Qp.createElement(x,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Qp.createElement(C,null,Qp.createElement(C,null,n)," Welcome to"," ",Qp.createElement(C,{bold:!0},et),Qp.createElement(C,{color:r.secondaryText}," v",Iy.VERSION)),Qp.createElement(Qp.Fragment,null,Qp.createElement(x,{paddingLeft:2,flexDirection:"column",gap:1},Qp.createElement(C,{color:r.secondaryText,italic:!0},"/help for help"),Qp.createElement(C,{color:r.secondaryText},"cwd: ",Be()),Qp.createElement(C,{color:r.secondaryText},"model: ",bo.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Qp.createElement(C,{color:r.secondaryText},"small fast model: ",bo.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}var SS=F(ne(),1);Re();var VJ=F(ne(),1);import{randomUUID as AS}from"crypto";$s();Re();Zt();sr();Re();Ge();import{existsSync as NC,readdirSync as z4n,statSync as W4n}from"fs";import{join as cw,relative as K4n}from"path";import{homedir as V$t}from"os";import{platform as J4n}from"process";import{readFile as lw}from"fs/promises";sr();EE();gr();import{join as DFn,sep as OFn}from"path";function Up(){if(!Jm())return!1;try{let e=ot();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Zm(){return(DFn(Be(),".hcode","team-memory")+OFn).normalize("NFC")}function _E(e){let t=e.normalize("NFC"),r=Zm();return t.startsWith(r)}var j$t=F(FV(),1);Xo();var H$t=F(FV(),1);sr();Ge();Re();Mp();import{readFile as U$t}from"fs/promises";import{existsSync as iLe,readdirSync as q4n,statSync as V4n}from"fs";import{join as sLe,relative as G$t}from"path";import{homedir as j4n}from"os";function F$t(e){try{let t=(0,H$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 Y4n(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 aLe(e){let t=[];try{if(!iLe(e))return t;let r=q4n(e);for(let n of r){let o=sLe(e,n),i=V4n(o);i.isDirectory()?t.push(...aLe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Se(r)}return t}async function $$t(){let e=[];try{let t=sLe(j4n(),Fn,"rules");if(iLe(t)){let r=aLe(t);for(let n of r)try{let o=await U$t(n,"utf-8"),{paths:i,content:s}=F$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=sLe(Be(),Fn,"rules");if(iLe(t)){let r=aLe(t);for(let n of r)try{let o=await U$t(n,"utf-8"),{paths:i,content:s}=F$t(o);i.length>0&&e.push({filePath:G$t(Be(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Se(o)}}}catch(t){Se(t)}return e}function q$t(e,t){e=lle(e);let r=lle(Be()),n=e.startsWith(r)?G$t(r,e):e;return t.filter(o=>Y4n(n,o.paths))}var Z4n=`# 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 X4n(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 hge=null,G4e=!1;function koo(){hge=null,G4e=!1}kt.on("proxy:changed",koo);function Poo(){if(G4e)return hge;if(G4e=!0,ot().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(hge=new tXt.ProxyAgent({uri:e}),zt(`[proxy] using proxy: ${e}`)),hge}function Loo(){let e=Poo();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function _ge(e){let t=e||process.env.API_TYPE,r=Loo();switch(t){case"openai":return Doo(r);case"openai-responses":return Ooo(r);case"gemini":return Boo(r);default:return Moo(r)}}Cy();var nXt=F(ne(),1);function rXt(e,t){let r=[],n=Math.max(1,Math.floor(t)),o="",i=0;for(let s of e){let a=Qoo(s);o&&i+a>n?(r.push(o),o=s,i=a):(o+=s,i+=a)}return o&&r.push(o),r}function Qoo(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Uoo(t)?0:Foo(t)?2:1}function Uoo(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function Foo(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 R0(e){if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),n=(e%6e4/1e3).toFixed(1);return t>0?`${t}h ${r}m ${n}s`:r>0?`${r}m ${n}s`:`${n}s`}function V4e(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m ${o}s`:`${n}m ${o}s`}function JC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function Sge(e,t,r){let n=[];return typeof e=="number"&&n.push(V4e(e)),typeof t=="number"&&n.push(`${t} ${t===1?"turn":"turns"}`),typeof r=="number"&&n.push(`${JC(r)} tokens`),n.length>0?` (${n.join(" \xB7 ")})`:""}Re();$s();var tu={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function yge(e,t){tu.totalCost+=e,tu.totalAPIDuration+=t}function Tge(e,t){tu.inputTokens+=e,tu.outputTokens+=t,kt.emit("token:change",{inputTokens:tu.inputTokens,outputTokens:tu.outputTokens})}function bge(e,t){tu.cacheCreationTokens+=e,tu.cacheReadTokens+=t}function AM(){return{inputTokens:tu.inputTokens,outputTokens:tu.outputTokens,cacheCreationTokens:tu.cacheCreationTokens,cacheReadTokens:tu.cacheReadTokens}}function _9(){return tu.totalCost}function Cge(){return Date.now()-tu.startTime}function oXt(){return tu.totalAPIDuration}function iXt(e){tu.currentContextTokens=e}function sXt(){return tu.currentContextTokens}function Hoo(){return St.grey(`Total duration (API): ${R0(tu.totalAPIDuration)}
|
|
774
774
|
Total duration (wall): ${R0(Cge())}`)}function aXt(){(0,nXt.useEffect)(()=>{let e=()=>{process.stdout.write(`
|
|
775
775
|
`+Hoo()+`
|
|
776
|
-
`);let t=Xn();ps({...t,lastCost:tu.totalCost,lastAPIDuration:tu.totalAPIDuration,lastDuration:Cge(),lastSessionId:n0})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Re();Ge();Ge();var j4e="2.4.
|
|
776
|
+
`);let t=Xn();ps({...t,lastCost:tu.totalCost,lastAPIDuration:tu.totalAPIDuration,lastDuration:Cge(),lastSessionId:n0})};return process.on("exit",e),()=>{process.off("exit",e)}},[])}Re();Ge();Ge();var j4e="2.4.16";globalThis.MACRO={VERSION:j4e,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 Ige=process.env.HAWA_CODE_USER_AGENT||`${Ii}/${j4e} (${process.env.USER_TYPE})`;Re();Re();Zt();function Jf(e){let t=[];return e.filter(r=>r.type!=="progress"&&r.type!=="reminder").forEach(r=>{switch(r.type){case"user":{let n=Of(t);if(n?.type==="user"){t[t.length-1]=Voo(n,r);return}t.push(r);return}case"assistant":t.push(r);return;case"insert":{let n=Of(t);n?.type==="user"&&(t[t.length-1]=Goo(n,r));return}}}),t}function Goo(e,t){return{...e,message:{...e.message,content:qoo(e.message.content,$oo(t.content.content))}}}function $oo(e){return`
|
|
777
777
|
<system-reminder>
|
|
778
778
|
The user sent the following message:
|
|
779
779
|
${e}
|
|
@@ -3839,7 +3839,7 @@ ${e}</tr>
|
|
|
3839
3839
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
|
|
3840
3840
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${zT(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),o=hUr(e);if(o===null)return n;e=o;let i='<a href="'+e+'"';return t&&(i+=' title="'+zT(t)+'"'),i+=">"+n+"</a>",i}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let o=hUr(e);if(o===null)return zT(r);e=o;let i=`<img src="${e}" alt="${r}"`;return t&&(i+=` title="${zT(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:zT(e.text)}},Mnt=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},ES=class Int{options;renderer;textRenderer;constructor(t){this.options=t||D2,this.options.renderer=this.options.renderer||new nCe,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Mnt}static parse(t,r){return new Int(r).parse(t)}static parseInline(t,r){return new Int(r).parseInline(t)}parse(t,r=!0){let n="";for(let o=0;o<t.length;o++){let i=t[o];if(this.options.extensions?.renderers?.[i.type]){let a=i,c=this.options.extensions.renderers[a.type].call({parser:this},a);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){n+=c||"";continue}}let s=i;switch(s.type){case"space":{n+=this.renderer.space(s);continue}case"hr":{n+=this.renderer.hr(s);continue}case"heading":{n+=this.renderer.heading(s);continue}case"code":{n+=this.renderer.code(s);continue}case"table":{n+=this.renderer.table(s);continue}case"blockquote":{n+=this.renderer.blockquote(s);continue}case"list":{n+=this.renderer.list(s);continue}case"html":{n+=this.renderer.html(s);continue}case"def":{n+=this.renderer.def(s);continue}case"paragraph":{n+=this.renderer.paragraph(s);continue}case"text":{let a=s,c=this.renderer.text(a);for(;o+1<t.length&&t[o+1].type==="text";)a=t[++o],c+=`
|
|
3841
3841
|
`+this.renderer.text(a);r?n+=this.renderer.paragraph({type:"paragraph",raw:c,text:c,tokens:[{type:"text",raw:c,text:c,escaped:!0}]}):n+=c;continue}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(t,r=this.renderer){let n="";for(let o=0;o<t.length;o++){let i=t[o];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){n+=a||"";continue}}let s=i;switch(s.type){case"escape":{n+=r.text(s);break}case"html":{n+=r.html(s);break}case"link":{n+=r.link(s);break}case"image":{n+=r.image(s);break}case"strong":{n+=r.strong(s);break}case"em":{n+=r.em(s);break}case"codespan":{n+=r.codespan(s);break}case"br":{n+=r.br(s);break}case"del":{n+=r.del(s);break}case"text":{n+=r.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}},zJ=class{options;block;constructor(e){this.options=e||D2}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?hS.lex:hS.lexInline}provideParser(){return this.block?ES.parse:ES.parseInline}},sjo=class{defaults=vnt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ES;Renderer=nCe;TextRenderer=Mnt;Lexer=hS;Tokenizer=rCe;Hooks=zJ;constructor(...e){this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":{let o=n;for(let i of o.header)r=r.concat(this.walkTokens(i.tokens,t));for(let i of o.rows)for(let s of i)r=r.concat(this.walkTokens(s.tokens,t));break}case"list":{let o=n;r=r.concat(this.walkTokens(o.items,t));break}default:{let o=n;this.defaults.extensions?.childTokens?.[o.type]?this.defaults.extensions.childTokens[o.type].forEach(i=>{let s=o[i].flat(1/0);r=r.concat(this.walkTokens(s,t))}):o.tokens&&(r=r.concat(this.walkTokens(o.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if("renderer"in o){let i=t.renderers[o.name];i?t.renderers[o.name]=function(...s){let a=o.renderer.apply(this,s);return a===!1&&(a=i.apply(this,s)),a}:t.renderers[o.name]=o.renderer}if("tokenizer"in o){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[o.level];i?i.unshift(o.tokenizer):t[o.level]=[o.tokenizer],o.start&&(o.level==="block"?t.startBlock?t.startBlock.push(o.start):t.startBlock=[o.start]:o.level==="inline"&&(t.startInline?t.startInline.push(o.start):t.startInline=[o.start]))}"childTokens"in o&&o.childTokens&&(t.childTokens[o.name]=o.childTokens)}),n.extensions=t),r.renderer){let o=this.defaults.renderer||new nCe(this.defaults);for(let i in r.renderer){if(!(i in o))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let s=i,a=r.renderer[s],c=o[s];o[s]=(...l)=>{let u=a.apply(o,l);return u===!1&&(u=c.apply(o,l)),u||""}}n.renderer=o}if(r.tokenizer){let o=this.defaults.tokenizer||new rCe(this.defaults);for(let i in r.tokenizer){if(!(i in o))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let s=i,a=r.tokenizer[s],c=o[s];o[s]=(...l)=>{let u=a.apply(o,l);return u===!1&&(u=c.apply(o,l)),u}}n.tokenizer=o}if(r.hooks){let o=this.defaults.hooks||new zJ;for(let i in r.hooks){if(!(i in o))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let s=i,a=r.hooks[s],c=o[s];zJ.passThroughHooks.has(i)?o[s]=l=>{if(this.defaults.async&&zJ.passThroughHooksRespectAsync.has(i))return(async()=>{let d=await a.call(o,l);return c.call(o,d)})();let u=a.call(o,l);return c.call(o,u)}:o[s]=(...l)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(o,l);return d===!1&&(d=await c.apply(o,l)),d})();let u=a.apply(o,l);return u===!1&&(u=c.apply(o,l)),u}}n.hooks=o}if(r.walkTokens){let o=this.defaults.walkTokens,i=r.walkTokens;n.walkTokens=function(s){let a=[];return a.push(i.call(this,s)),o&&(a=a.concat(o.call(this,s))),a}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return hS.lex(e,t??this.defaults)}parser(e,t){return ES.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},o={...this.defaults,...n},i=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(o.hooks&&(o.hooks.options=o,o.hooks.block=e),o.async)return(async()=>{let s=o.hooks?await o.hooks.preprocess(t):t,a=await(o.hooks?await o.hooks.provideLexer():e?hS.lex:hS.lexInline)(s,o),c=o.hooks?await o.hooks.processAllTokens(a):a;o.walkTokens&&await Promise.all(this.walkTokens(c,o.walkTokens));let l=await(o.hooks?await o.hooks.provideParser():e?ES.parse:ES.parseInline)(c,o);return o.hooks?await o.hooks.postprocess(l):l})().catch(i);try{o.hooks&&(t=o.hooks.preprocess(t));let s=(o.hooks?o.hooks.provideLexer():e?hS.lex:hS.lexInline)(t,o);o.hooks&&(s=o.hooks.processAllTokens(s)),o.walkTokens&&this.walkTokens(s,o.walkTokens);let a=(o.hooks?o.hooks.provideParser():e?ES.parse:ES.parseInline)(s,o);return o.hooks&&(a=o.hooks.postprocess(a)),a}catch(s){return i(s)}}}onError(e,t){return r=>{if(r.message+=`
|
|
3842
|
-
Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error occurred:</p><pre>"+zT(r.message+"",!0)+"</pre>";return t?Promise.resolve(n):n}if(t)return Promise.reject(r);throw r}}},N2=new sjo;function ts(e,t){return N2.parse(e,t)}ts.options=ts.setOptions=function(e){return N2.setOptions(e),ts.defaults=N2.defaults,SUr(ts.defaults),ts};ts.getDefaults=vnt;ts.defaults=D2;ts.use=function(...e){return N2.use(...e),ts.defaults=N2.defaults,SUr(ts.defaults),ts};ts.walkTokens=function(e,t){return N2.walkTokens(e,t)};ts.parseInline=N2.parseInline;ts.Parser=ES;ts.parser=ES.parse;ts.Renderer=nCe;ts.TextRenderer=Mnt;ts.Lexer=hS;ts.lexer=hS.lex;ts.Tokenizer=rCe;ts.Hooks=zJ;ts.parse=ts;var Bqs=ts.options,Mqs=ts.setOptions,kqs=ts.use,Pqs=ts.walkTokens,Lqs=ts.parseInline;var Qqs=ES.parse,Uqs=hS.lex;var JJ=F(nZe(),1);Re();import{EOL as hf}from"os";function sCe(e){return ts.lexer(_nt(e)).map(t=>_S(t)).join("").trim()}function _S(e,t=0,r=null,n=null){switch(e.type){case"blockquote":return St.dim.italic((e.tokens??[]).map(o=>_S(o)).join(""));case"code":return e.lang&&(0,JJ.supportsLanguage)(e.lang)?(0,JJ.highlight)(e.text,{language:e.lang})+hf:(Se(`Language not supported while highlighting code, falling back to markdown: ${e.lang}`),(0,JJ.highlight)(e.text,{language:"markdown"})+hf);case"codespan":return St.blue(e.text);case"em":return St.italic((e.tokens??[]).map(o=>_S(o)).join(""));case"strong":return St.bold((e.tokens??[]).map(o=>_S(o)).join(""));case"heading":switch(e.depth){case 1:return St.bold.italic.underline((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf;case 2:return St.bold((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf;default:return St.bold.dim((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf}case"hr":return"---";case"image":return`[Image: ${e.title}: ${e.href}]`;case"link":return St.blue(e.href);case"list":return e.items.map((o,i)=>_S(o,t,e.ordered?e.start+i:null,e)).join("");case"list_item":return(e.tokens??[]).map(o=>`${" ".repeat(t)}${_S(o,t+1,r,e)}`).join("");case"paragraph":return(e.tokens??[]).map(o=>_S(o)).join("")+hf;case"space":return hf;case"text":return n?.type==="list_item"?`${r===null?"-":ujo(t,r)+"."} ${e.tokens?e.tokens.map(o=>_S(o,t,r,e)).join(""):e.text}${hf}`:e.text;case"table":return ajo(e)}return""}function ajo(e){if(e.type!=="table")return"";let t=e,r="",n=[],o=t.header.length;for(let l=0;l<o;l++)n[l]=0;t.header.forEach((l,u)=>{n[u]=Math.max(n[u],knt(l.text))}),t.rows.forEach(l=>{l.forEach((u,d)=>{n[d]=Math.max(n[d],knt(u.text))})}),n.forEach((l,u)=>{n[u]=Math.max(l,3)});let i=t.header.map((l,u)=>{let d=t.align[u]||"left";return DUr(l.text,n[u],d,!0)}).join(" \u2502 "),s=n.map(l=>"\u2500".repeat(l)).join("\u2500\u252C\u2500");r+="\u250C\u2500"+s+"\u2500\u2510"+hf,r+="\u2502 "+i+" \u2502"+hf;let a=n.map(l=>"\u2500".repeat(l)).join("\u2500\u253C\u2500");r+="\u251C\u2500"+a+"\u2500\u2524"+hf,t.rows.forEach(l=>{let u=l.map((d,p)=>{let f=t.align[p]||"left";return DUr(d.text,n[p],f,!1)}).join(" \u2502 ");r+="\u2502 "+u+" \u2502"+hf});let c=n.map(l=>"\u2500".repeat(l)).join("\u2500\u2534\u2500");return r+="\u2514\u2500"+c+"\u2500\u2518"+hf,r+hf}function DUr(e,t,r,n){let o=knt(e),i=Math.max(0,t-o),s=e;switch(r){case"center":let a=Math.floor(i/2),c=i-a;s=" ".repeat(a)+e+" ".repeat(c);break;case"right":s=" ".repeat(i)+e;break;case"left":default:s=e+" ".repeat(i);break}return n?St.bold(s):s}function knt(e){if(!e)return 0;let t=0;for(let r of Array.from(e)){let n=r.codePointAt(0)||0;n>=19968&&n<=40959||n>=13312&&n<=19903||n>=65280&&n<=65374||n>=65504&&n<=65510||n>=44032&&n<=55203||n>=12352&&n<=12447||n>=12448&&n<=12543||n>=12784&&n<=12799||n>=4352&&n<=4607||n>=12592&&n<=12687||n>=12288&&n<=12351?t+=2:n>=128512&&n<=128591||n>=127744&&n<=128511||n>=128640&&n<=128767?(n>=127462&&n<=127487||r.length>1&&r.charCodeAt(1)>=55296&&r.charCodeAt(1)<=57343,t+=2):n>=9728&&n<=10175||n>=128592&&n<=128639||n>=128768&&n<=128895||n>=128896&&n<=129023||r.charCodeAt(0)>=65280&&r.charCodeAt(0)<=65374?t+=2:t+=1}return t}var cjo=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao","ap","aq","ar","as","at","au","av","aw","ax","ay","az"],ljo=["i","ii","iii","iv","v","vi","vii","viii","ix","x","xi","xii","xiii","xiv","xv","xvi","xvii","xviii","xix","xx","xxi","xxii","xxiii","xxiv","xxv","xxvi","xxvii","xxviii","xxix","xxx","xxxi","xxxii","xxxiii","xxxiv","xxxv","xxxvi","xxxvii","xxxviii","xxxix","xl"];function ujo(e,t){switch(e){case 0:case 1:return t.toString();case 2:return cjo[t-1];case 3:return ljo[t-1];default:return t.toString()}}function aCe({param:{thinking:e},addMargin:t=!1}){return e?ZJ.default.createElement(x,{flexDirection:"column",gap:1,marginTop:t?1:0,width:"100%"},ZJ.default.createElement(C,{color:ee().secondaryText,italic:!0},"\u273B Thinking\u2026"),ZJ.default.createElement(x,{paddingLeft:2},ZJ.default.createElement(C,{color:ee().secondaryText,italic:!0},sCe(e)))):null}Ge();sr();function OUr({param:e,costUSD:t,durationMs:r,addMargin:n,tools:o,debug:i,verbose:s,erroredToolUseIDs:a,inProgressToolUseIDs:c,unresolvedToolUseIDs:l,shouldAnimate:u,shouldShowDot:d}){let p=qJ(o,e.name);if(!p)return Se(`Tool ${e.name} not found`),null;let f=e.input,A=!1,h=e.name===pc?e.input:void 0;if(h&&(h.action??"call")==="call"&&h.name){let I=qJ([...o,...rG()],h.name);I&&(p=I,f=h.input??{},A=!0)}if(p.name===Nd)return null;let E=!c.has(e.id)&&l.has(e.id),S=E?ee().secondaryText:void 0;if(p===VK){let{thought:I}=VK.inputSchema.parse(e.input);return Bg.default.createElement(aCe,{param:{thinking:I,signature:"",type:"thinking"},addMargin:n})}let b;try{b=p.userFacingName(f)}catch{b=p.name}return Bg.default.createElement(x,{flexDirection:"row",justifyContent:"space-between",marginTop:n?1:0,width:"100%"},Bg.default.createElement(x,null,Bg.default.createElement(x,{flexWrap:"nowrap",minWidth:b.length+(d?2:0)},d&&(E?Bg.default.createElement(x,{minWidth:2},Bg.default.createElement(C,{color:S},aG)):Bg.default.createElement(pUr,{shouldAnimate:u,isUnresolved:l.has(e.id),isError:a.has(e.id)})),Bg.default.createElement(C,{color:S,bold:!E},A
|
|
3842
|
+
Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error occurred:</p><pre>"+zT(r.message+"",!0)+"</pre>";return t?Promise.resolve(n):n}if(t)return Promise.reject(r);throw r}}},N2=new sjo;function ts(e,t){return N2.parse(e,t)}ts.options=ts.setOptions=function(e){return N2.setOptions(e),ts.defaults=N2.defaults,SUr(ts.defaults),ts};ts.getDefaults=vnt;ts.defaults=D2;ts.use=function(...e){return N2.use(...e),ts.defaults=N2.defaults,SUr(ts.defaults),ts};ts.walkTokens=function(e,t){return N2.walkTokens(e,t)};ts.parseInline=N2.parseInline;ts.Parser=ES;ts.parser=ES.parse;ts.Renderer=nCe;ts.TextRenderer=Mnt;ts.Lexer=hS;ts.lexer=hS.lex;ts.Tokenizer=rCe;ts.Hooks=zJ;ts.parse=ts;var Bqs=ts.options,Mqs=ts.setOptions,kqs=ts.use,Pqs=ts.walkTokens,Lqs=ts.parseInline;var Qqs=ES.parse,Uqs=hS.lex;var JJ=F(nZe(),1);Re();import{EOL as hf}from"os";function sCe(e){return ts.lexer(_nt(e)).map(t=>_S(t)).join("").trim()}function _S(e,t=0,r=null,n=null){switch(e.type){case"blockquote":return St.dim.italic((e.tokens??[]).map(o=>_S(o)).join(""));case"code":return e.lang&&(0,JJ.supportsLanguage)(e.lang)?(0,JJ.highlight)(e.text,{language:e.lang})+hf:(Se(`Language not supported while highlighting code, falling back to markdown: ${e.lang}`),(0,JJ.highlight)(e.text,{language:"markdown"})+hf);case"codespan":return St.blue(e.text);case"em":return St.italic((e.tokens??[]).map(o=>_S(o)).join(""));case"strong":return St.bold((e.tokens??[]).map(o=>_S(o)).join(""));case"heading":switch(e.depth){case 1:return St.bold.italic.underline((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf;case 2:return St.bold((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf;default:return St.bold.dim((e.tokens??[]).map(o=>_S(o)).join(""))+hf+hf}case"hr":return"---";case"image":return`[Image: ${e.title}: ${e.href}]`;case"link":return St.blue(e.href);case"list":return e.items.map((o,i)=>_S(o,t,e.ordered?e.start+i:null,e)).join("");case"list_item":return(e.tokens??[]).map(o=>`${" ".repeat(t)}${_S(o,t+1,r,e)}`).join("");case"paragraph":return(e.tokens??[]).map(o=>_S(o)).join("")+hf;case"space":return hf;case"text":return n?.type==="list_item"?`${r===null?"-":ujo(t,r)+"."} ${e.tokens?e.tokens.map(o=>_S(o,t,r,e)).join(""):e.text}${hf}`:e.text;case"table":return ajo(e)}return""}function ajo(e){if(e.type!=="table")return"";let t=e,r="",n=[],o=t.header.length;for(let l=0;l<o;l++)n[l]=0;t.header.forEach((l,u)=>{n[u]=Math.max(n[u],knt(l.text))}),t.rows.forEach(l=>{l.forEach((u,d)=>{n[d]=Math.max(n[d],knt(u.text))})}),n.forEach((l,u)=>{n[u]=Math.max(l,3)});let i=t.header.map((l,u)=>{let d=t.align[u]||"left";return DUr(l.text,n[u],d,!0)}).join(" \u2502 "),s=n.map(l=>"\u2500".repeat(l)).join("\u2500\u252C\u2500");r+="\u250C\u2500"+s+"\u2500\u2510"+hf,r+="\u2502 "+i+" \u2502"+hf;let a=n.map(l=>"\u2500".repeat(l)).join("\u2500\u253C\u2500");r+="\u251C\u2500"+a+"\u2500\u2524"+hf,t.rows.forEach(l=>{let u=l.map((d,p)=>{let f=t.align[p]||"left";return DUr(d.text,n[p],f,!1)}).join(" \u2502 ");r+="\u2502 "+u+" \u2502"+hf});let c=n.map(l=>"\u2500".repeat(l)).join("\u2500\u2534\u2500");return r+="\u2514\u2500"+c+"\u2500\u2518"+hf,r+hf}function DUr(e,t,r,n){let o=knt(e),i=Math.max(0,t-o),s=e;switch(r){case"center":let a=Math.floor(i/2),c=i-a;s=" ".repeat(a)+e+" ".repeat(c);break;case"right":s=" ".repeat(i)+e;break;case"left":default:s=e+" ".repeat(i);break}return n?St.bold(s):s}function knt(e){if(!e)return 0;let t=0;for(let r of Array.from(e)){let n=r.codePointAt(0)||0;n>=19968&&n<=40959||n>=13312&&n<=19903||n>=65280&&n<=65374||n>=65504&&n<=65510||n>=44032&&n<=55203||n>=12352&&n<=12447||n>=12448&&n<=12543||n>=12784&&n<=12799||n>=4352&&n<=4607||n>=12592&&n<=12687||n>=12288&&n<=12351?t+=2:n>=128512&&n<=128591||n>=127744&&n<=128511||n>=128640&&n<=128767?(n>=127462&&n<=127487||r.length>1&&r.charCodeAt(1)>=55296&&r.charCodeAt(1)<=57343,t+=2):n>=9728&&n<=10175||n>=128592&&n<=128639||n>=128768&&n<=128895||n>=128896&&n<=129023||r.charCodeAt(0)>=65280&&r.charCodeAt(0)<=65374?t+=2:t+=1}return t}var cjo=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao","ap","aq","ar","as","at","au","av","aw","ax","ay","az"],ljo=["i","ii","iii","iv","v","vi","vii","viii","ix","x","xi","xii","xiii","xiv","xv","xvi","xvii","xviii","xix","xx","xxi","xxii","xxiii","xxiv","xxv","xxvi","xxvii","xxviii","xxix","xxx","xxxi","xxxii","xxxiii","xxxiv","xxxv","xxxvi","xxxvii","xxxviii","xxxix","xl"];function ujo(e,t){switch(e){case 0:case 1:return t.toString();case 2:return cjo[t-1];case 3:return ljo[t-1];default:return t.toString()}}function aCe({param:{thinking:e},addMargin:t=!1}){return e?ZJ.default.createElement(x,{flexDirection:"column",gap:1,marginTop:t?1:0,width:"100%"},ZJ.default.createElement(C,{color:ee().secondaryText,italic:!0},"\u273B Thinking\u2026"),ZJ.default.createElement(x,{paddingLeft:2},ZJ.default.createElement(C,{color:ee().secondaryText,italic:!0},sCe(e)))):null}Ge();sr();function OUr({param:e,costUSD:t,durationMs:r,addMargin:n,tools:o,debug:i,verbose:s,erroredToolUseIDs:a,inProgressToolUseIDs:c,unresolvedToolUseIDs:l,shouldAnimate:u,shouldShowDot:d}){let p=qJ(o,e.name);if(!p)return Se(`Tool ${e.name} not found`),null;let f=e.input,A=!1,h=e.name===pc?e.input:void 0;if(h&&(h.action??"call")==="call"&&h.name){let I=qJ([...o,...rG()],h.name);I&&(p=I,f=h.input??{},A=!0)}if(p.name===Nd)return null;let E=!c.has(e.id)&&l.has(e.id),S=E?ee().secondaryText:void 0;if(p===VK){let{thought:I}=VK.inputSchema.parse(e.input);return Bg.default.createElement(aCe,{param:{thinking:I,signature:"",type:"thinking"},addMargin:n})}let b;try{b=p.userFacingName(f)}catch{b=p.name}return Bg.default.createElement(x,{flexDirection:"row",justifyContent:"space-between",marginTop:n?1:0,width:"100%"},Bg.default.createElement(x,null,Bg.default.createElement(x,{flexWrap:"nowrap",minWidth:b.length+(d?2:0)},d&&(E?Bg.default.createElement(x,{minWidth:2},Bg.default.createElement(C,{color:S},aG)):Bg.default.createElement(pUr,{shouldAnimate:u,isUnresolved:l.has(e.id),isError:a.has(e.id)})),Bg.default.createElement(C,{color:S,bold:!E},A?`<> ${b}`:b)),Bg.default.createElement(x,{flexWrap:"nowrap"},f&&Object.keys(f).length>0&&(()=>{let I;try{I=p.renderToolUseMessage(f,{verbose:s,cwd:Be()})}catch{I="error"}return Bg.default.isValidElement(I)?I:I==null||I===""?null:Bg.default.createElement(C,{color:S},"(",I,")")})(),Bg.default.createElement(C,{color:S},"\u2026"))),Bg.default.createElement(c_,{costUSD:t,durationMs:r,debug:i}))}var uu=F(ne(),1);var BUr=F(ne(),1);function MUr({content:e,verbose:t}){let r=XE(e,"bash-stdout")??"",n=XE(e,"bash-stderr")??"",o=r.split(`
|
|
3843
3843
|
`).length,i=n.split(`
|
|
3844
3844
|
`).length;return BUr.createElement(t_e,{content:{stdout:r,stdoutLines:o,stderr:n,stderrLines:i},verbose:!!t})}var O2=F(ne(),1);function cCe({content:e}){let t=XE(e,"local-command-stdout"),r=XE(e,"local-command-stderr");if(!t&&!r)return[];let n=ee(),o=[kUr(t?.trim(),n.text),kUr(r?.trim(),n.error)].filter(Boolean);return o.length===0&&(o=[O2.createElement(C,{key:"0"},"(No output)")]),[O2.createElement(x,{key:"0",gap:1},O2.createElement(x,null,O2.createElement(C,{color:n.secondaryText}," ","\u23BF ")),o.map((i,s)=>O2.createElement(x,{key:s,flexDirection:"column"},i)))]}function kUr(e,t){return e?O2.createElement(C,{color:t},e):null}function PUr({param:{text:e},costUSD:t,durationMs:r,debug:n,addMargin:o,shouldShowDot:i,verbose:s}){let{columns:a}=Di();if(Zbe(e))return null;if(e.startsWith("<bash-stdout")||e.startsWith("<bash-stderr"))return uu.default.createElement(MUr,{content:e,verbose:s});if(e.startsWith("<local-command-stdout")||e.startsWith("<local-command-stderr"))return uu.default.createElement(cCe,{content:e});if(e.startsWith(cR))return uu.default.createElement(C,null,"\xA0\xA0\u23BF \xA0",uu.default.createElement(C,{color:ee().error},e===cR?`${cR}: Please wait a moment and try again.`:e));switch(e){case Kbe:case nG:return null;case nl:case oG:return uu.default.createElement(C,null,"\xA0\xA0\u23BF \xA0",uu.default.createElement(C,{color:ee().error},"Interrupted by user"));case hqe:return uu.default.createElement(C,null,"\xA0\xA0\u23BF \xA0",uu.default.createElement(C,{color:ee().error},"Context low \xB7 Run /compact to compact & continue"));case Eqe:return uu.default.createElement(C,null,"\xA0\xA0\u23BF \xA0",uu.default.createElement(C,{color:ee().error},"Credit balance too low \xB7 Add funds: https://console.anthropic.com/settings/billing"));case aEe:return uu.default.createElement(C,null,"\xA0\xA0\u23BF \xA0",uu.default.createElement(C,{color:ee().error},aEe));default:return uu.default.createElement(x,{alignItems:"flex-start",flexDirection:"row",justifyContent:"space-between",marginTop:o?1:0,width:"100%"},uu.default.createElement(x,{flexDirection:"row"},i&&uu.default.createElement(x,{minWidth:2},uu.default.createElement(C,{color:ee().text},aG)),uu.default.createElement(x,{flexDirection:"column",width:a-6},uu.default.createElement(C,null,sCe(e)))),uu.default.createElement(c_,{costUSD:t,durationMs:r,debug:n}))}}var Pnt=F(ne(),1);function LUr({addMargin:e,param:{text:t}}){let r=XE(t,"command-message"),n=XE(t,"command-args");if(!r)return null;let o=ee();return Pnt.createElement(x,{flexDirection:"column",marginTop:e?1:0,width:"100%"},Pnt.createElement(C,{color:o.secondaryText},"> /",r," ",n))}var cG=F(ne(),1);Re();function lCe({addMargin:e,param:{text:t}}){let{columns:r}=Di();return t?cG.default.createElement(x,{flexDirection:"row",marginTop:e?1:0,width:"100%"},cG.default.createElement(x,{minWidth:2,width:2},cG.default.createElement(C,{color:ee().secondaryText},">")),cG.default.createElement(x,{flexDirection:"column",width:r-4},cG.default.createElement(C,{color:ee().secondaryText,wrap:"wrap"},t))):(Se("No content found in user prompt message"),null)}var Lu=F(ne(),1);Re();function djo(e){let t=e.match(/<teammate-message[^>]*teammate_id="([^"]*)"[^>]*>([\s\S]*?)<\/teammate-message>/);if(!t)return null;let r=t[1]||"unknown",n=t[2]?.trim()||"",i=e.match(/summary="([^"]*)"/)?.[1]||"",s="message";try{let a=JSON.parse(n);a.type&&(s=a.type)}catch{}return{teammateId:r,summary:i,content:n,messageType:s}}function fjo(e){let t=[],r=/<teammate-message[\s\S]*?<\/teammate-message>/g,n;for(;(n=r.exec(e))!==null;){let o=djo(n[0]);o&&t.push(o)}return t}function pjo(e){try{let t=JSON.parse(e);if(t.type==="task_assignment")return t.description||t.task||t.content||""}catch{return e}}function mjo(e){let t=new Map;for(let r of e){let n=`${r.teammateId}:${r.messageType}`;if(!t.has(n)){let i={teammateId:r.teammateId,messageType:r.messageType,count:0};r.messageType==="task_assignment"&&(i.description=pjo(r.content)),r.messageType==="message"&&(i.textContent=r.content),t.set(n,i)}let o=t.get(n);o.count++,r.messageType==="message"&&(o.textContent=r.content)}return Array.from(t.values())}function gjo(e){switch(e){case"idle_notification":return"idle notification";case"shutdown_approved":return"shutdown approved";case"shutdown_rejected":return"shutdown rejected";case"shutdown_request":return"shutdown request";case"task_assignment":return"task assignment";case"plan_approval_response":return"plan approval";case"message":return"message";default:return e}}function QUr({addMargin:e,param:{text:t}}){let{columns:r}=Di(),n=ee();if(!t)return Se("No content found in teammate message"),null;let o=fjo(t);if(o.length===0)return Lu.default.createElement(x,{flexDirection:"row",marginTop:e?1:0,width:"100%"},Lu.default.createElement(x,{minWidth:2,width:2},Lu.default.createElement(C,{color:n.secondaryText},">")),Lu.default.createElement(x,{flexDirection:"column",width:r-4},Lu.default.createElement(C,{color:n.secondaryText,wrap:"wrap"},t)));let i=mjo(o);return Lu.default.createElement(x,{flexDirection:"column",marginTop:e?1:0,width:"100%"},i.map((s,a)=>{let c=gjo(s.messageType),l=s.count>1?` (${s.count})`:"";return Lu.default.createElement(x,{key:`${s.teammateId}:${s.messageType}:${s.count}`,flexDirection:"column",width:r-4,borderStyle:"single",borderColor:n.suggestion,paddingX:1,marginBottom:1},Lu.default.createElement(x,{flexDirection:"row"},Lu.default.createElement(C,{color:n.secondaryText},"\u{1F4E7} from "),Lu.default.createElement(C,{color:n.primary,bold:!0},s.teammateId),Lu.default.createElement(C,{color:n.secondaryText},"\uFF1A"),Lu.default.createElement(C,{color:n.secondaryText},c,l)),s.messageType==="task_assignment"&&s.description&&Lu.default.createElement(x,{flexDirection:"row",marginTop:1},Lu.default.createElement(x,{flexDirection:"column",width:"100%"},Lu.default.createElement(C,{color:n.secondaryText,wrap:"wrap"},s.description))),s.messageType==="message"&&s.textContent&&Lu.default.createElement(x,{flexDirection:"row",marginTop:1},Lu.default.createElement(x,{flexDirection:"column",width:"100%"},Lu.default.createElement(C,{color:n.secondaryText,wrap:"wrap"},s.textContent))))}))}var NN=F(ne(),1);Ge();function UUr({addMargin:e,param:t}){if(t.text.trim()===Vy||t.text.trim().startsWith(Yoe)||t.text.trim().startsWith("<system-notification>"))return null;if(t.text.includes("<bash-input>"))return NN.createElement(zbe,{addMargin:e,param:t});if(t.text.includes("<command-name>")||t.text.includes("<command-message>"))return NN.createElement(LUr,{addMargin:e,param:t});if(t.text.startsWith("<local-command-stdout>")||t.text.startsWith("<local-command-stderr>"))return NN.createElement(cCe,{content:t.text});if(t.text.includes("<agent-notification>")||t.text.includes("<task-notification>")){let n=t.text.match(/<summary>([\s\S]*?)<\/summary>/);return n&&n[1]?t={...t,text:`${n[1].trim()}`}:t={...t,text:"[Agent] \u4EFB\u52A1\u5DF2\u5B8C\u6210"},NN.createElement(lCe,{addMargin:e,param:t})}if(t.text.startsWith(`This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
|
|
3845
3845
|
|
package/hands.js
CHANGED
|
@@ -756,7 +756,7 @@ data: ${JSON.stringify(z)}
|
|
|
756
756
|
`);a=Q.pop()||"";for(let z of Q){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:Q,done:z}=await s.read();if(z)break;a+=n.decode(Q,{stream:!0}),O()}I()}catch(Q){o.error(Q)}})()}})}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_${HB()}`,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 D6r(`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"}}},lbe=new abe;var Fmt=X(Qmt(),1);or();us();function Lg(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function Pmt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function qen(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function Gen(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function zen(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,r.response.usage=e.response.body?.usage,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.response.usage=e.openai.response.body?.usage):(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.openai.response.usage=e.openai.response.body?.usage),r}function H5(e,t,r){Dz(t,e),Rz(t,zen(e,r),r)}function D2(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 $5(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function QIe(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 Lmt=["/v1/messages"];function PIe(e){let t;try{typeof e=="string"?t=new Cv(e):e instanceof Cv?t=e:t=new Cv(e.url)}catch{return""}let r=t.pathname;for(let n of Lmt){let i=r.indexOf(n);if(i!==-1)return t.origin+r.slice(0,i)}return t.origin}function $Z(e,t){let r=typeof e=="string"?e:e instanceof Cv?e.toString():e.url,n;try{n=new Cv(r).pathname}catch{return!1}return Lmt.some(i=>n.includes(i))&&(t.method==="POST"||t.method==="post")}function jen(e){return async(t,r)=>{if(!$Z(t,r))return e(t,r);let n=JSON.parse(r.body),i=await qK.transformRequestOut(n),o=PIe(t)+"/chat/completions",s=Lg(r.headers),a=s.authorization??s.Authorization??"";qen(i,Pmt(s));let l=await e(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(i),signal:r.signal});if(!l.ok){let _=await l.text();return J(`OpenAI Chat Completions API error: ${l.status}`,{url:o,errorResponse:_}),QIe("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:Lg(l.headers)},openai:{request:{body:i},response:{}}};if(!c){let _=await l.text(),C=new Response(_,{status:l.status,statusText:l.statusText,headers:$5(l.headers)}),S=await qK.transformResponseIn(C,n),I=await S.text();try{H5({...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=D2(l.body),m=new Response(g.stream,{status:l.status,statusText:l.statusText,headers:$5(l.headers)}),A=await qK.transformResponseIn(m,n),E=D2(A.body);return Promise.all([g.done,E.done]).then(async([_,C])=>{try{H5({...f,openai:{...f.openai,response:{body:await fot(_)}},response:{...f.response,body:await OU(C)}},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 Yen(e){return async(t,r)=>{if(!$Z(t,r))return e(t,r);let n=JSON.parse(r.body),i=await GK.transformRequestOut(n),o=Lg(r.headers);Gen(i,Pmt(o));let s=JSON.stringify(i),l=PIe(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}),QIe("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:Lg(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:$5(u.headers)}),w=await GK.transformResponseIn(I,n),O=await w.text();try{H5({...m,openai:{...m.openai,response:{body:JSON.parse(S)}},response:{...m.response,body:JSON.parse(O)}},g,"responses")}catch(Q){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",Q)}return new Response(O,{status:w.status,statusText:w.statusText,headers:w.headers})}let A=D2(u.body),E=new Response(A.stream,{status:u.status,statusText:u.statusText,headers:$5(u.headers)}),_=await GK.transformResponseIn(E,n),C=D2(_.body);return Promise.all([A.done,C.done]).then(async([S,I])=>{try{H5({...m,openai:{...m.openai,response:{body:await dot(S)}},response:{...m.response,body:await OU(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(C.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function Ven(e){return async(t,r)=>{if(!$Z(t,r))return e(t,r);let n=JSON.parse(r.body),i=Lg(r.headers),o=await lbe.transformRequestOut(n),s=JSON.stringify(o),a=PIe(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(C){throw J("gemini request error:",C),C}if(!c.ok){let C=await c.text();return J(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:C}),QIe("Gemini API error","Gemini",c.status,c.statusText,C)}let u=n.stream===!0,f=i["x-agent-id"],g={request:{url:a,method:r.method,headers:Lg(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:Lg(c.headers)},openai:{request:{body:o},response:{}}},m=D2(c.body),A=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:$5(c.headers)}),E=await lbe.transformResponseIn(A),_=D2(E.body);return Promise.all([m.done,_.done]).then(async([C,S])=>{try{let I=u?pot(C):JSON.parse(C),w=u?await OU(S):JSON.parse(S);H5({...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(C=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+C)),new Response(_.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function Wen(e){return async(t,r)=>{if(!$Z(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=Lg(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 Cv?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 Cv?t.toString():t.url,method:r.method,headers:Lg(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:Lg(a.headers)}};return(async()=>{if(c){let m=await a.text();u.response.body=await OU(m)}else u.response.body=await a.json();let g=Lg(r.headers)["x-agent-id"];Dz(g,u),Rz(g,{request:u.request.body.messages,response:u.response.body.content,usage:u.response.body?.usage})})().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 HZ=null,MIe=!1;function Ken(){HZ=null,MIe=!1}pr.on("proxy:changed",Ken);function Jen(){if(MIe)return HZ;if(MIe=!0,ut().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(HZ=new Fmt.ProxyAgent({uri:e}),Jt(`[proxy] using proxy: ${e}`)),HZ}function Zen(){let e=Jen();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function qZ(e){let t=e||process.env.API_TYPE,r=Zen();switch(t){case"openai":return jen(r);case"openai-responses":return Yen(r);case"gemini":return Ven(r);default:return Wen(r)}}ph();var rtn=X(he(),1);function Umt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=Xen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function Xen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||etn(t)?0:ttn(t)?2:1}function etn(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function ttn(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 u_(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 WC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}ke();us();var dc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function GZ(e,t){dc.totalCost+=e,dc.totalAPIDuration+=t}function zZ(e,t){dc.inputTokens+=e,dc.outputTokens+=t,pr.emit("token:change",{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens})}function jZ(e,t){dc.cacheCreationTokens+=e,dc.cacheReadTokens+=t}function LIe(){return{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens,cacheCreationTokens:dc.cacheCreationTokens,cacheReadTokens:dc.cacheReadTokens}}function Hmt(){return dc.totalCost}function $mt(){return Date.now()-dc.startTime}function qmt(){return dc.totalAPIDuration}function Gmt(e){dc.currentContextTokens=e}function zmt(){return dc.currentContextTokens}ke();He();He();var FIe="2.4.
|
|
759
|
+
Stack trace: `+f.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var HZ=null,MIe=!1;function Ken(){HZ=null,MIe=!1}pr.on("proxy:changed",Ken);function Jen(){if(MIe)return HZ;if(MIe=!0,ut().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&(HZ=new Fmt.ProxyAgent({uri:e}),Jt(`[proxy] using proxy: ${e}`)),HZ}function Zen(){let e=Jen();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function qZ(e){let t=e||process.env.API_TYPE,r=Zen();switch(t){case"openai":return jen(r);case"openai-responses":return Yen(r);case"gemini":return Ven(r);default:return Wen(r)}}ph();var rtn=X(he(),1);function Umt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=Xen(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function Xen(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||etn(t)?0:ttn(t)?2:1}function etn(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function ttn(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 u_(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 WC(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}ke();us();var dc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function GZ(e,t){dc.totalCost+=e,dc.totalAPIDuration+=t}function zZ(e,t){dc.inputTokens+=e,dc.outputTokens+=t,pr.emit("token:change",{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens})}function jZ(e,t){dc.cacheCreationTokens+=e,dc.cacheReadTokens+=t}function LIe(){return{inputTokens:dc.inputTokens,outputTokens:dc.outputTokens,cacheCreationTokens:dc.cacheCreationTokens,cacheReadTokens:dc.cacheReadTokens}}function Hmt(){return dc.totalCost}function $mt(){return Date.now()-dc.startTime}function qmt(){return dc.totalAPIDuration}function Gmt(e){dc.currentContextTokens=e}function zmt(){return dc.currentContextTokens}ke();He();He();var FIe="2.4.16";globalThis.MACRO={VERSION:FIe,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 YZ=process.env.HAWA_CODE_USER_AGENT||`${Ki}/${FIe} (${process.env.USER_TYPE})`;import{randomUUID as _y}from"crypto";us();ke();Kt();_r();ke();He();import{existsSync as g_,readdirSync as Iin,statSync as Tin}from"fs";import{join as ZC,relative as vin}from"path";import{homedir as Aht}from"os";import{platform as xin}from"process";import{readFile as XC}from"fs/promises";_r();Fg();or();import{join as atn,sep as ltn}from"path";function Am(){if(!gm())return!1;try{let e=ut();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Yf(){return(atn(Be(),".hcode","team-memory")+ltn).normalize("NFC")}function f_(e){let t=e.normalize("NFC"),r=Yf();return t.startsWith(r)}var hht=X(J5(),1);Qi();var fht=X(J5(),1);_r();He();ke();Iu();import{readFile as uht}from"fs/promises";import{existsSync as rTe,readdirSync as yin,statSync as bin}from"fs";import{join as nTe,relative as pht}from"path";import{homedir as Cin}from"os";function dht(e){try{let t=(0,fht.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 Sin(e,t){return t.length===0?!0:t.some(r=>{try{return ac(e,r,{matchBase:!0,dot:!0})}catch(n){return ve(n),!1}})}function iTe(e){let t=[];try{if(!rTe(e))return t;let r=yin(e);for(let n of r){let i=nTe(e,n),o=bin(i);o.isDirectory()?t.push(...iTe(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){ve(r)}return t}async function mht(){let e=[];try{let t=nTe(Cin(),Xr,"rules");if(rTe(t)){let r=iTe(t);for(let n of r)try{let i=await uht(n,"utf-8"),{paths:o,content:s}=dht(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=nTe(Be(),Xr,"rules");if(rTe(t)){let r=iTe(t);for(let n of r)try{let i=await uht(n,"utf-8"),{paths:o,content:s}=dht(i);o.length>0&&e.push({filePath:pht(Be(),n),content:s,paths:o,isProjectRule:!0})}catch(i){ve(i)}}}catch(t){ve(t)}return e}function ght(e,t){e=vV(e);let r=vV(Be()),n=e.startsWith(r)?pht(r,e):e;return t.filter(i=>Sin(n,i.paths))}var win=`# 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 Din(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 tx(){return Z5()?`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:r0(c.inputSchema));return{name:c.name,description:`${u}
|
|
1129
1129
|
|
|
1130
1130
|
Schema:
|
|
1131
|
-
${f}`}}),{messages:a}=t,l=ecn(o);return tcn(o,l,s,a)}},pyt=rcn;$g();var Qu=X(he(),1),gO=X(he(),1);ke();ke();import{existsSync as ncn,readdirSync as icn,statSync as ocn}from"fs";import{join as scn}from"path";function acn(){let e=Ji.plan();if(!ncn(e))return[];try{return icn(e).filter(r=>r.endsWith(".md")).map(r=>{let n=scn(e,r),i=ocn(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var myt=({onSelect:e})=>{let[t,r]=(0,gO.useState)([]),[n,i]=(0,gO.useState)(0),[o,s]=(0,gO.useState)(!1);(0,gO.useEffect)(()=>{let c=acn();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=Le();return o?Qu.createElement(N,{flexDirection:"column",marginY:1},Qu.createElement(N,{marginBottom:1},Qu.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")),Qu.createElement(N,{marginBottom:1},Qu.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 Qu.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},Qu.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),Qu.createElement(v,{color:f?l.claude:l.text}," "),Qu.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&Qu.createElement(v,{dimColor:!0}," ","(",Kge(c.modified),")"))}),Qu.createElement(N,{marginTop:1,marginLeft:2},Qu.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):Qu.createElement(N,{flexDirection:"column",marginY:1},Qu.createElement(v,null,"Loading plan history..."))};var gyt=X(he(),1),lcn={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):gyt.createElement(myt,{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"}},Ayt=lcn;$g();var ccn={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"}},hyt=ccn;_r();import{resolve as ucn}from"path";var dcn={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=ucn(r,t);la(n);let i=Be();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},Eyt=dcn;var WCt=X(he(),1);var Hn=X(he(),1);var qcn=X(he(),1);var M9=X(he(),1),Ucn=X(Cyt(),1);var Syt={info:"blue",success:"green",error:"red",warning:"yellow"},Tcn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:Syt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Syt[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=Pr.info),e==="success"&&(t=Pr.tick),e==="error"&&(t=Pr.cross),e==="warning"&&(t=Pr.warning),{icon:t}}},Iyt=Tcn;var vcn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},Tyt=vcn;var xcn={styles:{input:({isFocused:e})=>({dimColor:!e})}},vyt=xcn;var wcn={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=wcn;var Dcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},wyt=Dcn;var Rcn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Pr.square,remainingCharacter:Pr.squareLightShade})},Dyt=Rcn;var Ncn={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})}},Ryt=Ncn;var Bcn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},Nyt=Bcn;var Ocn={success:"green",error:"red",warning:"yellow",info:"blue"},kcn={success:Pr.tick,error:Pr.cross,warning:Pr.warning,info:Pr.info},Mcn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Ocn[e]}),message:()=>({})},config:({variant:e})=>({icon:kcn[e]})},Byt=Mcn;var Qcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Pr.line})},Oyt=Qcn;var Pcn={styles:{value:()=>({})}},kyt=Pcn;var Lcn={styles:{value:()=>({})}},Myt=Lcn;var Fcn={styles:{value:()=>({})}},Qyt=Fcn;var Hcn={components:{Alert:Iyt,Badge:Tyt,ConfirmInput:vyt,MultiSelect:xyt,OrderedList:wyt,ProgressBar:Dyt,Select:Ryt,Spinner:Nyt,StatusMessage:Byt,UnorderedList:Oyt,TextInput:kyt,EmailInput:Myt,PasswordInput:Qyt}},$cn=(0,M9.createContext)(Hcn);var po=e=>(0,M9.useContext)($cn).components[e];var Gcn=X(he(),1);var I_=X(he(),1);var hO=X(he(),1);var Pyt=X(he(),1);var Q9=Pr.line;var cee=(0,Pyt.createContext)({marker:Q9});function Lyt({children:e}){let{marker:t}=(0,hO.useContext)(cee),{styles:r}=po("UnorderedList");return hO.default.createElement(N,{...r.listItem()},hO.default.createElement(v,{...r.marker()},t),hO.default.createElement(N,{...r.content()},e))}var Fyt=X(he(),1),$ve=(0,Fyt.createContext)({depth:0});function zcn({children:e}){let{depth:t}=(0,I_.useContext)($ve),{styles:r,config:n}=po("UnorderedList"),i=(0,I_.useMemo)(()=>({depth:t+1}),[t]),o=(0,I_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??Q9}:{marker:Q9}},[n,t]);return I_.default.createElement($ve.Provider,{value:i},I_.default.createElement(cee.Provider,{value:o},I_.default.createElement(N,{...r.list()},e)))}zcn.Item=Lyt;var Ycn=X(he(),1);var jcn=X(he(),1);var P9=X(he(),1);var EO=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 Uyt=X(he(),1);var _O=X(he(),1);var L9=X(he(),1);function Hyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return L9.default.createElement(N,{...n.option({isFocused:e})},e&&L9.default.createElement(v,{...n.focusIndicator()},Pr.pointer),L9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&L9.default.createElement(v,{...n.selectedIndicator()},Pr.tick))}var Cm=X(he(),1);import{isDeepStrictEqual as Vcn}from"node:util";var Wcn=(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}},$yt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new EO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},qyt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,Cm.useReducer)(Wcn,{visibleOptionCount:e,defaultValue:r,options:t},$yt),[s,a]=(0,Cm.useState)(t);t!==s&&!Vcn(t,s)&&(o({type:"reset",state:$yt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,Cm.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,Cm.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,Cm.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,Cm.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,Cm.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 Gyt=({isDisabled:e=!1,state:t})=>{vr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function yO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=qyt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Gyt({isDisabled:e,state:s});let{styles:a}=po("Select");return _O.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=_O.default.createElement(_O.default.Fragment,null,l.label.slice(0,u),_O.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return _O.default.createElement(Hyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Kcn=X(he(),1);var zyt=X(he(),1);var Zcn=X(he(),1);var uee=X(he(),1);var Jcn=X(he(),1);var U2i=ar.inverse(" ");var Yg=X(he(),1);var bO=X(he(),1);var jyt=X(he(),1);var dee=(0,jyt.createContext)({marker:Pr.line});function fee({children:e}){let{marker:t}=(0,bO.useContext)(dee),{styles:r}=po("OrderedList");return bO.default.createElement(N,{...r.listItem()},bO.default.createElement(v,{...r.marker()},t),bO.default.createElement(N,{...r.content()},e))}var Yyt=X(he(),1),qve=(0,Yyt.createContext)({marker:""});function Vg({children:e}){let{marker:t}=(0,Yg.useContext)(qve),{styles:r}=po("OrderedList"),n=0;for(let o of Yg.default.Children.toArray(e))!(0,Yg.isValidElement)(o)||o.type!==fee||n++;let i=String(n).length;return Yg.default.createElement(N,{...r.list()},Yg.default.Children.map(e,(o,s)=>{if(!(0,Yg.isValidElement)(o)||o.type!==fee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return Yg.default.createElement(qve.Provider,{value:{marker:l}},Yg.default.createElement(dee.Provider,{value:{marker:l}},o))}))}Vg.Item=fee;var eun=X(he(),1);var Gve=X(he(),1);var Xcn=X(he(),1);var gOi=ar.inverse(" ");var tun=X(he(),1);var run=X(he(),1);var iun=X(he(),1);var pee=X(he(),1);var nun=X(he(),1);var FOi=ar.inverse(" ");var $i=X(he(),1);var zve=X(he(),1),jve=X(he(),1);e9();us();Qi();qv();or();var Vyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function rx(){let e=[...Vyt,...[...Vyt].reverse()],{frame:t}=ER({interval:120});return zve.createElement(N,{flexWrap:"nowrap",height:1,width:2},zve.createElement(v,{color:Le().claude},e[t%e.length]))}var Aee=X(he(),1);var gee=null,T_=null,mee=new Set;function Vve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=Lpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Yve(){T_&&(gee=Vve(T_),mee.forEach(e=>e(gee)))}function oun(e,t){return T_!==e&&(T_&&T_.off("resize",Yve),T_=e,gee=Vve(e),e.on("resize",Yve)),mee.add(t),()=>{mee.delete(t),mee.size===0&&T_&&(T_.off("resize",Yve),T_=null,gee=null)}}function Wve(){let{stdout:e}=hR(),[t,r]=(0,Aee.useState)(()=>Vve(e));return(0,Aee.useEffect)(()=>oun(e,r),[e]),t}function CO(){return Wve()}He();Tf();ke();lh();ke();var wMi=X(Axe(),1);import{homedir as Y9}from"os";import{join as TO}from"path";import{existsSync as V9,mkdirSync as PCt,appendFileSync as QCt,readFileSync as LCt,constants as rpn,writeFileSync as npn,unlinkSync as FCt,statSync as ipn}from"fs";import{platform as UCt}from"process";import{accessSync as opn}from"fs";var tpn="2.4.15",j9={VERSION:tpn,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"};He();var ix=TO(L0,".update.lock"),spn=300*1e3;function HCt(){try{if(V9(L0)||PCt(L0,{recursive:!0}),V9(ix)){let e=ipn(ix);if(Date.now()-e.mtimeMs<spn)return!1;try{FCt(ix)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return npn(ix,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function $Ct(){try{V9(ix)&&LCt(ix,"utf8")===`${process.pid}`&&FCt(ix)}catch(e){ve(`Failed to release lock: ${e}`)}}async function hxe(){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{opn(t,rpn.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 qCt(e){if(!HCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:j9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{V9(e)||PCt(e,{recursive:!0});let t=await si(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
|
|
1131
|
+
${f}`}}),{messages:a}=t,l=ecn(o);return tcn(o,l,s,a)}},pyt=rcn;$g();var Qu=X(he(),1),gO=X(he(),1);ke();ke();import{existsSync as ncn,readdirSync as icn,statSync as ocn}from"fs";import{join as scn}from"path";function acn(){let e=Ji.plan();if(!ncn(e))return[];try{return icn(e).filter(r=>r.endsWith(".md")).map(r=>{let n=scn(e,r),i=ocn(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var myt=({onSelect:e})=>{let[t,r]=(0,gO.useState)([]),[n,i]=(0,gO.useState)(0),[o,s]=(0,gO.useState)(!1);(0,gO.useEffect)(()=>{let c=acn();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=Le();return o?Qu.createElement(N,{flexDirection:"column",marginY:1},Qu.createElement(N,{marginBottom:1},Qu.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")),Qu.createElement(N,{marginBottom:1},Qu.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 Qu.createElement(N,{key:c.isNew?"new":c.value,flexDirection:"row",marginLeft:2},Qu.createElement(v,{color:f?l.claude:l.text},f?"\u276F":" "),Qu.createElement(v,{color:f?l.claude:l.text}," "),Qu.createElement(v,{color:f?l.claude:l.text,bold:c.isNew},c.isNew?c.label:c.label.replace(".md","")),!c.isNew&&c.modified&&Qu.createElement(v,{dimColor:!0}," ","(",Kge(c.modified),")"))}),Qu.createElement(N,{marginTop:1,marginLeft:2},Qu.createElement(v,{dimColor:!0},"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"))):Qu.createElement(N,{flexDirection:"column",marginY:1},Qu.createElement(v,null,"Loading plan history..."))};var gyt=X(he(),1),lcn={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):gyt.createElement(myt,{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"}},Ayt=lcn;$g();var ccn={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"}},hyt=ccn;_r();import{resolve as ucn}from"path";var dcn={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=ucn(r,t);la(n);let i=Be();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},Eyt=dcn;var WCt=X(he(),1);var Hn=X(he(),1);var qcn=X(he(),1);var M9=X(he(),1),Ucn=X(Cyt(),1);var Syt={info:"blue",success:"green",error:"red",warning:"yellow"},Tcn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:Syt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Syt[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=Pr.info),e==="success"&&(t=Pr.tick),e==="error"&&(t=Pr.cross),e==="warning"&&(t=Pr.warning),{icon:t}}},Iyt=Tcn;var vcn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},Tyt=vcn;var xcn={styles:{input:({isFocused:e})=>({dimColor:!e})}},vyt=xcn;var wcn={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=wcn;var Dcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},wyt=Dcn;var Rcn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Pr.square,remainingCharacter:Pr.squareLightShade})},Dyt=Rcn;var Ncn={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})}},Ryt=Ncn;var Bcn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},Nyt=Bcn;var Ocn={success:"green",error:"red",warning:"yellow",info:"blue"},kcn={success:Pr.tick,error:Pr.cross,warning:Pr.warning,info:Pr.info},Mcn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Ocn[e]}),message:()=>({})},config:({variant:e})=>({icon:kcn[e]})},Byt=Mcn;var Qcn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Pr.line})},Oyt=Qcn;var Pcn={styles:{value:()=>({})}},kyt=Pcn;var Lcn={styles:{value:()=>({})}},Myt=Lcn;var Fcn={styles:{value:()=>({})}},Qyt=Fcn;var Hcn={components:{Alert:Iyt,Badge:Tyt,ConfirmInput:vyt,MultiSelect:xyt,OrderedList:wyt,ProgressBar:Dyt,Select:Ryt,Spinner:Nyt,StatusMessage:Byt,UnorderedList:Oyt,TextInput:kyt,EmailInput:Myt,PasswordInput:Qyt}},$cn=(0,M9.createContext)(Hcn);var po=e=>(0,M9.useContext)($cn).components[e];var Gcn=X(he(),1);var I_=X(he(),1);var hO=X(he(),1);var Pyt=X(he(),1);var Q9=Pr.line;var cee=(0,Pyt.createContext)({marker:Q9});function Lyt({children:e}){let{marker:t}=(0,hO.useContext)(cee),{styles:r}=po("UnorderedList");return hO.default.createElement(N,{...r.listItem()},hO.default.createElement(v,{...r.marker()},t),hO.default.createElement(N,{...r.content()},e))}var Fyt=X(he(),1),$ve=(0,Fyt.createContext)({depth:0});function zcn({children:e}){let{depth:t}=(0,I_.useContext)($ve),{styles:r,config:n}=po("UnorderedList"),i=(0,I_.useMemo)(()=>({depth:t+1}),[t]),o=(0,I_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??Q9}:{marker:Q9}},[n,t]);return I_.default.createElement($ve.Provider,{value:i},I_.default.createElement(cee.Provider,{value:o},I_.default.createElement(N,{...r.list()},e)))}zcn.Item=Lyt;var Ycn=X(he(),1);var jcn=X(he(),1);var P9=X(he(),1);var EO=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 Uyt=X(he(),1);var _O=X(he(),1);var L9=X(he(),1);function Hyt({isFocused:e,isSelected:t,children:r}){let{styles:n}=po("Select");return L9.default.createElement(N,{...n.option({isFocused:e})},e&&L9.default.createElement(v,{...n.focusIndicator()},Pr.pointer),L9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&L9.default.createElement(v,{...n.selectedIndicator()},Pr.tick))}var Cm=X(he(),1);import{isDeepStrictEqual as Vcn}from"node:util";var Wcn=(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}},$yt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new EO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},qyt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,Cm.useReducer)(Wcn,{visibleOptionCount:e,defaultValue:r,options:t},$yt),[s,a]=(0,Cm.useState)(t);t!==s&&!Vcn(t,s)&&(o({type:"reset",state:$yt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,Cm.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,Cm.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,Cm.useCallback)(()=>{o({type:"select-focused-option"})},[]),f=(0,Cm.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,Cm.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 Gyt=({isDisabled:e=!1,state:t})=>{vr((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function yO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=qyt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Gyt({isDisabled:e,state:s});let{styles:a}=po("Select");return _O.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=_O.default.createElement(_O.default.Fragment,null,l.label.slice(0,u),_O.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return _O.default.createElement(Hyt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Kcn=X(he(),1);var zyt=X(he(),1);var Zcn=X(he(),1);var uee=X(he(),1);var Jcn=X(he(),1);var U2i=ar.inverse(" ");var Yg=X(he(),1);var bO=X(he(),1);var jyt=X(he(),1);var dee=(0,jyt.createContext)({marker:Pr.line});function fee({children:e}){let{marker:t}=(0,bO.useContext)(dee),{styles:r}=po("OrderedList");return bO.default.createElement(N,{...r.listItem()},bO.default.createElement(v,{...r.marker()},t),bO.default.createElement(N,{...r.content()},e))}var Yyt=X(he(),1),qve=(0,Yyt.createContext)({marker:""});function Vg({children:e}){let{marker:t}=(0,Yg.useContext)(qve),{styles:r}=po("OrderedList"),n=0;for(let o of Yg.default.Children.toArray(e))!(0,Yg.isValidElement)(o)||o.type!==fee||n++;let i=String(n).length;return Yg.default.createElement(N,{...r.list()},Yg.default.Children.map(e,(o,s)=>{if(!(0,Yg.isValidElement)(o)||o.type!==fee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return Yg.default.createElement(qve.Provider,{value:{marker:l}},Yg.default.createElement(dee.Provider,{value:{marker:l}},o))}))}Vg.Item=fee;var eun=X(he(),1);var Gve=X(he(),1);var Xcn=X(he(),1);var gOi=ar.inverse(" ");var tun=X(he(),1);var run=X(he(),1);var iun=X(he(),1);var pee=X(he(),1);var nun=X(he(),1);var FOi=ar.inverse(" ");var $i=X(he(),1);var zve=X(he(),1),jve=X(he(),1);e9();us();Qi();qv();or();var Vyt=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"];function rx(){let e=[...Vyt,...[...Vyt].reverse()],{frame:t}=ER({interval:120});return zve.createElement(N,{flexWrap:"nowrap",height:1,width:2},zve.createElement(v,{color:Le().claude},e[t%e.length]))}var Aee=X(he(),1);var gee=null,T_=null,mee=new Set;function Vve(e){let{columns:t,rows:r}=e;if(t&&r)return{columns:t,rows:r};let n=Lpe();return{columns:t||n.columns||80,rows:r||n.rows||24}}function Yve(){T_&&(gee=Vve(T_),mee.forEach(e=>e(gee)))}function oun(e,t){return T_!==e&&(T_&&T_.off("resize",Yve),T_=e,gee=Vve(e),e.on("resize",Yve)),mee.add(t),()=>{mee.delete(t),mee.size===0&&T_&&(T_.off("resize",Yve),T_=null,gee=null)}}function Wve(){let{stdout:e}=hR(),[t,r]=(0,Aee.useState)(()=>Vve(e));return(0,Aee.useEffect)(()=>oun(e,r),[e]),t}function CO(){return Wve()}He();Tf();ke();lh();ke();var wMi=X(Axe(),1);import{homedir as Y9}from"os";import{join as TO}from"path";import{existsSync as V9,mkdirSync as PCt,appendFileSync as QCt,readFileSync as LCt,constants as rpn,writeFileSync as npn,unlinkSync as FCt,statSync as ipn}from"fs";import{platform as UCt}from"process";import{accessSync as opn}from"fs";var tpn="2.4.16",j9={VERSION:tpn,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"};He();var ix=TO(L0,".update.lock"),spn=300*1e3;function HCt(){try{if(V9(L0)||PCt(L0,{recursive:!0}),V9(ix)){let e=ipn(ix);if(Date.now()-e.mtimeMs<spn)return!1;try{FCt(ix)}catch(r){return ve(`Failed to remove stale lock file: ${r}`),!1}}return npn(ix,`${process.pid}`,"utf8"),!0}catch(e){return ve(`Failed to acquire lock: ${e}`),!1}}function $Ct(){try{V9(ix)&&LCt(ix,"utf8")===`${process.pid}`&&FCt(ix)}catch(e){ve(`Failed to release lock: ${e}`)}}async function hxe(){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{opn(t,rpn.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 qCt(e){if(!HCt())throw Et("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:j9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{V9(e)||PCt(e,{recursive:!0});let t=await si(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
|
|
1132
1132
|
# npm global path
|
|
1133
1133
|
export PATH="${e}/bin:$PATH"
|
|
1134
1134
|
`;if(UCt==="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=[TO(Y9(),".bashrc"),TO(Y9(),".bash_profile"),TO(Y9(),".zshrc"),TO(Y9(),".config","fish","config.fish")];for(let i of n)if(V9(i))try{if(!LCt(i,"utf8").includes(e)){if(i.includes("fish")){let s=`
|