@dahawa/hawa-code 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/cli.js +618 -618
  2. package/hawa.js +1 -1
  3. package/package.json +1 -1
package/hawa.js CHANGED
@@ -51,7 +51,7 @@ ${c.join(`
51
51
  `)}
52
52
  </env>`}),ge={getIsDocker:f6,hasInternetAccess:d6,getWorkingDirectory:p6,getIsGitRepo:x6,getGitRepoRoot:h6,getCurrentBranch:m6,getOSVersion:v6,getCurrentDate:g6,isCI:!!process.env.CI,platform:process.platform==="win32"?"windows":process.platform==="darwin"?"macos":"linux",nodeVersion:process.version,terminal:process.env.TERM_PROGRAM,gitBash:process.env[il]&&process.env[il].trim().length>0&&process.platform==="win32"};import{randomBytes as hW}from"crypto";function _6(t){if(!t)return null;try{return JSON.parse(t)}catch(e){return Oo(`Failed to parse JSON: ${t}`,e),null}}var pW=le(P6(),1);var X0=le(dS(),1);var iW={visibilityState:"visible",documentElement:{lang:"en"},addEventListener:(t,e)=>{}},oW={document:iW,location:{href:"node://localhost",pathname:"/"},addEventListener:(t,e)=>{t==="beforeunload"&&process.on("exit",()=>{typeof e=="function"?e({}):e.handleEvent({})})},focus:()=>{},innerHeight:768,innerWidth:1024},aW={sendBeacon:(t,e)=>!0,userAgent:"Mozilla/5.0 (Node.js) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0",language:"en-US"};typeof window>"u"&&(global.window=oW);typeof navigator>"u"&&(global.navigator=aW);import*as et from"fs";import*as Go from"path";import{homedir as sW}from"os";import{existsSync as uW,unlinkSync as cW}from"fs";var tn=Go.join(sW(),rt,"statsig");try{et.mkdirSync(tn,{recursive:!0})}catch(t){ie(`Failed to create statsig storage directory: ${t}`)}var J0=class{cache=new Map;ready=!1;constructor(){try{et.existsSync(tn)||et.mkdirSync(tn,{recursive:!0});let e=et.readdirSync(tn);for(let r of e){let n=decodeURIComponent(r),i=et.readFileSync(Go.join(tn,r),"utf8");this.cache.set(n,i)}this.ready=!0}catch(e){ie(`Failed to initialize statsig storage: ${e}`),this.ready=!0}}isReady(){return this.ready}isReadyResolver(){return this.ready?Promise.resolve():null}getProviderName(){return"FileSystemStorageProvider"}getItem(e){return this.cache.get(e)??null}setItem(e,r){this.cache.set(e,r);try{let n=encodeURIComponent(e);et.writeFileSync(Go.join(tn,n),r,"utf8")}catch(n){ie(`Failed to write statsig storage item: ${n}`)}}removeItem(e){this.cache.delete(e);let r=encodeURIComponent(e),n=Go.join(tn,r);if(uW(n))try{cW(n)}catch(i){ie(`Failed to remove statsig storage item: ${i}`)}}getAllKeys(){return Array.from(this.cache.keys())}};var pS="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var xS="tengu-token-efficient-tools",hS="token-efficient-tools-2024-12-11";var mS="claude-code-20250219";var lW=z(async()=>{let t=[mS];return(process.env.USER_TYPE==="ant"||process.env.SWE_BENCH)&&await Yx(xS)&&t.push(hS),t});var Jx=z(async()=>{let{code:t}=await hi("git",["rev-parse","--is-inside-work-tree"]);return t===0});var gS=!!process.env.CLAUDE_CODE_USE_BEDROCK,_S=!!process.env.CLAUDE_CODE_USE_VERTEX,vS={bedrock:"us.anthropic.claude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219",firstParty:"claude-3-7-sonnet-20250219"},Xce=process.env.ANTHROPIC_SMALL_FAST_MODEL?process.env.ANTHROPIC_SMALL_FAST_MODEL:gS?"us.anthropic.claude-3-5-haiku-20241022-v1:0":_S?"claude-3-5-haiku@20241022":"claude-3-5-haiku-20241022";async function fW(){try{return await bS("tengu-capable-model-config",vS)}catch(t){return ie(t),vS}}var dW=z(async()=>{if(process.env.ANTHROPIC_MODEL||process.env.USER_TYPE==="SWE_BENCH"&&process.env.ANTHROPIC_MODEL)return process.env.ANTHROPIC_MODEL;let t=await fW();return gS?t.bedrock:_S?t.vertex:t.firstParty});var yS={},$o=null,Xx=z(async()=>{if(ge.isCI)return null;let t=await Q0(),e={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:ge.isCI||["test","development"].includes("production")?"dev":"production"},logLevel:X0.LogLevel.None,storageProvider:new J0};return $o=new X0.StatsigClient(pS,t,e),$o.on("error",r=>{ie(`Statsig error: ${r}`)}),await $o.initializeAsync(),process.on("exit",()=>{$o?.flush()}),$o});var Yx=z(async t=>{if(ge.isCI)return!1;let e=await Xx();if(!e)return!1;let r=e.checkGate(t);return yS[t]=r,r});function DS(){return{...yS}}var d0e=z(async(t,e)=>{if(ge.isCI)return e;let r=await Xx();if(!r)return e;let n=r.getExperiment(t);return Object.keys(n.value).length===0?(ie(`getExperimentValue got empty value for ${t}`),e):n.value}),bS=async(t,e)=>{if(ge.isCI)return e;let r=await Xx();if(!r)return e;let n=r.getDynamicConfig(t);return Object.keys(n.value).length===0?(ie(`getDynamicConfig got empty value for ${t}`),e):n.value};var Vo=class extends Error{filePath;defaultConfig;constructor(e,r,n){super(e),this.name="ConfigParseError",this.filePath=r,this.defaultConfig=n}};var mW={allowedTools:[],context:{},history:[],dontCrawlDirectory:!1,enableArchitectTool:!1,mcpContextUris:[],mcpServers:{},approvedMcprcServers:[],rejectedMcprcServers:[],hasTrustDialogAccepted:!1};var Z0={mcpServers:{},numStartups:0,autoUpdaterStatus:"disabled",theme:"dark",preferredNotifChannel:"iterm2",verbose:!1,customApiKeyResponses:{approved:[],rejected:[]}};var T0e={...Z0,autoUpdaterStatus:"disabled"},F0e={...mW};function vW(t){gW(p0,{...t,projects:ES(p0,Z0).projects},Z0)}function eh(){return ES(p0,Z0)}function gW(t,e,r){let n=Object.fromEntries(Object.entries(e).filter(([i,o])=>JSON.stringify(o)!==JSON.stringify(r[i])||i=="mcpServers"));xW(t,JSON.stringify(n,null,2),"utf-8")}var _W=!1;function ES(t,e,r){if(!_W)throw new Error("Config accessed before allowed.");if(!Qx(t))return yo(e);try{let n=Zx(t,"utf-8");try{let i=JSON.parse(n);return{...yo(e),...i}}catch(i){let o=i instanceof Error?i.message:String(i);throw new Vo(o,t,e)}}catch(n){if(n instanceof Vo&&r)throw n;return yo(e)}}var I0e=z(()=>{let t=SS(Hr(),".mcp.json");if(!Qx(t))return{};try{let e=Zx(t,"utf-8"),r=_6(e);if(r&&typeof r=="object")return r=r.mcpServers,Object.keys(r).length.toString(),r}catch{}return{}},()=>{let t=Hr(),e=SS(t,".mcp.json");if(Qx(e))try{let r=Zx(e,"utf-8");return`${t}:${r}`}catch{return t}return t});function wS(){let t=eh();if(t.userID)return t.userID;let e=hW(32).toString("hex");return vW({...t,userID:e}),e}var bW=z(async()=>{let t=await hi("git",["config","user.email"]);if(t.code!==0){ie(`Failed to get git email: ${t.stdout} ${t.stderr}`);return}return t.stdout.trim()||void 0}),Q0=z(async()=>{let t=wS(),e=eh(),r=process.env.USER_TYPE==="ant"?e.oauthAccount?.emailAddress??await bW()??(process.env.COO_CREATOR?`${process.env.COO_CREATOR}@anthropic.com`:void 0):void 0;return{customIDs:{sessionId:Li},userID:t,appVersion:MACRO.VERSION,userAgent:ge.platform,email:r,custom:{nodeVersion:ge.nodeVersion,userType:process.env.USER_TYPE,organizationUuid:e.oauthAccount?.organizationUuid,accountUuid:e.oauthAccount?.accountUuid}}});async function OS(t){try{let[e,r]=await Promise.all([Jx(),Q0()]);Nc({nodeVersion:ge.nodeVersion,platform:ge.platform,cwd:Hr(),isCI:ge.isCI,isGit:e,isTest:!1,packageVersion:MACRO.VERSION,sessionId:Li,statsigGates:DS(),terminal:ge.terminal,userType:process.env.USER_TYPE}),Uc({id:r.userID,email:r.email}),Bc(t)}catch{}}import{randomUUID as SW}from"crypto";import{homedir as EW}from"os";var th=[],wW=100,Li=SW(),Ri=gt(EW(),rt);function Bi(t){return t.replace(/[^a-zA-Z0-9]/g,"-")}var nh={apis:()=>gt(Ri,"project",Bi(process.cwd()),"apis"),errors:()=>gt(Ri,"project",Bi(process.cwd()),"errors"),messages:()=>gt(Ri,"project",Bi(process.cwd()),"messages"),mcpLogs:t=>gt(Ri,"project",Bi(process.cwd()),`mcp-logs-${t}`),log:()=>gt(Ri,"project",Bi(process.cwd()),"log"),vcrFixtures:()=>gt(Ri,"project",Bi(process.cwd()),"vcr-fixtures")};function OW(t){return t.toISOString().replace(/[:.]/g,"-")}var ih=OW(new Date);function CW(){return gt(nh.errors(),ih+".txt")}function AW(){return gt(nh.log(),ih+".log")}function TW(){return gt(nh.log(),"error-"+ih+".log")}function TS(t,e,...r){let n=r.map(i=>i instanceof Error?`${i.name}: ${i.message}
