zen-code 5.0.1 → 5.0.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.
package/dist/app.js CHANGED
@@ -113,7 +113,7 @@ ${W.join(`
113
113
  `:""]},void 0,!0,void 0,this)),Y.length>z&&c.jsxDEV(O,{children:[`
114
114
  `,c.jsxDEV(O,{children:G},void 0,!1,void 0,this),c.jsxDEV(O,{dimColor:!0,children:["... (",Y.length-z," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}let Q=Object.keys(Y);if(Q.length===0)return c.jsxDEV(O,{color:"gray"},void 0,!1,void 0,this);let H=5;return c.jsxDEV(c.Fragment,{children:[Q.slice(0,H).map((z,q)=>c.jsxDEV(O,{children:[c.jsxDEV(O,{children:G},void 0,!1,void 0,this),c.jsxDEV(O,{color:"blue",children:z},void 0,!1,void 0,this)," ",c.jsxDEV(O,{color:"gray",children:": "},void 0,!1,void 0,this)," ",J(Y[z],K+1,Z+1),q<Math.min(Q.length,H)-1?`
115
115
  `:""]},void 0,!0,void 0,this)),Q.length>H&&c.jsxDEV(O,{children:[`
116
- `,c.jsxDEV(O,{children:G},void 0,!1,void 0,this),c.jsxDEV(O,{dimColor:!0,children:["... (",Q.length-H," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return c.jsxDEV(O,{children:J(X)},void 0,!1,void 0,this)},dX=({message:X,messageNumber:J})=>{let{getToolUIRender:Y,client:K}=y1(),Z=new w$(X,K),W=Z.getInputRepaired(),G=W?.title?`: ${W.title}`:W?.description?`: ${W.description}`:"",Q=X.name?Y(X.name):null,H=pX(X.name||"");return H=X.status==="error"?"red":"yellow",g8.default.useEffect(()=>{if(X.status==="error"&&X.name)import("./chunk-4vh3dxeg.js").then(({logToolError:z,logTerminalError:q,logAgentError:U})=>{let N=f$(X.content),w=typeof N==="string"?N:JSON.stringify(N);if(X.name==="terminal"){let F=W?.command||"unknown";q(F,w)}else if(X.name?.startsWith("Agent:"))U(X.name,w);else z(X.name,w)}).catch((z)=>{console.warn("Failed to log error:",z)})},[X.status,X.name,X.content,W?.command]),c.jsxDEV(W1,{children:c.jsxDEV(A,{flexDirection:"column",children:[c.jsxDEV(A,{children:[c.jsxDEV(O,{color:H,children:[J," ",X.name,c.jsxDEV(O,{color:"gray",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(O,{children:[" ",cX(X?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q?c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(A,{flexDirection:"column",children:Q(X)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):c.jsxDEV(A,{flexDirection:"column",paddingTop:0,children:[c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(xX,{content:Z.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(A,{paddingTop:0,paddingBottom:0,children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(O,{dimColor:!0,italic:!0,children:lX(f$(X.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X.sub_messages?.length?c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(O,{color:H,dimColor:!0,children:["(hidden ",X.sub_messages.length," subagent messages)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},m8=dX;var x0=M(v(),1),p8=o4.memo(function({renderMessages:J,startIndex:Y,staticKey:K,loading:Z}){let[W,G]=o4.useState(!1);o1(()=>G(!0),W?null:0);let Q=(U,N,w,F)=>x0.jsxDEV(A,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:U.type==="human"?x0.jsxDEV(h4,{content:U.content,messageNumber:N+1+Y},void 0,!1,void 0,this):U.type==="tool"?x0.jsxDEV(m8,{message:U,messageNumber:N+1+Y},void 0,!1,void 0,this):x0.jsxDEV(d4,{message:U,messageNumber:N+1+Y,loading:Z},void 0,!1,void 0,this)},U.id?`${F}-${U.id}`:`${F}-msg-${N}`,!1,void 0,this),H=J.findIndex((U)=>{if(U.type==="tool"&&!U.done&&!["success","error"].includes(U.status))return!0;return!1});if(H===-1)H=J.length-1;let z=J.slice(0,H),q=J.slice(H);if(!W)return x0.jsxDEV(A,{flexDirection:"column",children:J.map((U,N)=>Q(U,N,N===H,"init"))},void 0,!1,void 0,this);return x0.jsxDEV(A,{flexDirection:"column",children:[x0.jsxDEV(r4,{items:z,children:(U,N)=>Q(U,N,!1,"hist")},K,!1,void 0,this),q.map((U,N)=>Q(U,z.length+N,!0,"curr"))]},void 0,!0,void 0,this)});var d0=M(o(),1);var w4=M(o(),1);var i4=M(v(),1),rX=({staticKey:X,children:J,delay:Y=1})=>{let[K,Z]=w4.useState(!0),W=w4.useRef(!0);return w4.useEffect(()=>{Z(!1),W.current=!0},[X]),o1(()=>{if(W.current)process.stdout.write(c8),Z(!0),W.current=!1},K?null:Y),i4.jsxDEV(i4.Fragment,{children:K?J():null},void 0,!1,void 0,this)},l8=rX;var R1=M(v(),1),oX=d0.memo(function({toolGroup:J,groupId:Y,getToolUIRender:K,depth:Z=0,loading:W}){if(Z>1)return null;return R1.jsxDEV(A,{flexDirection:"column",children:J.map((G,Q)=>{let H=G.name?K(G.name):null;if(!H)return null;let z=G.sub_messages||[],q=z.length;return R1.jsxDEV(d0.Fragment,{children:[R1.jsxDEV(()=>{return R1.jsxDEV(W1,{fallback:G.name+" is error",children:H(G)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),z.length?R1.jsxDEV(R1.Fragment,{children:q>0&&R1.jsxDEV(A,{paddingLeft:2,children:R1.jsxDEV(O,{dimColor:!0,children:["... ",q," more submessage",q>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},`${Y}-${Q}-${G.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),x8=d0.memo(function({message:J,displayIndex:Y,isCurrent:K,startIndex:Z=0,getToolUIRender:W,depth:G=0,loading:Q}){return R1.jsxDEV(A,{flexDirection:"column",paddingBottom:1,children:[J.type==="human"?R1.jsxDEV(h4,{content:J.content,messageNumber:Y+1+Z},void 0,!1,void 0,this):null,J.type==="ai"?R1.jsxDEV(d4,{message:J,messageNumber:Y+1+Z,loading:Q},void 0,!1,void 0,this):null,J.type==="group"&&R1.jsxDEV(R1.Fragment,{children:R1.jsxDEV(oX,{toolGroup:J.toolGroup,groupId:J.id,getToolUIRender:W,depth:G,loading:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),d8=(X)=>{if(X.type!=="ai")return!0;try{let J=Q4(X);return!!(J&&J.trim().length>0)}catch{return!1}},r8=d0.memo(function({renderMessages:J,startIndex:Y,staticKey:K,depth:Z=0,getToolUIRender:W,loading:G}){let Q=d0.useMemo(()=>{let U=0;return J.filter((N)=>{if(N.type==="ai")return d8(N);return!0}).reduce((N,w)=>{if(w.type==="tool"){let F=N[N.length-1];if(F&&F.type==="group"&&F.toolGroup.length<5)F.toolGroup.push(w);else N.push({id:`tool-group-${U++}`,type:"group",toolGroup:[w]})}else N.push(w);return N},[])},[J,d8]),H=Q.length-1;if(H===-1)H=Q.length-1;if(!G)H=Q.length;let z=Q.slice(0,H),q=Q.slice(H);return R1.jsxDEV(A,{flexDirection:"column",children:[R1.jsxDEV(l8,{staticKey:`${K} ${z.length}`,children:()=>R1.jsxDEV(r4,{items:z,children:(U,N)=>R1.jsxDEV(x8,{message:U,displayIndex:N,isCurrent:!1,startIndex:Y,getToolUIRender:W,depth:Z,loading:G},U.id?`hist-${U.id}`:`hist-msg-${Z}-${N}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q.map((U,N)=>R1.jsxDEV(x8,{message:U,displayIndex:z.length+N,isCurrent:!0,startIndex:Y,getToolUIRender:W,depth:Z,loading:G},U.id?`curr-${U.id}`:`curr-msg-${Z}-${z.length}-${N}`,!1,void 0,this))]},void 0,!0,void 0,this)});var o8={name:"zen-code",version:"5.0.1",description:"",main:"./dist/cli.js",bin:"./dist/cli.js",files:["dist"],scripts:{dev:"bun run --smol src/cli.ts",build:"bun run bun.build.ts",prepublishOnly:"bun run build",test:"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage"},keywords:[],author:"KonghaYao",license:"Apache-2.0",dependencies:{},devDependencies:{"@anthropic-ai/sdk":"^0.71.2","@codegraph/config":"workspace:^","@codegraph/union-client":"workspace:^","@google/generative-ai":"^0.24.1","@inkjs/ui":"^2.0.0","@langchain/anthropic":"^1.3.22","@langchain/core":"^1.1.31","@langchain/google-genai":"^2.1.18","@langchain/langgraph":"^1.2.1","@langchain/mcp-adapters":"^1.1.1","@langchain/openai":"^1.2.12","@langgraph-js/agent-middlewares":"workspace:^","@langgraph-js/web-fetch":"workspace:^","@langgraph-js/pure-graph":"^3.3.0","@langgraph-js/sdk":"^4.6.6","@langgraph-js/standard-agent":"workspace:^","@nanostores/react":"^1.0.0","@tanstack/react-query":"^5.90.21","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/diff-match-patch":"^1.0.36","@types/fs-extra":"^11.0.4","@types/node-notifier":"^8.0.5","@types/react":"^19.2.14","@vitejs/plugin-react":"^5.1.2","ansi-escapes":"^7.3.0",chalk:"^5.6.2",clipboardy:"^5.3.1","diff-match-patch":"^1.0.5",execa:"^9.6.1","extract-zip":"^2.0.1","fs-extra":"^11.3.3",fuzzysort:"^3.1.0","happy-dom":"^20.3.9",ink:"^6.8.0","ink-markdown-es":"^1.4.0","ink-pro":"workspace:^","ink-spinner":"^5.0.0","ink-syntax-highlight":"^2.0.2",kysely:"^0.28.11","kysely-bun-worker":"^1.2.1","kysely-wasm":"^1.2.1",langchain:"^1.2.30",lowdb:"^7.0.1",marked:"^17.0.3",micromatch:"^4.0.8","node-notifier":"^10.0.1","node-sqlite3-wasm":"^0.8.53",openai:"^6.16.0","path-exists":"^5.0.0",pidusage:"^4","proper-lockfile":"^4.1.2",react:"^19.2.3","react-devtools-core":"^7.0.1","string-width":"^8.1.0",tempy:"^3.1.0","usehooks-ts":"^3.1.1",vite:"^7.3.1","vite-bundle-analyzer":"^1.3.2","vite-plugin-static-copy":"^3.1.4",vitest:"^4.0.18","xdg-basedir":"^5.1.0",yaml:"^2.8.2","zen-core":"workspace:^",zod:"^4.3.5"},babel:{presets:["@babel/preset-react"]}};var $1=M(v(),1),nX=[[[" ▓▓ ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓ ","yellow"]],[[" ▓▓ ","yellow"],[">","cyan"],[" ","yellow"],["<","cyan"],[" ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓▓▓ ","yellow"]],[["▓▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓▓","cyan"]],[[" ▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓ ","cyan"]],[[" ▀▀▀▀▀▀▀▀ ","gray"]]],i8=[["/model","模型"],["/mcp","MCP"],["/agent","Agent"],["/new","新对话"],["/plan","规划"],["/settings","设置"],["/help","帮助"]],n4=({label:X,value:J,valueColor:Y="white"})=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"blue",dimColor:!0,children:X.padEnd(10)},void 0,!1,void 0,this),$1.jsxDEV(O,{color:Y,children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),aX=()=>{let{AVAILABLE_MODELS:X,config:J,extraParams:Y}=T1(),K=J?.provider_id||process.env.MODEL_PROVIDER||"openai",W=!!J?.providers?.find((F)=>F.id===K)?.apiKey,G=X.length>0,Q=W,H=Y?.model_id||J?.model_id||"—",z=Y?.active_agent||"default",q=process.cwd(),U=4,N=i8.slice(0,4),w=i8.slice(4);return $1.jsxDEV(A,{flexDirection:"column",paddingX:1,marginBottom:1,children:[$1.jsxDEV(A,{justifyContent:"space-between",marginBottom:1,children:[$1.jsxDEV(A,{gap:2,children:[$1.jsxDEV(O,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:["v",o8.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(O,{color:Q?"green":"red",bold:!0,children:Q?"● ONLINE":"● OFFLINE"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(A,{flexDirection:"row",gap:3,children:[$1.jsxDEV(A,{flexDirection:"column",alignItems:"center",children:nX.map((F,R)=>$1.jsxDEV(A,{children:F.map(([B,L],k)=>$1.jsxDEV(O,{color:L,children:B},k,!1,void 0,this))},R,!1,void 0,this))},void 0,!1,void 0,this),$1.jsxDEV(A,{flexDirection:"column",justifyContent:"center",gap:0,children:[$1.jsxDEV(n4,{label:"Provider",value:K,valueColor:"cyan"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"Model",value:H,valueColor:"yellow"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"Agent",value:z,valueColor:"magenta"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"CWD",value:q.length>40?"…"+q.slice(-39):q,valueColor:"gray"},void 0,!1,void 0,this),!W&&$1.jsxDEV(A,{marginTop:1,children:$1.jsxDEV(O,{color:"yellow",children:"⚠ 运行 /model 配置 API Key"},void 0,!1,void 0,this)},void 0,!1,void 0,this),W&&!G&&$1.jsxDEV(A,{marginTop:1,children:$1.jsxDEV(O,{color:"yellow",children:"⚠ 运行 /model 检查模型列表"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(A,{flexDirection:"column",gap:0,borderTop:!0,borderStyle:"single",borderBottom:!0,borderLeft:!1,borderRight:!1,children:[$1.jsxDEV(A,{gap:4,children:N.map(([F,R])=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"cyan",children:F},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:R},void 0,!1,void 0,this)]},F,!0,void 0,this))},void 0,!1,void 0,this),$1.jsxDEV(A,{gap:4,children:w.map(([F,R])=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"cyan",children:F},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:R},void 0,!1,void 0,this)]},F,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},n8=aX;var q$=M(o(),1);import HY from"node:fs/promises";import OY from"node:path";var S4=M(o(),1);class a8{commands=new Map;aliases=new Map;register(X){if(this.commands.set(X.name,X),X.aliases)X.aliases.forEach((J)=>{this.aliases.set(J,X.name)})}getCommand(X){let J=this.aliases.get(X)||X;return this.commands.get(J)}getAllCommands(){return Array.from(this.commands.values())}isCommand(X){return X.trim().startsWith("/")}parseCommand(X){if(!this.isCommand(X))return null;let Y=X.trim().slice(1).split(/\s+/),K=Y[0],Z=Y.slice(1);return{command:K,args:Z}}async executeCommand(X,J){let Y=this.parseCommand(X);if(!Y)return{success:!1,message:"无效的命令格式"};let{command:K,args:Z}=Y,W=this.getCommand(K);if(!W)return{success:!1,message:`未知命令: /${K}`};if(W.requiresArgs&&Z.length===0)return{success:!1,message:`命令 /${K} 需要参数。用法: ${W.usage||`/${K} <args>`}`};if(W.validateArgs&&!W.validateArgs(Z))return{success:!1,message:`命令 /${K} 参数无效。用法: ${W.usage||`/${K} <args>`}`};try{return await W.execute(Z,J)}catch(G){return{success:!1,message:`命令执行失败: ${G instanceof Error?G.message:String(G)}`}}}getSuggestions(X){if(!X.startsWith("/"))return[];let J=X.slice(1).toLowerCase(),Y=[];if(J===""){let z=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let q of z){let U=this.commands.get(q);if(U)Y.push({command:q,displayText:`/${q}`,description:U.description})}return Y.slice(0,10)}let K=new Set(["history","knowledge","help","init","model","config"]),Z=[],W=[];for(let[z,q]of this.commands){let U=z.toLowerCase();if(U.startsWith(J))Z.push({command:z,displayText:`/${z}`,description:q.description});else if(U.includes(J))W.push({command:z,displayText:`/${z}`,description:q.description});if(q.aliases)for(let N of q.aliases){let w=N.toLowerCase();if(w.startsWith(J))Z.push({command:z,displayText:`/${N}`,description:`${q.description} (别名)`});else if(w.includes(J))W.push({command:z,displayText:`/${N}`,description:`${q.description} (别名)`})}}let G=(z,q)=>{let U=K.has(z.command)?1:0,N=K.has(q.command)?1:0;if(U!==N)return N-U;return z.displayText.length-q.displayText.length};Z.sort(G),W.sort(G);let Q=new Set,H=[];for(let z of[...Z,...W])if(!Q.has(z.command))Q.add(z.command),H.push(z);return Y.push(...H),Y.slice(0,10)}getHelp(X){if(X){let Y=this.getCommand(X);if(!Y)return`未找到命令: /${X}`;let K=`命令: /${Y.name}
116
+ `,c.jsxDEV(O,{children:G},void 0,!1,void 0,this),c.jsxDEV(O,{dimColor:!0,children:["... (",Q.length-H," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return c.jsxDEV(O,{children:J(X)},void 0,!1,void 0,this)},dX=({message:X,messageNumber:J})=>{let{getToolUIRender:Y,client:K}=y1(),Z=new w$(X,K),W=Z.getInputRepaired(),G=W?.title?`: ${W.title}`:W?.description?`: ${W.description}`:"",Q=X.name?Y(X.name):null,H=pX(X.name||"");return H=X.status==="error"?"red":"yellow",g8.default.useEffect(()=>{if(X.status==="error"&&X.name)import("./chunk-4vh3dxeg.js").then(({logToolError:z,logTerminalError:q,logAgentError:U})=>{let N=f$(X.content),w=typeof N==="string"?N:JSON.stringify(N);if(X.name==="terminal"){let F=W?.command||"unknown";q(F,w)}else if(X.name?.startsWith("Agent:"))U(X.name,w);else z(X.name,w)}).catch((z)=>{console.warn("Failed to log error:",z)})},[X.status,X.name,X.content,W?.command]),c.jsxDEV(W1,{children:c.jsxDEV(A,{flexDirection:"column",children:[c.jsxDEV(A,{children:[c.jsxDEV(O,{color:H,children:[J," ",X.name,c.jsxDEV(O,{color:"gray",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(O,{children:[" ",cX(X?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q?c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(A,{flexDirection:"column",children:Q(X)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):c.jsxDEV(A,{flexDirection:"column",paddingTop:0,children:[c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(xX,{content:Z.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(A,{paddingTop:0,paddingBottom:0,children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(O,{dimColor:!0,italic:!0,children:lX(f$(X.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X.sub_messages?.length?c.jsxDEV(A,{children:[c.jsxDEV(O,{color:"gray",children:"└─ "},void 0,!1,void 0,this),c.jsxDEV(O,{color:H,dimColor:!0,children:["(hidden ",X.sub_messages.length," subagent messages)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},m8=dX;var x0=M(v(),1),p8=o4.memo(function({renderMessages:J,startIndex:Y,staticKey:K,loading:Z}){let[W,G]=o4.useState(!1);o1(()=>G(!0),W?null:0);let Q=(U,N,w,F)=>x0.jsxDEV(A,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:U.type==="human"?x0.jsxDEV(h4,{content:U.content,messageNumber:N+1+Y},void 0,!1,void 0,this):U.type==="tool"?x0.jsxDEV(m8,{message:U,messageNumber:N+1+Y},void 0,!1,void 0,this):x0.jsxDEV(d4,{message:U,messageNumber:N+1+Y,loading:Z},void 0,!1,void 0,this)},U.id?`${F}-${U.id}`:`${F}-msg-${N}`,!1,void 0,this),H=J.findIndex((U)=>{if(U.type==="tool"&&!U.done&&!["success","error"].includes(U.status))return!0;return!1});if(H===-1)H=J.length-1;let z=J.slice(0,H),q=J.slice(H);if(!W)return x0.jsxDEV(A,{flexDirection:"column",children:J.map((U,N)=>Q(U,N,N===H,"init"))},void 0,!1,void 0,this);return x0.jsxDEV(A,{flexDirection:"column",children:[x0.jsxDEV(r4,{items:z,children:(U,N)=>Q(U,N,!1,"hist")},K,!1,void 0,this),q.map((U,N)=>Q(U,z.length+N,!0,"curr"))]},void 0,!0,void 0,this)});var d0=M(o(),1);var w4=M(o(),1);var i4=M(v(),1),rX=({staticKey:X,children:J,delay:Y=1})=>{let[K,Z]=w4.useState(!0),W=w4.useRef(!0);return w4.useEffect(()=>{Z(!1),W.current=!0},[X]),o1(()=>{if(W.current)process.stdout.write(c8),Z(!0),W.current=!1},K?null:Y),i4.jsxDEV(i4.Fragment,{children:K?J():null},void 0,!1,void 0,this)},l8=rX;var R1=M(v(),1),oX=d0.memo(function({toolGroup:J,groupId:Y,getToolUIRender:K,depth:Z=0,loading:W}){if(Z>1)return null;return R1.jsxDEV(A,{flexDirection:"column",children:J.map((G,Q)=>{let H=G.name?K(G.name):null;if(!H)return null;let z=G.sub_messages||[],q=z.length;return R1.jsxDEV(d0.Fragment,{children:[R1.jsxDEV(()=>{return R1.jsxDEV(W1,{fallback:G.name+" is error",children:H(G)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),z.length?R1.jsxDEV(R1.Fragment,{children:q>0&&R1.jsxDEV(A,{paddingLeft:2,children:R1.jsxDEV(O,{dimColor:!0,children:["... ",q," more submessage",q>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},`${Y}-${Q}-${G.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),x8=d0.memo(function({message:J,displayIndex:Y,isCurrent:K,startIndex:Z=0,getToolUIRender:W,depth:G=0,loading:Q}){return R1.jsxDEV(A,{flexDirection:"column",paddingBottom:1,children:[J.type==="human"?R1.jsxDEV(h4,{content:J.content,messageNumber:Y+1+Z},void 0,!1,void 0,this):null,J.type==="ai"?R1.jsxDEV(d4,{message:J,messageNumber:Y+1+Z,loading:Q},void 0,!1,void 0,this):null,J.type==="group"&&R1.jsxDEV(R1.Fragment,{children:R1.jsxDEV(oX,{toolGroup:J.toolGroup,groupId:J.id,getToolUIRender:W,depth:G,loading:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),d8=(X)=>{if(X.type!=="ai")return!0;try{let J=Q4(X);return!!(J&&J.trim().length>0)}catch{return!1}},r8=d0.memo(function({renderMessages:J,startIndex:Y,staticKey:K,depth:Z=0,getToolUIRender:W,loading:G}){let Q=d0.useMemo(()=>{let U=0;return J.filter((N)=>{if(N.type==="ai")return d8(N);return!0}).reduce((N,w)=>{if(w.type==="tool"){let F=N[N.length-1];if(F&&F.type==="group"&&F.toolGroup.length<5)F.toolGroup.push(w);else N.push({id:`tool-group-${U++}`,type:"group",toolGroup:[w]})}else N.push(w);return N},[])},[J,d8]),H=Q.length-1;if(H===-1)H=Q.length-1;if(!G)H=Q.length;let z=Q.slice(0,H),q=Q.slice(H);return R1.jsxDEV(A,{flexDirection:"column",children:[R1.jsxDEV(l8,{staticKey:`${K} ${z.length}`,children:()=>R1.jsxDEV(r4,{items:z,children:(U,N)=>R1.jsxDEV(x8,{message:U,displayIndex:N,isCurrent:!1,startIndex:Y,getToolUIRender:W,depth:Z,loading:G},U.id?`hist-${U.id}`:`hist-msg-${Z}-${N}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q.map((U,N)=>R1.jsxDEV(x8,{message:U,displayIndex:z.length+N,isCurrent:!0,startIndex:Y,getToolUIRender:W,depth:Z,loading:G},U.id?`curr-${U.id}`:`curr-msg-${Z}-${z.length}-${N}`,!1,void 0,this))]},void 0,!0,void 0,this)});var o8={name:"zen-code",version:"5.0.2",description:"",main:"./dist/cli.js",bin:"./dist/cli.js",files:["dist"],scripts:{dev:"bun run --smol src/cli.ts",build:"bun run bun.build.ts",prepublishOnly:"bun run build",test:"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage"},keywords:[],author:"KonghaYao",license:"Apache-2.0",dependencies:{},devDependencies:{"@anthropic-ai/sdk":"^0.71.2","@codegraph/config":"workspace:^","@codegraph/union-client":"workspace:^","@google/generative-ai":"^0.24.1","@inkjs/ui":"^2.0.0","@langchain/anthropic":"^1.3.22","@langchain/core":"^1.1.31","@langchain/google-genai":"^2.1.18","@langchain/langgraph":"^1.2.1","@langchain/mcp-adapters":"^1.1.1","@langchain/openai":"^1.2.12","@langgraph-js/agent-middlewares":"workspace:^","@langgraph-js/web-fetch":"workspace:^","@langgraph-js/pure-graph":"^3.3.0","@langgraph-js/sdk":"^4.6.6","@langgraph-js/standard-agent":"workspace:^","@nanostores/react":"^1.0.0","@tanstack/react-query":"^5.90.21","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/diff-match-patch":"^1.0.36","@types/fs-extra":"^11.0.4","@types/node-notifier":"^8.0.5","@types/react":"^19.2.14","@vitejs/plugin-react":"^5.1.2","ansi-escapes":"^7.3.0",chalk:"^5.6.2",clipboardy:"^5.3.1","diff-match-patch":"^1.0.5",execa:"^9.6.1","extract-zip":"^2.0.1","fs-extra":"^11.3.3",fuzzysort:"^3.1.0","happy-dom":"^20.3.9",ink:"^6.8.0","ink-markdown-es":"^1.4.0","ink-pro":"workspace:^","ink-spinner":"^5.0.0","ink-syntax-highlight":"^2.0.2",kysely:"^0.28.11","kysely-bun-worker":"^1.2.1","kysely-wasm":"^1.2.1",langchain:"^1.2.30",lowdb:"^7.0.1",marked:"^17.0.3",micromatch:"^4.0.8","node-notifier":"^10.0.1","node-sqlite3-wasm":"^0.8.53",openai:"^6.16.0","path-exists":"^5.0.0",pidusage:"^4","proper-lockfile":"^4.1.2",react:"^19.2.3","react-devtools-core":"^7.0.1","string-width":"^8.1.0",tempy:"^3.1.0","usehooks-ts":"^3.1.1",vite:"^7.3.1","vite-bundle-analyzer":"^1.3.2","vite-plugin-static-copy":"^3.1.4",vitest:"^4.0.18","xdg-basedir":"^5.1.0",yaml:"^2.8.2","zen-core":"workspace:^",zod:"^4.3.5"},babel:{presets:["@babel/preset-react"]}};var $1=M(v(),1),nX=[[[" ▓▓ ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓ ","yellow"]],[[" ▓▓ ","yellow"],[">","cyan"],[" ","yellow"],["<","cyan"],[" ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓▓▓ ","yellow"]],[["▓▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓▓","cyan"]],[[" ▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓ ","cyan"]],[[" ▀▀▀▀▀▀▀▀ ","gray"]]],i8=[["/model","模型"],["/mcp","MCP"],["/agent","Agent"],["/new","新对话"],["/plan","规划"],["/settings","设置"],["/help","帮助"]],n4=({label:X,value:J,valueColor:Y="white"})=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"blue",dimColor:!0,children:X.padEnd(10)},void 0,!1,void 0,this),$1.jsxDEV(O,{color:Y,children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),aX=()=>{let{AVAILABLE_MODELS:X,config:J,extraParams:Y}=T1(),K=J?.provider_id||process.env.MODEL_PROVIDER||"openai",W=!!J?.providers?.find((F)=>F.id===K)?.apiKey,G=X.length>0,Q=W,H=Y?.model_id||J?.model_id||"—",z=Y?.active_agent||"default",q=process.cwd(),U=4,N=i8.slice(0,4),w=i8.slice(4);return $1.jsxDEV(A,{flexDirection:"column",paddingX:1,marginBottom:1,children:[$1.jsxDEV(A,{justifyContent:"space-between",marginBottom:1,children:[$1.jsxDEV(A,{gap:2,children:[$1.jsxDEV(O,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:["v",o8.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(O,{color:Q?"green":"red",bold:!0,children:Q?"● ONLINE":"● OFFLINE"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(A,{flexDirection:"row",gap:3,children:[$1.jsxDEV(A,{flexDirection:"column",alignItems:"center",children:nX.map((F,R)=>$1.jsxDEV(A,{children:F.map(([B,L],k)=>$1.jsxDEV(O,{color:L,children:B},k,!1,void 0,this))},R,!1,void 0,this))},void 0,!1,void 0,this),$1.jsxDEV(A,{flexDirection:"column",justifyContent:"center",gap:0,children:[$1.jsxDEV(n4,{label:"Provider",value:K,valueColor:"cyan"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"Model",value:H,valueColor:"yellow"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"Agent",value:z,valueColor:"magenta"},void 0,!1,void 0,this),$1.jsxDEV(n4,{label:"CWD",value:q.length>40?"…"+q.slice(-39):q,valueColor:"gray"},void 0,!1,void 0,this),!W&&$1.jsxDEV(A,{marginTop:1,children:$1.jsxDEV(O,{color:"yellow",children:"⚠ 运行 /model 配置 API Key"},void 0,!1,void 0,this)},void 0,!1,void 0,this),W&&!G&&$1.jsxDEV(A,{marginTop:1,children:$1.jsxDEV(O,{color:"yellow",children:"⚠ 运行 /model 检查模型列表"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$1.jsxDEV(A,{flexDirection:"column",gap:0,borderTop:!0,borderStyle:"single",borderBottom:!0,borderLeft:!1,borderRight:!1,children:[$1.jsxDEV(A,{gap:4,children:N.map(([F,R])=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"cyan",children:F},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:R},void 0,!1,void 0,this)]},F,!0,void 0,this))},void 0,!1,void 0,this),$1.jsxDEV(A,{gap:4,children:w.map(([F,R])=>$1.jsxDEV(A,{gap:1,children:[$1.jsxDEV(O,{color:"cyan",children:F},void 0,!1,void 0,this),$1.jsxDEV(O,{dimColor:!0,children:R},void 0,!1,void 0,this)]},F,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},n8=aX;var q$=M(o(),1);import HY from"node:fs/promises";import OY from"node:path";var S4=M(o(),1);class a8{commands=new Map;aliases=new Map;register(X){if(this.commands.set(X.name,X),X.aliases)X.aliases.forEach((J)=>{this.aliases.set(J,X.name)})}getCommand(X){let J=this.aliases.get(X)||X;return this.commands.get(J)}getAllCommands(){return Array.from(this.commands.values())}isCommand(X){return X.trim().startsWith("/")}parseCommand(X){if(!this.isCommand(X))return null;let Y=X.trim().slice(1).split(/\s+/),K=Y[0],Z=Y.slice(1);return{command:K,args:Z}}async executeCommand(X,J){let Y=this.parseCommand(X);if(!Y)return{success:!1,message:"无效的命令格式"};let{command:K,args:Z}=Y,W=this.getCommand(K);if(!W)return{success:!1,message:`未知命令: /${K}`};if(W.requiresArgs&&Z.length===0)return{success:!1,message:`命令 /${K} 需要参数。用法: ${W.usage||`/${K} <args>`}`};if(W.validateArgs&&!W.validateArgs(Z))return{success:!1,message:`命令 /${K} 参数无效。用法: ${W.usage||`/${K} <args>`}`};try{return await W.execute(Z,J)}catch(G){return{success:!1,message:`命令执行失败: ${G instanceof Error?G.message:String(G)}`}}}getSuggestions(X){if(!X.startsWith("/"))return[];let J=X.slice(1).toLowerCase(),Y=[];if(J===""){let z=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let q of z){let U=this.commands.get(q);if(U)Y.push({command:q,displayText:`/${q}`,description:U.description})}return Y.slice(0,10)}let K=new Set(["history","knowledge","help","init","model","config"]),Z=[],W=[];for(let[z,q]of this.commands){let U=z.toLowerCase();if(U.startsWith(J))Z.push({command:z,displayText:`/${z}`,description:q.description});else if(U.includes(J))W.push({command:z,displayText:`/${z}`,description:q.description});if(q.aliases)for(let N of q.aliases){let w=N.toLowerCase();if(w.startsWith(J))Z.push({command:z,displayText:`/${N}`,description:`${q.description} (别名)`});else if(w.includes(J))W.push({command:z,displayText:`/${N}`,description:`${q.description} (别名)`})}}let G=(z,q)=>{let U=K.has(z.command)?1:0,N=K.has(q.command)?1:0;if(U!==N)return N-U;return z.displayText.length-q.displayText.length};Z.sort(G),W.sort(G);let Q=new Set,H=[];for(let z of[...Z,...W])if(!Q.has(z.command))Q.add(z.command),H.push(z);return Y.push(...H),Y.slice(0,10)}getHelp(X){if(X){let Y=this.getCommand(X);if(!Y)return`未找到命令: /${X}`;let K=`命令: /${Y.name}
117
117
  `;if(K+=`描述: ${Y.description}
118
118
  `,Y.usage)K+=`用法: ${Y.usage}
119
119
  `;if(Y.aliases&&Y.aliases.length>0)K+=`别名: ${Y.aliases.map((Z)=>`/${Z}`).join(", ")}
@@ -1 +1 @@
1
- import{Hl as I,Il as v,Jl as x,Ll as b,Ml as _,Ol as d}from"./chunk-xprg4hxp.js";import{Wl as j}from"./chunk-x17jyjan.js";var{create:NQ,defineProperty:p,getOwnPropertyDescriptor:VQ,getOwnPropertyNames:a,getPrototypeOf:BQ}=Object,WQ=Object.prototype.hasOwnProperty,q=(X,Q)=>function(){return Q||(0,X[a(X)[0]])((Q={exports:{}}).exports,Q),Q.exports},FQ=(X,Q,Z,z)=>{if(Q&&typeof Q==="object"||typeof Q==="function"){for(var Y=a(Q),K=0,J=Y.length,G;K<J;K++)if(G=Y[K],!WQ.call(X,G)&&G!==Z)p(X,G,{get:((H)=>Q[H]).bind(null,G),enumerable:!(z=VQ(Q,G))||z.enumerable})}return X},A=(X,Q,Z)=>(Z=X!=null?NQ(BQ(X)):{},FQ(Q||!X||!X.__esModule?p(Z,"default",{value:X,enumerable:!0}):Z,X)),s=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(X,Q){function Z(z){return Q.exports=Z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Y){return typeof Y}:function(Y){return Y&&typeof Symbol=="function"&&Y.constructor===Symbol&&Y!==Symbol.prototype?"symbol":typeof Y},Q.exports.__esModule=!0,Q.exports.default=Q.exports,Z(z)}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),DQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(X,Q){var Z=s().default;function z(Y,K){if(Z(Y)!="object"||!Y)return Y;var J=Y[Symbol.toPrimitive];if(J!==void 0){var G=J.call(Y,K||"default");if(Z(G)!="object")return G;throw TypeError("@@toPrimitive must return a primitive value.")}return(K==="string"?String:Number)(Y)}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),AQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(X,Q){var Z=s().default,z=DQ();function Y(K){var J=z(K,"string");return Z(J)=="symbol"?J:J+""}Q.exports=Y,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),T=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(X,Q){var Z=AQ();function z(Y,K,J){return(K=Z(K))in Y?Object.defineProperty(Y,K,{value:J,enumerable:!0,configurable:!0,writable:!0}):Y[K]=J,Y}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),L=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(X,Q){var Z=T();function z(K,J){var G=Object.keys(K);if(Object.getOwnPropertySymbols){var H=Object.getOwnPropertySymbols(K);J&&(H=H.filter(function(N){return Object.getOwnPropertyDescriptor(K,N).enumerable})),G.push.apply(G,H)}return G}function Y(K){for(var J=1;J<arguments.length;J++){var G=arguments[J]!=null?arguments[J]:{};J%2?z(Object(G),!0).forEach(function(H){Z(K,H,G[H])}):Object.getOwnPropertyDescriptors?Object.defineProperties(K,Object.getOwnPropertyDescriptors(G)):z(Object(G)).forEach(function(H){Object.defineProperty(K,H,Object.getOwnPropertyDescriptor(G,H))})}return K}Q.exports=Y,Q.exports.__esModule=!0,Q.exports.default=Q.exports}});function $(X){return(Q)=>{let Z=0,z=null,Y=[];function K(){if(z)return;z=Q.subscribe({next(G){for(let N of Y){var H;(H=N.next)===null||H===void 0||H.call(N,G)}},error(G){for(let N of Y){var H;(H=N.error)===null||H===void 0||H.call(N,G)}},complete(){for(let H of Y){var G;(G=H.complete)===null||G===void 0||G.call(H)}}})}function J(){if(Z===0&&z){let G=z;z=null,G.unsubscribe()}}return I((G)=>{return Z++,Y.push(G),K(),{unsubscribe(){Z--,J();let H=Y.findIndex((N)=>N===G);if(H>-1)Y.splice(H,1)}}})}}var iQ=Symbol();function C(X){let Q=X,Z=[],z=(J)=>{if(Q!==void 0)J.next(Q);Z.push(J)},Y=(J)=>{Z.splice(Z.indexOf(J),1)},K=I((J)=>{return z(J),()=>{Y(J)}});return K.next=(J)=>{if(Q===J)return;Q=J;for(let G of Z)G.next(J)},K.get=()=>Q,K}function o(X){return I((Q)=>{function Z(Y=0,K=X.op){let J=X.links[Y];if(!J)throw Error("No more links to execute - did you forget to add an ending link?");return J({op:K,next(H){return Z(Y+1,H)}})}return Z().subscribe(Q)})}var k=A(T(),1),w=A(L(),1);function r(X){return X instanceof O}function qQ(X){return x(X)&&x(X.error)&&typeof X.error.code==="number"&&typeof X.error.message==="string"}function TQ(X,Q){if(typeof X==="string")return X;if(x(X)&&typeof X.message==="string")return X.message;return Q}var O=class X extends Error{constructor(Q,Z){var z,Y;let K=Z===null||Z===void 0?void 0:Z.cause;super(Q,{cause:K});(0,k.default)(this,"cause",void 0),(0,k.default)(this,"shape",void 0),(0,k.default)(this,"data",void 0),(0,k.default)(this,"meta",void 0),this.meta=Z===null||Z===void 0?void 0:Z.meta,this.cause=K,this.shape=Z===null||Z===void 0||(z=Z.result)===null||z===void 0?void 0:z.error,this.data=Z===null||Z===void 0||(Y=Z.result)===null||Y===void 0?void 0:Y.error.data,this.name="TRPCClientError",Object.setPrototypeOf(this,X.prototype)}static from(Q,Z={}){let z=Q;if(r(z)){if(Z.meta)z.meta=(0,w.default)((0,w.default)({},z.meta),Z.meta);return z}if(qQ(z))return new X(z.error.message,(0,w.default)((0,w.default)({},Z),{},{result:z,cause:Z.cause}));return new X(TQ(z,"Unknown error"),(0,w.default)((0,w.default)({},Z),{},{cause:z}))}};function y(X){let Q=X;if(!Q)return{input:{serialize:(Z)=>Z,deserialize:(Z)=>Z},output:{serialize:(Z)=>Z,deserialize:(Z)=>Z}};if("input"in Q)return Q;return{input:Q,output:Q}}var t=(X)=>typeof X==="function";function e(X){if(X)return X;if(typeof window<"u"&&t(window.fetch))return window.fetch;if(typeof globalThis<"u"&&t(globalThis.fetch))return globalThis.fetch;throw Error("No fetch implementation found")}var P=A(L());function h(X){return{url:X.url.toString(),fetch:X.fetch,transformer:y(X.transformer),methodOverride:X.methodOverride}}function IQ(X){let Q={};for(let Z=0;Z<X.length;Z++){let z=X[Z];Q[Z]=z}return Q}var OQ={query:"GET",mutation:"POST",subscription:"PATCH"};function QQ(X){return"input"in X?X.transformer.input.serialize(X.input):IQ(X.inputs.map((Q)=>X.transformer.input.serialize(Q)))}var S=(X)=>{let Q=X.url.split("?"),z=Q[0].replace(/\/$/,"")+"/"+X.path,Y=[];if(Q[1])Y.push(Q[1]);if("inputs"in X)Y.push("batch=1");if(X.type==="query"||X.type==="subscription"){let K=QQ(X);if(K!==void 0&&X.methodOverride!=="POST")Y.push(`input=${encodeURIComponent(JSON.stringify(K))}`)}if(Y.length)z+="?"+Y.join("&");return z},XQ=(X)=>{if(X.type==="query"&&X.methodOverride!=="POST")return;let Q=QQ(X);return Q!==void 0?JSON.stringify(Q):void 0},u=(X)=>{return YQ((0,P.default)((0,P.default)({},X),{},{contentTypeHeader:"application/json",getUrl:S,getBody:XQ}))},EQ=class extends Error{constructor(){super("AbortError");this.name="AbortError",this.message="AbortError"}},wQ=(X)=>{var Q;if(!(X===null||X===void 0?void 0:X.aborted))return;if((Q=X.throwIfAborted)===null||Q===void 0||Q.call(X),typeof DOMException<"u")throw new DOMException("AbortError","AbortError");throw new EQ};async function ZQ(X){var Q;wQ(X.signal);let Z=X.getUrl(X),z=X.getBody(X),Y=(Q=X.methodOverride)!==null&&Q!==void 0?Q:OQ[X.type],K=await(async()=>{let G=await X.headers();if(Symbol.iterator in G)return Object.fromEntries(G);return G})(),J=(0,P.default)((0,P.default)((0,P.default)({},X.contentTypeHeader&&Y!=="GET"?{"content-type":X.contentTypeHeader}:{}),X.trpcAcceptHeader?{"trpc-accept":X.trpcAcceptHeader}:void 0),K);return e(X.fetch)(Z,{method:Y,signal:X.signal,body:z,headers:J})}async function YQ(X){let Q={},Z=await ZQ(X);Q.response=Z;let z=await Z.json();return Q.responseJSON=z,{json:z,meta:Q}}var A0=A(L(),1);var zQ=()=>{throw Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new")};function m(X){let Q=null,Z=null,z=()=>{clearTimeout(Z),Z=null,Q=null};function Y(G){let H=[[]],N=0;while(!0){let F=G[N];if(!F)break;let W=H[H.length-1];if(F.aborted){var D;(D=F.reject)===null||D===void 0||D.call(F,Error("Aborted")),N++;continue}if(X.validate(W.concat(F).map((B)=>B.key))){W.push(F),N++;continue}if(W.length===0){var V;(V=F.reject)===null||V===void 0||V.call(F,Error("Input is too big for a single dispatch")),N++;continue}H.push([])}return H}function K(){let G=Y(Q);z();for(let H of G){if(!H.length)continue;let N={items:H};for(let V of H)V.batch=N;X.fetch(N.items.map((V)=>V.key)).then(async(V)=>{await Promise.all(V.map(async(W,U)=>{let B=N.items[U];try{var M;let R=await Promise.resolve(W);(M=B.resolve)===null||M===void 0||M.call(B,R)}catch(R){var f;(f=B.reject)===null||f===void 0||f.call(B,R)}B.batch=null,B.reject=null,B.resolve=null}));for(let W of N.items){var F;(F=W.reject)===null||F===void 0||F.call(W,Error("Missing result")),W.batch=null}}).catch((V)=>{for(let W of N.items){var F;(F=W.reject)===null||F===void 0||F.call(W,V),W.batch=null}})}}function J(G){var H;let N={aborted:!1,key:G,batch:null,resolve:zQ,reject:zQ},D=new Promise((V,F)=>{var W;N.reject=F,N.resolve=V,(W=Q)!==null&&W!==void 0||(Q=[]),Q.push(N)});return(H=Z)!==null&&H!==void 0||(Z=setTimeout(K)),D}return{load:J}}function KQ(...X){let Q=new AbortController,Z=X.length,z=0,Y=()=>{if(++z===Z)Q.abort()};for(let K of X)if(K===null||K===void 0?void 0:K.aborted)Y();else K===null||K===void 0||K.addEventListener("abort",Y,{once:!0});return Q.signal}var g=A(L(),1);function c(X){var Q,Z;let z=h(X),Y=(Q=X.maxURLLength)!==null&&Q!==void 0?Q:1/0,K=(Z=X.maxItems)!==null&&Z!==void 0?Z:1/0;return()=>{let J=(D)=>{return{validate(V){if(Y===1/0&&K===1/0)return!0;if(V.length>K)return!1;let F=V.map((B)=>B.path).join(","),W=V.map((B)=>B.input);return S((0,g.default)((0,g.default)({},z),{},{type:D,path:F,inputs:W,signal:null})).length<=Y},async fetch(V){let F=V.map((R)=>R.path).join(","),W=V.map((R)=>R.input),U=KQ(...V.map((R)=>R.signal)),B=await u((0,g.default)((0,g.default)({},z),{},{path:F,inputs:W,type:D,headers(){if(!X.headers)return{};if(typeof X.headers==="function")return X.headers({opList:V});return X.headers},signal:U}));return(Array.isArray(B.json)?B.json:V.map(()=>B.json)).map((R)=>({meta:B.meta,json:R}))}}},G=m(J("query")),H=m(J("mutation")),N={query:G,mutation:H};return({op:D})=>{return I((V)=>{if(D.type==="subscription")throw Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");let W=N[D.type].load(D),U=void 0;return W.then((B)=>{U=B;let M=d(B.json,z.transformer.output);if(!M.ok){V.error(O.from(M.error,{meta:B.meta}));return}V.next({context:B.meta,result:M.result}),V.complete()}).catch((B)=>{V.error(O.from(B,{meta:U===null||U===void 0?void 0:U.meta}))}),()=>{}})}}}var E0=A(L(),1);var l=(X,...Q)=>{return typeof X==="function"?X(...Q):X},f0=A(T(),1);function xQ(){let X,Q;return{promise:new Promise((z,Y)=>{X=z,Q=Y}),resolve:X,reject:Q}}async function PQ(X){let Q=await l(X.url);if(!X.connectionParams)return Q;let z=`${Q.includes("?")?"&":"?"}connectionParams=1`;return Q+z}async function SQ(X,Q){let Z={method:"connectionParams",data:await l(X)};return Q.encode(Z)}var C0=A(T(),1);var E=A(T(),1);function jQ(X){let{promise:Q,resolve:Z,reject:z}=xQ();return X.addEventListener("open",()=>{X.removeEventListener("error",z),Z()}),X.addEventListener("error",z),Q}function fQ(X,{intervalMs:Q,pongTimeoutMs:Z}){let z,Y;function K(){z=setTimeout(()=>{X.send("PING"),Y=setTimeout(()=>{X.close()},Z)},Q)}function J(){clearTimeout(z),K()}function G(){clearTimeout(Y),J()}X.addEventListener("open",K),X.addEventListener("message",({data:H})=>{if(clearTimeout(z),K(),H==="PONG")G()}),X.addEventListener("close",()=>{clearTimeout(z),clearTimeout(Y)})}var CQ=class X{constructor(Q){var Z;if((0,E.default)(this,"id",++X.connectCount),(0,E.default)(this,"WebSocketPonyfill",void 0),(0,E.default)(this,"urlOptions",void 0),(0,E.default)(this,"keepAliveOpts",void 0),(0,E.default)(this,"encoder",void 0),(0,E.default)(this,"wsObservable",C(null)),(0,E.default)(this,"openPromise",null),this.WebSocketPonyfill=(Z=Q.WebSocketPonyfill)!==null&&Z!==void 0?Z:WebSocket,!this.WebSocketPonyfill)throw Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");this.urlOptions=Q.urlOptions,this.keepAliveOpts=Q.keepAlive,this.encoder=Q.encoder}get ws(){return this.wsObservable.get()}set ws(Q){this.wsObservable.next(Q)}isOpen(){return!!this.ws&&this.ws.readyState===this.WebSocketPonyfill.OPEN&&!this.openPromise}isClosed(){return!!this.ws&&(this.ws.readyState===this.WebSocketPonyfill.CLOSING||this.ws.readyState===this.WebSocketPonyfill.CLOSED)}async open(){var Q=this;if(Q.openPromise)return Q.openPromise;Q.id=++X.connectCount;let Z=PQ(Q.urlOptions).then((z)=>new Q.WebSocketPonyfill(z));Q.openPromise=Z.then(async(z)=>{if(Q.ws=z,z.binaryType="arraybuffer",z.addEventListener("message",function({data:Y}){if(Y==="PING")this.send("PONG")}),Q.keepAliveOpts.enabled)fQ(z,Q.keepAliveOpts);if(z.addEventListener("close",()=>{if(Q.ws===z)Q.ws=null}),await jQ(z),Q.urlOptions.connectionParams)z.send(await SQ(Q.urlOptions.connectionParams,Q.encoder))});try{await Q.openPromise}finally{Q.openPromise=null}}async close(){var Q=this;try{await Q.openPromise}finally{var Z;(Z=Q.ws)===null||Z===void 0||Z.close()}}};(0,E.default)(CQ,"connectCount",0);var k0=A(T(),1),y0=A(L(),1);var i=A(T(),1),JQ=A(L(),1),kQ=class{constructor(X){(0,i.default)(this,"links",void 0),(0,i.default)(this,"runtime",void 0),(0,i.default)(this,"requestId",void 0),this.requestId=0,this.runtime={},this.links=X.links.map((Q)=>Q(this.runtime))}$request(X){var Q;return o({links:this.links,op:(0,JQ.default)((0,JQ.default)({},X),{},{context:(Q=X.context)!==null&&Q!==void 0?Q:{},id:++this.requestId})}).pipe($())}async requestAsPromise(X){var Q=this;try{let Z=Q.$request(X);return(await v(Z)).result.data}catch(Z){throw O.from(Z)}}query(X,Q,Z){return this.requestAsPromise({type:"query",path:X,input:Q,context:Z===null||Z===void 0?void 0:Z.context,signal:Z===null||Z===void 0?void 0:Z.signal})}mutation(X,Q,Z){return this.requestAsPromise({type:"mutation",path:X,input:Q,context:Z===null||Z===void 0?void 0:Z.context,signal:Z===null||Z===void 0?void 0:Z.signal})}subscription(X,Q,Z){return this.$request({type:"subscription",path:X,input:Q,context:Z.context,signal:Z.signal}).subscribe({next(Y){switch(Y.result.type){case"state":{var K;(K=Z.onConnectionStateChange)===null||K===void 0||K.call(Z,Y.result);break}case"started":{var J;(J=Z.onStarted)===null||J===void 0||J.call(Z,{context:Y.context});break}case"stopped":{var G;(G=Z.onStopped)===null||G===void 0||G.call(Z);break}case"data":case void 0:{var H;(H=Z.onData)===null||H===void 0||H.call(Z,Y.result.data);break}}},error(Y){var K;(K=Z.onError)===null||K===void 0||K.call(Z,Y)},complete(){var Y;(Y=Z.onComplete)===null||Y===void 0||Y.call(Z)}})}};var yQ=Symbol.for("trpc_untypedClient"),hQ={query:"query",mutate:"mutation",subscribe:"subscription"},gQ=(X)=>{return hQ[X]};function $Q(X){let Q=b(({path:Z,args:z})=>{let Y=[...Z],K=gQ(Y.pop()),J=Y.join(".");return X[K](J,...z)});return _((Z)=>{if(Z===yQ)return X;return Q[Z]})}function HQ(X){let Q=new kQ(X);return $Q(Q)}var G8=A(L(),1);var N8=A(L(),1);var vQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(X,Q){function Z(Y){var K,J,G,H=2;for(typeof Symbol<"u"&&(J=Symbol.asyncIterator,G=Symbol.iterator);H--;){if(J&&(K=Y[J])!=null)return K.call(Y);if(G&&(K=Y[G])!=null)return new z(K.call(Y));J="@@asyncIterator",G="@@iterator"}throw TypeError("Object is not async iterable")}function z(Y){function K(J){if(Object(J)!==J)return Promise.reject(TypeError(J+" is not an object."));var G=J.done;return Promise.resolve(J.value).then(function(H){return{value:H,done:G}})}return z=function(G){this.s=G,this.n=G.next},z.prototype={s:null,n:null,next:function(){return K(this.n.apply(this.s,arguments))},return:function(G){var H=this.s.return;return H===void 0?Promise.resolve({value:G,done:!0}):K(H.apply(this.s,arguments))},throw:function(G){var H=this.s.return;return H===void 0?Promise.reject(G):K(H.apply(this.s,arguments))}},new z(Y)}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),V8=A(vQ(),1);var B8=A(L(),1);var bQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(X,Q){function Z(){var z=typeof SuppressedError=="function"?SuppressedError:function(G,H){var N=Error();return N.name="SuppressedError",N.error=G,N.suppressed=H,N},Y={},K=[];function J(G,H){if(H!=null){if(Object(H)!==H)throw TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(G)var N=H[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(N===void 0&&(N=H[Symbol.dispose||Symbol.for("Symbol.dispose")],G))var D=N;if(typeof N!="function")throw TypeError("Object is not disposable.");D&&(N=function(){try{D.call(H)}catch(F){return Promise.reject(F)}}),K.push({v:H,d:N,a:G})}else G&&K.push({d:H,a:G});return H}return{e:Y,u:J.bind(null,!1),a:J.bind(null,!0),d:function(){var H,N=this.e,D=0;function V(){for(;H=K.pop();)try{if(!H.a&&D===1)return D=0,K.push(H),Promise.resolve().then(V);if(H.d){var W=H.d.call(H.v);if(H.a)return D|=2,Promise.resolve(W).then(V,F)}else D|=1}catch(U){return F(U)}if(D===1)return N!==Y?Promise.reject(N):Promise.resolve();if(N!==Y)throw N}function F(W){return N=N!==Y?new z(W,N):W,V()}return V()}}}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),GQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(X,Q){function Z(z,Y){this.v=z,this.k=Y}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),_Q=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(X,Q){var Z=GQ();function z(Y){return new Z(Y,0)}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),dQ=q({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(X,Q){var Z=GQ();function z(K){return function(){return new Y(K.apply(this,arguments))}}function Y(K){var J,G;function H(D,V){try{var F=K[D](V),W=F.value,U=W instanceof Z;Promise.resolve(U?W.v:W).then(function(B){if(U){var M=D==="return"?"return":"next";if(!W.k||B.done)return H(M,B);B=K[M](B).value}N(F.done?"return":"normal",B)},function(B){H("throw",B)})}catch(B){N("throw",B)}}function N(D,V){switch(D){case"return":J.resolve({value:V,done:!0});break;case"throw":J.reject(V);break;default:J.resolve({value:V,done:!1})}(J=J.next)?H(J.key,J.arg):G=null}this._invoke=function(D,V){return new Promise(function(F,W){var U={key:D,arg:V,resolve:F,reject:W,next:null};G?G=G.next=U:(J=G=U,H(D,V))})},typeof K.return!="function"&&(this.return=void 0)}Y.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Y.prototype.next=function(K){return this._invoke("next",K)},Y.prototype.throw=function(K){return this._invoke("throw",K)},Y.prototype.return=function(K){return this._invoke("return",K)},Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),W8=A(bQ(),1),F8=A(_Q(),1),D8=A(dQ(),1),A8=A(L(),1);async function n(X){try{return(await fetch(`${X}/health`,{signal:AbortSignal.timeout(2000)})).ok}catch{return!1}}async function R8(X){try{return(await(await fetch(`${X}/health`)).json()).version||null}catch{return null}}async function uQ(X){let{spawn:Q}=await import("node:child_process"),{existsSync:Z}=await import("node:fs"),z=new URL("../bin/zen-core.ts",import.meta.url).pathname,Y=new URL("./zen-core.js",import.meta.url).pathname,K;if(Z(z))K=z;else K=Y;Q(process.argv[0],[K],{detached:!0,stdio:"ignore",env:{...process.env,ZEN_CORE_PORT:String(X)}}).unref()}async function mQ(X,Q){let Z=Date.now()+Q;while(Date.now()<Z){if(await n(X))return;await new Promise((z)=>setTimeout(z,300))}throw Error(`zen-core did not start within ${Q}ms`)}async function q8(X){let{existsSync:Q,readFileSync:Z,unlinkSync:z}=await import("node:fs"),{join:Y}=await import("node:path"),{homedir:K}=await import("node:os"),J=Y(K(),".zen-code","zen-core.pid");if(Q(J)){let N=parseInt(Z(J,"utf8").trim());if(!isNaN(N))try{process.kill(N,"SIGTERM");try{z(J)}catch{}return{stopped:!0,message:`zen-core (PID ${N}) stopped`}}catch(D){if(D.code==="ESRCH"){try{z(J)}catch{}return{stopped:!1,message:"zen-core was not running (stale PID file cleaned)"}}}}let H=`http://127.0.0.1:${X??Number(process.env.ZEN_CORE_PORT||8125)}`;if(!await n(H))return{stopped:!1,message:"zen-core is not running"};return{stopped:!1,message:"zen-core is running but PID file not found — kill manually"}}async function T8(X={}){let{port:Q=Number(process.env.ZEN_CORE_PORT||8125),spawnIfNotRunning:Z=!1,timeout:z=1e4}=X,Y=`http://127.0.0.1:${Q}`;if(!await n(Y)){if(!Z)throw Error(`zen-core is not running on port ${Q}`);await uQ(Q),await mQ(Y,z)}return{trpc:HQ({links:[c({url:`${Y}/api/trpc`})]}),apiUrl:`${Y}/api/langgraph`,baseUrl:Y}}export{q8 as stopZenCore,T8 as connectToZenCore,R8 as checkZenCoreVersion};
1
+ import{Hl as I,Il as v,Jl as x,Ll as b,Ml as _,Ol as d}from"./chunk-xprg4hxp.js";import{Wl as j}from"./chunk-x17jyjan.js";var{create:VQ,defineProperty:p,getOwnPropertyDescriptor:BQ,getOwnPropertyNames:a,getPrototypeOf:WQ}=Object,FQ=Object.prototype.hasOwnProperty,R=(X,Q)=>function(){return Q||(0,X[a(X)[0]])((Q={exports:{}}).exports,Q),Q.exports},DQ=(X,Q,Z,z)=>{if(Q&&typeof Q==="object"||typeof Q==="function"){for(var Y=a(Q),K=0,J=Y.length,G;K<J;K++)if(G=Y[K],!FQ.call(X,G)&&G!==Z)p(X,G,{get:((H)=>Q[H]).bind(null,G),enumerable:!(z=BQ(Q,G))||z.enumerable})}return X},A=(X,Q,Z)=>(Z=X!=null?VQ(WQ(X)):{},DQ(Q||!X||!X.__esModule?p(Z,"default",{value:X,enumerable:!0}):Z,X)),s=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(X,Q){function Z(z){return Q.exports=Z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Y){return typeof Y}:function(Y){return Y&&typeof Symbol=="function"&&Y.constructor===Symbol&&Y!==Symbol.prototype?"symbol":typeof Y},Q.exports.__esModule=!0,Q.exports.default=Q.exports,Z(z)}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),AQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(X,Q){var Z=s().default;function z(Y,K){if(Z(Y)!="object"||!Y)return Y;var J=Y[Symbol.toPrimitive];if(J!==void 0){var G=J.call(Y,K||"default");if(Z(G)!="object")return G;throw TypeError("@@toPrimitive must return a primitive value.")}return(K==="string"?String:Number)(Y)}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),UQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(X,Q){var Z=s().default,z=AQ();function Y(K){var J=z(K,"string");return Z(J)=="symbol"?J:J+""}Q.exports=Y,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),T=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(X,Q){var Z=UQ();function z(Y,K,J){return(K=Z(K))in Y?Object.defineProperty(Y,K,{value:J,enumerable:!0,configurable:!0,writable:!0}):Y[K]=J,Y}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),L=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(X,Q){var Z=T();function z(K,J){var G=Object.keys(K);if(Object.getOwnPropertySymbols){var H=Object.getOwnPropertySymbols(K);J&&(H=H.filter(function(N){return Object.getOwnPropertyDescriptor(K,N).enumerable})),G.push.apply(G,H)}return G}function Y(K){for(var J=1;J<arguments.length;J++){var G=arguments[J]!=null?arguments[J]:{};J%2?z(Object(G),!0).forEach(function(H){Z(K,H,G[H])}):Object.getOwnPropertyDescriptors?Object.defineProperties(K,Object.getOwnPropertyDescriptors(G)):z(Object(G)).forEach(function(H){Object.defineProperty(K,H,Object.getOwnPropertyDescriptor(G,H))})}return K}Q.exports=Y,Q.exports.__esModule=!0,Q.exports.default=Q.exports}});function $(X){return(Q)=>{let Z=0,z=null,Y=[];function K(){if(z)return;z=Q.subscribe({next(G){for(let N of Y){var H;(H=N.next)===null||H===void 0||H.call(N,G)}},error(G){for(let N of Y){var H;(H=N.error)===null||H===void 0||H.call(N,G)}},complete(){for(let H of Y){var G;(G=H.complete)===null||G===void 0||G.call(H)}}})}function J(){if(Z===0&&z){let G=z;z=null,G.unsubscribe()}}return I((G)=>{return Z++,Y.push(G),K(),{unsubscribe(){Z--,J();let H=Y.findIndex((N)=>N===G);if(H>-1)Y.splice(H,1)}}})}}var nQ=Symbol();function C(X){let Q=X,Z=[],z=(J)=>{if(Q!==void 0)J.next(Q);Z.push(J)},Y=(J)=>{Z.splice(Z.indexOf(J),1)},K=I((J)=>{return z(J),()=>{Y(J)}});return K.next=(J)=>{if(Q===J)return;Q=J;for(let G of Z)G.next(J)},K.get=()=>Q,K}function o(X){return I((Q)=>{function Z(Y=0,K=X.op){let J=X.links[Y];if(!J)throw Error("No more links to execute - did you forget to add an ending link?");return J({op:K,next(H){return Z(Y+1,H)}})}return Z().subscribe(Q)})}var k=A(T(),1),w=A(L(),1);function r(X){return X instanceof O}function TQ(X){return x(X)&&x(X.error)&&typeof X.error.code==="number"&&typeof X.error.message==="string"}function IQ(X,Q){if(typeof X==="string")return X;if(x(X)&&typeof X.message==="string")return X.message;return Q}var O=class X extends Error{constructor(Q,Z){var z,Y;let K=Z===null||Z===void 0?void 0:Z.cause;super(Q,{cause:K});(0,k.default)(this,"cause",void 0),(0,k.default)(this,"shape",void 0),(0,k.default)(this,"data",void 0),(0,k.default)(this,"meta",void 0),this.meta=Z===null||Z===void 0?void 0:Z.meta,this.cause=K,this.shape=Z===null||Z===void 0||(z=Z.result)===null||z===void 0?void 0:z.error,this.data=Z===null||Z===void 0||(Y=Z.result)===null||Y===void 0?void 0:Y.error.data,this.name="TRPCClientError",Object.setPrototypeOf(this,X.prototype)}static from(Q,Z={}){let z=Q;if(r(z)){if(Z.meta)z.meta=(0,w.default)((0,w.default)({},z.meta),Z.meta);return z}if(TQ(z))return new X(z.error.message,(0,w.default)((0,w.default)({},Z),{},{result:z,cause:Z.cause}));return new X(IQ(z,"Unknown error"),(0,w.default)((0,w.default)({},Z),{},{cause:z}))}};function y(X){let Q=X;if(!Q)return{input:{serialize:(Z)=>Z,deserialize:(Z)=>Z},output:{serialize:(Z)=>Z,deserialize:(Z)=>Z}};if("input"in Q)return Q;return{input:Q,output:Q}}var t=(X)=>typeof X==="function";function e(X){if(X)return X;if(typeof window<"u"&&t(window.fetch))return window.fetch;if(typeof globalThis<"u"&&t(globalThis.fetch))return globalThis.fetch;throw Error("No fetch implementation found")}var P=A(L());function h(X){return{url:X.url.toString(),fetch:X.fetch,transformer:y(X.transformer),methodOverride:X.methodOverride}}function OQ(X){let Q={};for(let Z=0;Z<X.length;Z++){let z=X[Z];Q[Z]=z}return Q}var EQ={query:"GET",mutation:"POST",subscription:"PATCH"};function QQ(X){return"input"in X?X.transformer.input.serialize(X.input):OQ(X.inputs.map((Q)=>X.transformer.input.serialize(Q)))}var S=(X)=>{let Q=X.url.split("?"),z=Q[0].replace(/\/$/,"")+"/"+X.path,Y=[];if(Q[1])Y.push(Q[1]);if("inputs"in X)Y.push("batch=1");if(X.type==="query"||X.type==="subscription"){let K=QQ(X);if(K!==void 0&&X.methodOverride!=="POST")Y.push(`input=${encodeURIComponent(JSON.stringify(K))}`)}if(Y.length)z+="?"+Y.join("&");return z},XQ=(X)=>{if(X.type==="query"&&X.methodOverride!=="POST")return;let Q=QQ(X);return Q!==void 0?JSON.stringify(Q):void 0},u=(X)=>{return YQ((0,P.default)((0,P.default)({},X),{},{contentTypeHeader:"application/json",getUrl:S,getBody:XQ}))},wQ=class extends Error{constructor(){super("AbortError");this.name="AbortError",this.message="AbortError"}},xQ=(X)=>{var Q;if(!(X===null||X===void 0?void 0:X.aborted))return;if((Q=X.throwIfAborted)===null||Q===void 0||Q.call(X),typeof DOMException<"u")throw new DOMException("AbortError","AbortError");throw new wQ};async function ZQ(X){var Q;xQ(X.signal);let Z=X.getUrl(X),z=X.getBody(X),Y=(Q=X.methodOverride)!==null&&Q!==void 0?Q:EQ[X.type],K=await(async()=>{let G=await X.headers();if(Symbol.iterator in G)return Object.fromEntries(G);return G})(),J=(0,P.default)((0,P.default)((0,P.default)({},X.contentTypeHeader&&Y!=="GET"?{"content-type":X.contentTypeHeader}:{}),X.trpcAcceptHeader?{"trpc-accept":X.trpcAcceptHeader}:void 0),K);return e(X.fetch)(Z,{method:Y,signal:X.signal,body:z,headers:J})}async function YQ(X){let Q={},Z=await ZQ(X);Q.response=Z;let z=await Z.json();return Q.responseJSON=z,{json:z,meta:Q}}var U0=A(L(),1);var zQ=()=>{throw Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new")};function m(X){let Q=null,Z=null,z=()=>{clearTimeout(Z),Z=null,Q=null};function Y(G){let H=[[]],N=0;while(!0){let F=G[N];if(!F)break;let W=H[H.length-1];if(F.aborted){var D;(D=F.reject)===null||D===void 0||D.call(F,Error("Aborted")),N++;continue}if(X.validate(W.concat(F).map((B)=>B.key))){W.push(F),N++;continue}if(W.length===0){var V;(V=F.reject)===null||V===void 0||V.call(F,Error("Input is too big for a single dispatch")),N++;continue}H.push([])}return H}function K(){let G=Y(Q);z();for(let H of G){if(!H.length)continue;let N={items:H};for(let V of H)V.batch=N;X.fetch(N.items.map((V)=>V.key)).then(async(V)=>{await Promise.all(V.map(async(W,U)=>{let B=N.items[U];try{var M;let q=await Promise.resolve(W);(M=B.resolve)===null||M===void 0||M.call(B,q)}catch(q){var f;(f=B.reject)===null||f===void 0||f.call(B,q)}B.batch=null,B.reject=null,B.resolve=null}));for(let W of N.items){var F;(F=W.reject)===null||F===void 0||F.call(W,Error("Missing result")),W.batch=null}}).catch((V)=>{for(let W of N.items){var F;(F=W.reject)===null||F===void 0||F.call(W,V),W.batch=null}})}}function J(G){var H;let N={aborted:!1,key:G,batch:null,resolve:zQ,reject:zQ},D=new Promise((V,F)=>{var W;N.reject=F,N.resolve=V,(W=Q)!==null&&W!==void 0||(Q=[]),Q.push(N)});return(H=Z)!==null&&H!==void 0||(Z=setTimeout(K)),D}return{load:J}}function KQ(...X){let Q=new AbortController,Z=X.length,z=0,Y=()=>{if(++z===Z)Q.abort()};for(let K of X)if(K===null||K===void 0?void 0:K.aborted)Y();else K===null||K===void 0||K.addEventListener("abort",Y,{once:!0});return Q.signal}var g=A(L(),1);function c(X){var Q,Z;let z=h(X),Y=(Q=X.maxURLLength)!==null&&Q!==void 0?Q:1/0,K=(Z=X.maxItems)!==null&&Z!==void 0?Z:1/0;return()=>{let J=(D)=>{return{validate(V){if(Y===1/0&&K===1/0)return!0;if(V.length>K)return!1;let F=V.map((B)=>B.path).join(","),W=V.map((B)=>B.input);return S((0,g.default)((0,g.default)({},z),{},{type:D,path:F,inputs:W,signal:null})).length<=Y},async fetch(V){let F=V.map((q)=>q.path).join(","),W=V.map((q)=>q.input),U=KQ(...V.map((q)=>q.signal)),B=await u((0,g.default)((0,g.default)({},z),{},{path:F,inputs:W,type:D,headers(){if(!X.headers)return{};if(typeof X.headers==="function")return X.headers({opList:V});return X.headers},signal:U}));return(Array.isArray(B.json)?B.json:V.map(()=>B.json)).map((q)=>({meta:B.meta,json:q}))}}},G=m(J("query")),H=m(J("mutation")),N={query:G,mutation:H};return({op:D})=>{return I((V)=>{if(D.type==="subscription")throw Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");let W=N[D.type].load(D),U=void 0;return W.then((B)=>{U=B;let M=d(B.json,z.transformer.output);if(!M.ok){V.error(O.from(M.error,{meta:B.meta}));return}V.next({context:B.meta,result:M.result}),V.complete()}).catch((B)=>{V.error(O.from(B,{meta:U===null||U===void 0?void 0:U.meta}))}),()=>{}})}}}var w0=A(L(),1);var l=(X,...Q)=>{return typeof X==="function"?X(...Q):X},C0=A(T(),1);function PQ(){let X,Q;return{promise:new Promise((z,Y)=>{X=z,Q=Y}),resolve:X,reject:Q}}async function SQ(X){let Q=await l(X.url);if(!X.connectionParams)return Q;let z=`${Q.includes("?")?"&":"?"}connectionParams=1`;return Q+z}async function jQ(X,Q){let Z={method:"connectionParams",data:await l(X)};return Q.encode(Z)}var k0=A(T(),1);var E=A(T(),1);function fQ(X){let{promise:Q,resolve:Z,reject:z}=PQ();return X.addEventListener("open",()=>{X.removeEventListener("error",z),Z()}),X.addEventListener("error",z),Q}function CQ(X,{intervalMs:Q,pongTimeoutMs:Z}){let z,Y;function K(){z=setTimeout(()=>{X.send("PING"),Y=setTimeout(()=>{X.close()},Z)},Q)}function J(){clearTimeout(z),K()}function G(){clearTimeout(Y),J()}X.addEventListener("open",K),X.addEventListener("message",({data:H})=>{if(clearTimeout(z),K(),H==="PONG")G()}),X.addEventListener("close",()=>{clearTimeout(z),clearTimeout(Y)})}var kQ=class X{constructor(Q){var Z;if((0,E.default)(this,"id",++X.connectCount),(0,E.default)(this,"WebSocketPonyfill",void 0),(0,E.default)(this,"urlOptions",void 0),(0,E.default)(this,"keepAliveOpts",void 0),(0,E.default)(this,"encoder",void 0),(0,E.default)(this,"wsObservable",C(null)),(0,E.default)(this,"openPromise",null),this.WebSocketPonyfill=(Z=Q.WebSocketPonyfill)!==null&&Z!==void 0?Z:WebSocket,!this.WebSocketPonyfill)throw Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");this.urlOptions=Q.urlOptions,this.keepAliveOpts=Q.keepAlive,this.encoder=Q.encoder}get ws(){return this.wsObservable.get()}set ws(Q){this.wsObservable.next(Q)}isOpen(){return!!this.ws&&this.ws.readyState===this.WebSocketPonyfill.OPEN&&!this.openPromise}isClosed(){return!!this.ws&&(this.ws.readyState===this.WebSocketPonyfill.CLOSING||this.ws.readyState===this.WebSocketPonyfill.CLOSED)}async open(){var Q=this;if(Q.openPromise)return Q.openPromise;Q.id=++X.connectCount;let Z=SQ(Q.urlOptions).then((z)=>new Q.WebSocketPonyfill(z));Q.openPromise=Z.then(async(z)=>{if(Q.ws=z,z.binaryType="arraybuffer",z.addEventListener("message",function({data:Y}){if(Y==="PING")this.send("PONG")}),Q.keepAliveOpts.enabled)CQ(z,Q.keepAliveOpts);if(z.addEventListener("close",()=>{if(Q.ws===z)Q.ws=null}),await fQ(z),Q.urlOptions.connectionParams)z.send(await jQ(Q.urlOptions.connectionParams,Q.encoder))});try{await Q.openPromise}finally{Q.openPromise=null}}async close(){var Q=this;try{await Q.openPromise}finally{var Z;(Z=Q.ws)===null||Z===void 0||Z.close()}}};(0,E.default)(kQ,"connectCount",0);var y0=A(T(),1),h0=A(L(),1);var i=A(T(),1),JQ=A(L(),1),yQ=class{constructor(X){(0,i.default)(this,"links",void 0),(0,i.default)(this,"runtime",void 0),(0,i.default)(this,"requestId",void 0),this.requestId=0,this.runtime={},this.links=X.links.map((Q)=>Q(this.runtime))}$request(X){var Q;return o({links:this.links,op:(0,JQ.default)((0,JQ.default)({},X),{},{context:(Q=X.context)!==null&&Q!==void 0?Q:{},id:++this.requestId})}).pipe($())}async requestAsPromise(X){var Q=this;try{let Z=Q.$request(X);return(await v(Z)).result.data}catch(Z){throw O.from(Z)}}query(X,Q,Z){return this.requestAsPromise({type:"query",path:X,input:Q,context:Z===null||Z===void 0?void 0:Z.context,signal:Z===null||Z===void 0?void 0:Z.signal})}mutation(X,Q,Z){return this.requestAsPromise({type:"mutation",path:X,input:Q,context:Z===null||Z===void 0?void 0:Z.context,signal:Z===null||Z===void 0?void 0:Z.signal})}subscription(X,Q,Z){return this.$request({type:"subscription",path:X,input:Q,context:Z.context,signal:Z.signal}).subscribe({next(Y){switch(Y.result.type){case"state":{var K;(K=Z.onConnectionStateChange)===null||K===void 0||K.call(Z,Y.result);break}case"started":{var J;(J=Z.onStarted)===null||J===void 0||J.call(Z,{context:Y.context});break}case"stopped":{var G;(G=Z.onStopped)===null||G===void 0||G.call(Z);break}case"data":case void 0:{var H;(H=Z.onData)===null||H===void 0||H.call(Z,Y.result.data);break}}},error(Y){var K;(K=Z.onError)===null||K===void 0||K.call(Z,Y)},complete(){var Y;(Y=Z.onComplete)===null||Y===void 0||Y.call(Z)}})}};var hQ=Symbol.for("trpc_untypedClient"),gQ={query:"query",mutate:"mutation",subscribe:"subscription"},$Q=(X)=>{return gQ[X]};function vQ(X){let Q=b(({path:Z,args:z})=>{let Y=[...Z],K=$Q(Y.pop()),J=Y.join(".");return X[K](J,...z)});return _((Z)=>{if(Z===hQ)return X;return Q[Z]})}function HQ(X){let Q=new yQ(X);return vQ(Q)}var N8=A(L(),1);var V8=A(L(),1);var bQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(X,Q){function Z(Y){var K,J,G,H=2;for(typeof Symbol<"u"&&(J=Symbol.asyncIterator,G=Symbol.iterator);H--;){if(J&&(K=Y[J])!=null)return K.call(Y);if(G&&(K=Y[G])!=null)return new z(K.call(Y));J="@@asyncIterator",G="@@iterator"}throw TypeError("Object is not async iterable")}function z(Y){function K(J){if(Object(J)!==J)return Promise.reject(TypeError(J+" is not an object."));var G=J.done;return Promise.resolve(J.value).then(function(H){return{value:H,done:G}})}return z=function(G){this.s=G,this.n=G.next},z.prototype={s:null,n:null,next:function(){return K(this.n.apply(this.s,arguments))},return:function(G){var H=this.s.return;return H===void 0?Promise.resolve({value:G,done:!0}):K(H.apply(this.s,arguments))},throw:function(G){var H=this.s.return;return H===void 0?Promise.reject(G):K(H.apply(this.s,arguments))}},new z(Y)}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),B8=A(bQ(),1);var W8=A(L(),1);var _Q=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(X,Q){function Z(){var z=typeof SuppressedError=="function"?SuppressedError:function(G,H){var N=Error();return N.name="SuppressedError",N.error=G,N.suppressed=H,N},Y={},K=[];function J(G,H){if(H!=null){if(Object(H)!==H)throw TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(G)var N=H[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(N===void 0&&(N=H[Symbol.dispose||Symbol.for("Symbol.dispose")],G))var D=N;if(typeof N!="function")throw TypeError("Object is not disposable.");D&&(N=function(){try{D.call(H)}catch(F){return Promise.reject(F)}}),K.push({v:H,d:N,a:G})}else G&&K.push({d:H,a:G});return H}return{e:Y,u:J.bind(null,!1),a:J.bind(null,!0),d:function(){var H,N=this.e,D=0;function V(){for(;H=K.pop();)try{if(!H.a&&D===1)return D=0,K.push(H),Promise.resolve().then(V);if(H.d){var W=H.d.call(H.v);if(H.a)return D|=2,Promise.resolve(W).then(V,F)}else D|=1}catch(U){return F(U)}if(D===1)return N!==Y?Promise.reject(N):Promise.resolve();if(N!==Y)throw N}function F(W){return N=N!==Y?new z(W,N):W,V()}return V()}}}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),GQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(X,Q){function Z(z,Y){this.v=z,this.k=Y}Q.exports=Z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),dQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(X,Q){var Z=GQ();function z(Y){return new Z(Y,0)}Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),uQ=R({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(X,Q){var Z=GQ();function z(K){return function(){return new Y(K.apply(this,arguments))}}function Y(K){var J,G;function H(D,V){try{var F=K[D](V),W=F.value,U=W instanceof Z;Promise.resolve(U?W.v:W).then(function(B){if(U){var M=D==="return"?"return":"next";if(!W.k||B.done)return H(M,B);B=K[M](B).value}N(F.done?"return":"normal",B)},function(B){H("throw",B)})}catch(B){N("throw",B)}}function N(D,V){switch(D){case"return":J.resolve({value:V,done:!0});break;case"throw":J.reject(V);break;default:J.resolve({value:V,done:!1})}(J=J.next)?H(J.key,J.arg):G=null}this._invoke=function(D,V){return new Promise(function(F,W){var U={key:D,arg:V,resolve:F,reject:W,next:null};G?G=G.next=U:(J=G=U,H(D,V))})},typeof K.return!="function"&&(this.return=void 0)}Y.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Y.prototype.next=function(K){return this._invoke("next",K)},Y.prototype.throw=function(K){return this._invoke("throw",K)},Y.prototype.return=function(K){return this._invoke("return",K)},Q.exports=z,Q.exports.__esModule=!0,Q.exports.default=Q.exports}}),F8=A(_Q(),1),D8=A(dQ(),1),A8=A(uQ(),1),U8=A(L(),1);import{fileURLToPath as NQ}from"url";async function n(X){try{return(await fetch(`${X}/health`,{signal:AbortSignal.timeout(2000)})).ok}catch{return!1}}async function T8(X){try{return(await(await fetch(`${X}/health`)).json()).version||null}catch{return null}}async function mQ(X){let{spawn:Q}=await import("node:child_process"),{existsSync:Z}=await import("node:fs"),z=NQ(new URL("../bin/zen-core.ts",import.meta.url)),Y=NQ(new URL("./zen-core.js",import.meta.url)),K;if(Z(z))K=z;else K=Y;Q(process.argv[0],[K],{detached:!0,stdio:"ignore",env:{...process.env,ZEN_CORE_PORT:String(X)}}).unref()}async function cQ(X,Q){let Z=Date.now()+Q;while(Date.now()<Z){if(await n(X))return;await new Promise((z)=>setTimeout(z,300))}throw Error(`zen-core did not start within ${Q}ms`)}async function I8(X){let{existsSync:Q,readFileSync:Z,unlinkSync:z}=await import("node:fs"),{join:Y}=await import("node:path"),{homedir:K}=await import("node:os"),J=Y(K(),".zen-code","zen-core.pid");if(Q(J)){let N=parseInt(Z(J,"utf8").trim());if(!isNaN(N))try{process.kill(N,"SIGTERM");try{z(J)}catch{}return{stopped:!0,message:`zen-core (PID ${N}) stopped`}}catch(D){if(D.code==="ESRCH"){try{z(J)}catch{}return{stopped:!1,message:"zen-core was not running (stale PID file cleaned)"}}}}let H=`http://127.0.0.1:${X??Number(process.env.ZEN_CORE_PORT||8125)}`;if(!await n(H))return{stopped:!1,message:"zen-core is not running"};return{stopped:!1,message:"zen-core is running but PID file not found — kill manually"}}async function O8(X={}){let{port:Q=Number(process.env.ZEN_CORE_PORT||8125),spawnIfNotRunning:Z=!1,timeout:z=1e4}=X,Y=`http://127.0.0.1:${Q}`;if(!await n(Y)){if(!Z)throw Error(`zen-core is not running on port ${Q}`);await mQ(Q),await cQ(Y,z)}return{trpc:HQ({links:[c({url:`${Y}/api/trpc`})]}),apiUrl:`${Y}/api/langgraph`,baseUrl:Y}}export{I8 as stopZenCore,O8 as connectToZenCore,T8 as checkZenCoreVersion};
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{R as J}from"./chunk-5e2s5jvw.js";import"./chunk-p6c1xbd5.js";import"./chunk-xtr6s7kh.js";import{Wl as w}from"./chunk-x17jyjan.js";var K=String.prototype.repeat;String.prototype.repeat=function(f){if(typeof f!=="number"||!isFinite(f)||f<0)f=0;return K.call(this,Math.floor(f))};var A=process.argv.slice(2);process.env.LG_TEMP_MESSAGE="true";async function L(){let{initErrorInterceptor:f}=await import("./chunk-4vh3dxeg.js");f();let H=A.indexOf("--yolo");if(H!==-1)process.env.YOLO_MODE="true",A.splice(H,1);if(J("~/.zen-code/data/sessions.db"),A[0]==="stop"){let{stopZenCore:q}=await import("./chunk-phw7yp5t.js"),j=await q();console.log(j.message),process.exit(j.stopped?0:1)}else if(A.includes("--restart")){let{stopZenCore:q,connectToZenCore:j}=await import("./chunk-phw7yp5t.js"),B=await q();console.log(B.message),await new Promise((G)=>setTimeout(G,1000)),console.log("Starting zen-core...");let F=await j({spawnIfNotRunning:!0,timeout:15000});globalThis.__zenCoreConnection=F,await import("./app.js")}else if(A[0]==="status"){let{checkZenCoreVersion:q}=await import("./chunk-phw7yp5t.js"),B=`http://127.0.0.1:${Number(process.env.ZEN_CORE_PORT||8125)}`;try{let F=await fetch(`${B}/health`,{signal:AbortSignal.timeout(2000)});if(F.ok){let G=await F.json();console.log(`zen-core running port=${G.port} version=${G.version}`)}else console.log("zen-core stopped")}catch{console.log("zen-core stopped")}process.exit(0)}else if(A[0]==="init")console.log("Please zen-code and use /m to configure models");else if(A[0]==="keyboard")import("./zen-keyboard.js");else if(A[0]==="-p"||A[0]==="--prompt"){let q=A.slice(1).join(" "),{runNonInteractive:j}=await import("./nonInteractive.js");await j(q,!1)}else if(await M()){let{runNonInteractive:j}=await import("./nonInteractive.js");await j(void 0,!0)}else{console.log("Starting zen-core...");let{connectToZenCore:j}=await import("./chunk-phw7yp5t.js"),B=await j({spawnIfNotRunning:!0,timeout:15000});globalThis.__zenCoreConnection=B,await import("./app.js")}}async function M(){return new Promise((f)=>{if(process.stdin.isTTY){f(!1);return}let q=process.stdin.read();if(q)process.stdin.unshift(q),f(!0);else setTimeout(()=>{let j=process.stdin.read();if(j)process.stdin.unshift(j),f(!0);else f(!1)},100)})}L().catch((f)=>{console.error("❌ 执行失败:",f),process.exit(1)});
2
+ import{R as J}from"./chunk-5e2s5jvw.js";import"./chunk-p6c1xbd5.js";import"./chunk-xtr6s7kh.js";import{Wl as w}from"./chunk-x17jyjan.js";var K=String.prototype.repeat;String.prototype.repeat=function(f){if(typeof f!=="number"||!isFinite(f)||f<0)f=0;return K.call(this,Math.floor(f))};var A=process.argv.slice(2);process.env.LG_TEMP_MESSAGE="true";async function L(){let{initErrorInterceptor:f}=await import("./chunk-4vh3dxeg.js");f();let H=A.indexOf("--yolo");if(H!==-1)process.env.YOLO_MODE="true",A.splice(H,1);if(J("~/.zen-code/data/sessions.db"),A[0]==="stop"){let{stopZenCore:q}=await import("./chunk-j35ee7sc.js"),j=await q();console.log(j.message),process.exit(j.stopped?0:1)}else if(A.includes("--restart")){let{stopZenCore:q,connectToZenCore:j}=await import("./chunk-j35ee7sc.js"),B=await q();console.log(B.message),await new Promise((G)=>setTimeout(G,1000)),console.log("Starting zen-core...");let F=await j({spawnIfNotRunning:!0,timeout:15000});globalThis.__zenCoreConnection=F,await import("./app.js")}else if(A[0]==="status"){let{checkZenCoreVersion:q}=await import("./chunk-j35ee7sc.js"),B=`http://127.0.0.1:${Number(process.env.ZEN_CORE_PORT||8125)}`;try{let F=await fetch(`${B}/health`,{signal:AbortSignal.timeout(2000)});if(F.ok){let G=await F.json();console.log(`zen-core running port=${G.port} version=${G.version}`)}else console.log("zen-core stopped")}catch{console.log("zen-core stopped")}process.exit(0)}else if(A[0]==="init")console.log("Please zen-code and use /m to configure models");else if(A[0]==="keyboard")import("./zen-keyboard.js");else if(A[0]==="-p"||A[0]==="--prompt"){let q=A.slice(1).join(" "),{runNonInteractive:j}=await import("./nonInteractive.js");await j(q,!1)}else if(await M()){let{runNonInteractive:j}=await import("./nonInteractive.js");await j(void 0,!0)}else{console.log("Starting zen-core...");let{connectToZenCore:j}=await import("./chunk-j35ee7sc.js"),B=await j({spawnIfNotRunning:!0,timeout:15000});globalThis.__zenCoreConnection=B,await import("./app.js")}}async function M(){return new Promise((f)=>{if(process.stdin.isTTY){f(!1);return}let q=process.stdin.read();if(q)process.stdin.unshift(q),f(!0);else setTimeout(()=>{let j=process.stdin.read();if(j)process.stdin.unshift(j),f(!0);else f(!1)},100)})}L().catch((f)=>{console.error("❌ 执行失败:",f),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zen-code",
3
- "version": "5.0.1",
3
+ "version": "5.0.2",
4
4
  "description": "",
5
5
  "main": "./dist/cli.js",
6
6
  "bin": "./dist/cli.js",