@dahawa/hawa-code 1.0.15 → 1.0.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.
Files changed (2) hide show
  1. package/cli.js +11 -3
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -580,7 +580,7 @@ The file path suffix must be validated before using the LSP tool. valid file ext
580
580
  </available_tools>`;let i,s=Mi.getInQueryContext()[Ny];s&&(s.size==0?i=" Tools are loaded [] , no tools are currently loaded. ":(s=[...s],i=`Tools are loaded [${s.join(", ")}] . `));let a=`Tools are in a lazy-loading state and are not provided by default. You need to use the ManagerTool to load required tools. For example, to read a file, use ManagerTool to load the Read tool first, then perform the file reading operation. ${i}
581
581
  To use xx tool, load it through ManagerTool.
582
582
  When planning todos, first analyze which tools need to be loaded via ManagerTool.
583
- Available tools list:${o}`;return[this.createReminderMessage("tool","general","high",`${a}`,Date.now())]}getMentionReminders(){let e=Date.now(),r=5e3,n=[],o=[];for(let[i,s]of this.reminderCache.entries())this.isMentionReminder(s)&&(e-s.timestamp<=r?n.push(s):o.push(i));return o.forEach(i=>this.reminderCache.delete(i)),n}isMentionReminder(e){return["agent_mention","file_mention","ask_model_mention"].includes(e.type)}generateFileChangeReminder(e){let{agentId:r,filePath:n,reminder:o}=e;if(!o)return null;let i=Date.now(),s=`file_changed_${r}_${n}_${i}`;return this.sessionState.remindersSent.has(s)?null:(this.sessionState.remindersSent.add(s),this.createReminderMessage("file_changed","general","medium",o,i))}createReminderMessage(e,r,n,o,i){return{role:"system",content:`<system-reminder>
583
+ Available tools list:${o}`;return a=`Tools are in a lazy-loading state and are not provided by default. ${i}, Before answering any question, you must think about what tools are needed and use ManagerTool to load them. `,[this.createReminderMessage("tool","general","high",`${a}`,Date.now())]}getMentionReminders(){let e=Date.now(),r=5e3,n=[],o=[];for(let[i,s]of this.reminderCache.entries())this.isMentionReminder(s)&&(e-s.timestamp<=r?n.push(s):o.push(i));return o.forEach(i=>this.reminderCache.delete(i)),n}isMentionReminder(e){return["agent_mention","file_mention","ask_model_mention"].includes(e.type)}generateFileChangeReminder(e){let{agentId:r,filePath:n,reminder:o}=e;if(!o)return null;let i=Date.now(),s=`file_changed_${r}_${n}_${i}`;return this.sessionState.remindersSent.has(s)?null:(this.sessionState.remindersSent.add(s),this.createReminderMessage("file_changed","general","medium",o,i))}createReminderMessage(e,r,n,o,i){return{role:"system",content:`<system-reminder>
584
584
  ${o}
585
585
  </system-reminder>`,isMeta:!0,timestamp:i,type:e,priority:n,category:r}}getTodoStateHash(e){return e.map(r=>`${r.id}:${r.status}`).sort().join("|")}clearTodoReminders(e){let r=e||"default";for(let n of this.sessionState.remindersSent)n.startsWith(`todo_updated_${r}_`)&&this.sessionState.remindersSent.delete(n)}setupEventDispatcher(){this.addEventListener("session:startup",e=>{this.resetSession(),this.sessionState.sessionStartTime=Date.now(),this.sessionState.contextPresent=Object.keys(e.context||{}).length>0,Fe("system_reminder_session_startup",{agentId:e.agentId||"default",contextKeys:Object.keys(e.context||{}).join(","),messageCount:String(e.messages||0),timestamp:String(e.timestamp||Date.now())})}),this.addEventListener("todo:changed",e=>{this.sessionState.lastTodoUpdate=Date.now(),this.clearTodoReminders(e.agentId)}),this.addEventListener("todo:file_changed",e=>{let r=e.agentId||"default";this.clearTodoReminders(r),this.sessionState.lastTodoUpdate=Date.now();let n=this.generateFileChangeReminder(e);n&&this.emitEvent("reminder:inject",{reminder:n.content,agentId:r,type:"file_changed",timestamp:Date.now()})}),this.addEventListener("file:read",e=>{this.sessionState.lastFileAccess=Date.now()}),this.addEventListener("file:edited",e=>{}),this.addEventListener("agent:mentioned",e=>{this.createMentionReminder({type:"agent_mention",key:`agent_mention_${e.agentType}_${e.timestamp}`,category:"task",priority:"high",content:`The user mentioned @${e.originalMention}. You MUST use the Task tool with subagent_type="${e.agentType}" to delegate this task to the specified agent. Provide a detailed, self-contained task description that fully captures the user's intent for the ${e.agentType} agent to execute.`,timestamp:e.timestamp})}),this.addEventListener("file:mentioned",e=>{this.createMentionReminder({type:"file_mention",key:`file_mention_${e.filePath}_${e.timestamp}`,category:"general",priority:"high",content:`The user mentioned @${e.originalMention}. You MUST read the entire content of the file at path: ${e.filePath} using the Read tool to understand the full context before proceeding with the user's request.`,timestamp:e.timestamp})}),this.addEventListener("ask-model:mentioned",e=>{this.createMentionReminder({type:"ask_model_mention",key:`ask_model_mention_${e.modelName}_${e.timestamp}`,category:"task",priority:"high",content:`The user mentioned @${e.modelName}. You MUST use the AskExpertModelTool to consult this specific model for expert opinions and analysis. Provide the user's question or context clearly to get the most relevant response from ${e.modelName}.`,timestamp:e.timestamp})})}addEventListener(e,r){this.eventDispatcher.has(e)||this.eventDispatcher.set(e,[]),this.eventDispatcher.get(e).push(r)}emitEvent(e,r){(this.eventDispatcher.get(e)||[]).forEach(o=>{try{o(r)}catch(i){console.error(`Error in event listener for ${e}:`,i)}})}createMentionReminder(e){if(!this.sessionState.remindersSent.has(e.key)){this.sessionState.remindersSent.add(e.key);let r=this.createReminderMessage(e.type,e.category,e.priority,e.content,e.timestamp);this.reminderCache.set(e.key,r)}}resetSession(){this.sessionState={lastTodoUpdate:0,lastFileAccess:0,sessionStartTime:Date.now(),remindersSent:new Set,contextPresent:!1,reminderCount:0,config:{...this.sessionState.config}},this.reminderCache.clear()}updateConfig(e){this.sessionState.config={...this.sessionState.config,...e}}getSessionState(){return{...this.sessionState}}},Ete=new Oct,jnn=async(t=!1,e)=>await Ete.generateReminders(t,e),_l=(t,e)=>Ete.emitEvent(t,e),VIe=()=>Ete.resetSession()});var rRe=y((Toc,Ron)=>{var $ct=[],Ion=0,If=(t,e)=>{Ion>=e&&$ct.push(t)};If.WARN=1;If.INFO=2;If.DEBUG=3;If.reset=()=>{$ct=[]};If.setDebugLevel=t=>{Ion=t};If.warn=t=>If(t,If.WARN);If.info=t=>If(t,If.INFO);If.debug=t=>If(t,If.DEBUG);If.debugMessages=()=>$ct;Ron.exports=If});var won=y((boc,Don)=>{"use strict";Don.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var Oon=y((Coc,Non)=>{"use strict";var Hyi=won();Non.exports=t=>typeof t=="string"?t.replace(Hyi(),""):t});var Pon=y((voc,jct)=>{"use strict";var Mon=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);jct.exports=Mon;jct.exports.default=Mon});var Lon=y((xoc,Bon)=>{"use strict";Bon.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Fon=y((Ioc,Vct)=>{"use strict";var Qyi=Oon(),$yi=Pon(),jyi=Lon(),kon=t=>{if(typeof t!="string"||t.length===0||(t=Qyi(t),t.length===0))return 0;t=t.replace(jyi()," ");let e=0;for(let r=0;r<t.length;r++){let n=t.codePointAt(r);n<=31||n>=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,e+=$yi(n)?2:1)}return e};Vct.exports=kon;Vct.exports.default=kon});var zct=y((Roc,Hon)=>{var Uon=Fon();function nRe(t){return t?/\u001b\[((?:\d*;){0,5}\d*)m/g:/\u001b\[(?:\d*;){0,5}\d*m/g}function eb(t){let e=nRe();return(""+t).replace(e,"").split(`
