@dahawa/hawa-code 1.35.1 → 1.35.2

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.
Files changed (2) hide show
  1. package/cli.js +3 -3
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -273,8 +273,8 @@ data: ${JSON.stringify(j)}
273
273
  `;i.enqueue(r.encode(Q))},C=$=>{switch($){case"STOP":return"end_turn";case"MAX_TOKENS":return"max_tokens";case"SAFETY":return"stop_sequence";case"RECITATION":return"stop_sequence";default:return"end_turn"}},x=()=>{u||y("message_start",{type:"message_start",message:{id:d,type:"message",role:"assistant",model:p,content:[],stop_reason:null,stop_sequence:null,usage:{input_tokens:_,output_tokens:E}}}),c&&y("content_block_stop",{type:"content_block_stop",index:l});let $={input_tokens:_,output_tokens:E};m==="end_turn"&&h&&(m="tool_use"),y("message_delta",{type:"message_delta",delta:{stop_reason:m,stop_sequence:null},usage:$}),y("message_stop",{type:"message_stop"}),y("done",{}),i.close()},D=$=>{if(!$.candidates||!$.candidates[0])return;let j=$.candidates[0],Q=j.content;u||($.usageMetadata&&(_=$.usageMetadata.promptTokenCount||0,E=$.usageMetadata.candidatesTokenCount||0),y("message_start",{type:"message_start",message:{id:d,type:"message",role:"assistant",model:p,content:[],stop_reason:null,stop_sequence:null,usage:{input_tokens:_,output_tokens:E}}}),Q?.parts?.[0]?.text?(y("content_block_start",{type:"content_block_start",index:0,content_block:{type:"text",text:""}}),c=!0,l=0):(c=!1,l=-1),u=!0),Q&&Q.parts&&Q.parts.forEach(L=>{if(L.text&&(c||(l++,y("content_block_start",{type:"content_block_start",index:l,content_block:{type:"text",text:""}}),c=!0),y("content_block_delta",{type:"content_block_delta",index:l,delta:{type:"text_delta",text:L.text}})),L.functionCall){h=!0,c&&(y("content_block_stop",{type:"content_block_stop",index:l}),c=!1),l++;let W=`toolu_${oB()}`,V=L.functionCall.thoughtSignature||L.functionCall.thought_signature||null;y("content_block_start",{type:"content_block_start",index:l,content_block:{type:"tool_use",id:W,name:L.functionCall.name,thought_signature:V}});let Ee=JSON.stringify(L.functionCall.args||{});y("content_block_delta",{type:"content_block_delta",index:l,delta:{type:"input_json_delta",partial_json:Ee}}),y("content_block_stop",{type:"content_block_stop",index:l})}}),$.usageMetadata&&(_=$.usageMetadata.promptTokenCount||_,E=$.usageMetadata.candidatesTokenCount||E),j.finishReason&&(m=C(j.finishReason))},k=()=>{let $=a.split(`
274
274
  `);a=$.pop()||"";for(let j of $){let Q=j.trim();if(!(!Q||Q==="data: [DONE]"))if(Q.startsWith("data: ")){let L=Q.slice(6);try{let W=JSON.parse(L);D(W)}catch(W){this.logger&&this.logger.error({err:W,line:Q},"Failed to parse Gemini SSE chunk")}}else try{let L=JSON.parse(Q);D(L)}catch{}}};(async()=>{try{for(;;){let{value:$,done:j}=await s.read();if(j)break;a+=n.decode($,{stream:!0}),k()}x()}catch($){i.error($)}})()}})}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(i=>{if(i.text&&n.push({type:"text",text:i.text}),i.functionCall){let s=`toolu_${oB()}`,a=i.functionCall.thoughtSignature||i.functionCall.thought_signature||null;n.push({type:"tool_use",id:s,name:i.functionCall.name,input:i.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:`
275
275
 
