@dahawa/hawa-code 2.4.30 → 2.4.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +626 -623
- package/hands.js +538 -535
- package/hawa.js +1 -1
- package/package.json +1 -1
- package/webServer/app.js +1 -1
package/hawa.js
CHANGED
|
@@ -9,4 +9,4 @@ const __dirname = dirname(__filename);
|
|
|
9
9
|
|
|
10
10
|
import{spawn as ie}from"child_process";import L from"path";import{fileURLToPath as ae}from"url";import{existsSync as U,readFileSync as xe,writeFileSync as I,mkdirSync as Ee,watch as ne}from"fs";import{join as se,dirname as we}from"path";import{homedir as Ae}from"os";import{existsSync as q,mkdirSync as pe}from"fs";import{dirname as fe,join as g}from"path";import{writeFileSync as de,readFileSync as Ze,appendFileSync as me}from"fs";import{randomUUID as Se}from"crypto";import{homedir as he}from"os";var Y="hcode",T=".hcode";var ce="HAWA_CODE_GIT_BASH_PATH";var le="Bash",ue="PowerShell";var Ue=H()?ue:le;function H(){return process.platform!=="win32"?!1:process.env.HAWA_CODE_POWER_SHELL_ENABLE==="true"||process.env.HAWA_CODE_POWER_SHELL_ENABLE==="1"?!0:!(process.env.HAWA_CODE_POWER_SHELL_ENABLE==="false"||process.env.HAWA_CODE_POWER_SHELL_ENABLE==="0"||process.env[ce])}import*as Z from"os";import{randomUUID as ge}from"crypto";var W=class{listeners=new Map;registry=new FinalizationRegistry(e=>{for(let[t,n]of this.listeners.entries()){for(let s of Array.from(n))s.token===e&&n.delete(s);n.size===0&&this.listeners.delete(t)}});on(e,t,n){let s=this.listeners.get(e);s||(s=new Set,this.listeners.set(e,s));let r={callback:t,thisRef:n?new WeakRef(n):void 0};if(n){let i={};r.token=i,this.registry.register(n,i,i)}return s.add(r),()=>{this.off(e,t,n)}}off(e,t,n){let s=this.listeners.get(e);if(s){if(!t&&n===void 0){for(let r of s)r.token&&this.registry.unregister(r.token);this.listeners.delete(e);return}for(let r of Array.from(s)){let i=t?r.callback===t:!0,l=!0;n!==void 0&&(l=r.thisRef?.deref()===n),i&&l&&(r.token&&this.registry.unregister(r.token),s.delete(r))}s.size===0&&this.listeners.delete(e)}}emit(e,t){let n=this.listeners.get(e);if(n)for(let s of Array.from(n)){let r;if(s.thisRef&&(r=s.thisRef.deref(),!r)){n.delete(s);continue}try{let i=s.callback.call(r,t);i instanceof Promise&&i.catch(l=>{h(`Async error in listener for "${e}"`,l)})}catch(i){h(`Error in listener for "${e}"`,i)}}}},y=new W;var N=class{datas={};setData(e,t){this.datas[e]=t}getData(e){return this.datas[e]}takeData(e){let t=this.datas[e];return delete this.datas[e],t}clear(){this.datas={}}},P=class extends N{startTime;constructor(e=null){super(),this.startTime=e}},K=ge(),$=class extends N{PENDING_PROMPTS_KEY="pendingPrompts";addPendingPrompt(e){let t=this.getPendingPrompts();t.push(e),this.setData(this.PENDING_PROMPTS_KEY,t)}getPendingPrompts(){let e=this.getData(this.PENDING_PROMPTS_KEY);return Array.isArray(e)?e:[]}takePendingPrompts(){let e=this.getPendingPrompts();return this.setData(this.PENDING_PROMPTS_KEY,[]),e}async waitGetPendingPrompts(e){let n=Date.now(),s=e*1e3;for(;Date.now()-n<s;){let r=this.getPendingPrompts();if(r.length>0)return r;await new Promise(i=>setTimeout(i,200))}return[]}getSessionId(){return K}switchSessionId(e){K=e}},z=class o{static sessionContext={};static inQueryContextHolder={};static queryContext={};onQueryStart(e="defalt",t){e||(e="defalt");let n=o.inQueryContextHolder[e+""];n&&n.startTime&&n.startTime>0||(o.inQueryContextHolder[e+""]=new P(Date.now()),y.emit("webserver:agent_status",{agentId:e,status:"started",agentType:t?.agentType,agentName:t?.agentName,description:t?.description,timestamp:Date.now()}))}onQueryEnd(e="defalt",t=!1){e||(e="defalt"),o.inQueryContextHolder[e+""]=new P(-1),t||(o.queryContext[e+""]={}),y.emit("webserver:agent_status",{agentId:e,status:"ended",timestamp:Date.now()})}getSessionContext(e="defalt"){e||(e="defalt");let t=o.sessionContext[e+""];return t||(t=new $,o.sessionContext[e+""]=t),t}getInQueryContext(e="defalt"){e||(e="defalt");let t=o.inQueryContextHolder[e+""];return t||(t=new P,o.inQueryContextHolder[e+""]=t),t}getQueryContext(e="defalt"){e||(e="defalt");let t=o.queryContext[e+""];return t||(t={},o.queryContext[e+""]=t),t}isQuerying(e="defalt"){return e||(e="defalt"),this.getInQueryContext(e).startTime>0}},X=new z;var at=Se(),d=g(he(),T);function m(o){return o.replace(/[^a-zA-Z0-9]/g,"-")}function ye(){return X.getSessionContext().getSessionId()||G}function be(){try{let o=x().planDirectory;if(o)return o}catch{}return g(d,"plan")}var ee={temp:()=>g(Z.tmpdir(),`${Y}`),plan:()=>be(),memory:()=>g(d,"projects",m(process.cwd()),"memory"),apis:()=>g(d,"projects",m(process.cwd()),"apis"),errors:()=>g(d,"projects",m(process.cwd()),"errors"),messages:()=>g(d,"projects",m(process.cwd()),"messages"),mcpLogs:o=>g(d,"projects",m(process.cwd()),`mcp-logs-${o}`),log:()=>g(d,"projects",m(process.cwd()),"log"),vcrFixtures:()=>g(d,"projects",m(process.cwd()),"vcr-fixtures"),sessionSummary:()=>g(d,"projects",m(process.cwd()),"messages",ye(),"session-summary")};function _e(o){return o.toISOString().replace(/[:.]/g,"-")}var G=_e(new Date);function Me(){return g(ee.log(),G+".log")}function Te(){return g(ee.log(),"error-"+G+".log")}function te(o,e,...t){let n=t.map(s=>s instanceof Error?`${s.name}: ${s.message}
|
|
11
11
|
${s.stack.replace(/^/gm," ")}`:s);Oe(e,{level:o,message:n.length==1?n[0]:n})}function O(...o){te("info",Me(),...o)}function h(...o){te("error",Te(),...o)}function v(...o){h(...o)}function Oe(o,e){let t=fe(o);q(t)||pe(t,{recursive:!0});let s=(typeof e=="string"?e:JSON.stringify(e))+`
|
|
12
|
-
`;q(o)?me(o,s,"utf8"):de(o,s,"utf8")}var ct=5*1024*1024,lt=1024*1024,ut=Buffer.from('"compact_boundary"');var R=class o{static getTools=e=>[];static getMCPCommands=()=>[];static getMcpServer=e=>{};static getClients=async()=>[];static reloadClients=async()=>[];static reconnect=async(e,t,n)=>{};static registerIDEClient=(e,t)=>{};static cache=[];static add(e){o.cache.push(e)}static clear(){o.cache.forEach(e=>{e.cache.clear?.()})}};var j={env:{},permissions:{allow:[],deny:[],ask:[]},enableAllProjectMcpServers:!1,enabledMcpjsonServers:[],autoCompactEnabled:!0,language:"auto",thinking:"medium",disableSuggestion:!1,lazyTool:"loading",memo:!1,messageArchiving:!1,archiveToolUseInputs:!1,autoMode:{enabled:!0,model:"",maxConsecutiveDenials:3,maxTotalDenials:20},autoMemory:{enabled:!0,minTokens:3e3,minTurns:3,teamMemoryEnabled:!1},autoDream:{enabled:!0,minHours:24,minSessions:5},proxy:!1,agentDepth:1,plugins:{pluginClaudeCompat:!0}},k=class o{static test=!1;static testSettings;static setSettings(e){o.testSettings=e}static instance;static isTasksEnable(){return process.env.HAWA_CODE_ENABLE_TASKS=="true"||o.isAgentTeamEnable()}static isAgentTeamEnable(){return process.env.HAWA_CODE_EXPERIMENTAL_AGENT_TEAMS=="1"}static getLazyToolMode(){let e=x();if(e.proxyToolEnable===!0)return"proxy";let t=e.lazyTool;return t==="proxy"||t==="loading"||t==="off"?t:t===!0?"loading":t===!1?"off":"loading"}static isLazyToolEnable(){return o.getLazyToolMode()==="loading"}static isProxyToolEnable(){return o.getLazyToolMode()==="proxy"}static isLazyOrProxyEnable(){return o.getLazyToolMode()!=="off"}static isPowerShellToolEnable(){return H()}static isMemoEnable(){return x().memo===!0}static isMessageArchivingEnable(){return x().messageArchiving===!0}static isArchiveToolUseInputsEnable(){return x().archiveToolUseInputs===!0}constructor(){this.initializeConfigDirectories()}initializeConfigDirectories(){let e=this.getUserSettingsPath(),t=this.getProjectSettingsPath();this.ensureDirExists(e),U(e)||I(e,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8"),this.ensureDirExists(t),U(t)||I(t,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8")}getDefaultSettingsStructure(){return{env:{},permissions:{allow:[],deny:[],ask:[]},autoMode:{enabled:!0,model:"",maxConsecutiveDenials:3,maxTotalDenials:20},thinking:"medium"}}static getInstance(){return o.instance||(o.instance=new o),o.instance}addProjectAllowedTools(e){let t=this.loadSettingsFromFile(this.getProjectSettingsPath()),n=t.permissions||{allow:[],deny:[]};if(n.allow||(n.allow=[]),n.allow.includes(e))O(`\u5DE5\u5177 '${e}' \u5DF2\u5B58\u5728\u4E8E\u9879\u76EE\u5141\u8BB8\u5217\u8868\u4E2D\uFF0C\u65E0\u9700\u91CD\u590D\u6DFB\u52A0`);else{n.allow.push(e),n.allow.sort();let s={...t,permissions:{...n}};this.saveSettingsToFile(this.getProjectSettingsPath(),s,j),O(`\u5DF2\u5C06\u5DE5\u5177 '${e}' \u6DFB\u52A0\u5230\u9879\u76EE\u5141\u8BB8\u5217\u8868`)}}getUserSettingsPath(){return se(Ae(),".hcode","settings.json")}getProjectSettingsPath(){let e=process.cwd();return se(e,".hcode","settings.json")}ensureDirExists(e){let t=we(e);U(t)||Ee(t,{recursive:!0})}loadSettingsFromFile(e){if(!U(e))return{};let t="";try{return t=xe(e,"utf-8"),JSON.parse(t)}catch(n){return console.error(`Error reading settings file ${e} => ${t} `,n),{}}}saveSettingsToFile(e,t,n){let s={...t};for(let[r,i]of Object.entries(t))if(r in n)if(typeof i=="object"&&typeof n[r]=="object"){if(JSON.stringify(i)===JSON.stringify(n[r]))delete s[r];else if(r==="permissions"&&i&&typeof i=="object"){let l=n.permissions||{},c=i;Array.isArray(c.allow)&&Array.isArray(l.allow)&&JSON.stringify(c.allow)===JSON.stringify(l.allow)&&delete c.allow,Array.isArray(c.deny)&&Array.isArray(l.deny)&&JSON.stringify(c.deny)===JSON.stringify(l.deny)&&delete c.deny,Object.keys(c).length===0&&delete s[r]}}else i===n[r]&&delete s[r];this.ensureDirExists(e),Object.keys(s).length===0?I(e,"{}","utf-8"):I(e,JSON.stringify(s,null,2),"utf-8")}mergeStringArrays(e,t){if(!e&&!t)return;let n=[...e||[]];return(t||[]).forEach(s=>{n.includes(s)||n.push(s)}),n}loadSettings(){let e=this.loadSettingsFromFile(this.getUserSettingsPath()),t=this.loadSettingsFromFile(this.getProjectSettingsPath()),n={...e.env,...t.env},s={...e.permissions};if(e.permissions?.allow&&t.permissions?.allow){let a=[...e.permissions.allow];t.permissions.allow.forEach(u=>{a.includes(u)||a.push(u)}),s.allow=a}else t.permissions?.allow&&(s.allow=[...t.permissions.allow]);if(e.permissions?.deny&&t.permissions?.deny){let a=[...e.permissions.deny];t.permissions.deny.forEach(u=>{a.includes(u)||a.push(u)}),s.deny=a}else t.permissions?.deny&&(s.deny=[...t.permissions.deny]);if(e.permissions?.ask&&t.permissions?.ask){let a=[...e.permissions.ask];t.permissions.ask.forEach(u=>{a.includes(u)||a.push(u)}),s.ask=a}else t.permissions?.ask&&(s.ask=[...t.permissions.ask]);let r={...j,...e,...t};n&&Object.keys(n).length>0&&(r.env=n),s&&(s.allow||s.deny||s.ask)&&(r.permissions=s);let i=e.sandbox,l=t.sandbox;if(i||l){let a={...i,...l},u=i?.filesystem,b=l?.filesystem;(u||b)&&(a.filesystem={...u,...b,allowWrite:this.mergeStringArrays(u?.allowWrite,b?.allowWrite),denyWrite:this.mergeStringArrays(u?.denyWrite,b?.denyWrite),denyRead:this.mergeStringArrays(u?.denyRead,b?.denyRead),allowRead:this.mergeStringArrays(u?.allowRead,b?.allowRead)});let A=i?.network,C=l?.network;(A||C)&&(a.network={...A,...C,allowedDomains:this.mergeStringArrays(A?.allowedDomains,C?.allowedDomains),deniedDomains:this.mergeStringArrays(A?.deniedDomains,C?.deniedDomains),allowUnixSockets:this.mergeStringArrays(A?.allowUnixSockets,C?.allowUnixSockets)});let F=i?.ignoreViolations,B=l?.ignoreViolations;if(F||B){let _={};if(F)for(let[M,D]of Object.entries(F))_[M]=[...D];if(B)for(let[M,D]of Object.entries(B))_[M]?_[M]=this.mergeStringArrays(_[M],D)??[]:_[M]=[...D];a.ignoreViolations=_}r.sandbox=a}let c=e.plugins,f=t.plugins;if(c||f){let a={...c,...f};(c?.enabledPlugins||f?.enabledPlugins)&&(a.enabledPlugins=this.mergeStringArrays(c?.enabledPlugins,f?.enabledPlugins)),(c?.disabledPlugins||f?.disabledPlugins)&&(a.disabledPlugins=this.mergeStringArrays(c?.disabledPlugins,f?.disabledPlugins)),(c?.pluginMarketplaceAllowlist||f?.pluginMarketplaceAllowlist)&&(a.pluginMarketplaceAllowlist=this.mergeStringArrays(c?.pluginMarketplaceAllowlist,f?.pluginMarketplaceAllowlist)),(c?.pluginConfigs||f?.pluginConfigs)&&(a.pluginConfigs={...c?.pluginConfigs,...f?.pluginConfigs}),r.plugins=a}return r}saveUserSettings(e){let t=this.getUserSettingsPath();this.saveSettingsToFile(t,e,j)}saveProjectSettings(e){let t=this.getProjectSettingsPath();this.saveSettingsToFile(t,e,j)}getSetting(e){return this.loadSettings()[e]}updateSetting(e,t){let s={...this.loadSettings(),[e]:t};this.saveProjectSettings(s),p=s}resetSetting(e){let n={...this.loadSettings()};delete n[e],this.saveProjectSettings(n),p=n}getAllSettings(){return this.loadSettings()}},E=k.getInstance(),p=E.getAllSettings(),x=function(){return k.test?k.testSettings:(p||(p=E.getAllSettings(),R.clear(),p.env&&Object.keys(p.env).length>0&&(Object.entries(p.env).forEach(([o,e])=>{let t;typeof e=="string"?t=e:t=String(e),t.length>0&&(process.env[o]=t)}),O(`\u5DF2\u4ECE\u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D ${Object.keys(p.env).length} \u4E2A\u73AF\u5883\u53D8\u91CF`,p.env))),p)};function J(){let o=E.getUserSettingsPath(),e=E.getProjectSettingsPath();ne(o,(t,n)=>{t==="change"&&(p=null,y.emit("webserver:settings_changed",{scope:"user"}),O("\u7528\u6237\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D"))}).on("error",t=>{h("\u7528\u6237\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",t),setTimeout(()=>J(),100)}).unref(),ne(e,(t,n)=>{t==="change"&&(p=null,y.emit("webserver:settings_changed",{scope:"project"}),O("\u9879\u76EE\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D",n))}).on("error",t=>{h("\u9879\u76EE\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",t),setTimeout(()=>J(),100)}).unref()}J();import Ce from"os";import re from"path";import S from"fs";var Q={sources:{openai:{base_url:"https://api.openai.com/v1",auth_token:"{apikey}",api_type:"openai",models:["gpt-5.5","gpt-5.4-mini"]},kimi:{base_url:"https://api.kimi.com/coding",auth_token:"{apikey}",api_type:"anthropic",models:["K2.5","K2.6"]},"qwen-coding":{base_url:"https://coding.dashscope.aliyuncs.com/apps/anthropic",auth_token:"{apikey}",api_type:"anthropic",models:["qwen3-coder-plus"]}},routing:{MODEL:[{source:"kimi",model:"K2.6",weight:60},{source:"openai",model:"gpt-5.5",weight:40}],SMALL_FAST_MODEL:[{source:"qwen-coding",model:"qwen3-coder-plus",weight:50},{source:"kimi",model:"K2.5",weight:50}]}};function Pe(){let o=Ce.homedir();return re.join(o,T,"config.json")}function oe(o){if(o.length===0)throw new Error("No items to select from");if(o.length===1)return o[0];let e=o.reduce((n,s)=>n+(s.weight??100),0),t=Math.random()*e;for(let n of o){let s=n.weight??100;if(t-=s,t<=0)return n}return o[o.length-1]}var V=class{config;configPath;constructor(e){this.configPath=e||Pe();try{this.config=this.loadModelConfig()}catch(t){console.log(t)}}initConfig(){if(!S.existsSync(this.configPath))try{let e=re.dirname(this.configPath);S.mkdirSync(e,{recursive:!0}),S.writeFileSync(this.configPath,JSON.stringify(Q,null,2))}catch(e){v(e)}}reload(){this.config=this.loadModelConfig()}loadModelConfig(){try{if(!S.existsSync(this.configPath))return Q;let e=S.readFileSync(this.configPath,"utf-8"),t=JSON.parse(e);return t.sources&&t.routing?t:Q}catch(e){throw v(e),e}}getConfig(){return this.config}hasModelRouting(){return!!(this.config.routing?.MODEL&&this.config.routing.MODEL.length>0)}getModelRoutingModels(){let e=this.config.routing?.MODEL;return!e||e.length===0?[]:e.map(t=>t.model)}hasSmallFastModelRouting(){return!!(this.config.routing?.SMALL_FAST_MODEL&&this.config.routing.SMALL_FAST_MODEL.length>0)}getModel(){let e=this.config.routing?.MODEL;if(!e||e.length===0)throw new Error("No MODEL routing configuration found");let t=oe(e);return`${t.source}__${t.model}`}getSmallFastModel(){let e=this.config.routing?.SMALL_FAST_MODEL;if(!e||e.length===0)throw new Error("No SMALL_FAST_MODEL routing configuration found");let t=oe(e);return`${t.source}__${t.model}`}getSourceConfig(e){return this.config.sources?.[e]}parseModelKey(e){let t=e.indexOf("__");return t===-1?{source:"",model:e}:{source:e.slice(0,t),model:e.slice(t+2)}}getModelSourceConfig(e){let{source:t}=this.parseModelKey(e);if(t)return this.getSourceConfig(t)}setModelRouting(e){this.config.routing.MODEL=e,this.saveConfig()}setSmallFastModelRouting(e){this.config.routing.SMALL_FAST_MODEL=e,this.saveConfig()}updateConfig(e){this.config=e,this.saveConfig()}getAvailableModels(){let e=[];for(let[t,n]of Object.entries(this.config.sources||{}))for(let s of n.models||[])e.push(`${t}__${s}`);return e}saveConfig(){try{let e={};if(S.existsSync(this.configPath)){let n=S.readFileSync(this.configPath,"utf-8");e=JSON.parse(n)}let t={...e,sources:this.config.sources,routing:this.config.routing};S.writeFileSync(this.configPath,JSON.stringify(t,null,2))}catch(e){v(e)}}},w=new V;import ke from"os";function Le(){return L.join(ke.homedir(),T,"config.json")}function De(){try{w.reload()}catch(s){return console.error(`\u914D\u7F6E\u6587\u4EF6\u9519\u8BEF: ${s instanceof Error?s.message:String(s)}`),console.error(`\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84: ${Le()}`),!1}let o=w.hasModelRouting(),e=w.hasSmallFastModelRouting();if(!o&&!e)return!1;let t=w.getConfig(),n=t.routing||{};for(let[s,r]of Object.entries(n))for(let i of r)if(!t.sources[i.source])return console.error(`\u914D\u7F6E\u9519\u8BEF: routing.${s} \u4E2D\u5F15\u7528\u7684 source "${i.source}" \u5728 sources \u4E2D\u4E0D\u5B58\u5728`),!1;return!0}function Ne(){if(w.initConfig(),!De()){process.exit(0);return}(async()=>{let o=E.getSetting("env")||{},e=ae(import.meta.url),t=L.dirname(e),n=L.join(t,"cli.js"),s=ie(process.execPath,["--no-deprecation",n,...process.argv.slice(2)],{env:{...process.env,...o},stdio:"inherit",cwd:process.cwd()});s.on("error",r=>{console.error("Failed to start command:",r.message),process.exit(1)}),s.on("close",r=>{process.exit(r||0)})})()}async function ve(){let o=ae(import.meta.url),e=L.dirname(o),t=L.join(e,"cli.js"),n=ie(process.execPath,["--no-deprecation",t,...process.argv.slice(2)],{env:process.env,stdio:"inherit",cwd:process.cwd()});n.on("error",s=>{console.error("Failed to start command:",s.message),process.exit(1)}),n.on("close",s=>{process.exit(s||0)})}async function Re(){process.argv.length<=2?Ne():await ve()}await Re();
|
|
12
|
+
`;q(o)?me(o,s,"utf8"):de(o,s,"utf8")}var ct=5*1024*1024,lt=1024*1024,ut=Buffer.from('"compact_boundary"');var R=class o{static getTools=e=>[];static getMCPCommands=()=>[];static getMcpServer=e=>{};static getClients=async()=>[];static reloadClients=async()=>[];static reconnect=async(e,t,n)=>{};static registerIDEClient=(e,t)=>{};static cache=[];static add(e){o.cache.push(e)}static clear(){o.cache.forEach(e=>{e.cache.clear?.()})}};var j={env:{},permissions:{allow:[],deny:[],ask:[]},enableAllProjectMcpServers:!1,enabledMcpjsonServers:[],autoCompactEnabled:!0,language:"auto",thinking:"medium",disableSuggestion:!1,lazyTool:"loading",memo:!1,messageArchiving:!1,archiveToolUseInputs:!1,autoMode:{enabled:!0,model:"",maxConsecutiveDenials:3,maxTotalDenials:20},autoMemory:{enabled:!0,minTokens:3e3,minTurns:3,teamMemoryEnabled:!1},autoDream:{enabled:!0,minHours:24,minSessions:5},proxy:!1,agentDepth:1,plugins:{pluginClaudeCompat:!0}},k=class o{static test=!1;static testSettings;static setSettings(e){o.testSettings=e}static instance;static isTasksEnable(){return process.env.HAWA_CODE_ENABLE_TASKS=="true"||o.isAgentTeamEnable()}static isAgentTeamEnable(){return process.env.HAWA_CODE_EXPERIMENTAL_AGENT_TEAMS=="1"}static getLazyToolMode(){let t=x().lazyTool;return t==="proxy"||t==="loading"||t==="off"?t:t===!0?"loading":t===!1?"off":"loading"}static isLazyToolEnable(){return o.getLazyToolMode()==="loading"}static isProxyToolEnable(){return o.getLazyToolMode()==="proxy"}static isLazyOrProxyEnable(){return o.getLazyToolMode()!=="off"}static isPowerShellToolEnable(){return H()}static isMemoEnable(){return x().memo===!0}static isMessageArchivingEnable(){return x().messageArchiving===!0}static isArchiveToolUseInputsEnable(){return x().archiveToolUseInputs===!0}constructor(){this.initializeConfigDirectories()}initializeConfigDirectories(){let e=this.getUserSettingsPath(),t=this.getProjectSettingsPath();this.ensureDirExists(e),U(e)||I(e,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8"),this.ensureDirExists(t),U(t)||I(t,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8")}getDefaultSettingsStructure(){return{env:{},permissions:{allow:[],deny:[],ask:[]},autoMode:{enabled:!0,model:"",maxConsecutiveDenials:3,maxTotalDenials:20},thinking:"medium"}}static getInstance(){return o.instance||(o.instance=new o),o.instance}addProjectAllowedTools(e){let t=this.loadSettingsFromFile(this.getProjectSettingsPath()),n=t.permissions||{allow:[],deny:[]};if(n.allow||(n.allow=[]),n.allow.includes(e))O(`\u5DE5\u5177 '${e}' \u5DF2\u5B58\u5728\u4E8E\u9879\u76EE\u5141\u8BB8\u5217\u8868\u4E2D\uFF0C\u65E0\u9700\u91CD\u590D\u6DFB\u52A0`);else{n.allow.push(e),n.allow.sort();let s={...t,permissions:{...n}};this.saveSettingsToFile(this.getProjectSettingsPath(),s,j),O(`\u5DF2\u5C06\u5DE5\u5177 '${e}' \u6DFB\u52A0\u5230\u9879\u76EE\u5141\u8BB8\u5217\u8868`)}}getUserSettingsPath(){return se(Ae(),".hcode","settings.json")}getProjectSettingsPath(){let e=process.cwd();return se(e,".hcode","settings.json")}ensureDirExists(e){let t=we(e);U(t)||Ee(t,{recursive:!0})}loadSettingsFromFile(e){if(!U(e))return{};let t="";try{return t=xe(e,"utf-8"),JSON.parse(t)}catch(n){return console.error(`Error reading settings file ${e} => ${t} `,n),{}}}saveSettingsToFile(e,t,n){let s={...t};for(let[r,i]of Object.entries(t))if(r in n)if(typeof i=="object"&&typeof n[r]=="object"){if(JSON.stringify(i)===JSON.stringify(n[r]))delete s[r];else if(r==="permissions"&&i&&typeof i=="object"){let l=n.permissions||{},c=i;Array.isArray(c.allow)&&Array.isArray(l.allow)&&JSON.stringify(c.allow)===JSON.stringify(l.allow)&&delete c.allow,Array.isArray(c.deny)&&Array.isArray(l.deny)&&JSON.stringify(c.deny)===JSON.stringify(l.deny)&&delete c.deny,Object.keys(c).length===0&&delete s[r]}}else i===n[r]&&delete s[r];this.ensureDirExists(e),Object.keys(s).length===0?I(e,"{}","utf-8"):I(e,JSON.stringify(s,null,2),"utf-8")}mergeStringArrays(e,t){if(!e&&!t)return;let n=[...e||[]];return(t||[]).forEach(s=>{n.includes(s)||n.push(s)}),n}loadSettings(){let e=this.loadSettingsFromFile(this.getUserSettingsPath()),t=this.loadSettingsFromFile(this.getProjectSettingsPath()),n={...e.env,...t.env},s={...e.permissions};if(e.permissions?.allow&&t.permissions?.allow){let a=[...e.permissions.allow];t.permissions.allow.forEach(u=>{a.includes(u)||a.push(u)}),s.allow=a}else t.permissions?.allow&&(s.allow=[...t.permissions.allow]);if(e.permissions?.deny&&t.permissions?.deny){let a=[...e.permissions.deny];t.permissions.deny.forEach(u=>{a.includes(u)||a.push(u)}),s.deny=a}else t.permissions?.deny&&(s.deny=[...t.permissions.deny]);if(e.permissions?.ask&&t.permissions?.ask){let a=[...e.permissions.ask];t.permissions.ask.forEach(u=>{a.includes(u)||a.push(u)}),s.ask=a}else t.permissions?.ask&&(s.ask=[...t.permissions.ask]);let r={...j,...e,...t};n&&Object.keys(n).length>0&&(r.env=n),s&&(s.allow||s.deny||s.ask)&&(r.permissions=s);let i=e.sandbox,l=t.sandbox;if(i||l){let a={...i,...l},u=i?.filesystem,b=l?.filesystem;(u||b)&&(a.filesystem={...u,...b,allowWrite:this.mergeStringArrays(u?.allowWrite,b?.allowWrite),denyWrite:this.mergeStringArrays(u?.denyWrite,b?.denyWrite),denyRead:this.mergeStringArrays(u?.denyRead,b?.denyRead),allowRead:this.mergeStringArrays(u?.allowRead,b?.allowRead)});let A=i?.network,C=l?.network;(A||C)&&(a.network={...A,...C,allowedDomains:this.mergeStringArrays(A?.allowedDomains,C?.allowedDomains),deniedDomains:this.mergeStringArrays(A?.deniedDomains,C?.deniedDomains),allowUnixSockets:this.mergeStringArrays(A?.allowUnixSockets,C?.allowUnixSockets)});let F=i?.ignoreViolations,B=l?.ignoreViolations;if(F||B){let _={};if(F)for(let[M,D]of Object.entries(F))_[M]=[...D];if(B)for(let[M,D]of Object.entries(B))_[M]?_[M]=this.mergeStringArrays(_[M],D)??[]:_[M]=[...D];a.ignoreViolations=_}r.sandbox=a}let c=e.plugins,f=t.plugins;if(c||f){let a={...c,...f};(c?.enabledPlugins||f?.enabledPlugins)&&(a.enabledPlugins=this.mergeStringArrays(c?.enabledPlugins,f?.enabledPlugins)),(c?.disabledPlugins||f?.disabledPlugins)&&(a.disabledPlugins=this.mergeStringArrays(c?.disabledPlugins,f?.disabledPlugins)),(c?.pluginMarketplaceAllowlist||f?.pluginMarketplaceAllowlist)&&(a.pluginMarketplaceAllowlist=this.mergeStringArrays(c?.pluginMarketplaceAllowlist,f?.pluginMarketplaceAllowlist)),(c?.pluginConfigs||f?.pluginConfigs)&&(a.pluginConfigs={...c?.pluginConfigs,...f?.pluginConfigs}),r.plugins=a}return r}saveUserSettings(e){let t=this.getUserSettingsPath();this.saveSettingsToFile(t,e,j)}saveProjectSettings(e){let t=this.getProjectSettingsPath();this.saveSettingsToFile(t,e,j)}getSetting(e){return this.loadSettings()[e]}updateSetting(e,t){let s={...this.loadSettings(),[e]:t};this.saveProjectSettings(s),p=s}resetSetting(e){let n={...this.loadSettings()};delete n[e],this.saveProjectSettings(n),p=n}getAllSettings(){return this.loadSettings()}},E=k.getInstance(),p=E.getAllSettings(),x=function(){return k.test?k.testSettings:(p||(p=E.getAllSettings(),R.clear(),p.env&&Object.keys(p.env).length>0&&(Object.entries(p.env).forEach(([o,e])=>{let t;typeof e=="string"?t=e:t=String(e),t.length>0&&(process.env[o]=t)}),O(`\u5DF2\u4ECE\u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D ${Object.keys(p.env).length} \u4E2A\u73AF\u5883\u53D8\u91CF`,p.env))),p)};function J(){let o=E.getUserSettingsPath(),e=E.getProjectSettingsPath();ne(o,(t,n)=>{t==="change"&&(p=null,y.emit("webserver:settings_changed",{scope:"user"}),O("\u7528\u6237\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D"))}).on("error",t=>{h("\u7528\u6237\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",t),setTimeout(()=>J(),100)}).unref(),ne(e,(t,n)=>{t==="change"&&(p=null,y.emit("webserver:settings_changed",{scope:"project"}),O("\u9879\u76EE\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D",n))}).on("error",t=>{h("\u9879\u76EE\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",t),setTimeout(()=>J(),100)}).unref()}J();import Ce from"os";import re from"path";import S from"fs";var Q={sources:{openai:{base_url:"https://api.openai.com/v1",auth_token:"{apikey}",api_type:"openai",models:["gpt-5.5","gpt-5.4-mini"]},kimi:{base_url:"https://api.kimi.com/coding",auth_token:"{apikey}",api_type:"anthropic",models:["K2.5","K2.6"]},"qwen-coding":{base_url:"https://coding.dashscope.aliyuncs.com/apps/anthropic",auth_token:"{apikey}",api_type:"anthropic",models:["qwen3-coder-plus"]}},routing:{MODEL:[{source:"kimi",model:"K2.6",weight:60},{source:"openai",model:"gpt-5.5",weight:40}],SMALL_FAST_MODEL:[{source:"qwen-coding",model:"qwen3-coder-plus",weight:50},{source:"kimi",model:"K2.5",weight:50}]}};function Pe(){let o=Ce.homedir();return re.join(o,T,"config.json")}function oe(o){if(o.length===0)throw new Error("No items to select from");if(o.length===1)return o[0];let e=o.reduce((n,s)=>n+(s.weight??100),0),t=Math.random()*e;for(let n of o){let s=n.weight??100;if(t-=s,t<=0)return n}return o[o.length-1]}var V=class{config;configPath;constructor(e){this.configPath=e||Pe();try{this.config=this.loadModelConfig()}catch(t){console.log(t)}}initConfig(){if(!S.existsSync(this.configPath))try{let e=re.dirname(this.configPath);S.mkdirSync(e,{recursive:!0}),S.writeFileSync(this.configPath,JSON.stringify(Q,null,2))}catch(e){v(e)}}reload(){this.config=this.loadModelConfig()}loadModelConfig(){try{if(!S.existsSync(this.configPath))return Q;let e=S.readFileSync(this.configPath,"utf-8"),t=JSON.parse(e);return t.sources&&t.routing?t:Q}catch(e){throw v(e),e}}getConfig(){return this.config}hasModelRouting(){return!!(this.config.routing?.MODEL&&this.config.routing.MODEL.length>0)}getModelRoutingModels(){let e=this.config.routing?.MODEL;return!e||e.length===0?[]:e.map(t=>t.model)}hasSmallFastModelRouting(){return!!(this.config.routing?.SMALL_FAST_MODEL&&this.config.routing.SMALL_FAST_MODEL.length>0)}getModel(){let e=this.config.routing?.MODEL;if(!e||e.length===0)throw new Error("No MODEL routing configuration found");let t=oe(e);return`${t.source}__${t.model}`}getSmallFastModel(){let e=this.config.routing?.SMALL_FAST_MODEL;if(!e||e.length===0)throw new Error("No SMALL_FAST_MODEL routing configuration found");let t=oe(e);return`${t.source}__${t.model}`}getSourceConfig(e){return this.config.sources?.[e]}parseModelKey(e){let t=e.indexOf("__");return t===-1?{source:"",model:e}:{source:e.slice(0,t),model:e.slice(t+2)}}getModelSourceConfig(e){let{source:t}=this.parseModelKey(e);if(t)return this.getSourceConfig(t)}setModelRouting(e){this.config.routing.MODEL=e,this.saveConfig()}setSmallFastModelRouting(e){this.config.routing.SMALL_FAST_MODEL=e,this.saveConfig()}updateConfig(e){this.config=e,this.saveConfig()}getAvailableModels(){let e=[];for(let[t,n]of Object.entries(this.config.sources||{}))for(let s of n.models||[])e.push(`${t}__${s}`);return e}saveConfig(){try{let e={};if(S.existsSync(this.configPath)){let n=S.readFileSync(this.configPath,"utf-8");e=JSON.parse(n)}let t={...e,sources:this.config.sources,routing:this.config.routing};S.writeFileSync(this.configPath,JSON.stringify(t,null,2))}catch(e){v(e)}}},w=new V;import ke from"os";function Le(){return L.join(ke.homedir(),T,"config.json")}function De(){try{w.reload()}catch(s){return console.error(`\u914D\u7F6E\u6587\u4EF6\u9519\u8BEF: ${s instanceof Error?s.message:String(s)}`),console.error(`\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84: ${Le()}`),!1}let o=w.hasModelRouting(),e=w.hasSmallFastModelRouting();if(!o&&!e)return!1;let t=w.getConfig(),n=t.routing||{};for(let[s,r]of Object.entries(n))for(let i of r)if(!t.sources[i.source])return console.error(`\u914D\u7F6E\u9519\u8BEF: routing.${s} \u4E2D\u5F15\u7528\u7684 source "${i.source}" \u5728 sources \u4E2D\u4E0D\u5B58\u5728`),!1;return!0}function Ne(){if(w.initConfig(),!De()){process.exit(0);return}(async()=>{let o=E.getSetting("env")||{},e=ae(import.meta.url),t=L.dirname(e),n=L.join(t,"cli.js"),s=ie(process.execPath,["--no-deprecation",n,...process.argv.slice(2)],{env:{...process.env,...o},stdio:"inherit",cwd:process.cwd()});s.on("error",r=>{console.error("Failed to start command:",r.message),process.exit(1)}),s.on("close",r=>{process.exit(r||0)})})()}async function ve(){let o=ae(import.meta.url),e=L.dirname(o),t=L.join(e,"cli.js"),n=ie(process.execPath,["--no-deprecation",t,...process.argv.slice(2)],{env:process.env,stdio:"inherit",cwd:process.cwd()});n.on("error",s=>{console.error("Failed to start command:",s.message),process.exit(1)}),n.on("close",s=>{process.exit(s||0)})}async function Re(){process.argv.length<=2?Ne():await ve()}await Re();
|
package/package.json
CHANGED
package/webServer/app.js
CHANGED
|
@@ -68,7 +68,7 @@ ${e}</tr>
|
|
|
68
68
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${hn(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let l=this.parser.parseInline(n),a=Tv(e);if(a===null)return l;e=a;let s='<a href="'+e+'"';return t&&(s+=' title="'+hn(t)+'"'),s+=">"+l+"</a>",s}image({href:e,title:t,text:n,tokens:l}){l&&(n=this.parser.parseInline(l,this.parser.textRenderer));let a=Tv(e);if(a===null)return hn(n);e=a;let s=`<img src="${e}" alt="${n}"`;return t&&(s+=` title="${hn(t)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:hn(e.text)}},ad=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},It=class Pf{constructor(t){de(this,"options");de(this,"renderer");de(this,"textRenderer");this.options=t||Pl,this.options.renderer=this.options.renderer||new uu,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ad}static parse(t,n){return new Pf(n).parse(t)}static parseInline(t,n){return new Pf(n).parseInline(t)}parse(t,n=!0){let l="";for(let a=0;a<t.length;a++){let s=t[a];if(this.options.extensions?.renderers?.[s.type]){let o=s,u=this.options.extensions.renderers[o.type].call({parser:this},o);if(u!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(o.type)){l+=u||"";continue}}let i=s;switch(i.type){case"space":{l+=this.renderer.space(i);continue}case"hr":{l+=this.renderer.hr(i);continue}case"heading":{l+=this.renderer.heading(i);continue}case"code":{l+=this.renderer.code(i);continue}case"table":{l+=this.renderer.table(i);continue}case"blockquote":{l+=this.renderer.blockquote(i);continue}case"list":{l+=this.renderer.list(i);continue}case"html":{l+=this.renderer.html(i);continue}case"def":{l+=this.renderer.def(i);continue}case"paragraph":{l+=this.renderer.paragraph(i);continue}case"text":{let o=i,u=this.renderer.text(o);for(;a+1<t.length&&t[a+1].type==="text";)o=t[++a],u+=`
|
|
69
69
|
`+this.renderer.text(o);n?l+=this.renderer.paragraph({type:"paragraph",raw:u,text:u,tokens:[{type:"text",raw:u,text:u,escaped:!0}]}):l+=u;continue}default:{let o='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return l}parseInline(t,n=this.renderer){let l="";for(let a=0;a<t.length;a++){let s=t[a];if(this.options.extensions?.renderers?.[s.type]){let o=this.options.extensions.renderers[s.type].call({parser:this},s);if(o!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){l+=o||"";continue}}let i=s;switch(i.type){case"escape":{l+=n.text(i);break}case"html":{l+=n.html(i);break}case"link":{l+=n.link(i);break}case"image":{l+=n.image(i);break}case"strong":{l+=n.strong(i);break}case"em":{l+=n.em(i);break}case"codespan":{l+=n.codespan(i);break}case"br":{l+=n.br(i);break}case"del":{l+=n.del(i);break}case"text":{l+=n.text(i);break}default:{let o='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return l}},su,oi=(su=class{constructor(e){de(this,"options");de(this,"block");this.options=e||Pl}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?Rt.lex:Rt.lexInline}provideParser(){return this.block?It.parse:It.parseInline}},de(su,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),de(su,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),su),nT=class{constructor(...e){de(this,"defaults",Wf());de(this,"options",this.setOptions);de(this,"parse",this.parseMarkdown(!0));de(this,"parseInline",this.parseMarkdown(!1));de(this,"Parser",It);de(this,"Renderer",uu);de(this,"TextRenderer",ad);de(this,"Lexer",Rt);de(this,"Tokenizer",ou);de(this,"Hooks",oi);this.use(...e)}walkTokens(e,t){let n=[];for(let l of e)switch(n=n.concat(t.call(this,l)),l.type){case"table":{let a=l;for(let s of a.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of a.rows)for(let i of s)n=n.concat(this.walkTokens(i.tokens,t));break}case"list":{let a=l;n=n.concat(this.walkTokens(a.items,t));break}default:{let a=l;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach(s=>{let i=a[s].flat(1/0);n=n.concat(this.walkTokens(i,t))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let l={...n};if(l.async=this.defaults.async||l.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=t.renderers[a.name];s?t.renderers[a.name]=function(...i){let o=a.renderer.apply(this,i);return o===!1&&(o=s.apply(this,i)),o}:t.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[a.level];s?s.unshift(a.tokenizer):t[a.level]=[a.tokenizer],a.start&&(a.level==="block"?t.startBlock?t.startBlock.push(a.start):t.startBlock=[a.start]:a.level==="inline"&&(t.startInline?t.startInline.push(a.start):t.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(t.childTokens[a.name]=a.childTokens)}),l.extensions=t),n.renderer){let a=this.defaults.renderer||new uu(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let i=s,o=n.renderer[i],u=a[i];a[i]=(...f)=>{let r=o.apply(a,f);return r===!1&&(r=u.apply(a,f)),r||""}}l.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new ou(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let i=s,o=n.tokenizer[i],u=a[i];a[i]=(...f)=>{let r=o.apply(a,f);return r===!1&&(r=u.apply(a,f)),r}}l.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new oi;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let i=s,o=n.hooks[i],u=a[i];oi.passThroughHooks.has(s)?a[i]=f=>{if(this.defaults.async&&oi.passThroughHooksRespectAsync.has(s))return(async()=>{let p=await o.call(a,f);return u.call(a,p)})();let r=o.call(a,f);return u.call(a,r)}:a[i]=(...f)=>{if(this.defaults.async)return(async()=>{let p=await o.apply(a,f);return p===!1&&(p=await u.apply(a,f)),p})();let r=o.apply(a,f);return r===!1&&(r=u.apply(a,f)),r}}l.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;l.walkTokens=function(i){let o=[];return o.push(s.call(this,i)),a&&(o=o.concat(a.call(this,i))),o}}this.defaults={...this.defaults,...l}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Rt.lex(e,t??this.defaults)}parser(e,t){return It.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let l={...n},a={...this.defaults,...l},s=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&l.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=e),a.async)return(async()=>{let i=a.hooks?await a.hooks.preprocess(t):t,o=await(a.hooks?await a.hooks.provideLexer():e?Rt.lex:Rt.lexInline)(i,a),u=a.hooks?await a.hooks.processAllTokens(o):o;a.walkTokens&&await Promise.all(this.walkTokens(u,a.walkTokens));let f=await(a.hooks?await a.hooks.provideParser():e?It.parse:It.parseInline)(u,a);return a.hooks?await a.hooks.postprocess(f):f})().catch(s);try{a.hooks&&(t=a.hooks.preprocess(t));let i=(a.hooks?a.hooks.provideLexer():e?Rt.lex:Rt.lexInline)(t,a);a.hooks&&(i=a.hooks.processAllTokens(i)),a.walkTokens&&this.walkTokens(i,a.walkTokens);let o=(a.hooks?a.hooks.provideParser():e?It.parse:It.parseInline)(i,a);return a.hooks&&(o=a.hooks.postprocess(o)),o}catch(i){return s(i)}}}onError(e,t){return n=>{if(n.message+=`
|
|
70
70
|
Please report this to https://github.com/markedjs/marked.`,e){let l="<p>An error occurred:</p><pre>"+hn(n.message+"",!0)+"</pre>";return t?Promise.resolve(l):l}if(t)return Promise.reject(n);throw n}}},Jl=new nT;function le(e,t){return Jl.parse(e,t)}le.options=le.setOptions=function(e){return Jl.setOptions(e),le.defaults=Jl.defaults,_v(le.defaults),le};le.getDefaults=Wf;le.defaults=Pl;le.use=function(...e){return Jl.use(...e),le.defaults=Jl.defaults,_v(le.defaults),le};le.walkTokens=function(e,t){return Jl.walkTokens(e,t)};le.parseInline=Jl.parseInline;le.Parser=It;le.parser=It.parse;le.Renderer=uu;le.TextRenderer=ad;le.Lexer=Rt;le.lexer=Rt.lex;le.Tokenizer=ou;le.Hooks=oi;le.parse=le;var ZE=le.options,XE=le.setOptions,VE=le.use,KE=le.walkTokens,$E=le.parseInline;var JE=It.parse,PE=Rt.lex;var B=E(x(),1);var ci=E(x(),1);function Bv({input:e}){return ci.default.createElement("div",{className:"tool-use-detail"},ci.default.createElement("span",{className:"tool-badge"},"Read"),ci.default.createElement("span",{className:"file-path"},e.file_path),(e.offset||e.limit)&&ci.default.createElement("span",{className:"tool-meta"},e.offset?`from line ${e.offset}`:"",e.limit?` (${e.limit} lines)`:""))}var fi=E(x(),1);function Hv({input:e}){let t=e.old_string===""?"Create":e.new_string===""?"Delete":"Update";return fi.default.createElement("div",{className:"tool-use-detail"},fi.default.createElement("span",{className:"tool-badge"},t),fi.default.createElement("span",{className:"file-path"},e.file_path),e.replace_all&&fi.default.createElement("span",{className:"tool-meta"},"(replace all)"))}var di=E(x(),1);function qv({input:e}){let t=e.content?e.content.split(`
|
|
71
|
-
`).length:0;return di.default.createElement("div",{className:"tool-use-detail"},di.default.createElement("span",{className:"tool-badge"},"Write"),di.default.createElement("span",{className:"file-path"},e.file_path),di.default.createElement("span",{className:"tool-meta"},"(",t," lines)"))}var Ra=E(x(),1);function jv({input:e}){return Ra.default.createElement("div",{className:"tool-use-detail"},Ra.default.createElement("span",{className:"tool-badge"},"Bash"),e.run_in_background&&Ra.default.createElement("span",{className:"tool-meta"},"(background)"),Ra.default.createElement("pre",{className:"command-block"},Ra.default.createElement("code",null,e.command)))}var bl=E(x(),1);function Gv({input:e}){return bl.default.createElement("div",{className:"tool-use-detail"},bl.default.createElement("span",{className:"tool-badge"},"Grep"),bl.default.createElement("code",{className:"pattern-text"},"/",e.pattern,"/"),e.path&&bl.default.createElement("span",{className:"tool-meta"},"in ",e.path),e.glob&&bl.default.createElement("span",{className:"tool-meta"},"(",e.glob,")"),e.type&&bl.default.createElement("span",{className:"tool-meta"},"type: ",e.type),e.output_mode&&bl.default.createElement("span",{className:"tool-meta"},"[",e.output_mode,"]"))}var pi=E(x(),1);function Yv({input:e}){return pi.default.createElement("div",{className:"tool-use-detail"},pi.default.createElement("span",{className:"tool-badge"},"Glob"),pi.default.createElement("code",{className:"pattern-text"},e.pattern),e.path&&pi.default.createElement("span",{className:"tool-meta"},"in ",e.path))}var fu=E(x(),1);function Qv({input:e}){return fu.default.createElement("div",{className:"tool-use-detail"},fu.default.createElement("span",{className:"tool-badge"},"LS"),fu.default.createElement("span",{className:"file-path"},e.path||"."))}var vn=E(x(),1),du=120;function Zv({input:e}){let[t,n]=(0,vn.useState)(!1),{description:l,prompt:a,subagent_type:s,model_name:i,resume:o,run_in_background:u,name:f,team_name:r,mode:p,isolation:c}=e,d=typeof a=="string"&&a.length>0,v=d&&a.length>du?a.substring(0,du)+"...":a,y=d&&(t||a.length<=du),S=d&&a.length>du,g=[];return s&&g.push(`type: ${s}`),i&&g.push(`model: ${i}`),o&&g.push(`resume: ${o}`),u&&g.push("background"),r&&f&&g.push(`team: ${r}/${f}`),p&&g.push(`mode: ${p}`),c&&g.push(`isolation: ${c}`),vn.default.createElement("div",{className:"tool-use-detail"},vn.default.createElement("span",{className:"tool-badge"},"Agent"),l&&vn.default.createElement("span",{className:"tool-description"},l),g.length>0&&vn.default.createElement("span",{className:"tool-meta"},"(",g.join(", "),")"),y&&vn.default.createElement("div",{className:"tool-input agent-prompt-detail"},vn.default.createElement("code",null,t?a:v)),S&&vn.default.createElement("span",{className:"tool-meta detail-toggle",onClick:()=>n(!t),style:{cursor:"pointer"}},t?"collapse details":"details"))}var Wl=E(x(),1);function Xv({input:e}){return Wl.default.createElement("div",{className:"tool-use-detail"},Wl.default.createElement("span",{className:"tool-badge"},"LSP"),Wl.default.createElement("span",{className:"tool-meta"},e.operation),e.filePath&&Wl.default.createElement("span",{className:"file-path"},e.filePath),e.line!==void 0&&Wl.default.createElement("span",{className:"tool-meta"},":",e.line+1,e.character!==void 0?`:${e.character+1}`:""),e.query&&Wl.default.createElement("code",{className:"pattern-text"},e.query))}var sd=E(x(),1);function Vv({}){return sd.default.createElement("div",{className:"tool-use-detail"},sd.default.createElement("span",{className:"tool-badge"},"Cwd"))}var pu=E(x(),1);function Kv({input:e,displayName:t}){let l=Object.entries(e||{}).map(([a,s])=>`${a}: ${JSON.stringify(s)}`).join(", ");return pu.default.createElement("div",{className:"tool-use-detail tool-use-mcp"},pu.default.createElement("span",{className:"tool-badge"},t),l&&pu.default.createElement("span",{className:"tool-meta mcp-input-summary"},"(",l,")"))}var mu=E(x(),1);function $v({input:e}){let t=e.task_id.startsWith("a"),n=e.block!==!1?`Reading ${t?"Task":"shell"} output (blocking until complete${e.timeout?` timeout ${e.timeout}`:""})`:`Reading ${t?"Task":"shell"} output (non-blocking)`;return mu.default.createElement("div",{className:"tool-use-detail"},mu.default.createElement("span",{className:"tool-badge"},t?"TaskOutput":"ShellOutput"),mu.default.createElement("span",{className:"tool-meta"},n," (ID: ",e.task_id,")"))}var Ia=E(x(),1);function Jv({input:e}){return Ia.default.createElement("div",{className:"tool-use-detail"},Ia.default.createElement("span",{className:"tool-badge"},"PowerShell"),e.run_in_background&&Ia.default.createElement("span",{className:"tool-meta"},"(background)"),Ia.default.createElement("pre",{className:"command-block"},Ia.default.createElement("code",null,e.command)))}var gu=E(x(),1);function Pv({input:e}){let t=e.toolNames||[];return gu.default.createElement("div",{className:"tool-use-detail"},gu.default.createElement("span",{className:"tool-badge"},"ToolLoader"),gu.default.createElement("span",{className:"tool-meta"},"Loading tool",t.length>1?"s":"",": ",t.join(", ")))}var hu=E(x(),1);function Wv({input:e}){let t=e.toolNames||[];return hu.default.createElement("div",{className:"tool-use-detail"},hu.default.createElement("span",{className:"tool-badge"},"ToolUnLoader"),hu.default.createElement("span",{className:"tool-meta"},"Unloading tool",t.length>1?"s":"",": ",t.join(", ")))}var Fa=E(x(),1);function Rv({input:e}){return Fa.default.createElement("div",{className:"tool-use-detail"},Fa.default.createElement("span",{className:"tool-badge"},"NotebookEdit"),Fa.default.createElement("span",{className:"tool-meta"},e.notebook_path," (cell ",e.cell_number,", ",e.edit_mode||"replace",")"),Fa.default.createElement("pre",{className:"command-block"},Fa.default.createElement("code",null,e.new_source.slice(0,200),e.new_source.length>200?"...":"")))}var vu=E(x(),1);function Iv({input:e}){return vu.default.createElement("div",{className:"tool-use-detail"},vu.default.createElement("span",{className:"tool-badge"},"WebSearch"),vu.default.createElement("span",{className:"tool-meta"},e.query))}var mi=E(x(),1);function Fv({input:e}){return mi.default.createElement("div",{className:"tool-use-detail"},mi.default.createElement("span",{className:"tool-badge"},"WebFetch"),mi.default.createElement("span",{className:"tool-meta"},e.url),mi.default.createElement("div",{className:"tool-input"},e.prompt))}var yu=E(x(),1);function ey({input:e}){return yu.default.createElement("div",{className:"tool-use-detail"},yu.default.createElement("span",{className:"tool-badge"},"TaskStop"),yu.default.createElement("span",{className:"tool-meta"},"Stop task: ",e.task_id))}var bu=E(x(),1);function ty({input:e}){let t=e.todos?.find(n=>n.status==="in_progress");return bu.default.createElement("div",{className:"tool-use-detail"},bu.default.createElement("span",{className:"tool-badge"},"TodoWrite"),bu.default.createElement("span",{className:"tool-meta"},t?`${t.activeForm}\u2026`:"update todo"))}var Su=E(x(),1);function ny({input:e}){return Su.default.createElement("div",{className:"tool-use-detail"},Su.default.createElement("span",{className:"tool-badge"},"Think"),Su.default.createElement("div",{className:"tool-input"},e.thought))}var Nu=E(x(),1);function ly({input:e}){let t=e.questions?.length||0,n=e.questions?.reduce((l,a)=>l+(a.options?.length||0),0)||0;return Nu.default.createElement("div",{className:"tool-use-detail"},Nu.default.createElement("span",{className:"tool-badge"},"AskUserQuestion"),Nu.default.createElement("span",{className:"tool-meta"},"Asking ",t," question",t>1?"s":""," with ",n," total options"))}var J=E(x(),1);function ay({questions:e,onSubmit:t,onCancel:n}){let[l,a]=(0,J.useState)(0),[s,i]=(0,J.useState)({}),[o,u]=(0,J.useState)({}),[f,r]=(0,J.useState)({}),[p,c]=(0,J.useState)({}),[d,v]=(0,J.useState)(!1),y=e[l],S=l===e.length-1,g=(0,J.useCallback)(z=>(s[z]?.length??0)>0||(o[z]?.length??0)>0,[s,o]),m=(0,J.useCallback)(z=>{let q=y.options[z];i(C=>{let N=C[l]||[];if(y.multiSelect){let Y=N.includes(q.label)?N.filter(F=>F!==q.label):[...N,q.label];return{...C,[l]:Y}}else return{...C,[l]:[q.label]}}),r(C=>({...C,[l]:!1}))},[l,y]),h=(0,J.useCallback)(()=>{i(z=>{let q=z[l]||[];if(y.multiSelect){let N=q.includes("Custom answer")?q:[...q,"Custom answer"];return{...z,[l]:N}}else return{...z,[l]:["Custom answer"]}}),r(z=>({...z,[l]:!0})),c(z=>({...z,[l]:z[l]||o[l]||""}))},[l,y,o]),b=(0,J.useCallback)(()=>{let z=p[l]?.trim()||"";z&&(u(q=>({...q,[l]:z})),r(q=>({...q,[l]:!1})))},[l,p]),A=(0,J.useCallback)(()=>{r(z=>({...z,[l]:!1})),i(z=>{let C=(z[l]||[]).filter(N=>N!=="Custom answer");return{...z,[l]:C}}),c(z=>({...z,[l]:""})),u(z=>{let q={...z};return delete q[l],q})},[l]),D=(0,J.useCallback)(()=>{let z={};e.forEach((q,C)=>{let N=o[C],U=s[C]||[];N?z[q.question]=N:U.length>0?z[q.question]=U.filter(Y=>Y!=="Custom answer").join(", "):z[q.question]="No answer provided"}),v(!0),t(z)},[e,s,o,t]),k=(0,J.useCallback)(()=>{v(!0),n()},[n]),w=(0,J.useCallback)(()=>{l<e.length-1&&a(z=>z+1)},[l,e.length]),_=(0,J.useCallback)(()=>{l>0&&a(z=>z-1)},[l]),M=s[l]?.includes("Custom answer")||!1,j=M&&f[l],X=o[l]!==void 0;return J.default.createElement("div",{className:"ask-user-question-form"},J.default.createElement("div",{className:"ask-user-question-header"},e.map((z,q)=>J.default.createElement("span",{key:q,className:`ask-user-question-step ${g(q)?"answered":""} ${q===l?"active":""}`},z.header))),J.default.createElement("div",{className:"ask-user-question-title"},y.question),y.multiSelect&&J.default.createElement("div",{className:"ask-user-question-hint"},"You can select multiple options"),J.default.createElement("div",{className:"ask-user-question-options"},y.options.map((z,q)=>{let C=(s[l]||[]).includes(z.label),N=y.multiSelect?"checkbox":"radio";return J.default.createElement("label",{key:q,className:`ask-user-question-option ${C?"selected":""}`},J.default.createElement("input",{type:N,name:`question-${l}`,checked:C,onChange:()=>m(q),disabled:d}),J.default.createElement("span",{className:"ask-user-question-option-label"},z.label),J.default.createElement("span",{className:"ask-user-question-option-description"},z.description))}),J.default.createElement("label",{className:`ask-user-question-option ${M?"selected":""}`},J.default.createElement("input",{type:y.multiSelect?"checkbox":"radio",name:`question-${l}`,checked:M,onChange:h,disabled:d}),J.default.createElement("span",{className:"ask-user-question-option-label"},"Type something"),X&&!j&&J.default.createElement("span",{className:"ask-user-question-option-description"},"Custom: ",o[l])),j&&J.default.createElement("div",{className:"ask-user-question-custom-inline"},J.default.createElement("input",{type:"text",className:"ask-user-question-custom-input",value:p[l]||"",onChange:z=>c(q=>({...q,[l]:z.target.value})),placeholder:"Type your answer...",disabled:d,autoFocus:!0}),J.default.createElement("div",{className:"ask-user-question-custom-inline-actions"},J.default.createElement("button",{onClick:b,disabled:d||!p[l]?.trim()},"OK"),J.default.createElement("button",{onClick:A,disabled:d},"Cancel")))),J.default.createElement("div",{className:"ask-user-question-actions"},J.default.createElement("button",{onClick:_,disabled:l===0||d},"Previous"),S?J.default.createElement("button",{onClick:D,disabled:d},"Submit"):J.default.createElement("button",{onClick:w,disabled:d},"Next"),J.default.createElement("button",{onClick:k,disabled:d},"Cancel")))}var Tu=E(x(),1);function sy(e){return Tu.default.createElement("div",{className:"tool-use-detail"},Tu.default.createElement("span",{className:"tool-badge"},"EnterPlanMode"),Tu.default.createElement("span",{className:"tool-meta"},"Entering plan mode"))}var Yn=E(x(),1);function iy({onApprove:e}){let[t,n]=(0,Yn.useState)(!1);return Yn.default.createElement("div",{className:"plan-mode-inline-form"},Yn.default.createElement("div",{className:"plan-mode-inline-title"},"Enter plan mode?"),Yn.default.createElement("div",{className:"plan-mode-inline-description"},"Plan mode will ask you to approve a plan before making changes."),Yn.default.createElement("div",{className:"plan-mode-inline-actions"},Yn.default.createElement("button",{onClick:()=>{n(!0),e(!0)},disabled:t},"Yes, enter plan mode"),Yn.default.createElement("button",{onClick:()=>{n(!0),e(!1)},disabled:t},"No, stay in current mode")))}var Eu=E(x(),1);function oy({input:e}){return Eu.default.createElement("div",{className:"tool-use-detail"},Eu.default.createElement("span",{className:"tool-badge"},"ExitPlanMode"),Eu.default.createElement("span",{className:"tool-meta"},"Presenting plan to user for approval"))}var Ze=E(x(),1);function uy({plan:e,planFilePath:t,onApprove:n,onReject:l}){let[a,s]=(0,Ze.useState)(!1);return e?Ze.default.createElement("div",{className:"plan-mode-inline-form"},Ze.default.createElement("div",{className:"plan-mode-inline-title"},"Approve plan to exit plan mode"),Ze.default.createElement("div",{className:"plan-mode-inline-plan"},Ze.default.createElement("pre",null,e)),t&&Ze.default.createElement("div",{className:"plan-mode-inline-path"},"Plan file: ",t),Ze.default.createElement("div",{className:"plan-mode-inline-actions"},Ze.default.createElement("button",{onClick:()=>{s(!0),n(!1)},disabled:a},"Auto-accept edits"),Ze.default.createElement("button",{onClick:()=>{s(!0),n(!0)},disabled:a},"Manual approval"),Ze.default.createElement("button",{onClick:()=>{s(!0),l()},disabled:a},"Reject"))):Ze.default.createElement("div",{className:"plan-mode-inline-form"},Ze.default.createElement("div",{className:"plan-mode-inline-title"},"No plan found"),Ze.default.createElement("div",{className:"plan-mode-inline-description"},"There is no plan to approve. Do you want to exit plan mode?"),Ze.default.createElement("div",{className:"plan-mode-inline-actions"},Ze.default.createElement("button",{onClick:()=>{s(!0),n(!1)},disabled:a},"Yes, exit plan mode"),Ze.default.createElement("button",{onClick:()=>{s(!0),l()},disabled:a},"No, keep planning")))}var xu=E(x(),1);function ry({input:e}){return xu.default.createElement("div",{className:"tool-use-detail"},xu.default.createElement("span",{className:"tool-badge"},"EnterWorktree"),xu.default.createElement("span",{className:"tool-meta"},e.name?`Creating worktree: ${e.name}`:"Creating worktree"))}var _u=E(x(),1);function cy({input:e}){return _u.default.createElement("div",{className:"tool-use-detail"},_u.default.createElement("span",{className:"tool-badge"},"ExitWorktree"),_u.default.createElement("span",{className:"tool-meta"},e.action==="remove"?"Exiting and removing worktree":"Exiting worktree"))}var ku=E(x(),1);function fy({input:e}){return ku.default.createElement("div",{className:"tool-use-detail"},ku.default.createElement("span",{className:"tool-badge"},"SlashCommand"),ku.default.createElement("span",{className:"tool-meta"},"Executing ",e.command))}var Au=E(x(),1);function dy({input:e}){return Au.default.createElement("div",{className:"tool-use-detail"},Au.default.createElement("span",{className:"tool-badge"},"Skill"),Au.default.createElement("span",{className:"tool-meta"},e.skill))}var Mu=E(x(),1);function py({input:e}){let t=e.prompt?.length>60?e.prompt.slice(0,60)+"...":e.prompt;return Mu.default.createElement("div",{className:"tool-use-detail"},Mu.default.createElement("span",{className:"tool-badge"},"CronCreate"),Mu.default.createElement("span",{className:"tool-meta"},e.cron,": ",t))}var Cu=E(x(),1);function my({input:e}){return Cu.default.createElement("div",{className:"tool-use-detail"},Cu.default.createElement("span",{className:"tool-badge"},"CronDelete"),Cu.default.createElement("span",{className:"tool-meta"},e.id))}var Ou=E(x(),1);function gy(e){return Ou.default.createElement("div",{className:"tool-use-detail"},Ou.default.createElement("span",{className:"tool-badge"},"CronList"),Ou.default.createElement("span",{className:"tool-meta"},"List scheduled cron jobs"))}var wu=E(x(),1);function hy({input:e}){return wu.default.createElement("div",{className:"tool-use-detail"},wu.default.createElement("span",{className:"tool-badge"},"TeamCreate"),wu.default.createElement("span",{className:"tool-meta"},"Creating team: ",e.team_name))}var zu=E(x(),1);function vy(e){return zu.default.createElement("div",{className:"tool-use-detail"},zu.default.createElement("span",{className:"tool-badge"},"TeamDelete"),zu.default.createElement("span",{className:"tool-meta"},"Deleting current team"))}var Uu=E(x(),1);function yy({input:e}){let t="";switch(e.type){case"message":t=`Sending message to ${e.recipient}: ${e.summary||e.content?.slice(0,50)||""}`;break;case"broadcast":t=`Broadcasting to all teammates: ${e.summary||e.content?.slice(0,50)||""}`;break;case"shutdown_request":t=`Requesting shutdown for ${e.recipient}`;break;case"shutdown_response":t=`Responding to shutdown request: ${e.approve?"approved":"rejected"}`;break;case"plan_approval_response":t=`Responding to plan approval: ${e.approve?"approved":"rejected"}`;break;default:t=`Sending message (${e.type})`}return Uu.default.createElement("div",{className:"tool-use-detail"},Uu.default.createElement("span",{className:"tool-badge"},"SendMessage"),Uu.default.createElement("span",{className:"tool-meta"},t))}var Du=E(x(),1);function lT(e){let t=!1,n=!1;for(let l of Object.values(e))for(let a of l)a==="__tool_result__"?t=!0:n=!0;return{hasToolResult:t,hasInputFields:n}}function by({input:e}){let t=e.action==="archive"?"Archiving":"Unarchiving",n=e.archiveToolUseInputFields??{},l=Object.keys(n).length,{hasToolResult:a,hasInputFields:s}=lT(n),i="tool result(s)";return a&&s?i="tool result(s) and input field(s)":s&&(i="input field(s)"),Du.default.createElement("div",{className:"tool-use-detail"},Du.default.createElement("span",{className:"tool-badge"},"MessageArchiving"),Du.default.createElement("span",{className:"tool-meta"},t," ",i," for ",l," tool use(s)"))}var Ft=E(x(),1),Lu=120;function Sy({input:e}){let[t,n]=(0,Ft.useState)(!1),{action:l,key:a,summary:s,content:i}=e,o=l==="write"?"write":l==="read"?"read":l==="list"?"list":"delete",u=typeof i=="string"&&i.length>0,f=u&&i.length>Lu?i.substring(0,Lu)+"...":i,r=u&&(t||i.length<=Lu),p=u&&i.length>Lu;return Ft.default.createElement("div",{className:"tool-use-detail"},Ft.default.createElement("span",{className:"tool-badge"},"Memo"),Ft.default.createElement("span",{className:"tool-badge memo-action-badge"},o),a&&Ft.default.createElement("span",{className:"file-path"},a),s&&Ft.default.createElement("span",{className:"tool-meta"},s),r&&Ft.default.createElement("div",{className:"tool-input memo-content-detail"},Ft.default.createElement("code",null,t?i:f)),p&&Ft.default.createElement("span",{className:"tool-meta detail-toggle",onClick:()=>n(!t),style:{cursor:"pointer"}},t?"collapse details":"details"))}var Rl=E(x(),1);function Ny({input:e}){let t=e?.action??"call",n=e?.name??"",l=t==="call"&&e?.input&&Object.keys(e.input).length>0,[a,s]=(0,Rl.useState)(!1);return Rl.default.createElement("div",{className:"tool-use-detail"},Rl.default.createElement("span",{className:"tool-badge"},"ProxyTool"),Rl.default.createElement("span",{className:"tool-meta"},t," ",n),l&&Rl.default.createElement("div",{className:"tool-input",onClick:()=>s(!a),style:{cursor:"pointer"}},a?JSON.stringify(e.input,null,2):JSON.stringify(e.input)))}var yn=E(x(),1),pd=E(Yy(),1),Jy=E($y(),1);pd.default.registerLanguage("javascript",Jy.default);function Py({input:e}){let t=e?.code??"",n=t.split(`
|
|
71
|
+
`).length:0;return di.default.createElement("div",{className:"tool-use-detail"},di.default.createElement("span",{className:"tool-badge"},"Write"),di.default.createElement("span",{className:"file-path"},e.file_path),di.default.createElement("span",{className:"tool-meta"},"(",t," lines)"))}var Ra=E(x(),1);function jv({input:e}){return Ra.default.createElement("div",{className:"tool-use-detail"},Ra.default.createElement("span",{className:"tool-badge"},"Bash"),e.run_in_background&&Ra.default.createElement("span",{className:"tool-meta"},"(background)"),Ra.default.createElement("pre",{className:"command-block"},Ra.default.createElement("code",null,e.command)))}var bl=E(x(),1);function Gv({input:e}){return bl.default.createElement("div",{className:"tool-use-detail"},bl.default.createElement("span",{className:"tool-badge"},"Grep"),bl.default.createElement("code",{className:"pattern-text"},"/",e.pattern,"/"),e.path&&bl.default.createElement("span",{className:"tool-meta"},"in ",e.path),e.glob&&bl.default.createElement("span",{className:"tool-meta"},"(",e.glob,")"),e.type&&bl.default.createElement("span",{className:"tool-meta"},"type: ",e.type),e.output_mode&&bl.default.createElement("span",{className:"tool-meta"},"[",e.output_mode,"]"))}var pi=E(x(),1);function Yv({input:e}){return pi.default.createElement("div",{className:"tool-use-detail"},pi.default.createElement("span",{className:"tool-badge"},"Glob"),pi.default.createElement("code",{className:"pattern-text"},e.pattern),e.path&&pi.default.createElement("span",{className:"tool-meta"},"in ",e.path))}var fu=E(x(),1);function Qv({input:e}){return fu.default.createElement("div",{className:"tool-use-detail"},fu.default.createElement("span",{className:"tool-badge"},"LS"),fu.default.createElement("span",{className:"file-path"},e.path||"."))}var vn=E(x(),1),du=120;function Zv({input:e}){let[t,n]=(0,vn.useState)(!1),{description:l,prompt:a,subagent_type:s,model_name:i,resume:o,run_in_background:u,name:f,team_name:r,mode:p,isolation:c}=e,d=typeof a=="string"&&a.length>0,v=d&&a.length>du?a.substring(0,du)+"...":a,y=d&&(t||a.length<=du),S=d&&a.length>du,g=[];return s&&g.push(`type: ${s}`),i&&g.push(`model: ${i}`),o&&g.push(`resume: ${o}`),u&&g.push("background"),r&&f&&g.push(`team: ${r}/${f}`),p&&g.push(`mode: ${p}`),c&&g.push(`isolation: ${c}`),vn.default.createElement("div",{className:"tool-use-detail"},vn.default.createElement("span",{className:"tool-badge"},"Agent"),l&&vn.default.createElement("span",{className:"tool-description"},l),g.length>0&&vn.default.createElement("span",{className:"tool-meta"},"(",g.join(", "),")"),y&&vn.default.createElement("div",{className:"tool-input agent-prompt-detail"},vn.default.createElement("code",null,t?a:v)),S&&vn.default.createElement("span",{className:"tool-meta detail-toggle",onClick:()=>n(!t),style:{cursor:"pointer"}},t?"collapse details":"details"))}var Wl=E(x(),1);function Xv({input:e}){return Wl.default.createElement("div",{className:"tool-use-detail"},Wl.default.createElement("span",{className:"tool-badge"},"LSP"),Wl.default.createElement("span",{className:"tool-meta"},e.operation),e.filePath&&Wl.default.createElement("span",{className:"file-path"},e.filePath),e.line!==void 0&&Wl.default.createElement("span",{className:"tool-meta"},":",e.line+1,e.character!==void 0?`:${e.character+1}`:""),e.query&&Wl.default.createElement("code",{className:"pattern-text"},e.query))}var sd=E(x(),1);function Vv({}){return sd.default.createElement("div",{className:"tool-use-detail"},sd.default.createElement("span",{className:"tool-badge"},"Cwd"))}var pu=E(x(),1);function Kv({input:e,displayName:t}){let l=Object.entries(e||{}).map(([a,s])=>`${a}: ${JSON.stringify(s)}`).join(", ");return pu.default.createElement("div",{className:"tool-use-detail tool-use-mcp"},pu.default.createElement("span",{className:"tool-badge"},t),l&&pu.default.createElement("span",{className:"tool-meta mcp-input-summary"},"(",l,")"))}var mu=E(x(),1);function $v({input:e}){let t=e.task_id.startsWith("a"),n=e.block!==!1?`Reading ${t?"Task":"shell"} output (blocking until complete${e.timeout?` timeout ${e.timeout}`:""})`:`Reading ${t?"Task":"shell"} output (non-blocking)`;return mu.default.createElement("div",{className:"tool-use-detail"},mu.default.createElement("span",{className:"tool-badge"},t?"TaskOutput":"ShellOutput"),mu.default.createElement("span",{className:"tool-meta"},n," (ID: ",e.task_id,")"))}var Ia=E(x(),1);function Jv({input:e}){return Ia.default.createElement("div",{className:"tool-use-detail"},Ia.default.createElement("span",{className:"tool-badge"},"PowerShell"),e.run_in_background&&Ia.default.createElement("span",{className:"tool-meta"},"(background)"),Ia.default.createElement("pre",{className:"command-block"},Ia.default.createElement("code",null,e.command)))}var gu=E(x(),1);function Pv({input:e}){let t=e.toolNames||[];return gu.default.createElement("div",{className:"tool-use-detail"},gu.default.createElement("span",{className:"tool-badge"},"ToolLoader"),gu.default.createElement("span",{className:"tool-meta"},"Loading tool",t.length>1?"s":"",": ",t.join(", ")))}var hu=E(x(),1);function Wv({input:e}){let t=e.toolNames||[];return hu.default.createElement("div",{className:"tool-use-detail"},hu.default.createElement("span",{className:"tool-badge"},"ToolUnLoader"),hu.default.createElement("span",{className:"tool-meta"},"Unloading tool",t.length>1?"s":"",": ",t.join(", ")))}var Fa=E(x(),1);function Rv({input:e}){return Fa.default.createElement("div",{className:"tool-use-detail"},Fa.default.createElement("span",{className:"tool-badge"},"NotebookEdit"),Fa.default.createElement("span",{className:"tool-meta"},e.notebook_path," (cell ",e.cell_number,", ",e.edit_mode||"replace",")"),Fa.default.createElement("pre",{className:"command-block"},Fa.default.createElement("code",null,e.new_source.slice(0,200),e.new_source.length>200?"...":"")))}var vu=E(x(),1);function Iv({input:e}){return vu.default.createElement("div",{className:"tool-use-detail"},vu.default.createElement("span",{className:"tool-badge"},"WebSearch"),vu.default.createElement("span",{className:"tool-meta"},e.query))}var mi=E(x(),1);function Fv({input:e}){return mi.default.createElement("div",{className:"tool-use-detail"},mi.default.createElement("span",{className:"tool-badge"},"WebFetch"),mi.default.createElement("span",{className:"tool-meta"},e.url),mi.default.createElement("div",{className:"tool-input"},e.prompt))}var yu=E(x(),1);function ey({input:e}){return yu.default.createElement("div",{className:"tool-use-detail"},yu.default.createElement("span",{className:"tool-badge"},"TaskStop"),yu.default.createElement("span",{className:"tool-meta"},"Stop task: ",e.task_id))}var bu=E(x(),1);function ty({input:e}){let t=e.todos?.find(n=>n.status==="in_progress");return bu.default.createElement("div",{className:"tool-use-detail"},bu.default.createElement("span",{className:"tool-badge"},"TodoWrite"),bu.default.createElement("span",{className:"tool-meta"},t?`${t.activeForm}\u2026`:"update todo"))}var Su=E(x(),1);function ny({input:e}){return Su.default.createElement("div",{className:"tool-use-detail"},Su.default.createElement("span",{className:"tool-badge"},"Think"),Su.default.createElement("div",{className:"tool-input"},e.thought))}var Nu=E(x(),1);function ly({input:e}){let t=e.questions?.length||0,n=e.questions?.reduce((l,a)=>l+(a.options?.length||0),0)||0;return Nu.default.createElement("div",{className:"tool-use-detail"},Nu.default.createElement("span",{className:"tool-badge"},"AskUserQuestion"),Nu.default.createElement("span",{className:"tool-meta"},"Asking ",t," question",t>1?"s":""," with ",n," total options"))}var J=E(x(),1);function ay({questions:e,onSubmit:t,onCancel:n}){let[l,a]=(0,J.useState)(0),[s,i]=(0,J.useState)({}),[o,u]=(0,J.useState)({}),[f,r]=(0,J.useState)({}),[p,c]=(0,J.useState)({}),[d,v]=(0,J.useState)(!1),y=e[l],S=l===e.length-1,g=(0,J.useCallback)(z=>(s[z]?.length??0)>0||(o[z]?.length??0)>0,[s,o]),m=(0,J.useCallback)(z=>{let q=y.options[z];i(C=>{let N=C[l]||[];if(y.multiSelect){let Y=N.includes(q.label)?N.filter(F=>F!==q.label):[...N,q.label];return{...C,[l]:Y}}else return{...C,[l]:[q.label]}}),r(C=>({...C,[l]:!1}))},[l,y]),h=(0,J.useCallback)(()=>{i(z=>{let q=z[l]||[];if(y.multiSelect){let N=q.includes("Custom answer")?q:[...q,"Custom answer"];return{...z,[l]:N}}else return{...z,[l]:["Custom answer"]}}),r(z=>({...z,[l]:!0})),c(z=>({...z,[l]:z[l]||o[l]||""}))},[l,y,o]),b=(0,J.useCallback)(()=>{let z=p[l]?.trim()||"";z&&(u(q=>({...q,[l]:z})),r(q=>({...q,[l]:!1})))},[l,p]),A=(0,J.useCallback)(()=>{r(z=>({...z,[l]:!1})),i(z=>{let C=(z[l]||[]).filter(N=>N!=="Custom answer");return{...z,[l]:C}}),c(z=>({...z,[l]:""})),u(z=>{let q={...z};return delete q[l],q})},[l]),D=(0,J.useCallback)(()=>{let z={};e.forEach((q,C)=>{let N=o[C],U=s[C]||[];N?z[q.question]=N:U.length>0?z[q.question]=U.filter(Y=>Y!=="Custom answer").join(", "):z[q.question]="No answer provided"}),v(!0),t(z)},[e,s,o,t]),k=(0,J.useCallback)(()=>{v(!0),n()},[n]),w=(0,J.useCallback)(()=>{l<e.length-1&&a(z=>z+1)},[l,e.length]),_=(0,J.useCallback)(()=>{l>0&&a(z=>z-1)},[l]),M=s[l]?.includes("Custom answer")||!1,j=M&&f[l],X=o[l]!==void 0;return J.default.createElement("div",{className:"ask-user-question-form"},J.default.createElement("div",{className:"ask-user-question-header"},e.map((z,q)=>J.default.createElement("span",{key:q,className:`ask-user-question-step ${g(q)?"answered":""} ${q===l?"active":""}`},z.header))),J.default.createElement("div",{className:"ask-user-question-title"},y.question),y.multiSelect&&J.default.createElement("div",{className:"ask-user-question-hint"},"You can select multiple options"),J.default.createElement("div",{className:"ask-user-question-options"},y.options.map((z,q)=>{let C=(s[l]||[]).includes(z.label),N=y.multiSelect?"checkbox":"radio";return J.default.createElement("label",{key:q,className:`ask-user-question-option ${C?"selected":""}`},J.default.createElement("input",{type:N,name:`question-${l}`,checked:C,onChange:()=>m(q),disabled:d}),J.default.createElement("span",{className:"ask-user-question-option-label"},z.label),J.default.createElement("span",{className:"ask-user-question-option-description"},z.description))}),J.default.createElement("label",{className:`ask-user-question-option ${M?"selected":""}`},J.default.createElement("input",{type:y.multiSelect?"checkbox":"radio",name:`question-${l}`,checked:M,onChange:h,disabled:d}),J.default.createElement("span",{className:"ask-user-question-option-label"},"Type something"),X&&!j&&J.default.createElement("span",{className:"ask-user-question-option-description"},"Custom: ",o[l])),j&&J.default.createElement("div",{className:"ask-user-question-custom-inline"},J.default.createElement("input",{type:"text",className:"ask-user-question-custom-input",value:p[l]||"",onChange:z=>c(q=>({...q,[l]:z.target.value})),placeholder:"Type your answer...",disabled:d,autoFocus:!0}),J.default.createElement("div",{className:"ask-user-question-custom-inline-actions"},J.default.createElement("button",{onClick:b,disabled:d||!p[l]?.trim()},"OK"),J.default.createElement("button",{onClick:A,disabled:d},"Cancel")))),J.default.createElement("div",{className:"ask-user-question-actions"},J.default.createElement("button",{onClick:_,disabled:l===0||d},"Previous"),S?J.default.createElement("button",{onClick:D,disabled:d},"Submit"):J.default.createElement("button",{onClick:w,disabled:d},"Next"),J.default.createElement("button",{onClick:k,disabled:d},"Cancel")))}var Tu=E(x(),1);function sy(e){return Tu.default.createElement("div",{className:"tool-use-detail"},Tu.default.createElement("span",{className:"tool-badge"},"EnterPlanMode"),Tu.default.createElement("span",{className:"tool-meta"},"Entering plan mode"))}var Yn=E(x(),1);function iy({onApprove:e}){let[t,n]=(0,Yn.useState)(!1);return Yn.default.createElement("div",{className:"plan-mode-inline-form"},Yn.default.createElement("div",{className:"plan-mode-inline-title"},"Enter plan mode?"),Yn.default.createElement("div",{className:"plan-mode-inline-description"},"Plan mode will ask you to approve a plan before making changes."),Yn.default.createElement("div",{className:"plan-mode-inline-actions"},Yn.default.createElement("button",{onClick:()=>{n(!0),e(!0)},disabled:t},"Yes, enter plan mode"),Yn.default.createElement("button",{onClick:()=>{n(!0),e(!1)},disabled:t},"No, stay in current mode")))}var Eu=E(x(),1);function oy({input:e}){return Eu.default.createElement("div",{className:"tool-use-detail"},Eu.default.createElement("span",{className:"tool-badge"},"ExitPlanMode"),Eu.default.createElement("span",{className:"tool-meta"},"Presenting plan to user for approval"))}var Ze=E(x(),1);function uy({plan:e,planFilePath:t,onApprove:n,onReject:l}){let[a,s]=(0,Ze.useState)(!1);return e?Ze.default.createElement("div",{className:"plan-mode-inline-form"},Ze.default.createElement("div",{className:"plan-mode-inline-title"},"Approve plan to exit plan mode"),Ze.default.createElement("div",{className:"plan-mode-inline-plan"},Ze.default.createElement("pre",null,e)),t&&Ze.default.createElement("div",{className:"plan-mode-inline-path"},"Plan file: ",t),Ze.default.createElement("div",{className:"plan-mode-inline-actions"},Ze.default.createElement("button",{onClick:()=>{s(!0),n(!1)},disabled:a},"Auto-accept edits"),Ze.default.createElement("button",{onClick:()=>{s(!0),n(!0)},disabled:a},"Manual approval"),Ze.default.createElement("button",{onClick:()=>{s(!0),l()},disabled:a},"Reject"))):Ze.default.createElement("div",{className:"plan-mode-inline-form"},Ze.default.createElement("div",{className:"plan-mode-inline-title"},"No plan found"),Ze.default.createElement("div",{className:"plan-mode-inline-description"},"There is no plan to approve. Do you want to exit plan mode?"),Ze.default.createElement("div",{className:"plan-mode-inline-actions"},Ze.default.createElement("button",{onClick:()=>{s(!0),n(!1)},disabled:a},"Yes, exit plan mode"),Ze.default.createElement("button",{onClick:()=>{s(!0),l()},disabled:a},"No, keep planning")))}var xu=E(x(),1);function ry({input:e}){return xu.default.createElement("div",{className:"tool-use-detail"},xu.default.createElement("span",{className:"tool-badge"},"EnterWorktree"),xu.default.createElement("span",{className:"tool-meta"},e.name?`Creating worktree: ${e.name}`:"Creating worktree"))}var _u=E(x(),1);function cy({input:e}){return _u.default.createElement("div",{className:"tool-use-detail"},_u.default.createElement("span",{className:"tool-badge"},"ExitWorktree"),_u.default.createElement("span",{className:"tool-meta"},e.action==="remove"?"Exiting and removing worktree":"Exiting worktree"))}var ku=E(x(),1);function fy({input:e}){return ku.default.createElement("div",{className:"tool-use-detail"},ku.default.createElement("span",{className:"tool-badge"},"SlashCommand"),ku.default.createElement("span",{className:"tool-meta"},"Executing ",e.command))}var Au=E(x(),1);function dy({input:e}){return Au.default.createElement("div",{className:"tool-use-detail"},Au.default.createElement("span",{className:"tool-badge"},"Skill"),Au.default.createElement("span",{className:"tool-meta"},e.skill))}var Mu=E(x(),1);function py({input:e}){let t=e.prompt?.length>60?e.prompt.slice(0,60)+"...":e.prompt;return Mu.default.createElement("div",{className:"tool-use-detail"},Mu.default.createElement("span",{className:"tool-badge"},"CronCreate"),Mu.default.createElement("span",{className:"tool-meta"},e.cron,": ",t))}var Cu=E(x(),1);function my({input:e}){return Cu.default.createElement("div",{className:"tool-use-detail"},Cu.default.createElement("span",{className:"tool-badge"},"CronDelete"),Cu.default.createElement("span",{className:"tool-meta"},e.id))}var Ou=E(x(),1);function gy(e){return Ou.default.createElement("div",{className:"tool-use-detail"},Ou.default.createElement("span",{className:"tool-badge"},"CronList"),Ou.default.createElement("span",{className:"tool-meta"},"List scheduled cron jobs"))}var wu=E(x(),1);function hy({input:e}){return wu.default.createElement("div",{className:"tool-use-detail"},wu.default.createElement("span",{className:"tool-badge"},"TeamCreate"),wu.default.createElement("span",{className:"tool-meta"},"Creating team: ",e.team_name))}var zu=E(x(),1);function vy(e){return zu.default.createElement("div",{className:"tool-use-detail"},zu.default.createElement("span",{className:"tool-badge"},"TeamDelete"),zu.default.createElement("span",{className:"tool-meta"},"Deleting current team"))}var Uu=E(x(),1);function yy({input:e}){let t="";switch(e.type){case"message":t=`Sending message to ${e.recipient}: ${e.summary||e.content?.slice(0,50)||""}`;break;case"broadcast":t=`Broadcasting to all teammates: ${e.summary||e.content?.slice(0,50)||""}`;break;case"shutdown_request":t=`Requesting shutdown for ${e.recipient}`;break;case"shutdown_response":t=`Responding to shutdown request: ${e.approve?"approved":"rejected"}`;break;case"plan_approval_response":t=`Responding to plan approval: ${e.approve?"approved":"rejected"}`;break;default:t=`Sending message (${e.type})`}return Uu.default.createElement("div",{className:"tool-use-detail"},Uu.default.createElement("span",{className:"tool-badge"},"SendMessage"),Uu.default.createElement("span",{className:"tool-meta"},t))}var Du=E(x(),1);function lT(e){let t=!1,n=!1;for(let l of Object.values(e))for(let a of l)a==="__tool_result__"?t=!0:n=!0;return{hasToolResult:t,hasInputFields:n}}function by({input:e}){let t=e.action==="archive"?"Archiving":"Unarchiving",n=e.archiveToolUseInputFields??{},l=Object.keys(n).length,{hasToolResult:a,hasInputFields:s}=lT(n),i="tool result(s)";return a&&s?i="tool result(s) and input field(s)":s&&(i="input field(s)"),Du.default.createElement("div",{className:"tool-use-detail"},Du.default.createElement("span",{className:"tool-badge"},"MessageArchiving"),Du.default.createElement("span",{className:"tool-meta"},t," ",i," for ",l," tool use(s)"))}var Ft=E(x(),1),Lu=120;function Sy({input:e}){let[t,n]=(0,Ft.useState)(!1),{action:l,key:a,summary:s,content:i}=e,o=l==="write"?"write":l==="read"?"read":l==="list"?"list":"delete",u=typeof i=="string"&&i.length>0,f=u&&i.length>Lu?i.substring(0,Lu)+"...":i,r=u&&(t||i.length<=Lu),p=u&&i.length>Lu;return Ft.default.createElement("div",{className:"tool-use-detail"},Ft.default.createElement("span",{className:"tool-badge"},"Memo"),Ft.default.createElement("span",{className:"tool-badge memo-action-badge"},o),a&&Ft.default.createElement("span",{className:"file-path"},a),s&&Ft.default.createElement("span",{className:"tool-meta"},s),r&&Ft.default.createElement("div",{className:"tool-input memo-content-detail"},Ft.default.createElement("code",null,t?i:f)),p&&Ft.default.createElement("span",{className:"tool-meta detail-toggle",onClick:()=>n(!t),style:{cursor:"pointer"}},t?"collapse details":"details"))}var Rl=E(x(),1);function Ny({input:e}){let t=e?.action??"call",n=e?.name??"",l=t==="load",a=t==="call"&&e?.input&&Object.keys(e.input).length>0,[s,i]=(0,Rl.useState)(!1);return Rl.default.createElement("div",{className:"tool-use-detail"},Rl.default.createElement("span",{className:"tool-badge"},l?"LoadTool":"ProxyTool"),Rl.default.createElement("span",{className:"tool-meta"},l?n:`${t} ${n}`),a&&Rl.default.createElement("div",{className:"tool-input",onClick:()=>i(!s),style:{cursor:"pointer"}},s?JSON.stringify(e.input,null,2):JSON.stringify(e.input)))}var yn=E(x(),1),pd=E(Yy(),1),Jy=E($y(),1);pd.default.registerLanguage("javascript",Jy.default);function Py({input:e}){let t=e?.code??"",n=t.split(`
|
|
72
72
|
`),l=n.length>1,[a,s]=(0,yn.useState)(!1),i=a||!l?t:n[0],o=(0,yn.useMemo)(()=>{try{return pd.default.highlight(i,{language:"javascript"}).value}catch{return null}},[i]);return yn.default.createElement("div",{className:"tool-use-detail"},yn.default.createElement("span",{className:"tool-badge"},"Code"),yn.default.createElement("pre",{className:"command-block",onClick:()=>l&&s(!a),style:{cursor:l?"pointer":"default"}},o!==null?yn.default.createElement("code",{className:"hljs language-javascript",dangerouslySetInnerHTML:{__html:l&&!a?`${o} \u2026`:o}}):yn.default.createElement("code",null,l&&!a?`${n[0]} \u2026`:t)))}function Wy({message:e,pendingUserResponses:t,sendUserResponse:n}){let{toolName:l,toolInputRaw:a,toolInput:s,toolUseId:i,isRemote:o,isInProgress:u,isProxyCall:f}=e.metadata||{},[r,p]=(0,B.useState)(!1),c=o?`\u2601 ${l}`:l,d=f?B.default.createElement("span",{className:"tool-proxy-prefix",title:"via ProxyTool"},"<>"):null,v=u?B.default.createElement("span",{className:"tool-status-loading",title:"executing"}):null,y=()=>{switch(l){case"AskUserQuestion":{let g=i?t.get(i):void 0;if(g){let m=g.data;return B.default.createElement(ay,{questions:m?.questions||[],onSubmit:h=>n(i,{answers:h}),onCancel:()=>n(i,{cancelled:!0})})}return B.default.createElement(ly,{input:S})}case"Read":return B.default.createElement(Bv,{input:S});case"Edit":return B.default.createElement(Hv,{input:S});case"Write":return B.default.createElement(qv,{input:S});case"Bash":return B.default.createElement(jv,{input:S});case"Grep":return B.default.createElement(Gv,{input:S});case"Glob":return B.default.createElement(Yv,{input:S});case"LS":return B.default.createElement(Qv,{input:S});case"Agent":return B.default.createElement(Zv,{input:S});case"LSP":return B.default.createElement(Xv,{input:S});case"Cwd":return B.default.createElement(Vv,{input:S});case"TaskOutput":return B.default.createElement($v,{input:S});case"PowerShell":return B.default.createElement(Jv,{input:S});case"ToolLoader":return B.default.createElement(Pv,{input:S});case"ToolUnLoader":return B.default.createElement(Wv,{input:S});case"NotebookEdit":return B.default.createElement(Rv,{input:S});case"WebSearch":return B.default.createElement(Iv,{input:S});case"WebFetch":return B.default.createElement(Fv,{input:S});case"TaskStop":return B.default.createElement(ey,{input:S});case"TodoWrite":return B.default.createElement(ty,{input:S});case"Think":return B.default.createElement(ny,{input:S});case"EnterPlanMode":return(i?t.get(i):void 0)?B.default.createElement(iy,{onApprove:m=>n(i,{approved:m})}):B.default.createElement(sy,{input:S});case"ExitPlanMode":{let g=i?t.get(i):void 0;if(g){let m=g.data;return B.default.createElement(uy,{plan:m?.plan||null,planFilePath:m?.planFilePath,onApprove:h=>n(i,{approved:!0,manualApproval:h,cancelled:!1}),onReject:()=>n(i,{approved:!1,manualApproval:!1,cancelled:!0})})}return B.default.createElement(oy,{input:S})}case"EnterWorktreeTool":return B.default.createElement(ry,{input:S});case"ExitWorktreeTool":return B.default.createElement(cy,{input:S});case"SlashCommand":return B.default.createElement(fy,{input:S});case"Skill":return B.default.createElement(dy,{input:S});case"CronCreate":return B.default.createElement(py,{input:S});case"CronDelete":return B.default.createElement(my,{input:S});case"CronList":return B.default.createElement(gy,{input:S});case"TeamCreate":return B.default.createElement(hy,{input:S});case"TeamDelete":return B.default.createElement(vy,{input:S});case"SendMessage":return B.default.createElement(yy,{input:S});case"MessageArchiving":return B.default.createElement(by,{input:S});case"Memo":return B.default.createElement(Sy,{input:S});case"ProxyTool":return B.default.createElement(Ny,{input:S});case"codemode":return B.default.createElement(Py,{input:S});default:return B.default.createElement("div",{className:"tool-use-detail"},B.default.createElement("span",{className:"tool-badge"},l),s&&B.default.createElement("div",{className:"tool-input",onClick:()=>p(!r),style:{cursor:"pointer"}},r?s:s.length>100?s.substring(0,100)+"...":s))}};if(!a)return B.default.createElement("div",{className:"message-item message-tool-use"},B.default.createElement("div",null,v,B.default.createElement("span",{className:"tool-name"},c||e.content)),s&&B.default.createElement("div",{className:"tool-input",onClick:()=>p(!r),style:{cursor:"pointer"}},r?s:s.length>100?s.substring(0,100)+"...":s));let S=a;if(l&&l.startsWith("mcp_")){let g=B.default.createElement(Kv,{input:S,displayName:e.metadata?.toolDisplayName||l});return B.default.createElement("div",{className:`message-item message-tool-use${o?" remote":""}`},v,f?B.default.createElement("span",{className:"tool-proxy-row"},d,g):g)}return B.default.createElement("div",{className:`message-item message-tool-use${o?" remote":""}`},v,f?B.default.createElement("span",{className:"tool-proxy-row"},d,y()):y())}var Z=E(x(),1);var ht=E(x(),1);function Ry({data:e}){let[t,n]=(0,ht.useState)(!1);if(e.type==="image")return ht.default.createElement("div",{className:"tool-result-detail tool-result-read"},ht.default.createElement("div",{className:"result-header"},"Read image"));if(e.type==="notebook"){let o=e.file?.cells?.length||0;return ht.default.createElement("div",{className:"tool-result-detail tool-result-read"},ht.default.createElement("div",{className:"result-header"},"Read ",o," cells"))}let l=e.file;if(!l)return null;let a=l.content.split(`
|
|
73
73
|
`),s=t?a:a.slice(0,20),i=a.length>20;return ht.default.createElement("div",{className:"tool-result-detail tool-result-read"},ht.default.createElement("div",{className:"result-header"},ht.default.createElement("span",{className:"file-path"},l.filePath),ht.default.createElement("span",{className:"tool-meta"},l.numLines," lines (from ",l.startLine,", total ",l.totalLines,")")),ht.default.createElement("pre",{className:"code-block"},ht.default.createElement("code",null,s.join(`
|
|
74
74
|
`))),i&&!t&&ht.default.createElement("div",{className:"expand-toggle",onClick:()=>n(!0)},"... ",a.length-20," more lines (click to expand)"))}var tn=E(x(),1);var en=E(x(),1);function IT(e,t){let n=t,l=[],a=[...e];for(;a.length>0;){let{code:s,type:i}=a.shift(),o={code:s,type:i,lineNo:n};switch(i){case"context":n++,l.push(o);break;case"add":n++,l.push(o);break;case"remove":{l.push(o);let u=0;for(;a[0]?.type==="remove";){n++;let f=a.shift();l.push({code:f.code,type:f.type,lineNo:n}),u++}n-=u;break}}}return l}function Yu({structuredPatch:e,filePath:t}){let n=(0,en.useMemo)(()=>{let s=[];for(let i=0;i<e.length;i++){let o=e[i];i>0&&s.push({type:"separator"});let u=o.lines.map(r=>r.startsWith("+")?{type:"add",code:" "+r.slice(1)}:r.startsWith("-")?{type:"remove",code:" "+r.slice(1)}:{type:"context",code:r}),f=IT(u,o.oldStart);s.push(...f)}return s},[e]);if(n.length===0)return en.default.createElement("div",{className:"diff-empty"},"No changes");let l=Math.max(...n.filter(s=>s.type!=="separator").map(s=>s.lineNo)),a=Math.max(l.toString().length,1);return en.default.createElement("div",{className:"diff-view"},n.map((s,i)=>{if(s.type==="separator")return en.default.createElement("div",{key:i,className:"diff-line diff-separator"},en.default.createElement("span",{className:"diff-line-no",style:{width:`${a+1}ch`}}),en.default.createElement("span",{className:"diff-code"},"..."));let o=s;return en.default.createElement("div",{key:i,className:`diff-line diff-${o.type}`},en.default.createElement("span",{className:"diff-line-no",style:{width:`${a+1}ch`}},o.lineNo.toString().padStart(a)),en.default.createElement("span",{className:"diff-code"},o.code))}))}function FT(e){let t=e.split(/[/\\]/);return t[t.length-1]||e}function Iy({data:e}){let{numAdditions:t,numRemovals:n}=(0,tn.useMemo)(()=>{if(!e.structuredPatch||e.structuredPatch.length===0)return{numAdditions:0,numRemovals:0};let i=0,o=0;for(let u of e.structuredPatch)for(let f of u.lines||[])f.startsWith("+")?i++:f.startsWith("-")&&o++;return{numAdditions:i,numRemovals:o}},[e.structuredPatch]),l=FT(e.filePath),a=[];t>0&&a.push(`${t} ${t>1?"additions":"addition"}`),n>0&&a.push(`${n} ${n>1?"removals":"removal"}`);let s=a.length>0?` with ${a.join(" and ")}`:"";return tn.default.createElement("div",{className:"tool-result-detail tool-result-edit"},tn.default.createElement("div",{className:"result-header"},tn.default.createElement("span",{className:"result-summary"},"Updated ",tn.default.createElement("span",{className:"file-path"},l),s)),e.structuredPatch&&e.structuredPatch.length>0?tn.default.createElement(Yu,{structuredPatch:e.structuredPatch,filePath:e.filePath}):tn.default.createElement("div",{className:"diff-preview-inline"},tn.default.createElement("div",{className:"diff-line diff-remove"},"- ",e.oldString),tn.default.createElement("div",{className:"diff-line diff-add"},"+ ",e.newString)))}var tt=E(x(),1);function Fy({data:e}){let[t,n]=(0,tt.useState)(!1);if(e.type==="create"){let l=e.content.split(`
|