586
586
  `).reduce(function(o,i){return Uon(i)>o?Uon(i):o},0)}function vte(t,e){return Array(e+1).join(t)}function Vyi(t,e,r,n){let o=eb(t);if(e+1>=o){let i=e-o;switch(n){case"right":{t=vte(r,i)+t;break}case"center":{let s=Math.ceil(i/2),a=i-s;t=vte(r,a)+t+vte(r,s);break}default:{t=t+vte(r,i);break}}}return t}var QG={};function xte(t,e,r){e="\x1B["+e+"m",r="\x1B["+r+"m",QG[e]={set:t,to:!0},QG[r]={set:t,to:!1},QG[t]={on:e,off:r}}xte("bold",1,22);xte("italics",3,23);xte("underline",4,24);xte("inverse",7,27);xte("strikethrough",9,29);function qon(t,e){let r=e[1]?parseInt(e[1].split(";")[0]):0;if(r>=30&&r<=39||r>=90&&r<=97){t.lastForegroundAdded=e[0];return}if(r>=40&&r<=49||r>=100&&r<=107){t.lastBackgroundAdded=e[0];return}if(r===0){for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&delete t[o];return}let n=QG[e[0]];n&&(t[n.set]=n.to)}function zyi(t){let e=nRe(!0),r=e.exec(t),n={};for(;r!==null;)qon(n,r),r=e.exec(t);return n}function Gon(t,e){let r=t.lastBackgroundAdded,n=t.lastForegroundAdded;return delete t.lastBackgroundAdded,delete t.lastForegroundAdded,Object.keys(t).forEach(function(o){t[o]&&(e+=QG[o].off)}),r&&r!="\x1B[49m"&&(e+="\x1B[49m"),n&&n!="\x1B[39m"&&(e+="\x1B[39m"),e}function Yyi(t,e){let r=t.lastBackgroundAdded,n=t.lastForegroundAdded;return delete t.lastBackgroundAdded,delete t.lastForegroundAdded,Object.keys(t).forEach(function(o){t[o]&&(e=QG[o].on+e)}),r&&r!="\x1B[49m"&&(e=r+e),n&&n!="\x1B[39m"&&(e=n+e),e}function Wyi(t,e){if(t.length===eb(t))return t.substr(0,e);for(;eb(t)>e;)t=t.slice(0,-1);return t}function Kyi(t,e){let r=nRe(!0),n=t.split(nRe()),o=0,i=0,s="",a,c={};for(;i<e;){a=r.exec(t);let u=n[o];if(o++,i+eb(u)>e&&(u=Wyi(u,e-i)),s+=u,i+=eb(u),i<e){if(!a)break;s+=a[0],qon(c,a)}}return Gon(c,s)}function Jyi(t,e,r){if(r=r||"\u2026",eb(t)<=e)return t;e-=eb(r);let o=Kyi(t,e);o+=r;let i="\x1B]8;;\x07";return t.includes(i)&&!o.includes(i)&&(o+=i),o}function Xyi(){return{chars:{top:"\u2500","top-mid":"\u252C","top-left":"\u250C","top-right":"\u2510",bottom:"\u2500","bottom-mid":"\u2534","bottom-left":"\u2514","bottom-right":"\u2518",left:"\u2502","left-mid":"\u251C",mid:"\u2500","mid-mid":"\u253C",right:"\u2502","right-mid":"\u2524",middle:"\u2502"},truncate:"\u2026",colWidths:[],rowHeights:[],colAligns:[],rowAligns:[],style:{"padding-left":1,"padding-right":1,head:["red"],border:["grey"],compact:!1},head:[]}}function Zyi(t,e){t=t||{},e=e||Xyi();let r=Object.assign({},e,t);return r.chars=Object.assign({},e.chars,t.chars),r.style=Object.assign({},e.style,t.style),r}function eTi(t,e){let r=[],n=e.split(/(\s+)/g),o=[],i=0,s;for(let a=0;a<n.length;a+=2){let c=n[a],u=i+eb(c);i>0&&s&&(u+=s.length),u>t?(i!==0&&r.push(o.join("")),o=[c],i=eb(c)):(o.push(s||"",c),i=u),s=n[a+1]}return i&&r.push(o.join("")),r}function tTi(t,e){let r=[],n="";function o(s,a){for(n.length&&a&&(n+=a),n+=s;n.length>t;)r.push(n.slice(0,t)),n=n.slice(t)}let i=e.split(/(\s+)/g);for(let s=0;s<i.length;s+=2)o(i[s],s&&i[s-1]);return n.length&&r.push(n),r}function rTi(t,e,r=!0){let n=[];e=e.split(`