276
- [Search queries used: ${r.groundingMetadata.webSearchQueries.join(", ")}]`}));let o={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(i=>i.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:o},"Conversion complete, final Anthropic response"),o}catch{throw zyn(`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"}}},YRe=new VRe});import{URL as sO}from"url";function _A(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function HMt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function Vyn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function Yyn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function Wyn(e,t="chat"){let r={request:{},response:{},openai:{request:{},response:{}}};return r.request.model=e.request.body.model,r.request.messages=e.request.body.messages,r.request.system=e.request.body.system,r.response.content=e.response.body.content,t==="responses"?(r.openai.request.model=e.openai.request.body.model,r.openai.request.input=e.openai.request.body.input,r.openai.response.output=e.openai.response.body?.output):(r.openai.request.model=e.openai.request.body.model,r.openai.request.messages=e.openai.request.body.messages,r.openai.response.choices=e.openai.response.body.choices),r}function L$(e,t,r){QZ(t,e),jZ(t,Wyn(e,r),r)}function iB(e){let t=[],r=e.getReader(),n,o=new Promise(u=>n=u),i=!1,s=()=>{i||(i=!0,n(Buffer.concat(t).toString("utf8")))};return{stream:new ReadableStream({async pull(u){try{let{done:c,value:l}=await r.read();if(c){u.close(),s();return}t.push(l),u.enqueue(l)}catch(c){u.error(c),s()}},cancel(u){r.cancel(u).catch(()=>{}),s()}}),done:o}}function B$(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function WRe(e,t,r,n,o){let i;try{i={type:"error",error:{type:"api_error",message:JSON.parse(o).error?.message??`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}catch{i={type:"error",error:{type:"api_error",message:`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}return new Response(JSON.stringify(i),{status:r,statusText:n,headers:{"Content-Type":"application/json"}})}function KRe(e){let t;try{typeof e=="string"?t=new sO(e):e instanceof sO?t=e:t=new sO(e.url)}catch{return""}let r=t.pathname;for(let n of qMt){let o=r.indexOf(n);if(o!==-1)return t.origin+r.slice(0,o)}return t.origin}function Xie(e,t){let r=typeof e=="string"?e:e instanceof sO?e.toString():e.url,n;try{n=new sO(r).pathname}catch{return!1}return qMt.some(o=>n.includes(o))&&(t.method==="POST"||t.method==="post")}function Kyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=await Zie.transformRequestOut(n),i=KRe(t)+"/chat/completions",s=_A(r.headers),a=s.authorization??s.Authorization??"";Vyn(o,HMt(s));let u=await e(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(o)});if(!u.ok){let E=await u.text();return le(`OpenAI Chat Completions API error: ${u.status}`,{url:i,errorResponse:E}),WRe("OpenAI Chat Completions API error","OPENROUTER",u.status,u.statusText,E)}let c=n.stream===!0,l=s["x-agent-id"],d={request:{url:i,method:r.method,headers:s,body:n},response:{status:u.status,statusText:u.statusText,headers:_A(u.headers)},openai:{request:{body:o},response:{}}};if(!c){let E=await u.text(),y=new Response(E,{status:u.status,statusText:u.statusText,headers:B$(u.headers)}),C=await Zie.transformResponseIn(y,n),x=await C.text();try{L$({...d,openai:{...d.openai,response:{body:JSON.parse(E)}},response:{...d.response,body:JSON.parse(x)}},l)}catch(D){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u975E\u6D41\u5F0F):",D)}return new Response(x,{status:C.status,statusText:C.statusText,headers:C.headers})}let p=iB(u.body),m=new Response(p.stream,{status:u.status,statusText:u.statusText,headers:B$(u.headers)}),h=await Zie.transformResponseIn(m,n),_=iB(h.body);return Promise.all([p.done,_.done]).then(async([E,y])=>{try{L$({...d,openai:{...d.openai,response:{body:await OMt(E)}},response:{...d.response,body:await k$(y)}},l)}catch(C){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+C?.stack)}}).catch(E=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+E)),new Response(_.stream,{status:h.status,statusText:h.statusText,headers:h.headers})}}function Zyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=await Jie.transformRequestOut(n),i=_A(r.headers);Yyn(o,HMt(i));let s=JSON.stringify(o),u=KRe(t)+"/responses",c=i.authorization??i.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 l=await e(u,{method:"POST",headers:{"Content-Type":"application/json",Authorization:c,"x-api-key":c.replace(/^Bearer\s+/i,"").trim()},body:s});if(!l.ok){let C=await l.text();return le(`OpenAI Responses API error: ${l.status} ${l.statusText}`,{url:u,status:l.status,errorResponse:C}),WRe("OpenAI Responses API error","RESPONSES",l.status,l.statusText,C)}let d=n.stream===!0,p=i["x-agent-id"],m={request:{url:u,method:r.method,headers:i,body:n},response:{status:l.status,statusText:l.statusText,headers:_A(l.headers)},openai:{request:{body:o},response:{}}};if(!d){let C=await l.text(),x=new Response(C,{status:l.status,statusText:l.statusText,headers:B$(l.headers)}),D=await Jie.transformResponseIn(x,n),k=await D.text();try{L$({...m,openai:{...m.openai,response:{body:JSON.parse(C)}},response:{...m.response,body:JSON.parse(k)}},p,"responses")}catch($){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",$)}return new Response(k,{status:D.status,statusText:D.statusText,headers:D.headers})}let h=iB(l.body),_=new Response(h.stream,{status:l.status,statusText:l.statusText,headers:B$(l.headers)}),E=await Jie.transformResponseIn(_,n),y=iB(E.body);return Promise.all([h.done,y.done]).then(async([C,x])=>{try{L$({...m,openai:{...m.openai,response:{body:await RMt(C)}},response:{...m.response,body:await k$(x)}},p,"responses")}catch(D){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+D?.stack)}}).catch(C=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+C)),new Response(y.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function Jyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=_A(r.headers),i=await YRe.transformRequestOut(n),s=JSON.stringify(i),a=KRe(t)+`/models/${n.model}:streamGenerateContent?alt=sse`,u=o.authorization??o.Authorization??"",c;try{c=await e(a,{method:"POST",headers:{"Content-Type":"application/json","x-goog-api-key":String(u).replace(/^Bearer\s+/i,"").trim()},body:s})}catch(y){throw le("gemini request error:",y),y}if(!c.ok){let y=await c.text();return le(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:y}),WRe("Gemini API error","Gemini",c.status,c.statusText,y)}let l=n.stream===!0,d=o["x-agent-id"],p={request:{url:a,method:r.method,headers:_A(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:_A(c.headers)},openai:{request:{body:i},response:{}}},m=iB(c.body),h=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:B$(c.headers)}),_=await YRe.transformResponseIn(h),E=iB(_.body);return Promise.all([m.done,E.done]).then(async([y,C])=>{try{let x=l?NMt(y):JSON.parse(y),D=l?await k$(C):JSON.parse(C);L$({...p,openai:{...p.openai,response:{body:x}},response:{...p.response,body:D}},d)}catch(x){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+x?.stack)}}).catch(y=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+y)),new Response(E.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function Xyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=r.body;if(r.body)try{let l=JSON.parse(r.body);n=JSON.stringify(l)}catch{}let o=_A(r.headers);["1","true"].includes(String(process.env.HAWA_CODE_X_API_KEY_DISABLED??"").toLowerCase())&&(delete o["x-api-key"],delete o["X-API-Key"]),delete o["content-length"];let s=await e(t,{method:r.method,headers:o,body:n});if(!s.ok){let l=await s.text();le(`API error response: ${s.status} ${s.statusText}`,{url:typeof t=="string"?t:t instanceof sO?t.toString():t.url,status:s.status,errorResponse:l});let d;try{let p=JSON.parse(l);d={type:"error",error:{type:"api_error",message:p.error?.message||p.message||`API error: ${s.statusText}`,code:p.error?.code||p.code||`API_${s.status}_ERROR`}},p.error?.details&&(d.error.details=p.error.details)}catch{d={type:"error",error:{type:"api_error",message:`API error: ${s.statusText}`,code:`API_${s.status}_ERROR`}}}return new Response(JSON.stringify(d),{status:s.status,statusText:s.statusText,headers:{"Content-Type":"application/json"}})}let a=s.clone(),u=!(Object.hasOwn(JSON.parse(n),"stream")&&!JSON.parse(n).stream),c={request:{url:typeof t=="string"?t:t instanceof sO?t.toString():t.url,method:r.method,headers:_A(r.headers),body:JSON.parse(n)},response:{status:s.status,statusText:s.statusText,headers:_A(s.headers)}};return(async()=>{if(u){let p=await s.text();c.response.body=await k$(p)}else c.response.body=await s.json();let d=_A(r.headers)["x-agent-id"];QZ(d,c),jZ(d,{request:c.request.body.messages,response:c.response.body.content})})().catch(l=>le(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
277
- Stack trace: `+l.stack)),new Response(a.body,{status:s.status,statusText:s.statusText,headers:s.headers})}}function ese(e){let t=e||process.env.API_TYPE,r=global.fetch;switch(t){case"openai":return Kyn(r);case"openai-responses":return Zyn(r);case"gemini":return Jyn(r);default:return Xyn(r)}}var qMt,ZRe=R(()=>{Oe();DMt();wMt();MMt();FMt();$Mt();GMt();qMt=["/v1/messages"]});var JRe,yn,Xl=R(()=>{Oe();JRe=class{listeners=new Map;registry=new FinalizationRegistry(t=>{for(let[r,n]of this.listeners.entries()){for(let o of Array.from(n))o.token===t&&n.delete(o);n.size===0&&this.listeners.delete(r)}});on(t,r,n){let o=this.listeners.get(t);o||(o=new Set,this.listeners.set(t,o));let i={callback:r,thisRef:n?new WeakRef(n):void 0};if(n){let s={};i.token=s,this.registry.register(n,s,s)}return o.add(i),()=>{this.off(t,r,n)}}off(t,r,n){let o=this.listeners.get(t);if(o){if(!r&&n===void 0){for(let i of o)i.token&&this.registry.unregister(i.token);this.listeners.delete(t);return}for(let i of Array.from(o)){let s=r?i.callback===r:!0,a=!0;n!==void 0&&(a=i.thisRef?.deref()===n),s&&a&&(i.token&&this.registry.unregister(i.token),o.delete(i))}o.size===0&&this.listeners.delete(t)}}emit(t,r){let n=this.listeners.get(t);if(n)for(let o of Array.from(n)){let i;if(o.thisRef&&(i=o.thisRef.deref(),!i)){n.delete(o);continue}try{let s=o.callback.call(i,r);s instanceof Promise&&s.catch(a=>{le(`Async error in listener for "${t}"`,a)})}catch(s){le(`Error in listener for "${t}"`,s)}}}},yn=new JRe});var eOe,YMt=R(()=>{$e();eOe="1.35.1";globalThis.MACRO={VERSION:eOe,PACKAGE_URL:`@dahawa/${Ei}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"}});var ose,tOe=R(()=>{$e();YMt();ose=`${Ei}/${eOe} (${process.env.USER_TYPE})`});var sPt,iPt,aPt,ase=R(()=>{sPt=Symbol("Let zodToJsonSchema decide on which parser to use"),iPt={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},aPt=e=>typeof e=="string"?{...iPt,name:e}:{...iPt,...e}});var uPt,iOe=R(()=>{ase();uPt=e=>{let t=aPt(e),r=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([n,o])=>[o._def,{def:o._def,path:[...t.basePath,t.definitionPath,n],jsonSchema:void 0}]))}}});function sOe(e,t,r,n){n?.errorMessages&&r&&(e.errorMessage={...e.errorMessage,[t]:r})}function No(e,t,r,n,o){e[t]=r,sOe(e,t,n,o)}var hv=R(()=>{});var use,cse=R(()=>{use=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")}});var lse=R(()=>{Qte()});function ga(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?use(t,e.currentPath):t.join("/")}}var Nh=R(()=>{cse()});function cPt(e,t){let r={type:"array"};return e.type?._def&&e.type?._def?.typeName!==ct.ZodAny&&(r.items=sn(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&No(r,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&No(r,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(No(r,"minItems",e.exactLength.value,e.exactLength.message,t),No(r,"maxItems",e.exactLength.value,e.exactLength.message,t)),r}var aOe=R(()=>{lse();hv();Ec()});function lPt(e,t){let r={type:"integer",format:"int64"};if(!e.checks)return r;for(let n of e.checks)switch(n.kind){case"min":t.target==="jsonSchema7"?n.inclusive?No(r,"minimum",n.value,n.message,t):No(r,"exclusiveMinimum",n.value,n.message,t):(n.inclusive||(r.exclusiveMinimum=!0),No(r,"minimum",n.value,n.message,t));break;case"max":t.target==="jsonSchema7"?n.inclusive?No(r,"maximum",n.value,n.message,t):No(r,"exclusiveMaximum",n.value,n.message,t):(n.inclusive||(r.exclusiveMaximum=!0),No(r,"maximum",n.value,n.message,t));break;case"multipleOf":No(r,"multipleOf",n.value,n.message,t);break}return r}var uOe=R(()=>{hv()});function dPt(){return{type:"boolean"}}var cOe=R(()=>{});function dse(e,t){return sn(e.type._def,t)}var fse=R(()=>{Ec()});var fPt,lOe=R(()=>{Ec();fPt=(e,t)=>sn(e.innerType._def,t)});function dOe(e,t,r){let n=r??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((o,i)=>dOe(e,t,o))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return hbn(e,t)}}var hbn,fOe=R(()=>{hv();hbn=(e,t)=>{let r={type:"integer",format:"unix-time"};if(t.target==="openApi3")return r;for(let n of e.checks)switch(n.kind){case"min":No(r,"minimum",n.value,n.message,t);break;case"max":No(r,"maximum",n.value,n.message,t);break}return r}});function pPt(e,t){return{...sn(e.innerType._def,t),default:e.defaultValue()}}var pOe=R(()=>{Ec()});function mPt(e,t){return t.effectStrategy==="input"?sn(e.schema._def,t):ga(t)}var mOe=R(()=>{Ec();Nh()});function gPt(e){return{type:"string",enum:Array.from(e.values)}}var gOe=R(()=>{});function hPt(e,t){let r=[sn(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),sn(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(i=>!!i),n=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,o=[];return r.forEach(i=>{if(_bn(i))o.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let s=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...u}=i;s=u}else n=void 0;o.push(s)}}),o.length?{allOf:o,...n}:void 0}var _bn,hOe=R(()=>{Ec();_bn=e=>"type"in e&&e.type==="string"?!1:"allOf"in e});function _Pt(e,t){let r=typeof e.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[e.value]}:{type:r==="bigint"?"integer":r,const:e.value}}var _Oe=R(()=>{});function pse(e,t){let r={type:"string"};if(e.checks)for(let n of e.checks)switch(n.kind){case"min":No(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value,n.message,t);break;case"max":No(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value,n.message,t);break;case"email":switch(t.emailStrategy){case"format:email":SA(r,"email",n.message,t);break;case"format:idn-email":SA(r,"idn-email",n.message,t);break;case"pattern:zod":Ff(r,EA.email,n.message,t);break}break;case"url":SA(r,"uri",n.message,t);break;case"uuid":SA(r,"uuid",n.message,t);break;case"regex":Ff(r,n.regex,n.message,t);break;case"cuid":Ff(r,EA.cuid,n.message,t);break;case"cuid2":Ff(r,EA.cuid2,n.message,t);break;case"startsWith":Ff(r,RegExp(`^${EOe(n.value,t)}`),n.message,t);break;case"endsWith":Ff(r,RegExp(`${EOe(n.value,t)}$`),n.message,t);break;case"datetime":SA(r,"date-time",n.message,t);break;case"date":SA(r,"date",n.message,t);break;case"time":SA(r,"time",n.message,t);break;case"duration":SA(r,"duration",n.message,t);break;case"length":No(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value,n.message,t),No(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value,n.message,t);break;case"includes":{Ff(r,RegExp(EOe(n.value,t)),n.message,t);break}case"ip":{n.version!=="v6"&&SA(r,"ipv4",n.message,t),n.version!=="v4"&&SA(r,"ipv6",n.message,t);break}case"base64url":Ff(r,EA.base64url,n.message,t);break;case"jwt":Ff(r,EA.jwt,n.message,t);break;case"cidr":{n.version!=="v6"&&Ff(r,EA.ipv4Cidr,n.message,t),n.version!=="v4"&&Ff(r,EA.ipv6Cidr,n.message,t);break}case"emoji":Ff(r,EA.emoji(),n.message,t);break;case"ulid":{Ff(r,EA.ulid,n.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{SA(r,"binary",n.message,t);break}case"contentEncoding:base64":{No(r,"contentEncoding","base64",n.message,t);break}case"pattern:zod":{Ff(r,EA.base64,n.message,t);break}}break}case"nanoid":Ff(r,EA.nanoid,n.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return r}function EOe(e,t){return t.patternStrategy==="escape"?Ebn(e):e}function Ebn(e){let t="";for(let r=0;r<e.length;r++)Abn.has(e[r])||(t+="\\"),t+=e[r];return t}function SA(e,t,r,n){e.format||e.anyOf?.some(o=>o.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&n.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...r&&n.errorMessages&&{errorMessage:{format:r}}})):No(e,"format",t,r,n)}function Ff(e,t,r,n){e.pattern||e.allOf?.some(o=>o.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&n.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:APt(t,n),...r&&n.errorMessages&&{errorMessage:{pattern:r}}})):No(e,"pattern",APt(t,n),r,n)}function APt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let r={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},n=r.i?e.source.toLowerCase():e.source,o="",i=!1,s=!1,a=!1;for(let u=0;u<n.length;u++){if(i){o+=n[u],i=!1;continue}if(r.i){if(s){if(n[u].match(/[a-z]/)){a?(o+=n[u],o+=`${n[u-2]}-${n[u]}`.toUpperCase(),a=!1):n[u+1]==="-"&&n[u+2]?.match(/[a-z]/)?(o+=n[u],a=!0):o+=`${n[u]}${n[u].toUpperCase()}`;continue}}else if(n[u].match(/[a-z]/)){o+=`[${n[u]}${n[u].toUpperCase()}]`;continue}}if(r.m){if(n[u]==="^"){o+=`(^|(?<=[\r
276
+ [Search queries used: ${r.groundingMetadata.webSearchQueries.join(", ")}]`}));let o={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(i=>i.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:o},"Conversion complete, final Anthropic response"),o}catch{throw zyn(`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"}}},YRe=new VRe});import{URL as sO}from"url";function _A(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function HMt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function Vyn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function Yyn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function Wyn(e,t="chat"){let r={request:{},response:{},openai:{request:{},response:{}}};return r.request.model=e.request.body.model,r.request.messages=e.request.body.messages,r.request.system=e.request.body.system,r.response.content=e.response.body.content,t==="responses"?(r.openai.request.model=e.openai.request.body.model,r.openai.request.input=e.openai.request.body.input,r.openai.response.output=e.openai.response.body?.output):(r.openai.request.model=e.openai.request.body.model,r.openai.request.messages=e.openai.request.body.messages,r.openai.response.choices=e.openai.response.body.choices),r}function L$(e,t,r){QZ(t,e),jZ(t,Wyn(e,r),r)}function iB(e){let t=[],r=e.getReader(),n,o=new Promise(u=>n=u),i=!1,s=()=>{i||(i=!0,n(Buffer.concat(t).toString("utf8")))};return{stream:new ReadableStream({async pull(u){try{let{done:c,value:l}=await r.read();if(c){u.close(),s();return}t.push(l),u.enqueue(l)}catch(c){u.error(c),s()}},cancel(u){r.cancel(u).catch(()=>{}),s()}}),done:o}}function B$(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function WRe(e,t,r,n,o){let i;try{i={type:"error",error:{type:"api_error",message:JSON.parse(o).error?.message??`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}catch{i={type:"error",error:{type:"api_error",message:`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}return new Response(JSON.stringify(i),{status:r,statusText:n,headers:{"Content-Type":"application/json"}})}function KRe(e){let t;try{typeof e=="string"?t=new sO(e):e instanceof sO?t=e:t=new sO(e.url)}catch{return""}let r=t.pathname;for(let n of qMt){let o=r.indexOf(n);if(o!==-1)return t.origin+r.slice(0,o)}return t.origin}function Xie(e,t){let r=typeof e=="string"?e:e instanceof sO?e.toString():e.url,n;try{n=new sO(r).pathname}catch{return!1}return qMt.some(o=>n.includes(o))&&(t.method==="POST"||t.method==="post")}function Kyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=await Zie.transformRequestOut(n),i=KRe(t)+"/chat/completions",s=_A(r.headers),a=s.authorization??s.Authorization??"";Vyn(o,HMt(s));let u=await e(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(o)});if(!u.ok){let E=await u.text();return le(`OpenAI Chat Completions API error: ${u.status}`,{url:i,errorResponse:E}),WRe("OpenAI Chat Completions API error","OPENROUTER",u.status,u.statusText,E)}let c=n.stream===!0,l=s["x-agent-id"],d={request:{url:i,method:r.method,headers:s,body:n},response:{status:u.status,statusText:u.statusText,headers:_A(u.headers)},openai:{request:{body:o},response:{}}};if(!c){let E=await u.text(),y=new Response(E,{status:u.status,statusText:u.statusText,headers:B$(u.headers)}),C=await Zie.transformResponseIn(y,n),x=await C.text();try{L$({...d,openai:{...d.openai,response:{body:JSON.parse(E)}},response:{...d.response,body:JSON.parse(x)}},l)}catch(D){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u975E\u6D41\u5F0F):",D)}return new Response(x,{status:C.status,statusText:C.statusText,headers:C.headers})}let p=iB(u.body),m=new Response(p.stream,{status:u.status,statusText:u.statusText,headers:B$(u.headers)}),h=await Zie.transformResponseIn(m,n),_=iB(h.body);return Promise.all([p.done,_.done]).then(async([E,y])=>{try{L$({...d,openai:{...d.openai,response:{body:await OMt(E)}},response:{...d.response,body:await k$(y)}},l)}catch(C){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+C?.stack)}}).catch(E=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+E)),new Response(_.stream,{status:h.status,statusText:h.statusText,headers:h.headers})}}function Zyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=await Jie.transformRequestOut(n),i=_A(r.headers);Yyn(o,HMt(i));let s=JSON.stringify(o),u=KRe(t)+"/responses",c=i.authorization??i.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 l=await e(u,{method:"POST",headers:{"Content-Type":"application/json",Authorization:c,"x-api-key":c.replace(/^Bearer\s+/i,"").trim()},body:s});if(!l.ok){let C=await l.text();return le(`OpenAI Responses API error: ${l.status} ${l.statusText}`,{url:u,status:l.status,errorResponse:C}),WRe("OpenAI Responses API error","RESPONSES",l.status,l.statusText,C)}let d=n.stream===!0,p=i["x-agent-id"],m={request:{url:u,method:r.method,headers:i,body:n},response:{status:l.status,statusText:l.statusText,headers:_A(l.headers)},openai:{request:{body:o},response:{}}};if(!d){let C=await l.text(),x=new Response(C,{status:l.status,statusText:l.statusText,headers:B$(l.headers)}),D=await Jie.transformResponseIn(x,n),k=await D.text();try{L$({...m,openai:{...m.openai,response:{body:JSON.parse(C)}},response:{...m.response,body:JSON.parse(k)}},p,"responses")}catch($){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",$)}return new Response(k,{status:D.status,statusText:D.statusText,headers:D.headers})}let h=iB(l.body),_=new Response(h.stream,{status:l.status,statusText:l.statusText,headers:B$(l.headers)}),E=await Jie.transformResponseIn(_,n),y=iB(E.body);return Promise.all([h.done,y.done]).then(async([C,x])=>{try{L$({...m,openai:{...m.openai,response:{body:await RMt(C)}},response:{...m.response,body:await k$(x)}},p,"responses")}catch(D){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+D?.stack)}}).catch(C=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+C)),new Response(y.stream,{status:E.status,statusText:E.statusText,headers:E.headers})}}function Jyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=JSON.parse(r.body),o=_A(r.headers),i=await YRe.transformRequestOut(n),s=JSON.stringify(i),a=KRe(t)+`/models/${n.model}:streamGenerateContent?alt=sse`,u=o.authorization??o.Authorization??"",c;try{c=await e(a,{method:"POST",headers:{"Content-Type":"application/json","x-goog-api-key":String(u).replace(/^Bearer\s+/i,"").trim()},body:s})}catch(y){throw le("gemini request error:",y),y}if(!c.ok){let y=await c.text();return le(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:y}),WRe("Gemini API error","Gemini",c.status,c.statusText,y)}let l=n.stream===!0,d=o["x-agent-id"],p={request:{url:a,method:r.method,headers:_A(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:_A(c.headers)},openai:{request:{body:i},response:{}}},m=iB(c.body),h=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:B$(c.headers)}),_=await YRe.transformResponseIn(h),E=iB(_.body);return Promise.all([m.done,E.done]).then(async([y,C])=>{try{let x=l?NMt(y):JSON.parse(y),D=l?await k$(C):JSON.parse(C);L$({...p,openai:{...p.openai,response:{body:x}},response:{...p.response,body:D}},d)}catch(x){le("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+x?.stack)}}).catch(y=>le("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+y)),new Response(E.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function Xyn(e){return async(t,r)=>{if(!Xie(t,r))return e(t,r);let n=r.body;if(r.body)try{let d=JSON.parse(r.body);n=JSON.stringify(d)}catch{}let o=_A(r.headers);["1","true"].includes(String(process.env.HAWA_CODE_X_API_KEY_DISABLED??"").toLowerCase())&&(delete o["x-api-key"],delete o["X-API-Key"]),["1","true"].includes(String(process.env.HAWA_CODE_AUTH_DISABLED??"").toLowerCase())&&(delete o.authorization,delete o.Authorization),delete o["content-length"];let a=await e(t,{method:r.method,headers:o,body:n});if(!a.ok){let d=await a.text();le(`API error response: ${a.status} ${a.statusText}`,{url:typeof t=="string"?t:t instanceof sO?t.toString():t.url,status:a.status,errorResponse:d});let p;try{let m=JSON.parse(d);p={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&&(p.error.details=m.error.details)}catch{p={type:"error",error:{type:"api_error",message:`API error: ${a.statusText}`,code:`API_${a.status}_ERROR`}}}return new Response(JSON.stringify(p),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"application/json"}})}let u=a.clone(),c=!(Object.hasOwn(JSON.parse(n),"stream")&&!JSON.parse(n).stream),l={request:{url:typeof t=="string"?t:t instanceof sO?t.toString():t.url,method:r.method,headers:_A(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:_A(a.headers)}};return(async()=>{if(c){let m=await a.text();l.response.body=await k$(m)}else l.response.body=await a.json();let p=_A(r.headers)["x-agent-id"];QZ(p,l),jZ(p,{request:l.request.body.messages,response:l.response.body.content})})().catch(d=>le(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
277
+ Stack trace: `+d.stack)),new Response(u.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}function ese(e){let t=e||process.env.API_TYPE,r=global.fetch;switch(t){case"openai":return Kyn(r);case"openai-responses":return Zyn(r);case"gemini":return Jyn(r);default:return Xyn(r)}}var qMt,ZRe=R(()=>{Oe();DMt();wMt();MMt();FMt();$Mt();GMt();qMt=["/v1/messages"]});var JRe,yn,Xl=R(()=>{Oe();JRe=class{listeners=new Map;registry=new FinalizationRegistry(t=>{for(let[r,n]of this.listeners.entries()){for(let o of Array.from(n))o.token===t&&n.delete(o);n.size===0&&this.listeners.delete(r)}});on(t,r,n){let o=this.listeners.get(t);o||(o=new Set,this.listeners.set(t,o));let i={callback:r,thisRef:n?new WeakRef(n):void 0};if(n){let s={};i.token=s,this.registry.register(n,s,s)}return o.add(i),()=>{this.off(t,r,n)}}off(t,r,n){let o=this.listeners.get(t);if(o){if(!r&&n===void 0){for(let i of o)i.token&&this.registry.unregister(i.token);this.listeners.delete(t);return}for(let i of Array.from(o)){let s=r?i.callback===r:!0,a=!0;n!==void 0&&(a=i.thisRef?.deref()===n),s&&a&&(i.token&&this.registry.unregister(i.token),o.delete(i))}o.size===0&&this.listeners.delete(t)}}emit(t,r){let n=this.listeners.get(t);if(n)for(let o of Array.from(n)){let i;if(o.thisRef&&(i=o.thisRef.deref(),!i)){n.delete(o);continue}try{let s=o.callback.call(i,r);s instanceof Promise&&s.catch(a=>{le(`Async error in listener for "${t}"`,a)})}catch(s){le(`Error in listener for "${t}"`,s)}}}},yn=new JRe});var eOe,YMt=R(()=>{$e();eOe="1.35.2";globalThis.MACRO={VERSION:eOe,PACKAGE_URL:`@dahawa/${Ei}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"}});var ose,tOe=R(()=>{$e();YMt();ose=`${Ei}/${eOe} (${process.env.USER_TYPE})`});var sPt,iPt,aPt,ase=R(()=>{sPt=Symbol("Let zodToJsonSchema decide on which parser to use"),iPt={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},aPt=e=>typeof e=="string"?{...iPt,name:e}:{...iPt,...e}});var uPt,iOe=R(()=>{ase();uPt=e=>{let t=aPt(e),r=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([n,o])=>[o._def,{def:o._def,path:[...t.basePath,t.definitionPath,n],jsonSchema:void 0}]))}}});function sOe(e,t,r,n){n?.errorMessages&&r&&(e.errorMessage={...e.errorMessage,[t]:r})}function No(e,t,r,n,o){e[t]=r,sOe(e,t,n,o)}var hv=R(()=>{});var use,cse=R(()=>{use=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")}});var lse=R(()=>{Qte()});function ga(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?use(t,e.currentPath):t.join("/")}}var Nh=R(()=>{cse()});function cPt(e,t){let r={type:"array"};return e.type?._def&&e.type?._def?.typeName!==ct.ZodAny&&(r.items=sn(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&No(r,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&No(r,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(No(r,"minItems",e.exactLength.value,e.exactLength.message,t),No(r,"maxItems",e.exactLength.value,e.exactLength.message,t)),r}var aOe=R(()=>{lse();hv();Ec()});function lPt(e,t){let r={type:"integer",format:"int64"};if(!e.checks)return r;for(let n of e.checks)switch(n.kind){case"min":t.target==="jsonSchema7"?n.inclusive?No(r,"minimum",n.value,n.message,t):No(r,"exclusiveMinimum",n.value,n.message,t):(n.inclusive||(r.exclusiveMinimum=!0),No(r,"minimum",n.value,n.message,t));break;case"max":t.target==="jsonSchema7"?n.inclusive?No(r,"maximum",n.value,n.message,t):No(r,"exclusiveMaximum",n.value,n.message,t):(n.inclusive||(r.exclusiveMaximum=!0),No(r,"maximum",n.value,n.message,t));break;case"multipleOf":No(r,"multipleOf",n.value,n.message,t);break}return r}var uOe=R(()=>{hv()});function dPt(){return{type:"boolean"}}var cOe=R(()=>{});function dse(e,t){return sn(e.type._def,t)}var fse=R(()=>{Ec()});var fPt,lOe=R(()=>{Ec();fPt=(e,t)=>sn(e.innerType._def,t)});function dOe(e,t,r){let n=r??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((o,i)=>dOe(e,t,o))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return hbn(e,t)}}var hbn,fOe=R(()=>{hv();hbn=(e,t)=>{let r={type:"integer",format:"unix-time"};if(t.target==="openApi3")return r;for(let n of e.checks)switch(n.kind){case"min":No(r,"minimum",n.value,n.message,t);break;case"max":No(r,"maximum",n.value,n.message,t);break}return r}});function pPt(e,t){return{...sn(e.innerType._def,t),default:e.defaultValue()}}var pOe=R(()=>{Ec()});function mPt(e,t){return t.effectStrategy==="input"?sn(e.schema._def,t):ga(t)}var mOe=R(()=>{Ec();Nh()});function gPt(e){return{type:"string",enum:Array.from(e.values)}}var gOe=R(()=>{});function hPt(e,t){let r=[sn(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),sn(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(i=>!!i),n=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,o=[];return r.forEach(i=>{if(_bn(i))o.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let s=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...u}=i;s=u}else n=void 0;o.push(s)}}),o.length?{allOf:o,...n}:void 0}var _bn,hOe=R(()=>{Ec();_bn=e=>"type"in e&&e.type==="string"?!1:"allOf"in e});function _Pt(e,t){let r=typeof e.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[e.value]}:{type:r==="bigint"?"integer":r,const:e.value}}var _Oe=R(()=>{});function pse(e,t){let r={type:"string"};if(e.checks)for(let n of e.checks)switch(n.kind){case"min":No(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value,n.message,t);break;case"max":No(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value,n.message,t);break;case"email":switch(t.emailStrategy){case"format:email":SA(r,"email",n.message,t);break;case"format:idn-email":SA(r,"idn-email",n.message,t);break;case"pattern:zod":Ff(r,EA.email,n.message,t);break}break;case"url":SA(r,"uri",n.message,t);break;case"uuid":SA(r,"uuid",n.message,t);break;case"regex":Ff(r,n.regex,n.message,t);break;case"cuid":Ff(r,EA.cuid,n.message,t);break;case"cuid2":Ff(r,EA.cuid2,n.message,t);break;case"startsWith":Ff(r,RegExp(`^${EOe(n.value,t)}`),n.message,t);break;case"endsWith":Ff(r,RegExp(`${EOe(n.value,t)}$`),n.message,t);break;case"datetime":SA(r,"date-time",n.message,t);break;case"date":SA(r,"date",n.message,t);break;case"time":SA(r,"time",n.message,t);break;case"duration":SA(r,"duration",n.message,t);break;case"length":No(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value,n.message,t),No(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value,n.message,t);break;case"includes":{Ff(r,RegExp(EOe(n.value,t)),n.message,t);break}case"ip":{n.version!=="v6"&&SA(r,"ipv4",n.message,t),n.version!=="v4"&&SA(r,"ipv6",n.message,t);break}case"base64url":Ff(r,EA.base64url,n.message,t);break;case"jwt":Ff(r,EA.jwt,n.message,t);break;case"cidr":{n.version!=="v6"&&Ff(r,EA.ipv4Cidr,n.message,t),n.version!=="v4"&&Ff(r,EA.ipv6Cidr,n.message,t);break}case"emoji":Ff(r,EA.emoji(),n.message,t);break;case"ulid":{Ff(r,EA.ulid,n.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{SA(r,"binary",n.message,t);break}case"contentEncoding:base64":{No(r,"contentEncoding","base64",n.message,t);break}case"pattern:zod":{Ff(r,EA.base64,n.message,t);break}}break}case"nanoid":Ff(r,EA.nanoid,n.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return r}function EOe(e,t){return t.patternStrategy==="escape"?Ebn(e):e}function Ebn(e){let t="";for(let r=0;r<e.length;r++)Abn.has(e[r])||(t+="\\"),t+=e[r];return t}function SA(e,t,r,n){e.format||e.anyOf?.some(o=>o.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&n.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...r&&n.errorMessages&&{errorMessage:{format:r}}})):No(e,"format",t,r,n)}function Ff(e,t,r,n){e.pattern||e.allOf?.some(o=>o.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&n.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:APt(t,n),...r&&n.errorMessages&&{errorMessage:{pattern:r}}})):No(e,"pattern",APt(t,n),r,n)}function APt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let r={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},n=r.i?e.source.toLowerCase():e.source,o="",i=!1,s=!1,a=!1;for(let u=0;u<n.length;u++){if(i){o+=n[u],i=!1;continue}if(r.i){if(s){if(n[u].match(/[a-z]/)){a?(o+=n[u],o+=`${n[u-2]}-${n[u]}`.toUpperCase(),a=!1):n[u+1]==="-"&&n[u+2]?.match(/[a-z]/)?(o+=n[u],a=!0):o+=`${n[u]}${n[u].toUpperCase()}`;continue}}else if(n[u].match(/[a-z]/)){o+=`[${n[u]}${n[u].toUpperCase()}]`;continue}}if(r.m){if(n[u]==="^"){o+=`(^|(?<=[\r
278
278
  ]))`;continue}else if(n[u]==="$"){o+=`($|(?=[\r
279
279
  ]))`;continue}}if(r.s&&n[u]==="."){o+=s?`${n[u]}\r
280
280
  `:`[${n[u]}\r
@@ -777,7 +777,7 @@ globstar while`,t,p,r,m,h),this.matchOne(t.slice(p),r.slice(m),n))return this.de
777
777
  `)),Bmn(e,o,{encoding:r,flush:!0})}var YRt=new Xne.default({fetchMethod:e=>Qmn(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});async function rOt(e){let t=L8(e);return YRt.get(t)||YRt.fetchMethod?.(t)}async function Qmn(e){let t=new AbortController;setTimeout(()=>{t.abort()},1e3);let r=await USt(e,t.signal,15),n=0;for(let o of r)QR(o)==="CRLF"&&n++;return n>3?"CRLF":"LF"}function nOt(e,t,r){if(e.has(t))return e.get(t);let n=r();return e.set(t,n),n}var jmn=new Xne.default({fetchMethod:e=>oOt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function $p(e){let t=L8(e);return nOt(jmn,t,()=>oOt(t))}function oOt(e){let r=Buffer.alloc(4096),n;try{n=WRt(e,"r");let o=KRt(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 Te(`Error detecting encoding for file ${e}: ${o}`),"utf8"}finally{n&&ZRt(n)}}var zmn=new Xne.default({fetchMethod:e=>iOt(e),ttl:300*1e3,ttlAutopurge:!1,max:1e3});function QR(e){let t=L8(e);return nOt(zmn,t,()=>iOt(t))}function iOt(e,t="utf8"){try{if(!JRt(e).isFile())return"LF";let n=Buffer.alloc(4096),o=WRt(e,"r"),i=KRt(o,n,0,4096,0);ZRt(o);let s=n.toString(t,0,i),a=0,u=0;for(let c=0;c<s.length;c++)s[c]===`
778
778
  `&&(c>0&&s[c-1]==="\r"?a++:u++);return a>u?"CRLF":"LF"}catch(r){return Te(`Error detecting line endings for file ${e}: ${r}`),"LF"}}function cIe(e){let t=XRt(e)?e:L8(Ne(),e);return t.endsWith(" AM.png")?t.replace(" AM.png","\u202FAM.png"):t.endsWith(" PM.png")?t.replace(" PM.png","\u202FPM.png"):t}function lIe(e){return e?XRt(e)?e:L8(Ne(),e):void 0}function sOt(e){try{let t=lIe(e),r=t?Gmn(Ne(),t):void 0;return{absolutePath:t,relativePath:r}}catch(t){return le("getAbsoluteAndRelativePaths error ",t),{absolutePath:null,relativePath:null}}}function toe(e){try{let t=Hmn(e),r=jRt(e,zRt(e));if(!Fmn(t))return;let i=Umn(t).filter(s=>jRt(s,zRt(s))===r&&qmn(t,s)!==e)[0];return i||void 0}catch(t){Te(`Error finding similar file for ${e}: ${t}`);return}}function dIe(){let e=process.env.HAWA_CODE_COMPACT_LINE_PREFIX;return!(e==="0"||e==="false")}function iv({content:e,startLine:t}){if(!e)return"";let r=e.split(/\r?\n/);return dIe()?r.map((n,o)=>`${o+t} ${n}`).join(`
779
779
  `):r.map((n,o)=>{let i=String(o+t);return i.length>=6?`${i}\u2192${n}`:`${i.padStart(6," ")}\u2192${n}`}).join(`
780
- `)}function aOt(e){try{let t=$mn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Te(`Error checking directory: ${t}`),!1}}$e();function tv(){let e=Tn();e.hasCompletedProjectOnboarding||di({...e,hasCompletedProjectOnboarding:!0})}function Kmn(){let e=nr();eo({...e,lastReleaseNotesSeen:MACRO.VERSION})}function fIe({workspaceDir:e}){let r=!Tn().hasCompletedProjectOnboarding,o=nr().lastReleaseNotesSeen,i=[];(!o||(0,uOt.gt)(MACRO.VERSION,o))&&(i=Ene[MACRO.VERSION]||[]);let s=i.length>0;if(Si.useEffect(()=>{s&&!r&&Kmn()},[s,r]),!r&&!s)return null;let a=Vmn(Ymn(e,Ko)),u=aOt(e),c=!a&&!u,l=uL.isEnabled&&!nr().shiftEnterKeyBindingInstalled,d=K();return Si.createElement(I,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Si.createElement(Si.Fragment,null,Si.createElement(b,{color:d.secondaryText},"Tips for getting started:"),Si.createElement(Wl,{children:[]},(()=>{let p=[];return u&&p.push(Si.createElement(Wl.Item,{key:"workspace"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," to create a new app or clone a repository."))),c&&p.push(Si.createElement(Wl.Item,{key:"claudemd"},Si.createElement(b,{color:d.secondaryText},"Run ",Si.createElement(b,{color:d.text},"/init")," to create a",Ko," file with instructions for Hawa code."))),l&&p.push(Si.createElement(Wl.Item,{key:"terminal"},Si.createElement(b,{color:d.secondaryText},"Run ",Si.createElement(b,{color:d.text},"/terminal-setup"),Si.createElement(b,{bold:!1}," to set up terminal integration")))),p.push(Si.createElement(Wl.Item,{key:"questions"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," questions about your codebase."))),p.push(Si.createElement(Wl.Item,{key:"changes"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," to implement changes to your codebase."))),p})())),!r&&s&&Si.createElement(I,{borderColor:K().secondaryBorder,flexDirection:"column",marginRight:1},Si.createElement(I,{flexDirection:"column",gap:0},Si.createElement(I,{marginBottom:1},Si.createElement(b,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Si.createElement(I,{flexDirection:"column",marginLeft:1},i.map((p,m)=>Si.createElement(b,{key:m,color:K().secondaryText},"\u2022 ",p))))),e===Wmn()&&Si.createElement(b,{color:K().warning},"Note: You have launched ",Si.createElement(b,{bold:!0},Ve)," in your home directory. For the best experience, launch it in a project directory instead."))}await Me();var CL=F(ne(),1);await Me();var bL=F(ne(),1);await Me();var B8=F(ne(),1);function pIe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=Pi("Select");return B8.default.createElement(I,{...o.option({isFocused:e})},e&&B8.default.createElement(b,{...o.focusIndicator()},r?Gr.triangleDownSmall:Gr.pointer),B8.default.createElement(b,{...o.label({isFocused:e,isSelected:t})},n),t&&B8.default.createElement(b,{...o.selectedIndicator()},Gr.tick))}var Gp=F(ne(),1);import{isDeepStrictEqual as Zmn}from"node:util";var F8=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 u="value"in s?s.value:mIe(s);r.push([u,a]),i++,o=a}super(r),this.first=n}};var Jmn=(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}}},gIe=e=>e.flatMap(t=>{if("options"in t){let r=gIe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),cOt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=gIe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new F8(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}},hIe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=gIe(t),[a,u]=(0,Gp.useReducer)(Jmn,{visibleOptionCount:e,defaultValue:r,options:t},cOt),[c,l]=(0,Gp.useState)(s);s!==c&&!Zmn(s,c)&&(u({type:"reset",state:cOt({visibleOptionCount:e,defaultValue:r,options:t})}),l(s));let d=(0,Gp.useCallback)(()=>{u({type:"focus-next-option"})},[]),p=(0,Gp.useCallback)(()=>{u({type:"focus-previous-option"})},[]),m=(0,Gp.useCallback)(()=>{u({type:"select-focused-option"})},[]),h=(0,Gp.useMemo)(()=>s.map((_,E)=>({..._,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Gp.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Gp.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Gp.useEffect)(()=>{i&&u({type:"set-focus",value:i})},[i]),{focusedValue:a.focusedValue,visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,value:a.value,visibleOptions:h,focusNextOption:d,focusPreviousOption:p,selectFocusedOption:m}};await Me();var _Ie=({isDisabled:e=!1,state:t})=>{xt((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var mIe=e=>`HEADER-${e.optionValues.join(",")}`;function XT({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let u=hIe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});_Ie({isDisabled:e,state:u});let{styles:c}=Pi("Select");return bL.default.createElement(I,{...c.container()},u.visibleOptions.map(l=>{let d="value"in l?l.value:mIe(l),p=!e&&u.focusedValue!==void 0&&("value"in l?u.focusedValue===l.value:l.optionValues.includes(u.focusedValue)),m=!!u.value&&("value"in l?u.value===l.value:l.optionValues.includes(u.value)),h="header"in l,_="label"in l?l.label:l.header,E=_;if(r&&_.includes(r)){let y=_.indexOf(r);E=bL.default.createElement(bL.default.Fragment,null,_.slice(0,y),bL.default.createElement(b,{...c.highlightedText()},r),_.slice(y+r.length))}return bL.default.createElement(pIe,{key:d,isFocused:p,isSelected:m,smallPointer:h},E)}))}At();function lOt({onDone:e}){return xt((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),CL.default.createElement(I,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:K().secondaryBorder},CL.default.createElement(I,{marginBottom:1,flexDirection:"column"},CL.default.createElement(b,{bold:!0},"You've spent $5 this session.")),CL.default.createElement(I,null,CL.default.createElement(XT,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var Jn=F(ne(),1),fr=F(ne(),1);await Me();var Pf=F(ne(),1);At();$e();yr();ey();var ngn="1.35.1",S0={VERSION:ngn,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 EIe=46,mOt=["(\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 roe({isDefaultModel:e=!1}){let t=Math.max(EIe,Ne().length+12),r=K(),n=mOt[Math.floor(Math.random()*mOt.length)];return Pf.createElement(I,{flexDirection:"column"},Pf.createElement(I,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Pf.createElement(b,null,Pf.createElement(b,null,n)," Welcome to"," ",Pf.createElement(b,{bold:!0},Ve),Pf.createElement(b,{color:r.secondaryText}," v",S0.VERSION)),Pf.createElement(Pf.Fragment,null,Pf.createElement(I,{paddingLeft:2,flexDirection:"column",gap:1},Pf.createElement(b,{color:r.secondaryText,italic:!0},"/help for help"),Pf.createElement(b,{color:r.secondaryText},"cwd: ",Ne()),Pf.createElement(b,{color:r.secondaryText},"model: ",Do.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Pf.createElement(b,{color:r.secondaryText},"small fast model: ",Do.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}await Me();var iE=F(ne(),1);Oe();var w7=F(ne(),1);await Me();import{randomUUID as rI}from"crypto";var gOt=()=>[],hOt=()=>{};function _Ot(e){gOt=e}function noe(){return gOt}function AOt(e){hOt=e}function EOt(){return hOt}Lo();Oe();ar();yr();Oe();$e();import{existsSync as ny,readdirSync as xAn,statSync as IAn}from"fs";import{join as uv,relative as DAn}from"path";import{homedir as zNt}from"os";import{platform as RAn}from"process";import{readFile as cv}from"fs/promises";yr();T0();Qr();import{join as cgn,sep as lgn}from"path";function kf(){if(!Hp())return!1;try{let e=Ht();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function qp(){return(cgn(Ne(),".hcode","team-memory")+lgn).normalize("NFC")}function IL(e){let t=e.normalize("NFC"),r=qp();return t.startsWith(r)}var VNt=F(goe(),1);ko();var HNt=F(goe(),1);yr();$e();Oe();Fp();import{readFile as $Nt}from"fs/promises";import{existsSync as BIe,readdirSync as yAn,statSync as bAn}from"fs";import{join as FIe,relative as qNt}from"path";import{homedir as CAn}from"os";function GNt(e){try{let t=(0,HNt.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 Te(t),{paths:[],content:e.trim()}}}function vAn(e,t){return t.length===0?!0:t.some(r=>{try{return Zl(e,r,{matchBase:!0,dot:!0})}catch(n){return Te(n),!1}})}function UIe(e){let t=[];try{if(!BIe(e))return t;let r=yAn(e);for(let n of r){let o=FIe(e,n),i=bAn(o);i.isDirectory()?t.push(...UIe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Te(r)}return t}async function QNt(){let e=[];try{let t=FIe(CAn(),Qn,"rules");if(BIe(t)){let r=UIe(t);for(let n of r)try{let o=await $Nt(n,"utf-8"),{paths:i,content:s}=GNt(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Te(o)}}}catch(t){Te(t)}try{let t=FIe(Ne(),Qn,"rules");if(BIe(t)){let r=UIe(t);for(let n of r)try{let o=await $Nt(n,"utf-8"),{paths:i,content:s}=GNt(o);i.length>0&&e.push({filePath:qNt(Ne(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Te(o)}}}catch(t){Te(t)}return e}function jNt(e,t){e=zte(e);let r=zte(Ne()),n=e.startsWith(r)?qNt(r,e):e;return t.filter(o=>vAn(n,o.paths))}var OAn=`# hawaCodeMd
780
+ `)}function aOt(e){try{let t=$mn(e),r=t.readSync();return t.closeSync(),r===null}catch(t){return Te(`Error checking directory: ${t}`),!1}}$e();function tv(){let e=Tn();e.hasCompletedProjectOnboarding||di({...e,hasCompletedProjectOnboarding:!0})}function Kmn(){let e=nr();eo({...e,lastReleaseNotesSeen:MACRO.VERSION})}function fIe({workspaceDir:e}){let r=!Tn().hasCompletedProjectOnboarding,o=nr().lastReleaseNotesSeen,i=[];(!o||(0,uOt.gt)(MACRO.VERSION,o))&&(i=Ene[MACRO.VERSION]||[]);let s=i.length>0;if(Si.useEffect(()=>{s&&!r&&Kmn()},[s,r]),!r&&!s)return null;let a=Vmn(Ymn(e,Ko)),u=aOt(e),c=!a&&!u,l=uL.isEnabled&&!nr().shiftEnterKeyBindingInstalled,d=K();return Si.createElement(I,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},r&&Si.createElement(Si.Fragment,null,Si.createElement(b,{color:d.secondaryText},"Tips for getting started:"),Si.createElement(Wl,{children:[]},(()=>{let p=[];return u&&p.push(Si.createElement(Wl.Item,{key:"workspace"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," to create a new app or clone a repository."))),c&&p.push(Si.createElement(Wl.Item,{key:"claudemd"},Si.createElement(b,{color:d.secondaryText},"Run ",Si.createElement(b,{color:d.text},"/init")," to create a",Ko," file with instructions for Hawa code."))),l&&p.push(Si.createElement(Wl.Item,{key:"terminal"},Si.createElement(b,{color:d.secondaryText},"Run ",Si.createElement(b,{color:d.text},"/terminal-setup"),Si.createElement(b,{bold:!1}," to set up terminal integration")))),p.push(Si.createElement(Wl.Item,{key:"questions"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," questions about your codebase."))),p.push(Si.createElement(Wl.Item,{key:"changes"},Si.createElement(b,{color:d.secondaryText},"Ask ",Ve," to implement changes to your codebase."))),p})())),!r&&s&&Si.createElement(I,{borderColor:K().secondaryBorder,flexDirection:"column",marginRight:1},Si.createElement(I,{flexDirection:"column",gap:0},Si.createElement(I,{marginBottom:1},Si.createElement(b,null,"\u{1F195} What's new in v",MACRO.VERSION,":")),Si.createElement(I,{flexDirection:"column",marginLeft:1},i.map((p,m)=>Si.createElement(b,{key:m,color:K().secondaryText},"\u2022 ",p))))),e===Wmn()&&Si.createElement(b,{color:K().warning},"Note: You have launched ",Si.createElement(b,{bold:!0},Ve)," in your home directory. For the best experience, launch it in a project directory instead."))}await Me();var CL=F(ne(),1);await Me();var bL=F(ne(),1);await Me();var B8=F(ne(),1);function pIe({isFocused:e,isSelected:t,smallPointer:r,children:n}){let{styles:o}=Pi("Select");return B8.default.createElement(I,{...o.option({isFocused:e})},e&&B8.default.createElement(b,{...o.focusIndicator()},r?Gr.triangleDownSmall:Gr.pointer),B8.default.createElement(b,{...o.label({isFocused:e,isSelected:t})},n),t&&B8.default.createElement(b,{...o.selectedIndicator()},Gr.tick))}var Gp=F(ne(),1);import{isDeepStrictEqual as Zmn}from"node:util";var F8=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 u="value"in s?s.value:mIe(s);r.push([u,a]),i++,o=a}super(r),this.first=n}};var Jmn=(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}}},gIe=e=>e.flatMap(t=>{if("options"in t){let r=gIe(t.options),n=r.flatMap(i=>"value"in i?i.value:[]);return[...t.header!==void 0?[{header:t.header,optionValues:n}]:[],...r]}return t}),cOt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=gIe(r),o=typeof e=="number"?Math.min(e,n.length):n.length,i=new F8(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}},hIe=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n,onFocus:o,focusValue:i})=>{let s=gIe(t),[a,u]=(0,Gp.useReducer)(Jmn,{visibleOptionCount:e,defaultValue:r,options:t},cOt),[c,l]=(0,Gp.useState)(s);s!==c&&!Zmn(s,c)&&(u({type:"reset",state:cOt({visibleOptionCount:e,defaultValue:r,options:t})}),l(s));let d=(0,Gp.useCallback)(()=>{u({type:"focus-next-option"})},[]),p=(0,Gp.useCallback)(()=>{u({type:"focus-previous-option"})},[]),m=(0,Gp.useCallback)(()=>{u({type:"select-focused-option"})},[]),h=(0,Gp.useMemo)(()=>s.map((_,E)=>({..._,index:E})).slice(a.visibleFromIndex,a.visibleToIndex),[s,a.visibleFromIndex,a.visibleToIndex]);return(0,Gp.useEffect)(()=>{a.value&&a.previousValue!==a.value&&n?.(a.value)},[a.previousValue,a.value,t,n]),(0,Gp.useEffect)(()=>{a.focusedValue&&o?.(a.focusedValue)},[a.focusedValue,o]),(0,Gp.useEffect)(()=>{i&&u({type:"set-focus",value:i})},[i]),{focusedValue:a.focusedValue,visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,value:a.value,visibleOptions:h,focusNextOption:d,focusPreviousOption:p,selectFocusedOption:m}};await Me();var _Ie=({isDisabled:e=!1,state:t})=>{xt((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};var mIe=e=>`HEADER-${e.optionValues.join(",")}`;function XT({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a}){let u=hIe({visibleOptionCount:t,options:n,defaultValue:o,onChange:i,onFocus:s,focusValue:a});_Ie({isDisabled:e,state:u});let{styles:c}=Pi("Select");return bL.default.createElement(I,{...c.container()},u.visibleOptions.map(l=>{let d="value"in l?l.value:mIe(l),p=!e&&u.focusedValue!==void 0&&("value"in l?u.focusedValue===l.value:l.optionValues.includes(u.focusedValue)),m=!!u.value&&("value"in l?u.value===l.value:l.optionValues.includes(u.value)),h="header"in l,_="label"in l?l.label:l.header,E=_;if(r&&_.includes(r)){let y=_.indexOf(r);E=bL.default.createElement(bL.default.Fragment,null,_.slice(0,y),bL.default.createElement(b,{...c.highlightedText()},r),_.slice(y+r.length))}return bL.default.createElement(pIe,{key:d,isFocused:p,isSelected:m,smallPointer:h},E)}))}At();function lOt({onDone:e}){return xt((t,r)=>{(r.ctrl&&(t==="c"||t==="d")||r.escape)&&e()}),CL.default.createElement(I,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:K().secondaryBorder},CL.default.createElement(I,{marginBottom:1,flexDirection:"column"},CL.default.createElement(b,{bold:!0},"You've spent $5 this session.")),CL.default.createElement(I,null,CL.default.createElement(XT,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:e})))}var Jn=F(ne(),1),fr=F(ne(),1);await Me();var Pf=F(ne(),1);At();$e();yr();ey();var ngn="1.35.2",S0={VERSION:ngn,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 EIe=46,mOt=["(\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 roe({isDefaultModel:e=!1}){let t=Math.max(EIe,Ne().length+12),r=K(),n=mOt[Math.floor(Math.random()*mOt.length)];return Pf.createElement(I,{flexDirection:"column"},Pf.createElement(I,{flexDirection:"column",gap:1,paddingLeft:1,width:"100%"},Pf.createElement(b,null,Pf.createElement(b,null,n)," Welcome to"," ",Pf.createElement(b,{bold:!0},Ve),Pf.createElement(b,{color:r.secondaryText}," v",S0.VERSION)),Pf.createElement(Pf.Fragment,null,Pf.createElement(I,{paddingLeft:2,flexDirection:"column",gap:1},Pf.createElement(b,{color:r.secondaryText,italic:!0},"/help for help"),Pf.createElement(b,{color:r.secondaryText},"cwd: ",Ne()),Pf.createElement(b,{color:r.secondaryText},"model: ",Do.getConfig().routing.MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A"),Pf.createElement(b,{color:r.secondaryText},"small fast model: ",Do.getConfig().routing.SMALL_FAST_MODEL?.map(o=>`${o.source}__${o.model}`).join(", ")??"N/A")))))}await Me();var iE=F(ne(),1);Oe();var w7=F(ne(),1);await Me();import{randomUUID as rI}from"crypto";var gOt=()=>[],hOt=()=>{};function _Ot(e){gOt=e}function noe(){return gOt}function AOt(e){hOt=e}function EOt(){return hOt}Lo();Oe();ar();yr();Oe();$e();import{existsSync as ny,readdirSync as xAn,statSync as IAn}from"fs";import{join as uv,relative as DAn}from"path";import{homedir as zNt}from"os";import{platform as RAn}from"process";import{readFile as cv}from"fs/promises";yr();T0();Qr();import{join as cgn,sep as lgn}from"path";function kf(){if(!Hp())return!1;try{let e=Ht();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function qp(){return(cgn(Ne(),".hcode","team-memory")+lgn).normalize("NFC")}function IL(e){let t=e.normalize("NFC"),r=qp();return t.startsWith(r)}var VNt=F(goe(),1);ko();var HNt=F(goe(),1);yr();$e();Oe();Fp();import{readFile as $Nt}from"fs/promises";import{existsSync as BIe,readdirSync as yAn,statSync as bAn}from"fs";import{join as FIe,relative as qNt}from"path";import{homedir as CAn}from"os";function GNt(e){try{let t=(0,HNt.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 Te(t),{paths:[],content:e.trim()}}}function vAn(e,t){return t.length===0?!0:t.some(r=>{try{return Zl(e,r,{matchBase:!0,dot:!0})}catch(n){return Te(n),!1}})}function UIe(e){let t=[];try{if(!BIe(e))return t;let r=yAn(e);for(let n of r){let o=FIe(e,n),i=bAn(o);i.isDirectory()?t.push(...UIe(o)):i.isFile()&&n.endsWith(".md")&&t.push(o)}}catch(r){Te(r)}return t}async function QNt(){let e=[];try{let t=FIe(CAn(),Qn,"rules");if(BIe(t)){let r=UIe(t);for(let n of r)try{let o=await $Nt(n,"utf-8"),{paths:i,content:s}=GNt(o);i.length>0&&e.push({filePath:n,content:s,paths:i,isProjectRule:!1})}catch(o){Te(o)}}}catch(t){Te(t)}try{let t=FIe(Ne(),Qn,"rules");if(BIe(t)){let r=UIe(t);for(let n of r)try{let o=await $Nt(n,"utf-8"),{paths:i,content:s}=GNt(o);i.length>0&&e.push({filePath:qNt(Ne(),n),content:s,paths:i,isProjectRule:!0})}catch(o){Te(o)}}}catch(t){Te(t)}return e}function jNt(e,t){e=zte(e);let r=zte(Ne()),n=e.startsWith(r)?qNt(r,e):e;return t.filter(o=>vAn(n,o.paths))}var OAn=`# hawaCodeMd
781
781
  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 wAn(e="default"){let r=Ge.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}):
782
782
 
783
783
  ${o.content}`}).join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dahawa/hawa-code",
3
- "version": "1.35.1",
3
+ "version": "1.35.2",
4
4
  "bin": {
5
5
  "hcode": "hawa.js"
6
6
  },