53
53
  ${i.stack.replace(/^/gm," ")}`:i);IW(e,{level:t,message:n.length==1?n[0]:n})}function Wo(...t){TS("info",AW(),...t)}function Oo(...t){TS("error",TW(),...t)}function ie(t){try{let e=t instanceof Error?t.stack||t.message:String(t),r={error:e,timestamp:new Date().toISOString()};th.length>=wW&&th.shift(),th.push(r),PW(CW(),{error:e})}catch{}OS(t)}function FW(t){if(!Ko(t))return[];try{return JSON.parse(yW(t,"utf8"))}catch{return[]}}function IW(t,e){let r=AS(t);Ko(r)||CS(r,{recursive:!0});let i=(typeof e=="string"?e:JSON.stringify(e))+`
54
- `;Ko(t)?DW(t,i,"utf8"):rh(t,i,"utf8")}function PW(t,e){process.env.USER_TYPE;let r=AS(t);Ko(r)||CS(r,{recursive:!0}),Ko(t)||rh(t,"[]","utf8");let n=FW(t),i={...e,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:Li,timestamp:new Date().toISOString(),version:MACRO.VERSION};n.push(i),rh(t,JSON.stringify(n,null,2),"utf8")}var rl={env:{},permissions:{allow:[],deny:[]},enableAllProjectMcpServers:!1,enabledMcpjsonServers:[],autoCompactEnabled:!1,language:"auto",disableSuggestion:!1},oh=class t{static instance;constructor(){this.initializeConfigDirectories()}initializeConfigDirectories(){let e=this.getUserSettingsPath(),r=this.getProjectSettingsPath();this.ensureDirExists(e),el(e)||tl(e,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8"),this.ensureDirExists(r),el(r)||tl(r,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8")}getDefaultSettingsStructure(){return{env:{},permissions:{allow:[],deny:[]}}}static getInstance(){return t.instance||(t.instance=new t),t.instance}addProjectAllowedTools(e){let r=this.loadSettingsFromFile(this.getProjectSettingsPath()),n=r.permissions||{allow:[],deny:[]};if(n.allow||(n.allow=[]),n.allow.includes(e))Wo(`\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 i={...r,permissions:{...n}};this.saveSettingsToFile(this.getProjectSettingsPath(),i,rl),Wo(`\u5DF2\u5C06\u5DE5\u5177 '${e}' \u6DFB\u52A0\u5230\u9879\u76EE\u5141\u8BB8\u5217\u8868`)}}getUserSettingsPath(){return IS(kW(),".hcode","settings.json")}getProjectSettingsPath(){let e=process.cwd();return IS(e,".hcode","settings.json")}ensureDirExists(e){let r=qW(e);el(r)||MW(r,{recursive:!0})}loadSettingsFromFile(e){if(!el(e))return{};let r="";try{return r=jW(e,"utf-8"),JSON.parse(r)}catch(n){return console.error(`Error reading settings file ${e} => ${r} `,n),{}}}saveSettingsToFile(e,r,n){let i={...r};for(let[o,a]of Object.entries(r))if(o in n)if(typeof a=="object"&&typeof n[o]=="object"){if(JSON.stringify(a)===JSON.stringify(n[o]))delete i[o];else if(o==="permissions"&&a&&typeof a=="object"){let s=n.permissions||{},u=a;Array.isArray(u.allow)&&Array.isArray(s.allow)&&JSON.stringify(u.allow)===JSON.stringify(s.allow)&&delete u.allow,Array.isArray(u.deny)&&Array.isArray(s.deny)&&JSON.stringify(u.deny)===JSON.stringify(s.deny)&&delete u.deny,Object.keys(u).length===0&&delete i[o]}}else a===n[o]&&delete i[o];this.ensureDirExists(e),Object.keys(i).length===0?tl(e,"{}","utf-8"):tl(e,JSON.stringify(i,null,2),"utf-8")}loadSettings(){let e=this.loadSettingsFromFile(this.getUserSettingsPath()),r=this.loadSettingsFromFile(this.getProjectSettingsPath()),n={...e.env,...r.env},i={...e.permissions};if(e.permissions?.allow&&r.permissions?.allow){let a=[...e.permissions.allow];r.permissions.allow.forEach(s=>{a.includes(s)||a.push(s)}),i.allow=a}else r.permissions?.allow&&(i.allow=[...r.permissions.allow]);if(e.permissions?.deny&&r.permissions?.deny){let a=[...e.permissions.deny];r.permissions.deny.forEach(s=>{a.includes(s)||a.push(s)}),i.deny=a}else r.permissions?.deny&&(i.deny=[...r.permissions.deny]);let o={...rl,...e,...r};return n&&Object.keys(n).length>0&&(o.env=n),i&&(i.allow||i.deny)&&(o.permissions=i),o}saveUserSettings(e){let r=this.getUserSettingsPath();this.saveSettingsToFile(r,e,rl)}saveProjectSettings(e){let r=this.getProjectSettingsPath();this.saveSettingsToFile(r,e,rl)}getSetting(e){return this.loadSettings()[e]}updateSetting(e,r){let i={...this.loadSettings(),[e]:r};this.saveProjectSettings(i)}resetSetting(e){let n={...this.loadSettings()};delete n[e],this.saveProjectSettings(n)}getAllSettings(){return this.loadSettings()}},zo=oh.getInstance(),PS=zo.getAllSettings();function ah(){let t=zo.getUserSettingsPath(),e=zo.getProjectSettingsPath();FS(t,(r,n)=>{r==="change"&&(PS=null,Wo("\u7528\u6237\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D"))}).on("error",r=>{Oo("\u7528\u6237\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",r),setTimeout(()=>ah(),100)}),FS(e,(r,n)=>{r==="change"&&(PS=null,Wo("\u9879\u76EE\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D",n))}).on("error",r=>{Oo("\u9879\u76EE\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",r),setTimeout(()=>ah(),100)})}ah();function LW(){lh();let t=fh(),e=[];Object.entries(t).forEach(([r,n],i)=>{n.enable===!0&&e.push({name:`${i}. ${r}`,value:r})}),e.length===0&&(console.error(`\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6 ~/${rt}/config.json\uFF0C\u786E\u4FDD\u81F3\u5C11\u6709\u4E00\u4E2A\u6A21\u578B\u7684 enable \u8BBE\u7F6E\u4E3A true\u3002`),process.exit(1)),(async()=>{let r=await W2.prompt([{type:"list",name:"choice",message:"\u8BF7\u9009\u62E9\u4E00\u4E2A\u6A21\u578B\uFF1A",choices:e}]);var n=t[r.choice];let i=n.env,o={};Object.keys(i).forEach(p=>{["BASE_URL","AUTH_TOKEN","MODEL","SMALL_FAST_MODEL"].includes(p)?o[`ANTHROPIC_${p}`]=i[p]:o[p]=i[p]});let a=zo.getSetting("env")||{};process.platform==="win32"&&!process.env.HCODE_GIT_BASH_PATH&&!o.HCODE_GIT_BASH_PATH&&!a.HCODE_GIT_BASH_PATH&&(console.error("\u5728 Windows \u7CFB\u7EDF\u4E0A\u8FD0\u884C\uFF0C\u8BF7\u786E\u4FDD\u914D\u7F6E\u73AF\u5883\u53D8\u91CF HCODE_GIT_BASH_PATH\uFF0C\u53C2\u8003\u6587\u6863\uFF1Ahttps://www.hawacode.com/docs"),process.exit(1));let s=MS(import.meta.url),u=nl.dirname(s),c=nl.join(u,"cli.js"),l=jS(process.execPath,["--no-deprecation",c,...process.argv.slice(2)],{env:{...process.env,...o,...a},stdio:"inherit",cwd:process.cwd()});l.on("error",p=>{console.error("Failed to start command:",p.message),process.exit(1)}),l.on("close",p=>{process.exit(p||0)})})()}async function RW(){let t=MS(import.meta.url),e=nl.dirname(t),r=nl.join(e,"cli.js"),n=jS(process.execPath,["--no-deprecation",r,...process.argv.slice(2)],{env:process.env,stdio:"inherit",cwd:process.cwd()});n.on("error",i=>{console.error("Failed to start command:",i.message),process.exit(1)}),n.on("close",i=>{process.exit(i||0)})}async function BW(){process.argv.length<=2?LW():await RW()}await BW();
54
+ `;Ko(t)?DW(t,i,"utf8"):rh(t,i,"utf8")}function PW(t,e){process.env.USER_TYPE;let r=AS(t);Ko(r)||CS(r,{recursive:!0}),Ko(t)||rh(t,"[]","utf8");let n=FW(t),i={...e,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:Li,timestamp:new Date().toISOString(),version:MACRO.VERSION};n.push(i),rh(t,JSON.stringify(n,null,2),"utf8")}var rl={env:{},permissions:{allow:[],deny:[]},enableAllProjectMcpServers:!1,enabledMcpjsonServers:[],autoCompactEnabled:!1,language:"auto",disableSuggestion:!1},oh=class t{static instance;static isTasksEnable(){return process.env.HAWA_CODE_ENABLE_TASKS=="true"||t.isAgentTeamEnable()}static isAgentTeamEnable(){return process.env.HAWA_CODE_EXPERIMENTAL_AGENT_TEAMS=="1"}constructor(){this.initializeConfigDirectories()}initializeConfigDirectories(){let e=this.getUserSettingsPath(),r=this.getProjectSettingsPath();this.ensureDirExists(e),el(e)||tl(e,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8"),this.ensureDirExists(r),el(r)||tl(r,JSON.stringify(this.getDefaultSettingsStructure(),null,2),"utf-8")}getDefaultSettingsStructure(){return{env:{},permissions:{allow:[],deny:[]}}}static getInstance(){return t.instance||(t.instance=new t),t.instance}addProjectAllowedTools(e){let r=this.loadSettingsFromFile(this.getProjectSettingsPath()),n=r.permissions||{allow:[],deny:[]};if(n.allow||(n.allow=[]),n.allow.includes(e))Wo(`\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 i={...r,permissions:{...n}};this.saveSettingsToFile(this.getProjectSettingsPath(),i,rl),Wo(`\u5DF2\u5C06\u5DE5\u5177 '${e}' \u6DFB\u52A0\u5230\u9879\u76EE\u5141\u8BB8\u5217\u8868`)}}getUserSettingsPath(){return IS(kW(),".hcode","settings.json")}getProjectSettingsPath(){let e=process.cwd();return IS(e,".hcode","settings.json")}ensureDirExists(e){let r=qW(e);el(r)||MW(r,{recursive:!0})}loadSettingsFromFile(e){if(!el(e))return{};let r="";try{return r=jW(e,"utf-8"),JSON.parse(r)}catch(n){return console.error(`Error reading settings file ${e} => ${r} `,n),{}}}saveSettingsToFile(e,r,n){let i={...r};for(let[o,a]of Object.entries(r))if(o in n)if(typeof a=="object"&&typeof n[o]=="object"){if(JSON.stringify(a)===JSON.stringify(n[o]))delete i[o];else if(o==="permissions"&&a&&typeof a=="object"){let s=n.permissions||{},u=a;Array.isArray(u.allow)&&Array.isArray(s.allow)&&JSON.stringify(u.allow)===JSON.stringify(s.allow)&&delete u.allow,Array.isArray(u.deny)&&Array.isArray(s.deny)&&JSON.stringify(u.deny)===JSON.stringify(s.deny)&&delete u.deny,Object.keys(u).length===0&&delete i[o]}}else a===n[o]&&delete i[o];this.ensureDirExists(e),Object.keys(i).length===0?tl(e,"{}","utf-8"):tl(e,JSON.stringify(i,null,2),"utf-8")}loadSettings(){let e=this.loadSettingsFromFile(this.getUserSettingsPath()),r=this.loadSettingsFromFile(this.getProjectSettingsPath()),n={...e.env,...r.env},i={...e.permissions};if(e.permissions?.allow&&r.permissions?.allow){let a=[...e.permissions.allow];r.permissions.allow.forEach(s=>{a.includes(s)||a.push(s)}),i.allow=a}else r.permissions?.allow&&(i.allow=[...r.permissions.allow]);if(e.permissions?.deny&&r.permissions?.deny){let a=[...e.permissions.deny];r.permissions.deny.forEach(s=>{a.includes(s)||a.push(s)}),i.deny=a}else r.permissions?.deny&&(i.deny=[...r.permissions.deny]);let o={...rl,...e,...r};return n&&Object.keys(n).length>0&&(o.env=n),i&&(i.allow||i.deny)&&(o.permissions=i),o}saveUserSettings(e){let r=this.getUserSettingsPath();this.saveSettingsToFile(r,e,rl)}saveProjectSettings(e){let r=this.getProjectSettingsPath();this.saveSettingsToFile(r,e,rl)}getSetting(e){return this.loadSettings()[e]}updateSetting(e,r){let i={...this.loadSettings(),[e]:r};this.saveProjectSettings(i)}resetSetting(e){let n={...this.loadSettings()};delete n[e],this.saveProjectSettings(n)}getAllSettings(){return this.loadSettings()}},zo=oh.getInstance(),PS=zo.getAllSettings();function ah(){let t=zo.getUserSettingsPath(),e=zo.getProjectSettingsPath();FS(t,(r,n)=>{r==="change"&&(PS=null,Wo("\u7528\u6237\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D"))}).on("error",r=>{Oo("\u7528\u6237\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",r),setTimeout(()=>ah(),100)}),FS(e,(r,n)=>{r==="change"&&(PS=null,Wo("\u9879\u76EE\u7EA7\u914D\u7F6E\u5DF2\u70ED\u52A0\u8F7D",n))}).on("error",r=>{Oo("\u9879\u76EE\u7EA7\u914D\u7F6E\u76D1\u63A7\u51FA\u9519:",r),setTimeout(()=>ah(),100)})}ah();function LW(){lh();let t=fh(),e=[];Object.entries(t).forEach(([r,n],i)=>{n.enable===!0&&e.push({name:`${i}. ${r}`,value:r})}),e.length===0&&(console.error(`\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6 ~/${rt}/config.json\uFF0C\u786E\u4FDD\u81F3\u5C11\u6709\u4E00\u4E2A\u6A21\u578B\u7684 enable \u8BBE\u7F6E\u4E3A true\u3002`),process.exit(1)),(async()=>{let r=await W2.prompt([{type:"list",name:"choice",message:"\u8BF7\u9009\u62E9\u4E00\u4E2A\u6A21\u578B\uFF1A",choices:e}]);var n=t[r.choice];let i=n.env,o={};Object.keys(i).forEach(p=>{["BASE_URL","AUTH_TOKEN","MODEL","SMALL_FAST_MODEL"].includes(p)?o[`ANTHROPIC_${p}`]=i[p]:o[p]=i[p]});let a=zo.getSetting("env")||{};process.platform==="win32"&&!process.env.HCODE_GIT_BASH_PATH&&!o.HCODE_GIT_BASH_PATH&&!a.HCODE_GIT_BASH_PATH&&(console.error("\u5728 Windows \u7CFB\u7EDF\u4E0A\u8FD0\u884C\uFF0C\u8BF7\u786E\u4FDD\u914D\u7F6E\u73AF\u5883\u53D8\u91CF HCODE_GIT_BASH_PATH\uFF0C\u53C2\u8003\u6587\u6863\uFF1Ahttps://www.hawacode.com/docs"),process.exit(1));let s=MS(import.meta.url),u=nl.dirname(s),c=nl.join(u,"cli.js"),l=jS(process.execPath,["--no-deprecation",c,...process.argv.slice(2)],{env:{...process.env,...o,...a},stdio:"inherit",cwd:process.cwd()});l.on("error",p=>{console.error("Failed to start command:",p.message),process.exit(1)}),l.on("close",p=>{process.exit(p||0)})})()}async function RW(){let t=MS(import.meta.url),e=nl.dirname(t),r=nl.join(e,"cli.js"),n=jS(process.execPath,["--no-deprecation",r,...process.argv.slice(2)],{env:process.env,stdio:"inherit",cwd:process.cwd()});n.on("error",i=>{console.error("Failed to start command:",i.message),process.exit(1)}),n.on("close",i=>{process.exit(i||0)})}async function BW(){process.argv.length<=2?LW():await RW()}await BW();
55
55
  /*! Bundled license information:
56
56
 
57
57
  react/cjs/react.production.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dahawa/hawa-code",
3
- "version": "1.13.0",
3
+ "version": "1.13.2",
4
4
  "bin": {
5
5
  "hcode": "hawa.js"
6
6
  },