@@ -1291,7 +1291,7 @@ ${t.text}`,type:"text"}),t.image&&e.push({type:"image",source:{data:t.image.imag
1291
1291
  Files modified by other users:
1292
1292
  `+i}let n=(await aE({systemPrompt:["You are an expert at analyzing git history. Given a list of files and their modification counts, return exactly five filenames that are frequently modified and represent core application logic (not auto-generated files, dependencies, or configuration). Make sure filenames are diverse, not all in the same folder, and are a mix of user and other users. Return only the filenames' basenames (without the path) separated by newlines with no explanation."],userPrompt:t})).message.content[0];if(!n||n.type!=="text")return[];let o=n.text.trim().split(`
1293
1293
  `);return o.length<5?[]:o}catch(t){return De(t),[]}}var fwe=Yt(async()=>{let t=Zt(),e=an(),r=Date.now(),n=e.exampleFilesGeneratedAt??0,o=10080*60*1e3;r-n>o&&(e.exampleFiles=[]);let i={...t,numStartups:(t.numStartups??0)+1};co(i),e.exampleFiles?.length||o6i().then(a=>{a.length&&ai({...an(),exampleFiles:a,exampleFilesGeneratedAt:Date.now()})});let s=e.exampleFiles?.length?h4(e.exampleFiles):"<filepath>";return["fix lint errors","fix typecheck errors",`how does ${s} work?`,`refactor ${s}`,"how do I log an error?",`edit ${s} to...`,`write a test for ${s}`,"create a util logging.py that..."]});var Qn=$(he(),1);var Hdt=$(he(),1);ho();var i6i=100;function Gdt(){return an().history??[]}function gN(t){let e=an(),r=e.history??[];r[0]!==t&&(r.unshift(t),ai({...e,history:r.slice(0,i6i)}))}function Z1n(t,e){let[r,n]=(0,Hdt.useState)(0),[o,i]=(0,Hdt.useState)(""),s=l=>{if(l!==void 0&&typeof l=="string"){let d=l.startsWith("!")?"bash":"prompt",m=d==="bash"?l.slice(1):l;t(m,d)}};function a(){let l=Gdt().filter(d=>typeof d=="string");if(r<l.length){r===0&&e.trim()!==""&&i(e);let d=r+1;n(d),s(l[r])}}function c(){let l=Gdt().filter(d=>typeof d=="string");if(r>1){let d=r-1;n(d),s(l[d-1])}else r===1&&(n(0),s(o))}function u(){i(""),n(0)}return{historyIndex:r,setHistoryIndex:n,onHistoryUp:a,onHistoryDown:c,resetHistory:u}}await Ge();var Ore=$(he(),1);function eEn({commands:t,onInputChange:e,onSubmit:r,setCursorOffset:n}){let[o,i]=(0,Ore.useState)([]),[s,a]=(0,Ore.useState)(-1);function c(l){if(l.startsWith("/")){let d=l.slice(1).toLowerCase(),h=t.filter(E=>!E.isHidden).filter(E=>{let A=[E.userFacingName()];return E.aliases&&A.push(...E.aliases),A.some(C=>C.toLowerCase().startsWith(d))}).map(E=>E.userFacingName());i(h);let _=s>-1?h.indexOf(o[s]):0;_>-1?a(_):a(0)}else i([]),a(-1)}kt((l,d)=>{if(o.length>0){if(d.downArrow)return a(m=>m>=o.length-1?0:m+1),!0;if(d.upArrow)return a(m=>m<=0?o.length-1:m-1),!0;if(d.tab||d.return&&s>=0){s===-1&&d.tab&&a(0);let m=s>=0?s:0,h=o[m];if(!h)return!0;let _="/"+h+" ";if(e(_),n(_.length),i([]),a(-1),d.return){let E=RRe(h,t);(E.type!=="prompt"||(E.argNames??[]).length===0)&&r(_,!0)}return!0}}});let u=(0,Ore.useCallback)(()=>{i([]),a(-1)},[]);return{suggestions:o,selectedSuggestion:s,updateSuggestions:c,clearSuggestions:u}}var Kl=$(he(),1);var tEn=$(he(),1);Ule();var Mre=class extends tEn.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){Fle(e)}render(){return this.state.hasError?null:this.props.children}};await Ge();var Mf=$(he(),1);Gt();var rEn=$(lme(),1),mwe=$(he(),1);ho();qo();Kt();function Qdt({debug:t,isUpdating:e,onChangeIsUpdating:r,onAutoUpdaterResult:n,autoUpdaterResult:o}){let i=fe(),[s,a]=(0,mwe.useState)({}),c=Mf.useCallback(async()=>{if(e)return;let u=MACRO.VERSION,l=await cRe(),d=await TUt();if(a({global:u,latest:l}),!d&&u&&l&&!(0,rEn.gte)(u,l)){let m=Date.now();r(!0);let h=await YG();r(!1),h==="success"?Fe("tengu_auto_updater_success",{fromVersion:u,toVersion:l,durationMs:String(Date.now()-m)}):Fe("tengu_auto_updater_fail",{fromVersion:u,attemptedVersion:l,status:h,durationMs:String(Date.now()-m)}),n({version:l,status:h})}},[n]);return(0,mwe.useEffect)(()=>{c()},[c]),kRe(c,1800*1e3),t?Mf.createElement(L,{flexDirection:"row"},Mf.createElement(w,{dimColor:!0},"globalVersion: ",s.global," \xB7 latestVersion:"," ",s.latest)):!o?.version&&(!s.global||!s.latest)||!o?.version&&!e?null:Mf.createElement(L,{flexDirection:"row"},t&&Mf.createElement(w,{dimColor:!0},"globalVersion: ",s.global," \xB7 latestVersion:"," ",s.latest),e&&Mf.createElement(Mf.Fragment,null,Mf.createElement(L,null,Mf.createElement(w,{color:i.secondaryText,dimColor:!0,wrap:"end"},"Auto-updating to v",s.latest,"\u2026"))),o?.status==="success"&&o?.version?Mf.createElement(w,{color:i.success},"\u2713 Update installed \xB7 Restart to apply"):null,(o?.status==="install_failed"||o?.status==="no_permissions")&&Mf.createElement(w,{color:i.error},"\u2717 Auto-update failed \xB7 Try ",Mf.createElement(w,{bold:!0},Qe," doctor")," or"," ",Mf.createElement(w,{bold:!0},"npm i -g ",MACRO.PACKAGE_URL)))}await Ge();var $dt=$(he(),1);Gt();var jdt=19e4,Vdt=jdt*.6,s6i=jdt*.8;function zdt({tokenUsage:t}){let e=fe();if(t<Vdt)return null;let r=t>=s6i;return $dt.createElement(L,{flexDirection:"row"},$dt.createElement(w,{color:r?e.error:e.warning},"Context low (",Math.max(0,100-Math.round(t/jdt*100)),"% remaining) \xB7 Run /compact to compact & continue"))}Gt();Xu();Et();gte();function nEn(t){return`[Pasted text +${(t.match(/\r\n|\r|\n/g)||[]).length} lines] `}function a6i({commands:t,forkNumber:e,messageLogName:r,isDisabled:n,isLoading:o,onQuery:i,debug:s,verbose:a,messages:c,setToolJSX:u,onAutoUpdaterResult:l,autoUpdaterResult:d,tools:m,input:h,onInputChange:_,mode:E,onModeChange:A,submitCount:C,onSubmitCountChange:v,setIsLoading:R,setAbortController:D,onShowMessageSelector:k,setForkConvoWithMessagesOnTheNextRender:j,readFileTimestamps:Y,reminderText:O}){let[P,Q]=(0,Kl.useState)(!1),[H,te]=(0,Kl.useState)({show:!1}),[X,G]=(0,Kl.useState)({show:!1}),[J,ie]=(0,Kl.useState)(null),[Z,ee]=(0,Kl.useState)(""),[ge,Re]=(0,Kl.useState)(h.length),[xe,lt]=(0,Kl.useState)(null),[ve,pe]=(0,Kl.useState)(null);(0,Kl.useEffect)(()=>{Xh.getAvailableNames().then(At=>{pe(At)})},[]),(0,Kl.useEffect)(()=>{fwe().then(At=>{ee(`Try "${h4(At)}"`)})},[]);let{columns:Be}=ji(),it=(0,Kl.useMemo)(()=>Math.max(...t.map(At=>At.userFacingName().length))+5,[t]),{suggestions:It,selectedSuggestion:ft,updateSuggestions:Rt,clearSuggestions:Dt}=eEn({commands:t,onInputChange:_,onSubmit:Ui,setCursorOffset:Re}),Vr=(0,Kl.useCallback)(At=>{if(At.startsWith("!")){A("bash");return}Rt(At),_(At)},[A,_,Rt]),{resetHistory:Kr,onHistoryUp:Kn,onHistoryDown:yr}=Z1n((At,Gr)=>{Vr(At),A(Gr)},h),Tr=()=>{It.length<=1&&Kn()},Jn=()=>{It.length<=1&&yr()};async function Ui(At,Gr=!1){if(At===""||n||o||It.length>0&&!Gr)return;["exit","quit",":q",":q!",":wq",":wq!"].includes(At.trim())&&c6i();let or=At;if(xe){let Os=nEn(xe);or.includes(Os)&&(or=or.replace(Os,xe))}_(""),A("prompt"),Dt(),ie(null),lt(null),v(Os=>Os+1),R(!0);let ni=new AbortController;D(ni);let cs=await Ss(),oi=await ORe(or,E,u,{options:{commands:t,forkNumber:e,messageLogName:r,tools:m,verbose:a,slowAndCapableModel:cs,maxThinkingTokens:0},messageId:void 0,abortController:ni,readFileTimestamps:Y,setForkConvoWithMessagesOnTheNextRender:j},J??null);if(oi.length)i(oi,ni);else{R(!1),gN(At),Kr();return}for(let Os of oi)if(Os.type==="user"){let St=E==="bash"?`!${At}`:At;gN(St),Kr()}}function So(At){A("prompt"),ie(At)}function es(At){Xt(" onTextPaste "+At);let Gr=At.replace(/\r/g,`
1294
- `),or=Gr;Gr.length+h.length>800&&(or=nEn(Gr));let ni=h.slice(0,ge)+or+h.slice(ge);_(ni),Re(ge+or.length),lt(Gr)}kt((At,Gr)=>{h===""&&(Gr.escape||Gr.backspace||Gr.delete)&&A("prompt"),Gr.escape&&c.length>0&&!h&&!o&&k()});let yo=ji().columns-6,Lo=(0,Kl.useMemo)(()=>LT(c),[c]),gt=fe();return Qn.createElement(L,{flexDirection:"column"},Qn.createElement(L,{alignItems:"flex-start",justifyContent:"flex-start",borderColor:E==="bash"?gt.bashBorder:gt.secondaryBorder,borderDimColor:!0,borderStyle:"round",marginTop:1,width:"100%"},Qn.createElement(L,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",width:3},E==="bash"?Qn.createElement(w,{color:gt.bashBorder},"\xA0!\xA0"):Qn.createElement(w,{color:o?gt.secondaryText:void 0},"\xA0>\xA0")),Qn.createElement(L,{paddingRight:1},Qn.createElement(PA,{multiline:!0,onSubmit:Ui,onChange:Vr,value:h,onHistoryUp:Tr,onHistoryDown:Jn,onHistoryReset:()=>Kr(),placeholder:C>0?void 0:Z,onExit:()=>process.exit(0),onExitMessage:(At,Gr)=>te({show:At,key:Gr}),onMessage:(At,Gr)=>G({show:At,text:Gr}),onImagePaste:So,columns:yo,isDimmed:n||o,disableCursorMovementForUpDownKeys:It.length>0,cursorOffset:ge,onChangeCursorOffset:Re,onPaste:es}))),It.length===0&&Qn.createElement(L,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},Qn.createElement(L,{justifyContent:"flex-start",gap:1},H.show?Qn.createElement(w,{dimColor:!0},"Press ",H.key," again to exit"):X.show?Qn.createElement(w,{dimColor:!0},X.text):Qn.createElement(Qn.Fragment,null,E==="prompt"&&Qn.createElement(w,{dimColor:!0},"? for shortcuts (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle)"),E==="edit"&&Qn.createElement(w,{color:"red"},"\u23F5\u23F5 accept edits on (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle)"),E==="plan"&&Qn.createElement(w,{color:gt.success},"\u23F8 plan mode on (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle) "),E==="bash"&&Qn.createElement(w,{color:gt.bashBorder},"! for bash mode ")),Qn.createElement(w,{dimColor:!0},"Ctrl+s switch session "),ve&&ve.length>0&&Qn.createElement(w,{dimColor:!0},", LSP ",ve.join(", "))),Qn.createElement(Mre,{children:[]},Qn.createElement(L,{justifyContent:"flex-end",gap:1},!d&&!P&&!s&&Lo<Vdt&&Qn.createElement(w,{dimColor:!0},_k.isEnabled&&Jzt()?"shift + \u23CE for newline":"\\\u23CE for newline"),s&&Qn.createElement(w,{dimColor:!0},`${LT(c)} tokens (${Math.round(1e4*(sYr(c)||1)/(LT(c)||1))/100}% cached)`),Qn.createElement(zdt,{tokenUsage:Lo}),Qn.createElement(Qdt,{debug:s,onAutoUpdaterResult:l,autoUpdaterResult:d,isUpdating:P,onChangeIsUpdating:Q})))),O&&Qn.createElement(L,{flexDirection:"row",justifyContent:"flex-end",paddingX:2,paddingY:0,marginTop:0},Qn.createElement(w,{dimColor:!0,wrap:"truncate-end"},O)),It.length>0&&Qn.createElement(L,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},Qn.createElement(L,{flexDirection:"column"},It.map((At,Gr)=>{let or=t.find(ni=>ni.userFacingName()===At.replace("/",""));return Qn.createElement(L,{key:At,flexDirection:Be<80?"column":"row"},Qn.createElement(L,{width:Be<80?void 0:it},Qn.createElement(w,{color:Gr===ft?gt.suggestion:void 0,dimColor:Gr!==ft},"/",At,or?.aliases&&or.aliases.length>0&&Qn.createElement(w,{dimColor:!0}," (",or.aliases.join(", "),")"))),or&&Qn.createElement(L,{width:Be-(Be<80?4:it+4),paddingLeft:Be<80?4:0},Qn.createElement(w,{color:Gr===ft?gt.suggestion:void 0,dimColor:Gr!==ft,wrap:"wrap"},Qn.createElement(w,{dimColor:Gr!==ft},or.description,or.type==="prompt"&&or.argNames?.length?` (arguments: ${or.argNames.join(", ")})`:null))))})),Qn.createElement(Mre,{children:[]},Qn.createElement(L,{justifyContent:"flex-end",gap:1},Qn.createElement(zdt,{tokenUsage:LT(c)}),Qn.createElement(Qdt,{debug:s,onAutoUpdaterResult:l,autoUpdaterResult:d,isUpdating:P,onChangeIsUpdating:Q})))))}var oEn=(0,Kl.memo)(a6i);function c6i(){Hct(""),process.exit(0)}var iEn=$(he(),1);qo();function sEn(){(0,iEn.useEffect)(()=>{let t=Math.round(process.uptime()*1e3);Fe("tengu_timer",{event:"startup",durationMs:String(t)})},[])}var Pre=$(he(),1);ho();function aEn(){let[t,e]=(0,Pre.useState)(()=>Fy()?"loading":"missing"),[r,n]=(0,Pre.useState)(null),o=(0,Pre.useCallback)(async()=>{if(Bde()){e("valid");return}let i=Fy();if(!i){e("missing");return}try{let a=await Jnn(i)?"valid":"invalid";e(a);return}catch(s){n(s),e("error");return}},[]);return{status:t,reverify:o,error:r}}await Ge();qo();function cEn(t,e,r,n,o,i,s,a){kt((c,u)=>{u.escape&&(a?.aborted||a&&o&&(i||s?.disableCancel||(Fe("tengu_cancel",{}),t(null),e(null),r(null),n())))})}var uEn=$(he(),1);qo();AL();Et();function u6i(t){return(0,uEn.useCallback)(async(e,r,n,o)=>new Promise(i=>{function s(){Fe("tengu_tool_use_cancelled",{messageID:o.message.id,toolName:e.name})}function a(){i({result:!1,message:Qte}),n.abortController.abort()}if(n.abortController.signal.aborted){s(),a();return}return hN(e,r,n,o).then(async c=>{if(c.result){Fe("tengu_tool_use_granted_in_config",{messageID:o.message.id,toolName:e.name}),i({result:!0});return}let[u,l]=await Promise.all([e.description(r),e===li?TRe(kte.parse(r).command,n.abortController.signal):Promise.resolve(null)]);if(n.abortController.signal.aborted){s(),a();return}t({assistantMessage:o,tool:e,description:u,input:r,commandPrefix:l,riskScore:null,onAbort(){s(),Fe("tengu_tool_use_rejected_in_prompt",{messageID:o.message.id,toolName:e.name}),a()},onAllow(d){d==="permanent"?Fe("tengu_tool_use_granted_in_prompt_permanent",{messageID:o.message.id,toolName:e.name}):Fe("tengu_tool_use_granted_in_prompt_temporary",{messageID:o.message.id,toolName:e.name}),i({result:!0})},onReject(){Fe("tengu_tool_use_rejected_in_prompt",{messageID:o.message.id,toolName:e.name}),a()}})}).catch(c=>{c instanceof x4?(s(),a()):De(c)})}),[t])}var lEn=u6i;var dEn=$(he(),1);Et();function pEn(t,e,r){(0,dEn.useEffect)(()=>{XI(Oy(e,r,0),t.filter(n=>n.type!=="progress"))},[t,e,r])}ma();qo();Ai();aR();async function l6i(){return await _L("tengu-binary-feedback-config",{sampleFrequency:0})}function hwe(t){return t.message.content.map(e=>e.type==="text"?"text":e.type==="tool_use"?e.name:e.type)}async function hEn(t,e,r){let n=t.message.model,o=e.message.model,i=await Dde();Fe("tengu_binary_feedback",{msg_id_A:t.message.id,msg_id_B:e.message.id,choice:{"prefer-left":t.message.id,"prefer-right":e.message.id,neither:void 0,"no-preference":void 0}[r],choiceStr:r,gitHead:i?.commitHash,gitBranch:i?.branchName,gitRepoRemoteUrl:i?.remoteUrl||void 0,gitRepoIsHeadOnRemote:i?.isHeadOnRemote?.toString(),gitRepoIsClean:i?.isClean?.toString(),modelA:n,modelB:o,temperatureA:String(yte),temperatureB:String(yte),seqA:String(hwe(t)),seqB:String(hwe(e))})}async function xH(t,e){Fe("tengu_binary_feedback_sampling_decision",{decision:t.toString(),reason:e})}async function fEn(t,e,r,n){Fe("tengu_binary_feedback_display_decision",{decision:t.toString(),reason:n,msg_id_A:e.message.id,msg_id_B:r.message.id,seqA:String(hwe(e)),seqB:String(hwe(r))})}function d6i(t,e){return t.text===e.text}function p6i(t,e){return t.type!==e.type?!1:t.type==="text"?d6i(t,e):(e=e,t.name===e.name&&v5e(t.input,e.input))}function mEn(t,e){return t.length!==e.length?!1:D5e(t,e).every(([r,n])=>p6i(r,n))}async function gEn(){if(process.env.DISABLE_BINARY_FEEDBACK)return xH(!1,"disabled_by_env_var"),!1;if(process.env.FORCE_BINARY_FEEDBACK)return xH(!0,"forced_by_env_var"),!0;if(process.env.USER_TYPE!=="ant")return xH(!1,"not_ant"),!1;let t=await l6i();return t.sampleFrequency===0?(xH(!1,"top_level_frequency_zero"),!1):Math.random()>t.sampleFrequency?(xH(!1,"top_level_frequency_rng"),!1):(xH(!0),!0)}function _En(t,e){let r=()=>fEn(!0,t,e),n=a=>fEn(!1,t,e,a),o=t.message.content.filter(a=>a.type!=="thinking"&&a.type!=="redacted_thinking"),i=e.message.content.filter(a=>a.type!=="thinking"&&a.type!=="redacted_thinking");return o.some(a=>a.type==="tool_use")||i.some(a=>a.type==="tool_use")?mEn(o.filter(a=>a.type==="tool_use"),i.filter(a=>a.type==="tool_use"))?(n("contents_identical"),!1):(r(),!0):mEn(o,i)?(n("contents_identical"),!1):(r(),!0)}function EEn(t,e,r){switch(r){case"prefer-left":return{message:t,shouldSkipPermissionCheck:!0};case"prefer-right":return{message:e,shouldSkipPermissionCheck:!0};case"no-preference":return{message:Math.random()<.5?t:e,shouldSkipPermissionCheck:!1};case"neither":return{message:null,shouldSkipPermissionCheck:!1}}}qo();await CS();await CS();xn();import{existsSync as f6i}from"fs";import{resolve as m6i}from"path";var Ydt=class t{static MENTION_PATTERNS={runAgent:/@(run-agent-[\w\-]+)/g,agent:/@(agent-[\w\-]+)/g,askModel:/@(ask-[\w\-]+)/g,file:/@([a-zA-Z0-9/._-]+(?:\.[a-zA-Z0-9]+)?)/g};async processMentions(e){let r={agents:[],files:[],askModels:[],hasAgentMentions:!1,hasFileMentions:!1,hasAskModelMentions:!1};if(!e||typeof e!="string")return r;let n=[...e.matchAll(t.MENTION_PATTERNS.agent)],o=[...e.matchAll(t.MENTION_PATTERNS.runAgent)],i=[...n,...o];for(let c of i){let u=c[0],l=c[1],d={type:"agent",mention:u,resolved:l,exists:!0,metadata:{agentType:l}};r.agents.push(d),r.hasAgentMentions=!0,_l("agent:mentioned",{originalMention:u,agentType:l,timestamp:Date.now()})}let s=[...e.matchAll(t.MENTION_PATTERNS.askModel)];for(let c of s){let u=c[0],l=c[1],d={type:"ask-model",mention:u,resolved:l,exists:!0,metadata:{modelName:l}};r.askModels.push(d),r.hasAskModelMentions=!0,_l("ask-model:mentioned",{originalMention:u,modelName:l,timestamp:Date.now()})}let a=[...e.matchAll(t.MENTION_PATTERNS.file)];for(let c of a){let u=c[0],l=c[1];if(r.agents.some(_=>_.mention===u)||r.askModels.some(_=>_.mention===u))continue;let d=m6i(Ye(),l),m=f6i(d),h={type:"file",mention:u,resolved:d,exists:m,metadata:{originalPath:l}};r.files.push(h),r.hasFileMentions=!0,_l("file:mentioned",{originalMention:u,filePath:d,timestamp:Date.now()})}return r}hasMentions(e){return!e||typeof e!="string"?!1:t.MENTION_PATTERNS.agent.test(e)||t.MENTION_PATTERNS.runAgent.test(e)||t.MENTION_PATTERNS.askModel.test(e)||t.MENTION_PATTERNS.file.test(e)}},h6i=new Ydt,AEn=t=>h6i.processMentions(t);Et();xn();await _we();Xu();Et();var T6i=.92;async function b6i(){try{let t=await Ss();return{"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-haiku-20240307":2e5,"us.anthropic.claude-3-7-sonnet-20250219-v1:0":2e5,"us.anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"claude-3-7-sonnet@20250219":2e5,"claude-3-5-haiku@20241022":2e5}[t]||2e5}catch{return 2e5}}var C6i=`Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
1294
+ `),or=Gr;Gr.length+h.length>800&&(or=nEn(Gr));let ni=h.slice(0,ge)+or+h.slice(ge);_(ni),Re(ge+or.length),lt(Gr)}kt((At,Gr)=>{h===""&&(Gr.escape||Gr.backspace||Gr.delete)&&A("prompt"),Gr.escape&&c.length>0&&!h&&!o&&k()});let yo=ji().columns-6,Lo=(0,Kl.useMemo)(()=>LT(c),[c]),gt=fe();return Qn.createElement(L,{flexDirection:"column"},Qn.createElement(L,{alignItems:"flex-start",justifyContent:"flex-start",borderColor:E==="bash"?gt.bashBorder:gt.secondaryBorder,borderDimColor:!0,borderStyle:"round",marginTop:1,width:"100%"},Qn.createElement(L,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",width:3},E==="bash"?Qn.createElement(w,{color:gt.bashBorder},"\xA0!\xA0"):Qn.createElement(w,{color:o?gt.secondaryText:void 0},"\xA0>\xA0")),Qn.createElement(L,{paddingRight:1},Qn.createElement(PA,{multiline:!0,onSubmit:Ui,onChange:Vr,value:h,onHistoryUp:Tr,onHistoryDown:Jn,onHistoryReset:()=>Kr(),placeholder:C>0?void 0:Z,onExit:()=>process.exit(0),onExitMessage:(At,Gr)=>te({show:At,key:Gr}),onMessage:(At,Gr)=>G({show:At,text:Gr}),onImagePaste:So,columns:yo,isDimmed:n||o,disableCursorMovementForUpDownKeys:It.length>0,cursorOffset:ge,onChangeCursorOffset:Re,onPaste:es}))),It.length===0&&Qn.createElement(L,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},Qn.createElement(L,{justifyContent:"flex-start",gap:1},H.show?Qn.createElement(w,{dimColor:!0},"Press ",H.key," again to exit"):X.show?Qn.createElement(w,{dimColor:!0},X.text):Qn.createElement(Qn.Fragment,null,E==="prompt"&&Qn.createElement(w,{dimColor:!0},"? for shortcuts (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle)"),E==="edit"&&Qn.createElement(w,{color:"red"},"\u23F5\u23F5 accept edits on (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle)"),E==="plan"&&Qn.createElement(w,{color:gt.success},"\u23F8 plan mode on (",Lt.platform==="windows"?"Alt+m":"Shift+Tab"," to cycle) "),E==="bash"&&Qn.createElement(w,{color:gt.bashBorder},"! for bash mode ")),Qn.createElement(w,{dimColor:!0},"Ctrl+s switch session "),ve&&ve.length>0&&Qn.createElement(w,{dimColor:!0},", Installed LSP ",ve.join(", "))),Qn.createElement(Mre,{children:[]},Qn.createElement(L,{justifyContent:"flex-end",gap:1},!d&&!P&&!s&&Lo<Vdt&&Qn.createElement(w,{dimColor:!0},_k.isEnabled&&Jzt()?"shift + \u23CE for newline":"\\\u23CE for newline"),s&&Qn.createElement(w,{dimColor:!0},`${LT(c)} tokens (${Math.round(1e4*(sYr(c)||1)/(LT(c)||1))/100}% cached)`),Qn.createElement(zdt,{tokenUsage:Lo}),Qn.createElement(Qdt,{debug:s,onAutoUpdaterResult:l,autoUpdaterResult:d,isUpdating:P,onChangeIsUpdating:Q})))),O&&Qn.createElement(L,{flexDirection:"row",justifyContent:"flex-end",paddingX:2,paddingY:0,marginTop:0},Qn.createElement(w,{dimColor:!0,wrap:"truncate-end"},O)),It.length>0&&Qn.createElement(L,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},Qn.createElement(L,{flexDirection:"column"},It.map((At,Gr)=>{let or=t.find(ni=>ni.userFacingName()===At.replace("/",""));return Qn.createElement(L,{key:At,flexDirection:Be<80?"column":"row"},Qn.createElement(L,{width:Be<80?void 0:it},Qn.createElement(w,{color:Gr===ft?gt.suggestion:void 0,dimColor:Gr!==ft},"/",At,or?.aliases&&or.aliases.length>0&&Qn.createElement(w,{dimColor:!0}," (",or.aliases.join(", "),")"))),or&&Qn.createElement(L,{width:Be-(Be<80?4:it+4),paddingLeft:Be<80?4:0},Qn.createElement(w,{color:Gr===ft?gt.suggestion:void 0,dimColor:Gr!==ft,wrap:"wrap"},Qn.createElement(w,{dimColor:Gr!==ft},or.description,or.type==="prompt"&&or.argNames?.length?` (arguments: ${or.argNames.join(", ")})`:null))))})),Qn.createElement(Mre,{children:[]},Qn.createElement(L,{justifyContent:"flex-end",gap:1},Qn.createElement(zdt,{tokenUsage:LT(c)}),Qn.createElement(Qdt,{debug:s,onAutoUpdaterResult:l,autoUpdaterResult:d,isUpdating:P,onChangeIsUpdating:Q})))))}var oEn=(0,Kl.memo)(a6i);function c6i(){Hct(""),process.exit(0)}var iEn=$(he(),1);qo();function sEn(){(0,iEn.useEffect)(()=>{let t=Math.round(process.uptime()*1e3);Fe("tengu_timer",{event:"startup",durationMs:String(t)})},[])}var Pre=$(he(),1);ho();function aEn(){let[t,e]=(0,Pre.useState)(()=>Fy()?"loading":"missing"),[r,n]=(0,Pre.useState)(null),o=(0,Pre.useCallback)(async()=>{if(Bde()){e("valid");return}let i=Fy();if(!i){e("missing");return}try{let a=await Jnn(i)?"valid":"invalid";e(a);return}catch(s){n(s),e("error");return}},[]);return{status:t,reverify:o,error:r}}await Ge();qo();function cEn(t,e,r,n,o,i,s,a){kt((c,u)=>{u.escape&&(a?.aborted||a&&o&&(i||s?.disableCancel||(Fe("tengu_cancel",{}),t(null),e(null),r(null),n())))})}var uEn=$(he(),1);qo();AL();Et();function u6i(t){return(0,uEn.useCallback)(async(e,r,n,o)=>new Promise(i=>{function s(){Fe("tengu_tool_use_cancelled",{messageID:o.message.id,toolName:e.name})}function a(){i({result:!1,message:Qte}),n.abortController.abort()}if(n.abortController.signal.aborted){s(),a();return}return hN(e,r,n,o).then(async c=>{if(c.result){Fe("tengu_tool_use_granted_in_config",{messageID:o.message.id,toolName:e.name}),i({result:!0});return}let[u,l]=await Promise.all([e.description(r),e===li?TRe(kte.parse(r).command,n.abortController.signal):Promise.resolve(null)]);if(n.abortController.signal.aborted){s(),a();return}t({assistantMessage:o,tool:e,description:u,input:r,commandPrefix:l,riskScore:null,onAbort(){s(),Fe("tengu_tool_use_rejected_in_prompt",{messageID:o.message.id,toolName:e.name}),a()},onAllow(d){d==="permanent"?Fe("tengu_tool_use_granted_in_prompt_permanent",{messageID:o.message.id,toolName:e.name}):Fe("tengu_tool_use_granted_in_prompt_temporary",{messageID:o.message.id,toolName:e.name}),i({result:!0})},onReject(){Fe("tengu_tool_use_rejected_in_prompt",{messageID:o.message.id,toolName:e.name}),a()}})}).catch(c=>{c instanceof x4?(s(),a()):De(c)})}),[t])}var lEn=u6i;var dEn=$(he(),1);Et();function pEn(t,e,r){(0,dEn.useEffect)(()=>{XI(Oy(e,r,0),t.filter(n=>n.type!=="progress"))},[t,e,r])}ma();qo();Ai();aR();async function l6i(){return await _L("tengu-binary-feedback-config",{sampleFrequency:0})}function hwe(t){return t.message.content.map(e=>e.type==="text"?"text":e.type==="tool_use"?e.name:e.type)}async function hEn(t,e,r){let n=t.message.model,o=e.message.model,i=await Dde();Fe("tengu_binary_feedback",{msg_id_A:t.message.id,msg_id_B:e.message.id,choice:{"prefer-left":t.message.id,"prefer-right":e.message.id,neither:void 0,"no-preference":void 0}[r],choiceStr:r,gitHead:i?.commitHash,gitBranch:i?.branchName,gitRepoRemoteUrl:i?.remoteUrl||void 0,gitRepoIsHeadOnRemote:i?.isHeadOnRemote?.toString(),gitRepoIsClean:i?.isClean?.toString(),modelA:n,modelB:o,temperatureA:String(yte),temperatureB:String(yte),seqA:String(hwe(t)),seqB:String(hwe(e))})}async function xH(t,e){Fe("tengu_binary_feedback_sampling_decision",{decision:t.toString(),reason:e})}async function fEn(t,e,r,n){Fe("tengu_binary_feedback_display_decision",{decision:t.toString(),reason:n,msg_id_A:e.message.id,msg_id_B:r.message.id,seqA:String(hwe(e)),seqB:String(hwe(r))})}function d6i(t,e){return t.text===e.text}function p6i(t,e){return t.type!==e.type?!1:t.type==="text"?d6i(t,e):(e=e,t.name===e.name&&v5e(t.input,e.input))}function mEn(t,e){return t.length!==e.length?!1:D5e(t,e).every(([r,n])=>p6i(r,n))}async function gEn(){if(process.env.DISABLE_BINARY_FEEDBACK)return xH(!1,"disabled_by_env_var"),!1;if(process.env.FORCE_BINARY_FEEDBACK)return xH(!0,"forced_by_env_var"),!0;if(process.env.USER_TYPE!=="ant")return xH(!1,"not_ant"),!1;let t=await l6i();return t.sampleFrequency===0?(xH(!1,"top_level_frequency_zero"),!1):Math.random()>t.sampleFrequency?(xH(!1,"top_level_frequency_rng"),!1):(xH(!0),!0)}function _En(t,e){let r=()=>fEn(!0,t,e),n=a=>fEn(!1,t,e,a),o=t.message.content.filter(a=>a.type!=="thinking"&&a.type!=="redacted_thinking"),i=e.message.content.filter(a=>a.type!=="thinking"&&a.type!=="redacted_thinking");return o.some(a=>a.type==="tool_use")||i.some(a=>a.type==="tool_use")?mEn(o.filter(a=>a.type==="tool_use"),i.filter(a=>a.type==="tool_use"))?(n("contents_identical"),!1):(r(),!0):mEn(o,i)?(n("contents_identical"),!1):(r(),!0)}function EEn(t,e,r){switch(r){case"prefer-left":return{message:t,shouldSkipPermissionCheck:!0};case"prefer-right":return{message:e,shouldSkipPermissionCheck:!0};case"no-preference":return{message:Math.random()<.5?t:e,shouldSkipPermissionCheck:!1};case"neither":return{message:null,shouldSkipPermissionCheck:!1}}}qo();await CS();await CS();xn();import{existsSync as f6i}from"fs";import{resolve as m6i}from"path";var Ydt=class t{static MENTION_PATTERNS={runAgent:/@(run-agent-[\w\-]+)/g,agent:/@(agent-[\w\-]+)/g,askModel:/@(ask-[\w\-]+)/g,file:/@([a-zA-Z0-9/._-]+(?:\.[a-zA-Z0-9]+)?)/g};async processMentions(e){let r={agents:[],files:[],askModels:[],hasAgentMentions:!1,hasFileMentions:!1,hasAskModelMentions:!1};if(!e||typeof e!="string")return r;let n=[...e.matchAll(t.MENTION_PATTERNS.agent)],o=[...e.matchAll(t.MENTION_PATTERNS.runAgent)],i=[...n,...o];for(let c of i){let u=c[0],l=c[1],d={type:"agent",mention:u,resolved:l,exists:!0,metadata:{agentType:l}};r.agents.push(d),r.hasAgentMentions=!0,_l("agent:mentioned",{originalMention:u,agentType:l,timestamp:Date.now()})}let s=[...e.matchAll(t.MENTION_PATTERNS.askModel)];for(let c of s){let u=c[0],l=c[1],d={type:"ask-model",mention:u,resolved:l,exists:!0,metadata:{modelName:l}};r.askModels.push(d),r.hasAskModelMentions=!0,_l("ask-model:mentioned",{originalMention:u,modelName:l,timestamp:Date.now()})}let a=[...e.matchAll(t.MENTION_PATTERNS.file)];for(let c of a){let u=c[0],l=c[1];if(r.agents.some(_=>_.mention===u)||r.askModels.some(_=>_.mention===u))continue;let d=m6i(Ye(),l),m=f6i(d),h={type:"file",mention:u,resolved:d,exists:m,metadata:{originalPath:l}};r.files.push(h),r.hasFileMentions=!0,_l("file:mentioned",{originalMention:u,filePath:d,timestamp:Date.now()})}return r}hasMentions(e){return!e||typeof e!="string"?!1:t.MENTION_PATTERNS.agent.test(e)||t.MENTION_PATTERNS.runAgent.test(e)||t.MENTION_PATTERNS.askModel.test(e)||t.MENTION_PATTERNS.file.test(e)}},h6i=new Ydt,AEn=t=>h6i.processMentions(t);Et();xn();await _we();Xu();Et();var T6i=.92;async function b6i(){try{let t=await Ss();return{"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-haiku-20240307":2e5,"us.anthropic.claude-3-7-sonnet-20250219-v1:0":2e5,"us.anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"claude-3-7-sonnet@20250219":2e5,"claude-3-5-haiku@20241022":2e5}[t]||2e5}catch{return 2e5}}var C6i=`Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
1295
1295
  This summary should be thorough in capturing technical details, code patterns, and architectural decisions that would be essential for continuing development work without losing context.
1296
1296
 
1297
1297
  Before providing your final summary, wrap your analysis in <analysis> tags to organize your thoughts and ensure you've covered all necessary points. In your analysis process:
@@ -2451,7 +2451,15 @@ All operations require:
2451
2451
  - character: The character offset (1-based, as shown in editors)
2452
2452
 
2453
2453
  Note: LSP servers must be configured for the file type. If no server is available, an error will be returned.
2454
- `;wct();var J7i=ze.strictObject({operation:ze.enum(["goToDefinition","findReferences","hover","documentSymbol","workspaceSymbol","goToImplementation","prepareCallHierarchy","incomingCalls","outgoingCalls"]).describe("The LSP operation to perform"),filePath:ze.string().describe("The absolute or relative path to the file."),line:ze.number().int().positive().describe("The line number (1-based, as shown in editors)"),character:ze.number().int().positive().describe("The character offset (1-based, as shown in editors)")}),hQ=null,Une=null;async function X7i(){return hQ||Une||(Une=(async()=>{try{let t=process.cwd();if((await Xh.getAvailableLanguages()).length===0)throw new Error("No LSP servers available");return hQ=new Xh({projectPath:t,autoDetectLanguage:!0}),await hQ.start(),hQ}catch(t){throw hQ=null,Une=null,t}})(),Une)}var pIn={name:"LSP",async description(){return lIn},async prompt(){return dIn},isReadOnly(){return!0},isConcurrencySafe(){return!1},inputSchema:J7i,userFacingName(){return"LSP"},async isEnabled(){try{return(await Xh.getAvailableFileTypes()).length>0}catch{return!1}},needsPermissions(){return!1},async validateInput({operation:t,filePath:e,line:r,character:n}){if(!t||!e)return{result:!1,message:"Missing required parameters: operation and filePath are required"};let o=["goToDefinition","findReferences","hover","documentSymbol","workspaceSymbol","goToImplementation","prepareCallHierarchy","incomingCalls","outgoingCalls"];return o.includes(t)?r<=0||n<=0?{result:!1,message:"Line and character must be 1-based positive integers"}:{result:!0}:{result:!1,message:`Invalid operation: ${t}. Supported operations are: ${o.join(", ")}`}},renderToolUseMessage({operation:t,filePath:e,line:r,character:n}){return`Executing LSP ${t}: ${e}:${r}:${n}`},renderToolResultMessage({success:t,result:e,error:r}){if(!t)return hx.createElement(L,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},hx.createElement(L,{flexDirection:"row"},hx.createElement(w,null,"\xA0\xA0\u23BF \xA0"),hx.createElement(w,{color:"red"},"Error: ",r)));let n=typeof e=="string"?e:JSON.stringify(e,null,2);return hx.createElement(L,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},hx.createElement(L,{flexDirection:"row"},hx.createElement(w,null,"\xA0\xA0\u23BF \xA0"),hx.createElement(w,null,n)))},renderResultForAssistant({success:t,result:e,error:r}){return t?JSON.stringify(e,null,2):`<error>${r}</error>`},async*call(t,{}){let{operation:e,filePath:r,line:n,character:o}=t,i=await $nn.detectLanguage(r),s=await X7i();if(i===null||!(await Xh.getAvailableLanguages()).includes(i)){let a={success:!1,error:`No LSP support for: ${r}`};yield{type:"result",resultForAssistant:this.renderResultForAssistant(a),data:a};return}try{let a=W7i(process.cwd(),r),c=K7i(a).href,u={line:n-1,character:o-1};if(!s.isReady())throw new Error("LSP client is not ready");let l;switch(await s.openDocument(c,i),e){case"goToDefinition":l=await s.goToDefinition(c,u,i);break;case"findReferences":l=await s.findReferences(c,u,i);break;case"hover":l=await s.hover(c,u,i);break;case"documentSymbol":l=await s.documentSymbol(c,i);break;case"workspaceSymbol":let E=((await import("fs/promises").then(R=>R.readFile(a,"utf-8"))).split("\\n")[n-1]||"").substring(o-1).match(/^[a-zA-Z_][a-zA-Z0-9_]*/),A=E?E[0]:"";if(!A)throw new Error("No symbol found at the specified position for workspaceSymbol search");l=await s.workspaceSymbol(A,i);break;case"goToImplementation":l=await s.goToImplementation(c,u,i);break;case"prepareCallHierarchy":l=await s.prepareCallHierarchy(c,u,i);break;case"incomingCalls":let C=await s.prepareCallHierarchy(c,u,i);if(C.length===0){let R={success:!1,error:"No call hierarchy item found at the specified position"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(R),data:R};return}l=await s.incomingCalls(C[0],i);break;case"outgoingCalls":let v=await s.prepareCallHierarchy(c,u,i);if(v.length===0){let R={success:!1,error:"No call hierarchy item found at the specified position"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(R),data:R};return}l=await s.outgoingCalls(v[0],i);break;default:throw new Error(`Unsupported operation: ${e}`)}await s.closeDocument(c,i);let d={success:!0,result:l};yield{type:"result",resultForAssistant:this.renderResultForAssistant(d),data:d}}catch(a){let c={success:!1,error:a instanceof Error?a.message:String(a)};yield{type:"result",resultForAssistant:this.renderResultForAssistant(c),data:c}}}};var gQ=$(he(),1);Li();await Ge();var vht="ManagerTool",fIn="Get information about available tools",mIn=`<overview>
2454
+ `;wct();var J7i=ze.strictObject({operation:ze.enum(["goToDefinition","findReferences","hover","documentSymbol","workspaceSymbol","goToImplementation","prepareCallHierarchy","incomingCalls","outgoingCalls"]).describe("The LSP operation to perform"),filePath:ze.string().describe("The absolute or relative path to the file."),line:ze.number().int().positive().describe("The line number (1-based, as shown in editors)"),character:ze.number().int().positive().describe("The character offset (1-based, as shown in editors)")}),hQ=null,Une=null;async function X7i(){return hQ||Une||(Une=(async()=>{try{let t=process.cwd();if((await Xh.getAvailableLanguages()).length===0)throw new Error("No LSP servers available");return hQ=new Xh({projectPath:t,autoDetectLanguage:!0}),await hQ.start(),hQ}catch(t){throw hQ=null,Une=null,t}})(),Une)}var pIn={name:"LSP",async description(){return lIn},async prompt(){return dIn},isReadOnly(){return!0},isConcurrencySafe(){return!1},inputSchema:J7i,userFacingName(){return"LSP"},async isEnabled(){try{return(await Xh.getAvailableFileTypes()).length>0}catch{return!1}},needsPermissions(){return!1},async validateInput({operation:t,filePath:e,line:r,character:n}){if(!t||!e)return{result:!1,message:"Missing required parameters: operation and filePath are required"};let o=["goToDefinition","findReferences","hover","documentSymbol","workspaceSymbol","goToImplementation","prepareCallHierarchy","incomingCalls","outgoingCalls"];return o.includes(t)?r<=0||n<=0?{result:!1,message:"Line and character must be 1-based positive integers"}:{result:!0}:{result:!1,message:`Invalid operation: ${t}. Supported operations are: ${o.join(", ")}`}},renderToolUseMessage({operation:t,filePath:e,line:r,character:n}){return`Executing LSP ${t}: ${e}:${r}:${n}`},renderToolResultMessage(t,e){let{success:r,result:n,error:o,operation:i}=t;if(!r)return hx.createElement(L,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},hx.createElement(L,{flexDirection:"row"},hx.createElement(w,null,"\xA0\xA0\u23BF \xA0"),hx.createElement(w,{color:"red"},"Error: ",o)));let s=this.formatLSPResult(i,n);return hx.createElement(L,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},hx.createElement(L,{flexDirection:"row"},hx.createElement(w,null,"\xA0\xA0\u23BF \xA0"),hx.createElement(w,null,s)))},renderResultForAssistant({success:t,result:e,error:r}){return t?JSON.stringify(e,null,2):`<error>${r}</error>`},formatLSPResult(t,e){if(!e)return"No result";try{switch(t){case"hover":return this.formatHoverResult(e);case"goToDefinition":case"findReferences":case"goToImplementation":return this.formatLocationResult(e);case"documentSymbol":case"workspaceSymbol":return this.formatSymbolResult(e);case"prepareCallHierarchy":return this.formatCallHierarchyItems(e);case"incomingCalls":return this.formatIncomingCalls(e);case"outgoingCalls":return this.formatOutgoingCalls(e);default:return JSON.stringify(e,null,2)}}catch{return JSON.stringify(e,null,2)}},formatHoverResult(t){if(!t)return"No hover information";let{contents:e,range:r}=t,n="";return e&&(typeof e=="string"?n=e:Array.isArray(e)?n=e.map(o=>typeof o=="string"?o:o&&typeof o=="object"&&o.value?o.value:JSON.stringify(o)).join(`
2455
+ `):e&&typeof e=="object"&&e.value&&(n=e.value)),r&&(n+=`
2456
+
2457
+ Range: ${this.formatRange(r)}`),n||"No content available"},formatLocationResult(t){return!t||!Array.isArray(t)||t.length===0?"No locations found":t.map((e,r)=>{let{uri:n,range:o}=e,i=this.extractFileName(n),s=o.start.line+1,a=o.start.character+1;return`${r+1}. ${i}:${s}:${a} ${this.formatRange(o)}`}).join(`
2458
+ `)},formatSymbolResult(t){if(!t||!Array.isArray(t)||t.length===0)return"No symbols found";let e={1:"File",2:"Module",3:"Namespace",4:"Package",5:"Class",6:"Method",7:"Property",8:"Field",9:"Constructor",10:"Enum",11:"Interface",12:"Function",13:"Variable",14:"Constant",15:"String",16:"Number",17:"Boolean",18:"Array",19:"Object",20:"Key",21:"Null",22:"EnumMember",23:"Struct",24:"Event",25:"Operator",26:"TypeParameter"};return t.map((r,n)=>{let{name:o,kind:i,location:s,range:a,containerName:c}=r,u=e[i]||`Kind ${i}`,l=`${n+1}. ${o} (${u})`;if(!s&&a){let d=a.start.line+1,m=a.start.character+1;l+=` at line ${d}:${m}`}else if(s){let d=this.extractFileName(s.uri),m=s.range.start.line+1,h=s.range.start.character+1;l+=` at ${d}:${m}:${h}`}return c&&(l+=` in ${c}`),l}).join(`
2459
+ `)},formatCallHierarchyItems(t){return!t||!Array.isArray(t)||t.length===0?"No call hierarchy items found":t.map((e,r)=>{let{name:n,kind:o,detail:i,uri:s,range:a}=e,c=this.extractFileName(s),u=a.start.line+1,l=a.start.character+1,d=`${r+1}. ${n}`;return i&&(d+=` - ${i}`),d+=` at ${c}:${u}:${l}`,d}).join(`
2460
+ `)},formatIncomingCalls(t){return!t||!Array.isArray(t)||t.length===0?"No incoming calls found":t.map((e,r)=>{let{from:n,fromRanges:o}=e,i=this.extractFileName(n.uri),s=n.range.start.line+1,a=n.range.start.character+1;return`${r+1}. Called by: ${n.name} at ${i}:${s}:${a}`}).join(`
2461
+ `)},formatOutgoingCalls(t){return!t||!Array.isArray(t)||t.length===0?"No outgoing calls found":t.map((e,r)=>{let{to:n,fromRanges:o}=e,i=this.extractFileName(n.uri),s=n.range.start.line+1,a=n.range.start.character+1;return`${r+1}. Calls: ${n.name} at ${i}:${s}:${a}`}).join(`
2462
+ `)},formatRange(t){if(!t)return"";let e=t.start.line+1,r=t.start.character+1,n=t.end.line+1,o=t.end.character+1;return`[${e}:${r} - ${n}:${o}]`},extractFileName(t){try{let r=new URL(t).pathname,o=decodeURIComponent(r).split(/[\\/]/);return o[o.length-1]||t}catch{let e=t.split(/[\\/]/);return e[e.length-1]||t}},async*call(t,{}){let{operation:e,filePath:r,line:n,character:o}=t,i=await $nn.detectLanguage(r),s=await X7i();if(i===null||!(await Xh.getAvailableLanguages()).includes(i)){let a={success:!1,error:`No LSP support for: ${r}`,operation:e};yield{type:"result",resultForAssistant:this.renderResultForAssistant(a),data:a};return}try{let a=W7i(process.cwd(),r),c=K7i(a).href,u={line:n-1,character:o-1};if(!s.isReady())throw new Error("LSP client is not ready");let l;switch(await s.openDocument(c,i),e){case"goToDefinition":l=await s.goToDefinition(c,u,i);break;case"findReferences":l=await s.findReferences(c,u,i);break;case"hover":l=await s.hover(c,u,i);break;case"documentSymbol":l=await s.documentSymbol(c,i);break;case"workspaceSymbol":let E=((await import("fs/promises").then(R=>R.readFile(a,"utf-8"))).split("\\n")[n-1]||"").substring(o-1).match(/^[a-zA-Z_][a-zA-Z0-9_]*/),A=E?E[0]:"";if(!A)throw new Error("No symbol found at the specified position for workspaceSymbol search");l=await s.workspaceSymbol(A,i);break;case"goToImplementation":l=await s.goToImplementation(c,u,i);break;case"prepareCallHierarchy":l=await s.prepareCallHierarchy(c,u,i);break;case"incomingCalls":let C=await s.prepareCallHierarchy(c,u,i);if(C.length===0){let R={success:!1,error:"No call hierarchy item found at the specified position",operation:e};yield{type:"result",resultForAssistant:this.renderResultForAssistant(R),data:R};return}l=await s.incomingCalls(C[0],i);break;case"outgoingCalls":let v=await s.prepareCallHierarchy(c,u,i);if(v.length===0){let R={success:!1,error:"No call hierarchy item found at the specified position",operation:e};yield{type:"result",resultForAssistant:this.renderResultForAssistant(R),data:R};return}l=await s.outgoingCalls(v[0],i);break;default:throw new Error(`Unsupported operation: ${e}`)}await s.closeDocument(c,i);let d={success:!0,result:l,operation:e};yield{type:"result",resultForAssistant:this.renderResultForAssistant(d),data:d}}catch(a){let c={success:!1,error:a instanceof Error?a.message:String(a),operation:e};yield{type:"result",resultForAssistant:this.renderResultForAssistant(c),data:c}}}};var gQ=$(he(),1);Li();await Ge();var vht="ManagerTool",fIn="Get information about available tools",mIn=`<overview>
2455
2463
  The current tools are in lazy loading mode. This means:
2456
2464
  - Tool schemas (parameters, usage examples) are loaded on-demand to save context
2457
2465
  - You can see available tool names and brief descriptions below
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dahawa/hawa-code",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "bin": {
5
5
  "hcode": "hawa.js"
6
6
  },