dimcode 0.0.13-beta.1 → 0.0.14-beta.1
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/cli.mjs +3 -3
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -2025,7 +2025,7 @@ ${["","Debug runtime values:",`DEBUG_SERVER_BASE_URL=${Q}`,`DEBUG_SESSION_ID=${B
|
|
|
2025
2025
|
`);return{async*receiveMessage(U){yield{role:"assistant",content:B,metadata:{done:!0,error:!0,stopReason:"error",originalEventType:"done"}}}}}import{appendFileSync as ZaA}from"node:fs";function l91(A){return A.includes("-h")||A.includes("--help")}function n91(){return["Usage:"," dim Interactive TUI",' dim "prompt" One-shot execution (stdout, tools auto-approved)'," dim exec [-c dir] <prompt> One-shot execution (alias)"," dim auth [provider] Authenticate provider (default: codex)"," dim version Print version info"," dim upgrade [version] Upgrade CLI"," dim server [--host H] [--port N] Start API server"," dim acp Start ACP server for editor integrations","","Options:"," --approvals auto|all Tool approval mode (default: all)"," --auto-approve, --yes, -y Shorthand for --approvals all"," --cols N --rows N Terminal size override"," --no-mouse Disable mouse support"," --no-alt-screen Disable alternate screen"," --debug Enable debug logging"," -h, --help Show this help","","Notes:"," - All tools are auto-approved by default. Use --approvals auto to prompt for risky tools."," - Auto-update is enabled by default (set DIMCODE_DISABLE_AUTOUPDATE=1 to disable)."].join(`
|
|
2026
2026
|
`)}function Kv1(A,Q){let B=Q?.stdout,U=Number.isFinite(B?.columns)?Number(B?.columns):80,J=Number.isFinite(B?.rows)?Number(B?.rows):24,Y=U,V=J,E=!1,F=!1,I="dim",W="home",Z=null,G=null,X=null,K=!0,C=!0,M="all",q=!1,L=0,O=()=>{if(L+1>=A.length)return;return L+=1,A[L]};for(;L<A.length;L++){let w=A[L];if(w==="--cols")Y=Number.parseInt(O()??"",10),E=!0;else if(w==="--rows")V=Number.parseInt(O()??"",10),F=!0;else if(w==="--app"||w==="--example")I=String(O()??I);else if(w==="--route"||w==="--initial-route")W=String(O()??W);else if(w==="--approvals"||w==="--approval"){let R=String(O()??"").trim().toLowerCase();if(R==="auto")M="auto";else if(R==="all"||R==="on"||R==="yes"||R==="true"||R==="1")M="all"}else if(w==="--auto-approve"||w==="--yes"||w==="-y")M="all";else if(w==="--record")Z=O()??null;else if(w==="--replay")G=O()??null;else if(w==="--snapshot")X=O()??null;else if(w==="--no-mouse")K=!1;else if(w==="--no-alt-screen")C=!1;else if(w==="--debug")q=!0}return Y=Math.max(10,Math.floor(Y||U)),V=Math.max(5,Math.floor(V||J)),{cols:Y,rows:V,sizeLocked:E||F,app:I,initialRoute:W,recordPath:Z,replayPath:G,snapshotPath:X,enableMouse:K,altScreen:C,approvals:M,debug:q}}var mI=C9(nd(),1);import{spawn as Wx1}from"node:child_process";import{createWriteStream as p40,existsSync as i40,statSync as l40}from"node:fs";import{chmod as G51,mkdir as Zx1,readFile as n40,rename as Dx1,stat as a40,unlink as r40,writeFile as o40}from"node:fs/promises";import DC from"node:path";import{Readable as s40}from"node:stream";import{pipeline as t40}from"node:stream/promises";qL();function S0(A){return String(A??"").trim()||void 0}function UJ(A){if(typeof A==="number"&&Number.isFinite(A))return A;let Q=String(A??"").trim();if(!Q)return;let B=Number(Q);return Number.isFinite(B)?B:void 0}function OL(A){return JSON.parse(JSON.stringify(A))}async function cV(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=S0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U,ad);let J=S0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,h_,ad);return B.resolve(Q(),h_,ad)}async function Z51(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=S0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U);let J=S0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,h_);return B.resolve(Q(),h_)}async function LL(A){let Q=await cV(A),[{readFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=U.join(Q,"cache.json");try{let Y=await B(J,"utf8"),V=JSON.parse(Y);if(V&&typeof V==="object"&&V.version===1)return{dir:Q,filePath:J,cache:V}}catch{}return{dir:Q,filePath:J,cache:{version:1,updatedAt:0}}}async function sd(A){let Q=await Z51(A),[{readFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=U.join(Q,"config.json");try{let Y=await B(J,"utf8"),V=JSON.parse(Y);if(V&&typeof V==="object"&&V.version===1)return{dir:Q,filePath:J,config:V}}catch{}return{dir:Q,filePath:J,config:{version:1,updatedAt:0}}}async function ZC(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),E=V.dirname(A);await B(E,{recursive:!0});let F=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${F}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
|
|
2027
2027
|
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}async function TK(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),E=V.dirname(A);await B(E,{recursive:!0});let F=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${F}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
|
|
2028
|
-
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var h40="upgrade-toast.json";function WG(A){let Q=String(A??"").trim();if(!Q)return;let B=globalThis?.__DIMCODE_UPGRADE_TOAST__??globalThis?.__GOATCHAIN_UPGRADE_TOAST__;if(typeof B==="function")try{B(Q);return}catch{}b40(Q)}async function b40(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await cV(process.env);await Q(J,{recursive:!0});let Y=U.join(J,h40),V=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,V,"utf8")}catch{}}import{existsSync as m40,readFileSync as u40}from"node:fs";import D51 from"node:path";import{fileURLToPath as d40}from"node:url";function ZG(){let A="0.0.
|
|
2028
|
+
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var h40="upgrade-toast.json";function WG(A){let Q=String(A??"").trim();if(!Q)return;let B=globalThis?.__DIMCODE_UPGRADE_TOAST__??globalThis?.__GOATCHAIN_UPGRADE_TOAST__;if(typeof B==="function")try{B(Q);return}catch{}b40(Q)}async function b40(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await cV(process.env);await Q(J,{recursive:!0});let Y=U.join(J,h40),V=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,V,"utf8")}catch{}}import{existsSync as m40,readFileSync as u40}from"node:fs";import D51 from"node:path";import{fileURLToPath as d40}from"node:url";function ZG(){let A="0.0.14-beta.1".trim();if(A)return{version:A,source:"injected"};let Q=c40();if(Q)return{version:Q,source:"package"};return null}function c40(){try{let A=D51.dirname(d40(import.meta.url));for(let Q=0;Q<6;Q++){let B=D51.join(A,"package.json");if(m40(B)){let J=u40(B,"utf8"),Y=JSON.parse(J),V=typeof Y?.version==="string"?Y.version.trim():"";if(V)return V}let U=D51.dirname(A);if(U===A)break;A=U}}catch{}return null}var Gx1="binary-upgrade.json",Xx1=1e4,X51="gitlab.bfbops.com",Vx1="nextim/goatagent",Ex1="nextim/goatagent",Kx1="https://api.github.com",e40=5000,A80=30000,Fx1=new Set;function Q80(){let A=String(process.env.DIMCODE_BINARY_UPDATE_CHECK_TIMEOUT_MS??process.env.GOATCHAIN_BINARY_UPDATE_CHECK_TIMEOUT_MS??"").trim(),Q=Number(A);return Number.isFinite(Q)&&Q>100?Math.floor(Q):e40}function B80(){let A=String(process.env.DIMCODE_BINARY_UPDATE_DOWNLOAD_TIMEOUT_MS??process.env.GOATCHAIN_BINARY_UPDATE_DOWNLOAD_TIMEOUT_MS??"").trim(),Q=Number(A);return Number.isFinite(Q)&&Q>100?Math.floor(Q):A80}function zL(){try{let A=String(process.execPath??"").trim();if(!A)return"npm";let B=DC.dirname(A).toLowerCase().replace(/\\/g,"/");if(B.includes(".bun/bin")||B.endsWith(".bun/bin"))return"bun";if(B.includes("bun/install/global/bin"))return"bun";if(B.includes(".npm-global")||B.includes("npm-global"))return"npm";if(typeof globalThis.Bun<"u")return"bun";return"npm"}catch{return"npm"}}function DG(A=process){try{let Q=String(A.execPath??"").trim();if(!Q)return!1;let B=DC.basename(Q).toLowerCase();if(B==="node"||B.startsWith("node."))return!1;if(B==="bun"||B.startsWith("bun."))return!1;return!0}catch{return!1}}function K51(A=process.platform,Q=process.arch){if(A==="darwin"&&Q==="arm64")return"bun-darwin-arm64";if(A==="darwin"&&Q==="x64")return"bun-darwin-x64";if(A==="linux"&&Q==="x64")return"bun-linux-x64";if(A==="linux"&&Q==="arm64")return"bun-linux-arm64";if(A==="win32"&&Q==="x64")return"bun-windows-x64";return null}function U80(A,Q=process.platform){return Q==="win32"?`dim-${A}.exe`:`dim-${A}`}function J80(A){let Q=String(A??"").trim();if(!Q)return null;let B=Q.startsWith("v")?Q.slice(1):Q;return mI.default.valid(B)?B:null}function Y80(A){return String(A??"").trim().replace(/[^\w.-]/g,"_")}function V80(A,Q){let B=Array.isArray(A?.assets)?A.assets:[];for(let U of B){let J=typeof U?.name==="string"?U.name:"",Y=typeof U?.browser_download_url==="string"?U.browser_download_url:"";if(J===Q&&Y)return{name:J,url:Y}}return null}function E80(A,Q){let B=Array.isArray(A?.assets?.links)?A.assets.links:[];for(let U of B){let J=typeof U?.name==="string"?U.name:"",Y=typeof U?.direct_asset_url==="string"?U.direct_asset_url:"",V=typeof U?.url==="string"?U.url:"",E=Y||V;if(J===Q&&E)return{name:J,url:E}}return null}async function $x1(){if(process.env.GOATCHAIN_BINARY_LAUNCHED==="1")return!1;if(!DG())return!1;let A=ZG()?.version;if(!A||!mI.default.valid(A))return!1;let Q=await I80(process.env);if(!Q)return!1;if(!mI.default.valid(Q.cliVersion)||!mI.default.gt(Q.cliVersion,A))return!1;if(!Cx1(Q.binaryPath))return!1;let B={...process.env,DIMCODE_BINARY_LAUNCHED:"1",GOATCHAIN_BINARY_LAUNCHED:"1"},U=process.argv.slice(1);try{return Wx1(Q.binaryPath,U,{stdio:"inherit",env:B}).unref(),!0}catch{return!1}}async function Nx1(){if((process.env.DIMCODE_DISABLE_AUTOUPDATE??process.env.GOATCHAIN_DISABLE_AUTOUPDATE)==="1")return null;if(!DG())return null;let A=ZG()?.version;if(!A||!mI.default.valid(A))return null;let Q=await G80(process.env);if(!Q)return null;if(!mI.default.valid(Q.version)||mI.default.gte(A,Q.version))return null;if((process.env.DIMCODE_AUTOUPDATE??process.env.GOATCHAIN_AUTOUPDATE)!=="0"){if(Fx1.has(Q.version))return null;return Fx1.add(Q.version),N80(Q.version),`Update available: dim ${Q.version} (current: ${A}). Installing in background; restart to use it.`}return`Update available: dim ${Q.version} (current: ${A}). Run: dim upgrade`}async function Hx1(A){if(!DG()){console.error("Binary upgrade is only supported for the standalone compiled dim binary.");let V=zL();console.error(`If you installed via ${V}, run: ${V==="bun"?"bun":"npm"} install -g dimcode@latest`),process.exitCode=1;return}let Q=Array.from(A),B=Q.includes("--quiet")||Q.includes("--background"),U=Q.includes("--check"),J=F80(Q),Y=J&&J!=="latest"?J:"latest";try{let V=await qx1(Y,process.env);if(!V)throw Error("failed to resolve release info");let E=ZG()?.version;if(U){if(E&&mI.default.valid(E)&&mI.default.valid(V.version)&&mI.default.gte(E,V.version)){if(!B)console.log(`Already up to date: ${E}`);return}if(!B)console.log(`Update available: ${V.version}${E?` (current: ${E})`:""}`);return}let I=`Update installed: dim ${(await H80(V,process.env)).version}. Restart to use the new version.`;if(!B)console.log(I);WG(I)}catch(V){let F=`Binary upgrade failed: ${V instanceof Error?V.message:String(V)}`;if(!B)console.error(F);WG(F),process.exitCode=1}}function F80(A){for(let Q of A)if(!Q.startsWith("-"))return Q;return null}function Cx1(A){try{if(!i40(A))return!1;return l40(A).size>Xx1}catch{return!1}}async function I80(A){try{let Q=await cV(A),B=DC.join(Q,"bin",Gx1),U=await n40(B,"utf8"),J=JSON.parse(U);if(!J||typeof J!=="object")return null;if(J.version!==1)return null;let Y=typeof J.cliVersion==="string"?J.cliVersion:"",V=typeof J.binaryPath==="string"?J.binaryPath:"",E=typeof J.target==="string"?J.target:"",F=J.provider==="github"||J.provider==="gitlab"?J.provider:null,I=typeof J.project==="string"?J.project:"",W=typeof J.assetName==="string"?J.assetName:"",Z=typeof J.installedAt==="number"?J.installedAt:0,G=typeof J.host==="string"?J.host:void 0;if(!Y||!V||!E||!F||!I||!W)return null;return{version:1,installedAt:Z,cliVersion:Y,target:E,provider:F,project:I,host:G,assetName:W,binaryPath:V}}catch{return null}}async function Ix1(A,Q){let B=await cV(A),U=DC.join(B,"bin");await Zx1(U,{recursive:!0});let J=DC.join(U,Gx1),Y=globalThis.process?.pid??"p",V=`${Date.now()}-${Math.random().toString(16).slice(2)}`,E=`${J}.${Y}.${V}.tmp`;await o40(E,`${JSON.stringify(Q,null,2)}
|
|
2029
2029
|
`,{encoding:"utf8",mode:384}),await Dx1(E,J);try{await G51(J,384)}catch{}}function W80(A){if(String(A.DIMCODE_BINARY_UPDATE_PROVIDER??A.GOATCHAIN_BINARY_UPDATE_PROVIDER??"").trim().toLowerCase()==="github")return"github";if("".trim().toLowerCase()==="github")return"github";return"gitlab"}function $51(A){let Q=W80(A),B=Z80(A),U=D80(A,Q);return{provider:Q,host:U.host,project:U.project,githubApiBaseUrl:B}}function Z80(A){let Q=String(A.DIMCODE_BINARY_UPDATE_GITHUB_API_BASE_URL??A.GOATCHAIN_BINARY_UPDATE_GITHUB_API_BASE_URL??"").trim();if(Q)return Q.replace(/\/+$/,"");let B="".trim();if(B)return B.replace(/\/+$/,"");return Kx1}function D80(A,Q){if(Q==="github"){let V="".trim();return{project:String(A.DIMCODE_BINARY_UPDATE_REPO??A.GOATCHAIN_BINARY_UPDATE_REPO??V??Ex1).trim()||Ex1}}let B="".trim(),U="".trim(),J=String(A.DIMCODE_BINARY_UPDATE_GITLAB_HOST??A.GOATCHAIN_BINARY_UPDATE_GITLAB_HOST??B??X51).trim()||X51,Y=String(A.DIMCODE_BINARY_UPDATE_PROJECT??A.GOATCHAIN_BINARY_UPDATE_PROJECT??U??Vx1).trim()||Vx1;return{host:J,project:Y}}function Mx1(A,Q){if(Q==="github"){let U=String(A.DIMCODE_GITHUB_TOKEN??A.GOATCHAIN_GITHUB_TOKEN??A.GITHUB_TOKEN??"").trim();return U?{Authorization:`Bearer ${U}`}:{}}let B=String(A.DIMCODE_GITLAB_TOKEN??A.GOATCHAIN_GITLAB_TOKEN??A.GITLAB_TOKEN??"").trim();if(!B)return{};if(B.startsWith("glpat-"))return{"PRIVATE-TOKEN":B};return{Authorization:`Bearer ${B}`}}async function G80(A){return await qx1("latest",A)}async function qx1(A,Q){let B=$51(Q),U=B.provider,J={host:B.host,project:B.project},Y=Mx1(Q,U),V=K51();if(!V)return null;let E=U80(V),F=A==="latest"?["latest"]:X80(A);for(let I of F){let W=await K80({provider:U,host:J.host,project:J.project,tag:I,headers:Y,githubApiBaseUrl:B.githubApiBaseUrl});if(!W)continue;let Z=String(W?.tag_name??W?.tagName??"").trim()||(I==="latest"?"latest":I),G=J80(Z);if(!G)continue;let X=U==="github"?V80(W,E):E80(W,E);if(!X)continue;return{provider:U,host:J.host,project:J.project,tag:Z,version:G,asset:X,target:V,assetName:E}}return null}function X80(A){let Q=String(A??"").trim();if(!Q)return[];if(Q==="latest")return["latest"];if(Q.startsWith("v"))return[Q,Q.slice(1)];return[`v${Q}`,Q]}async function K80(A){let Q=new AbortController,B=setTimeout(()=>Q.abort(),Q80());try{let U=$80(A),J=await fetch(U,{headers:{Accept:"application/json",...A.headers},signal:Q.signal});if(!J.ok)return null;return await J.json()}catch{return null}finally{clearTimeout(B)}}function $80(A){if(A.provider==="github"){let U=String(A.githubApiBaseUrl||Kx1).replace(/\/+$/,"");if(A.tag==="latest")return`${U}/repos/${A.project}/releases/latest`;return`${U}/repos/${A.project}/releases/tags/${encodeURIComponent(A.tag)}`}let Q=A.host||X51,B=encodeURIComponent(A.project);if(A.tag==="latest")return`https://${Q}/api/v4/projects/${B}/releases/permalink/latest`;return`https://${Q}/api/v4/projects/${B}/releases/${encodeURIComponent(A.tag)}`}function N80(A){try{Wx1(process.execPath,["upgrade",A,"--background"],{stdio:"ignore",detached:!0,env:{...process.env,DIMCODE_BINARY_UPGRADE_CHILD:"1",GOATCHAIN_BINARY_UPGRADE_CHILD:"1"}}).unref()}catch{}}async function H80(A,Q){let B=await cV(Q),U=DC.join(B,"bin");await Zx1(U,{recursive:!0});let J=process.platform==="win32"?".exe":"",Y=Y80(A.version),V=DC.join(U,`dim-${A.target}-${Y}${J}`);if(Cx1(V)){let I={version:1,installedAt:Date.now(),cliVersion:A.version,target:A.target,provider:A.provider,project:A.project,host:A.host,assetName:A.assetName,binaryPath:V};return await Ix1(Q,I),{version:A.version,binaryPath:V}}let E=`${V}.${process.pid}.${Date.now()}.tmp`;if(await C80(A.asset.url,E,Mx1(Q,A.provider)),process.platform!=="win32")try{await G51(E,493)}catch{}try{await r40(V)}catch{}await Dx1(E,V);try{if(process.platform!=="win32")await G51(V,493)}catch{}let F={version:1,installedAt:Date.now(),cliVersion:A.version,target:A.target,provider:A.provider,project:A.project,host:A.host,assetName:A.assetName,binaryPath:V};return await Ix1(Q,F),{version:A.version,binaryPath:V}}async function C80(A,Q,B){let U=new AbortController,J=setTimeout(()=>U.abort(),B80());try{let Y=await fetch(A,{redirect:"follow",headers:B,signal:U.signal});if(!Y.ok)throw Error(`download failed (${Y.status})`);let V=Y.body;if(!V)throw Error("download response has no body");if(await t40(s40.fromWeb(V),p40(Q)),(await a40(Q)).size<=Xx1)throw Error("downloaded file is too small")}finally{clearTimeout(J)}}import*as PbA from"node:path";function x21(A){let Q=A.processEnv,B=(Z)=>{let G=String(Z??"").trim().toLowerCase();return G==="1"||G==="true"||G==="yes"||G==="on"},U="agent",J=B(Q.DIMCODE_LONG_RUNNING??Q.GOATCHAIN_LONG_RUNNING??A.context.env.DIMCODE_LONG_RUNNING??A.context.env.GOATCHAIN_LONG_RUNNING),Y=null,V=null,E=null,F=async()=>{if(Y)return Y;if(V)return V;if(V=(async()=>{try{let Z=(()=>{let S=String(Q.DIMCODE_AGENT_WORKER??Q.GOATCHAIN_AGENT_WORKER??"").trim().toLowerCase();return S==="1"||S==="true"||S==="yes"||S==="on"})(),G=String(Q.DIMCODE_PROVIDER_ADAPTER||Q.GOATCHAIN_PROVIDER_ADAPTER||A.context.env.DIMCODE_PROVIDER_ADAPTER||A.context.env.GOATCHAIN_PROVIDER_ADAPTER||"").trim().toLowerCase(),X=G==="openai"||G==="openai-responses"||G==="gemini"||G==="anthropic"?G:"",K=Boolean(String(Q.OPENAI_API_KEY||A.context.env.OPENAI_API_KEY||"").trim()),C=Boolean(String(Q.GOOGLE_API_KEY||A.context.env.GOOGLE_API_KEY||"").trim()),M=Boolean(String(Q.ANTHROPIC_API_KEY||A.context.env.ANTHROPIC_API_KEY||"").trim()),q=Number(K)+Number(C)+Number(M);if(!X&&q>1)throw Error("Multiple provider API keys detected. Set DIMCODE_PROVIDER_ADAPTER or GOATCHAIN_PROVIDER_ADAPTER to choose a provider.");let L=X||(q===1?M?"anthropic":C?"gemini":"openai":"openai"),O=L==="gemini"?Q.DIMCODE_GEMINI_BASE_URL||Q.GOATCHAIN_GEMINI_BASE_URL||A.context.env.DIMCODE_GEMINI_BASE_URL||A.context.env.GOATCHAIN_GEMINI_BASE_URL:L==="anthropic"?Q.DIMCODE_ANTHROPIC_BASE_URL||Q.GOATCHAIN_ANTHROPIC_BASE_URL||A.context.env.DIMCODE_ANTHROPIC_BASE_URL||A.context.env.GOATCHAIN_ANTHROPIC_BASE_URL:Q.DIMCODE_OPENAI_BASE_URL||Q.GOATCHAIN_OPENAI_BASE_URL||Q.OPENAI_BASE_URL||A.context.env.DIMCODE_OPENAI_BASE_URL||A.context.env.GOATCHAIN_OPENAI_BASE_URL||A.context.env.OPENAI_BASE_URL,w=L==="gemini"?Q.GOOGLE_API_KEY||A.context.env.GOOGLE_API_KEY:L==="anthropic"?Q.ANTHROPIC_API_KEY||A.context.env.ANTHROPIC_API_KEY:Q.OPENAI_API_KEY||A.context.env.OPENAI_API_KEY,R={systemPrompt:A.context.system,modelId:String(Q.DIMCODE_MODEL||Q.GOATCHAIN_MODEL||A.context.env.DIMCODE_MODEL||A.context.env.GOATCHAIN_MODEL||"gpt-4.1-mini"),adapter:L,baseUrl:O,apiKey:w,cliTools:!0,subagents:!0,stateDir:A.stateDir,tools:A.tools,mcpServers:A.mcpServers,forcedSkills:A.forcedSkills};if(Z)return(await Promise.resolve().then(() => (rhA(),ahA))).createGoatChainWorkerAgent(R);return(await Promise.resolve().then(() => (v21(),k21))).createGoatChainNodeAgent(R)}catch(Z){return console.warn("[dimcode] Failed to start DimCode agent:",Z),(await Promise.resolve().then(() => ohA)).createErrorGoatChainAgent(Z)}})(),Y=await V,E=Y?.__sessions??null,V=null,U&&typeof Y.setMode==="function")try{await Y.setMode(U)}catch{}if(typeof Y.setLongRunning==="function")try{await Y.setLongRunning(J)}catch{}return Y},I=async()=>{if(E)return E;return E=(await F())?.__sessions??null,E};return{__sessions:{async list(){return(await I())?.list?.()??[]},async get(Z){return(await I())?.get?.(Z)??null},async create(){return(await I())?.create?.()??null},async destroy(Z){let G=await I();if(typeof G?.destroy==="function")await G.destroy(Z)},async interrupt(Z){let G=await I();if(typeof G?.interrupt==="function")return await G.interrupt(Z);return!1},async createWithMessages(Z){return(await I())?.createWithMessages?.(Z)??null},async rename(Z,G){return(await I())?.rename?.(Z,G)??null},async updateMetadata(Z,G){return(await I())?.updateMetadata?.(Z,G)??null}},async*receiveMessage(Z,G){yield*(await F()).receiveMessage(Z,G)},setMode(Z){if(U=Z,Y&&typeof Y.setMode==="function")try{Y.setMode(Z)}catch{}},getMode(){if(Y&&typeof Y.getMode==="function")return Y.getMode();return U},setLongRunning(Z){if(J=Z,Y&&typeof Y.setLongRunning==="function")try{Y.setLongRunning(Z)}catch{}},getLongRunning(){if(Y&&typeof Y.getLongRunning==="function")return Y.getLongRunning();return J},async triggerManualCompression(Z){let X=(await F()).triggerManualCompression;if(typeof X==="function")return await X(Z);return{success:!1,error:"Manual compression unavailable"}},invalidateSession(Z){if(Y&&typeof Y.invalidateSession==="function")try{Y.invalidateSession(Z);return}catch{}F().then((G)=>{let X=G?.invalidateSession;if(typeof X==="function")X(Z)})}}}TO();var shA=`You are DimCode, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
|
|
2030
2030
|
|
|
2031
2031
|
IMPORTANT: Refuse to write code or explain code that may be used maliciously; even if the user claims it is for educational purposes. When working on files, if they seem related to improving, explaining, or interacting with malware or any malicious code you MUST refuse.
|
|
@@ -2132,7 +2132,7 @@ user: Where are errors from the client handled?
|
|
|
2132
2132
|
assistant: Clients are marked as failed in the \`connectToServer\` function in src/services/process.ts:712.
|
|
2133
2133
|
</example>
|
|
2134
2134
|
`;LV();import{webcrypto as ehA}from"node:crypto";var thA="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var uL2=128,_O,pT;function dL2(A){if(!_O||_O.length<A)_O=Buffer.allocUnsafe(A*uL2),ehA.getRandomValues(_O),pT=0;else if(pT+A>_O.length)ehA.getRandomValues(_O),pT=0;pT+=A}function h21(A=21){dL2(A|=0);let Q="";for(let B=pT-A;B<pT;B++)Q+=thA[_O[B]&63];return Q}LV();function IK(A){let Q=A&&typeof A==="object"?A:{},B=UJ(Q.context),U=UJ(Q.output);if(B==null&&U==null)return;return{...B!=null?{context:B}:{},...U!=null?{output:U}:{}}}var cL2="cp_";function AbA(A){let Q=S0(A);if(Q&&K4(Q))return Q;return`${cL2}${h21(10)}`}function pL2(A){let Q=S0(A);if(Q==="openai"||Q==="openai-responses"||Q==="gemini"||Q==="anthropic")return Q;return}function lT1(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=S0(B?.id);if(!U)continue;let J=S0(B?.name),Y=IK(B?.limit);Q.push({id:U,...J?{name:J}:{},...Y?{limit:Y}:{}})}return Q}function iL2(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=S0(B?.id),J=S0(B?.name),Y=pL2(B?.adapter);if(!U||!J||!Y)continue;Q.push({id:AbA(U),name:J,adapter:Y,baseUrl:S0(B?.baseUrl),apiKey:S0(B?.apiKey),models:lT1(B?.models)})}return Q}function lL2(A){let Q=A?.customProvider??{},B=S0(Q.baseUrl),U=S0(Q.apiKey),J=lT1(Q.models);return Boolean(B||U||J.length)}function nL2(A){let Q=A?.customProvider??{};return{id:AbA(void 0),name:"Custom",adapter:"openai",baseUrl:S0(Q.baseUrl),apiKey:S0(Q.apiKey),models:lT1(Q.models)}}function b21(A){let Q=A.settings??{},B=!1,U=iL2(Q.customProviders);if(!U.length&&lL2(Q))U=[nL2(Q)],B=!0;if(U.length){Q.customProviders=U;let J={...Q.activeModelByProvider??{}};if(_5(Q.providerId))Q.providerId=U[0].id,B=!0;if(J.custom){if(!J[U[0].id])J[U[0].id]=J.custom;delete J.custom,Q.activeModelByProvider=J,B=!0}}if(!A.settings&&Object.keys(Q).length)A.settings=Q;return{customProviders:U,migrated:B}}var nT1={websearch:{apiKey:"",apiEndpoint:"https://google.serper.dev/search?format=json",numResults:10},mcpServers:[]};async function QbA(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=S0(A.DIMCODE_HOME??A.GOATCHAIN_HOME),J;if(U)J=B.resolve(U);else{let V=S0(A.XDG_CONFIG_HOME);if(V)J=B.resolve(V,"dimcode");else J=B.resolve(Q(),".dimcode")}let Y=B.join(J,"tools.json");try{let{readFile:V}=await import("node:fs/promises"),E=await V(Y,"utf8"),F=JSON.parse(E);if(F&&typeof F==="object"&&F.version===1)return{dir:J,filePath:Y,tools:F}}catch{}return{dir:J,filePath:Y,tools:{version:1,updatedAt:0}}}async function m21(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),E=V.dirname(A);await B(E,{recursive:!0});let F=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${F}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
|
|
2135
|
-
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function BbA(A){let Q=A.prev.settings??{},B=A.store.state,J=B?.tools?.websearch??{},Y=Array.isArray(B?.mcp?.servers)?B.mcp.servers:[],V={...Q,websearch:{apiKey:J.apiKey??void 0,apiEndpoint:J.apiEndpoint??void 0,numResults:J.numResults??void 0},mcpServers:Y.length?JSON.parse(JSON.stringify(Y)):void 0};return{version:1,updatedAt:Date.now(),settings:V}}function UbA(A,Q){let B=A.settings??{},U=B.websearch??{},J=Array.isArray(B.mcpServers)?B.mcpServers:[];if(!Q.tools)return;if(Q.tools.websearch)Q.tools.websearch.apiKey=S0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=S0(U.apiEndpoint)??nT1.websearch.apiEndpoint,Q.tools.websearch.numResults=UJ(U.numResults)??nT1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...nT1.mcpServers]}async function dm(A){let Q=String(A.env.DIMCODE_FAST_START??A.env.GOATCHAIN_FAST_START??"").trim().toLowerCase(),B=Q==="1"||Q==="true"||Q==="yes"||Q==="on",U=S0("0.0.13-beta.1")??(B?null:await u21(A.cwd)),J=async()=>{let[{homedir:U1},b]=await Promise.all([import("node:os"),import("node:path")]),B1=S0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(B1){let W1=b.resolve(B1);return{dir:W1,filePath:b.join(W1,"tools.json")}}let Y1=S0(A.env.XDG_CONFIG_HOME);if(Y1){let W1=b.resolve(Y1,"dimcode");return{dir:W1,filePath:b.join(W1,"tools.json")}}let s=b.resolve(U1(),".dimcode");return{dir:s,filePath:b.join(s,"tools.json")}},[Y,V,E]=B?await(async()=>{let[U1,b,B1,Y1]=await Promise.all([cV(A.env),Z51(A.env),J(),import("node:path")]),s=Y1.join(U1,"cache.json"),W1=Y1.join(b,"config.json");return[{dir:U1,filePath:s,cache:{version:1,updatedAt:0}},{dir:b,filePath:W1,config:{version:1,updatedAt:0}},{dir:B1.dir,filePath:B1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([LL(A.env),sd(A.env),QbA(A.env)]),F=Y.cache,I=V.config;b21(I);let W=F.settings??{},Z=I.settings??{},G=S0(W.cwd),X=Array.isArray(W.focusFiles)?W.focusFiles.map((U1)=>String(U1??"")).filter(Boolean):void 0,K=S0(W.authMethod),C=S0(W.codexModel)||S0(W.model),M=DU.some((U1)=>U1.id===C)?C:void 0,q=A.cwd||G||".",L=(U1,b)=>S0(A.env[U1]??(b?A.env[b]:void 0)),O={DIMCODE_VERSION:U??"dev",...L("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")?{DIMCODE_PROVIDER_ADAPTER:L("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")}:{},...L("DIMCODE_MODEL","GOATCHAIN_MODEL")?{DIMCODE_MODEL:L("DIMCODE_MODEL","GOATCHAIN_MODEL")}:{},...L("DIMCODE_LONG_RUNNING","GOATCHAIN_LONG_RUNNING")?{DIMCODE_LONG_RUNNING:L("DIMCODE_LONG_RUNNING","GOATCHAIN_LONG_RUNNING")}:{},...L("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")?{DIMCODE_CONTEXT_WINDOW:L("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")}:{},...L("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")?{DIMCODE_TEMPERATURE:L("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")}:{},...L("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")?{DIMCODE_INTERLEAVED_THINKING:L("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")}:{},...L("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")?{DIMCODE_TOOL_APPROVALS:L("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")}:{},...L("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")?{DIMCODE_SKIP_APPROVAL:L("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")}:{},...L("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:L("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")}:{},...L("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:L("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")}:{},...L("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")?{DIMCODE_OPENAI_BASE_URL:L("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")}:{},...L("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")?{DIMCODE_GEMINI_BASE_URL:L("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")}:{},...L("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")?{DIMCODE_ANTHROPIC_BASE_URL:L("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")}:{},...A.env.OPENAI_BASE_URL?{OPENAI_BASE_URL:A.env.OPENAI_BASE_URL}:{},...A.env.OPENAI_API_KEY?{OPENAI_API_KEY:A.env.OPENAI_API_KEY}:{},...A.env.GOOGLE_API_KEY?{GOOGLE_API_KEY:A.env.GOOGLE_API_KEY}:{},...A.env.ANTHROPIC_API_KEY?{ANTHROPIC_API_KEY:A.env.ANTHROPIC_API_KEY}:{}};if(K==="oauth"&&M){if(!O.DIMCODE_MODEL)O.DIMCODE_MODEL=M;if(!O.GOATCHAIN_MODEL&&O.DIMCODE_MODEL)O.GOATCHAIN_MODEL=O.DIMCODE_MODEL;if(!O.DIMCODE_OPENAI_BASE_URL)O.DIMCODE_OPENAI_BASE_URL=v7;if(!O.GOATCHAIN_OPENAI_BASE_URL&&O.DIMCODE_OPENAI_BASE_URL)O.GOATCHAIN_OPENAI_BASE_URL=O.DIMCODE_OPENAI_BASE_URL;if(!O.OPENAI_BASE_URL)O.OPENAI_BASE_URL=v7;if(!O.DIMCODE_PROVIDER_ADAPTER)O.DIMCODE_PROVIDER_ADAPTER="openai";if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_USE_CODEX_OAUTH)O.DIMCODE_USE_CODEX_OAUTH="1";if(!O.GOATCHAIN_USE_CODEX_OAUTH)O.GOATCHAIN_USE_CODEX_OAUTH="1"}let w=qV(Z.providerId),R=Z.providerConnections??{},T=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},P=S0(_?.baseUrl),h=S0(_?.apiKey),y=Array.isArray(_?.models)?_.models.map((U1)=>S0(U1?.id)).filter(Boolean):[],v=S0(T.custom),a=(()=>{if(_5(w)&&S.length){let U1=S0(S[0]?.id);if(U1){if(I.settings)I.settings.providerId=U1;return U1}}return w})(),i=K4(a)?S.find((U1)=>String(U1?.id??"").trim()===a):void 0,Q1=a&&!K4(a)&&!_5(a)?J5(a):void 0,A1=K4(a)?String(i?.adapter??"").trim():_5(a)?"openai":vE(Q1),r=K4(a)?S0(i?.baseUrl):_5(a)?P:S0(R[a??""]?.baseUrl??kE(Q1)),x=K4(a)?S0(i?.apiKey):_5(a)?h:S0(R[a??""]?.apiKey),f=K4(a)?S0(T[a]??v??i?.models?.[0]?.id):_5(a)?S0(v??y[0]):S0(T[a??""]??R[a??""]?.models?.[0]?.id??uD(Q1));if(_5(a)&&!r&&!x&&!f)throw Error("Legacy custom provider config is missing. Please run /connect to add a custom provider and select a model.");if(!O.DIMCODE_PROVIDER_ADAPTER&&A1)O.DIMCODE_PROVIDER_ADAPTER=A1;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&f)O.DIMCODE_MODEL=f;if(A1==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&r)O.DIMCODE_GEMINI_BASE_URL=r;if(!O.GOOGLE_API_KEY&&x)O.GOOGLE_API_KEY=x}else if(A1==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&r)O.DIMCODE_ANTHROPIC_BASE_URL=r;if(!O.ANTHROPIC_API_KEY&&x)O.ANTHROPIC_API_KEY=x}else{if(!O.DIMCODE_OPENAI_BASE_URL&&r)O.DIMCODE_OPENAI_BASE_URL=r;if(!O.OPENAI_API_KEY&&x)O.OPENAI_API_KEY=x}if(!O.DIMCODE_CONTEXT_WINDOW&&UJ(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&UJ(W.temperature)!=null)O.DIMCODE_TEMPERATURE=String(W.temperature);if(!O.DIMCODE_INTERLEAVED_THINKING&&typeof W.interleavedThinking==="boolean")O.DIMCODE_INTERLEAVED_THINKING=W.interleavedThinking?"1":"0";if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="auto")O.DIMCODE_TOOL_APPROVALS="auto";if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="all")O.DIMCODE_TOOL_APPROVALS="all";if(!O.DIMCODE_LANG&&S0(W.locale))O.DIMCODE_LANG=S0(W.locale);if(!O.DIMCODE_THEME&&S0(W.themeMode))O.DIMCODE_THEME=S0(W.themeMode);if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="manual")O.DIMCODE_TOOL_APPROVALS="auto";if(!O.DIMCODE_LONG_RUNNING&&W.longRunning===!0)O.DIMCODE_LONG_RUNNING="1";if(!O.GOATCHAIN_LANG&&O.DIMCODE_LANG)O.GOATCHAIN_LANG=O.DIMCODE_LANG;if(!O.GOATCHAIN_THEME&&O.DIMCODE_THEME)O.GOATCHAIN_THEME=O.DIMCODE_THEME;if(!O.GOATCHAIN_GEMINI_BASE_URL&&O.DIMCODE_GEMINI_BASE_URL)O.GOATCHAIN_GEMINI_BASE_URL=O.DIMCODE_GEMINI_BASE_URL;if(!O.GOATCHAIN_ANTHROPIC_BASE_URL&&O.DIMCODE_ANTHROPIC_BASE_URL)O.GOATCHAIN_ANTHROPIC_BASE_URL=O.DIMCODE_ANTHROPIC_BASE_URL;if(z21(Q1))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:shA,cwd:q,env:O,...X?.length?{focusFiles:X}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:F,configDir:V.dir,configFile:V.filePath,config:I,toolsFile:E.filePath,tools:E.tools}}async function u21(A){try{let[{readFile:Q},B]=await Promise.all([import("node:fs/promises"),import("node:path")]),U=await Q(B.join(A,"package.json"),"utf8"),J=JSON.parse(U),Y=typeof J?.version==="string"?J.version:null;return Y&&Y.trim()?Y.trim():null}catch{return null}}import{watch as CY}from"vue";var JbA="standard",aL2=new Set(["off","low","standard"]);function YbA(A){let Q=String(A??"").trim().toLowerCase();if(aL2.has(Q))return Q;return"standard"}var fJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function rL2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function d21(A){return Boolean(c21(A))}function c21(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(rL2).filter(Boolean);if(B.length===0)return null;let U=B.pop()??"";if(!U)return null;if(!/^(?:[a-z0-9]|f\d{1,2})$/.test(U))return null;let J=!1,Y=!1,V=!1,E=!1,F=!1;for(let I of B){if(I==="mod"){J=!0;continue}if(I==="ctrl"){Y=!0;continue}if(I==="cmd"||I==="meta"){V=!0;continue}if(I==="alt"){E=!0;continue}if(I==="shift"){F=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:V,alt:E,shift:F}}function oL2(A){let Q=[];if(A.mod)Q.push("mod");else{if(A.ctrl)Q.push("ctrl");if(A.meta)Q.push("meta")}if(A.alt)Q.push("alt");if(A.shift)Q.push("shift");return Q.push(A.key),Q.join("+")}function aT1(A,Q){let B=c21(A);if(!B)return Q;return oL2(B)}function aW(A){let Q=A&&typeof A==="object"?A:{},B=aT1(Q.commands,fJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:aT1(Q.timeline,fJ.timeline),newSession:aT1(Q.newSession,fJ.newSession)}}function sL2(){let A=globalThis?.process,Q=typeof A?.platform==="string"?A.platform:"";if(Q)return Q==="darwin";let B=globalThis?.navigator,U=typeof B?.platform==="string"?B.platform:"";return/Mac|iPhone|iPad|iPod/i.test(U)}function CH(A){let Q=c21(A);if(!Q)return"";let B=[],U=sL2();if(Q.mod)B.push(U?"Cmd":"Ctrl");else{if(Q.ctrl)B.push("Ctrl");if(Q.meta)B.push(U?"Cmd":"Meta")}if(Q.alt)B.push(U?"Option":"Alt");if(Q.shift)B.push("Shift");let J=Q.key.length===1?Q.key.toUpperCase():Q.key.toUpperCase();return B.push(J),B.join("+")}function MI(A,Q){let B=c21(Q);if(!B)return!1;let U=String(A.key??"").toLowerCase();if(!U||U!==B.key)return!1;let J=Boolean(A.ctrlKey),Y=Boolean(A.metaKey),V=Boolean(A.altKey),E=Boolean(A.shiftKey);if(B.mod){if(!J&&!Y)return!1}else{if(B.ctrl!==J)return!1;if(B.meta!==Y)return!1}if(B.alt!==V)return!1;if(B.shift!==E)return!1;return!0}LV();var VbA=/^[0-9a-f]{7,40}$/i,tL2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function hE(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!VbA.test(B))return null;return B}function eL2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function EbA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(tL2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!VbA.test(J))return null;if(U&&!J.startsWith(U))return null;return J}function yO(A){let Q=String(A||"").trim();if(!Q)return"";let B=eL2(Q);return`[${Q}](${B})`}function FbA(A){let Q=String(A||"").trim();if(!Q)return"";return`git:commit:${Q}`}function jO(A){let Q=String(A??"").replace(/\r/g,"");if(!Q)return"";let B=Q.split(`
|
|
2135
|
+
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function BbA(A){let Q=A.prev.settings??{},B=A.store.state,J=B?.tools?.websearch??{},Y=Array.isArray(B?.mcp?.servers)?B.mcp.servers:[],V={...Q,websearch:{apiKey:J.apiKey??void 0,apiEndpoint:J.apiEndpoint??void 0,numResults:J.numResults??void 0},mcpServers:Y.length?JSON.parse(JSON.stringify(Y)):void 0};return{version:1,updatedAt:Date.now(),settings:V}}function UbA(A,Q){let B=A.settings??{},U=B.websearch??{},J=Array.isArray(B.mcpServers)?B.mcpServers:[];if(!Q.tools)return;if(Q.tools.websearch)Q.tools.websearch.apiKey=S0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=S0(U.apiEndpoint)??nT1.websearch.apiEndpoint,Q.tools.websearch.numResults=UJ(U.numResults)??nT1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...nT1.mcpServers]}async function dm(A){let Q=String(A.env.DIMCODE_FAST_START??A.env.GOATCHAIN_FAST_START??"").trim().toLowerCase(),B=Q==="1"||Q==="true"||Q==="yes"||Q==="on",U=S0("0.0.14-beta.1")??(B?null:await u21(A.cwd)),J=async()=>{let[{homedir:U1},b]=await Promise.all([import("node:os"),import("node:path")]),B1=S0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(B1){let W1=b.resolve(B1);return{dir:W1,filePath:b.join(W1,"tools.json")}}let Y1=S0(A.env.XDG_CONFIG_HOME);if(Y1){let W1=b.resolve(Y1,"dimcode");return{dir:W1,filePath:b.join(W1,"tools.json")}}let s=b.resolve(U1(),".dimcode");return{dir:s,filePath:b.join(s,"tools.json")}},[Y,V,E]=B?await(async()=>{let[U1,b,B1,Y1]=await Promise.all([cV(A.env),Z51(A.env),J(),import("node:path")]),s=Y1.join(U1,"cache.json"),W1=Y1.join(b,"config.json");return[{dir:U1,filePath:s,cache:{version:1,updatedAt:0}},{dir:b,filePath:W1,config:{version:1,updatedAt:0}},{dir:B1.dir,filePath:B1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([LL(A.env),sd(A.env),QbA(A.env)]),F=Y.cache,I=V.config;b21(I);let W=F.settings??{},Z=I.settings??{},G=S0(W.cwd),X=Array.isArray(W.focusFiles)?W.focusFiles.map((U1)=>String(U1??"")).filter(Boolean):void 0,K=S0(W.authMethod),C=S0(W.codexModel)||S0(W.model),M=DU.some((U1)=>U1.id===C)?C:void 0,q=A.cwd||G||".",L=(U1,b)=>S0(A.env[U1]??(b?A.env[b]:void 0)),O={DIMCODE_VERSION:U??"dev",...L("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")?{DIMCODE_PROVIDER_ADAPTER:L("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")}:{},...L("DIMCODE_MODEL","GOATCHAIN_MODEL")?{DIMCODE_MODEL:L("DIMCODE_MODEL","GOATCHAIN_MODEL")}:{},...L("DIMCODE_LONG_RUNNING","GOATCHAIN_LONG_RUNNING")?{DIMCODE_LONG_RUNNING:L("DIMCODE_LONG_RUNNING","GOATCHAIN_LONG_RUNNING")}:{},...L("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")?{DIMCODE_CONTEXT_WINDOW:L("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")}:{},...L("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")?{DIMCODE_TEMPERATURE:L("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")}:{},...L("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")?{DIMCODE_INTERLEAVED_THINKING:L("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")}:{},...L("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")?{DIMCODE_TOOL_APPROVALS:L("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")}:{},...L("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")?{DIMCODE_SKIP_APPROVAL:L("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")}:{},...L("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:L("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")}:{},...L("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:L("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")}:{},...L("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")?{DIMCODE_OPENAI_BASE_URL:L("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")}:{},...L("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")?{DIMCODE_GEMINI_BASE_URL:L("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")}:{},...L("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")?{DIMCODE_ANTHROPIC_BASE_URL:L("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")}:{},...A.env.OPENAI_BASE_URL?{OPENAI_BASE_URL:A.env.OPENAI_BASE_URL}:{},...A.env.OPENAI_API_KEY?{OPENAI_API_KEY:A.env.OPENAI_API_KEY}:{},...A.env.GOOGLE_API_KEY?{GOOGLE_API_KEY:A.env.GOOGLE_API_KEY}:{},...A.env.ANTHROPIC_API_KEY?{ANTHROPIC_API_KEY:A.env.ANTHROPIC_API_KEY}:{}};if(K==="oauth"&&M){if(!O.DIMCODE_MODEL)O.DIMCODE_MODEL=M;if(!O.GOATCHAIN_MODEL&&O.DIMCODE_MODEL)O.GOATCHAIN_MODEL=O.DIMCODE_MODEL;if(!O.DIMCODE_OPENAI_BASE_URL)O.DIMCODE_OPENAI_BASE_URL=v7;if(!O.GOATCHAIN_OPENAI_BASE_URL&&O.DIMCODE_OPENAI_BASE_URL)O.GOATCHAIN_OPENAI_BASE_URL=O.DIMCODE_OPENAI_BASE_URL;if(!O.OPENAI_BASE_URL)O.OPENAI_BASE_URL=v7;if(!O.DIMCODE_PROVIDER_ADAPTER)O.DIMCODE_PROVIDER_ADAPTER="openai";if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_USE_CODEX_OAUTH)O.DIMCODE_USE_CODEX_OAUTH="1";if(!O.GOATCHAIN_USE_CODEX_OAUTH)O.GOATCHAIN_USE_CODEX_OAUTH="1"}let w=qV(Z.providerId),R=Z.providerConnections??{},T=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},P=S0(_?.baseUrl),h=S0(_?.apiKey),y=Array.isArray(_?.models)?_.models.map((U1)=>S0(U1?.id)).filter(Boolean):[],v=S0(T.custom),a=(()=>{if(_5(w)&&S.length){let U1=S0(S[0]?.id);if(U1){if(I.settings)I.settings.providerId=U1;return U1}}return w})(),i=K4(a)?S.find((U1)=>String(U1?.id??"").trim()===a):void 0,Q1=a&&!K4(a)&&!_5(a)?J5(a):void 0,A1=K4(a)?String(i?.adapter??"").trim():_5(a)?"openai":vE(Q1),r=K4(a)?S0(i?.baseUrl):_5(a)?P:S0(R[a??""]?.baseUrl??kE(Q1)),x=K4(a)?S0(i?.apiKey):_5(a)?h:S0(R[a??""]?.apiKey),f=K4(a)?S0(T[a]??v??i?.models?.[0]?.id):_5(a)?S0(v??y[0]):S0(T[a??""]??R[a??""]?.models?.[0]?.id??uD(Q1));if(_5(a)&&!r&&!x&&!f)throw Error("Legacy custom provider config is missing. Please run /connect to add a custom provider and select a model.");if(!O.DIMCODE_PROVIDER_ADAPTER&&A1)O.DIMCODE_PROVIDER_ADAPTER=A1;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&f)O.DIMCODE_MODEL=f;if(A1==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&r)O.DIMCODE_GEMINI_BASE_URL=r;if(!O.GOOGLE_API_KEY&&x)O.GOOGLE_API_KEY=x}else if(A1==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&r)O.DIMCODE_ANTHROPIC_BASE_URL=r;if(!O.ANTHROPIC_API_KEY&&x)O.ANTHROPIC_API_KEY=x}else{if(!O.DIMCODE_OPENAI_BASE_URL&&r)O.DIMCODE_OPENAI_BASE_URL=r;if(!O.OPENAI_API_KEY&&x)O.OPENAI_API_KEY=x}if(!O.DIMCODE_CONTEXT_WINDOW&&UJ(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&UJ(W.temperature)!=null)O.DIMCODE_TEMPERATURE=String(W.temperature);if(!O.DIMCODE_INTERLEAVED_THINKING&&typeof W.interleavedThinking==="boolean")O.DIMCODE_INTERLEAVED_THINKING=W.interleavedThinking?"1":"0";if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="auto")O.DIMCODE_TOOL_APPROVALS="auto";if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="all")O.DIMCODE_TOOL_APPROVALS="all";if(!O.DIMCODE_LANG&&S0(W.locale))O.DIMCODE_LANG=S0(W.locale);if(!O.DIMCODE_THEME&&S0(W.themeMode))O.DIMCODE_THEME=S0(W.themeMode);if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="manual")O.DIMCODE_TOOL_APPROVALS="auto";if(!O.DIMCODE_LONG_RUNNING&&W.longRunning===!0)O.DIMCODE_LONG_RUNNING="1";if(!O.GOATCHAIN_LANG&&O.DIMCODE_LANG)O.GOATCHAIN_LANG=O.DIMCODE_LANG;if(!O.GOATCHAIN_THEME&&O.DIMCODE_THEME)O.GOATCHAIN_THEME=O.DIMCODE_THEME;if(!O.GOATCHAIN_GEMINI_BASE_URL&&O.DIMCODE_GEMINI_BASE_URL)O.GOATCHAIN_GEMINI_BASE_URL=O.DIMCODE_GEMINI_BASE_URL;if(!O.GOATCHAIN_ANTHROPIC_BASE_URL&&O.DIMCODE_ANTHROPIC_BASE_URL)O.GOATCHAIN_ANTHROPIC_BASE_URL=O.DIMCODE_ANTHROPIC_BASE_URL;if(z21(Q1))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:shA,cwd:q,env:O,...X?.length?{focusFiles:X}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:F,configDir:V.dir,configFile:V.filePath,config:I,toolsFile:E.filePath,tools:E.tools}}async function u21(A){try{let[{readFile:Q},B]=await Promise.all([import("node:fs/promises"),import("node:path")]),U=await Q(B.join(A,"package.json"),"utf8"),J=JSON.parse(U),Y=typeof J?.version==="string"?J.version:null;return Y&&Y.trim()?Y.trim():null}catch{return null}}import{watch as CY}from"vue";var JbA="standard",aL2=new Set(["off","low","standard"]);function YbA(A){let Q=String(A??"").trim().toLowerCase();if(aL2.has(Q))return Q;return"standard"}var fJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function rL2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function d21(A){return Boolean(c21(A))}function c21(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(rL2).filter(Boolean);if(B.length===0)return null;let U=B.pop()??"";if(!U)return null;if(!/^(?:[a-z0-9]|f\d{1,2})$/.test(U))return null;let J=!1,Y=!1,V=!1,E=!1,F=!1;for(let I of B){if(I==="mod"){J=!0;continue}if(I==="ctrl"){Y=!0;continue}if(I==="cmd"||I==="meta"){V=!0;continue}if(I==="alt"){E=!0;continue}if(I==="shift"){F=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:V,alt:E,shift:F}}function oL2(A){let Q=[];if(A.mod)Q.push("mod");else{if(A.ctrl)Q.push("ctrl");if(A.meta)Q.push("meta")}if(A.alt)Q.push("alt");if(A.shift)Q.push("shift");return Q.push(A.key),Q.join("+")}function aT1(A,Q){let B=c21(A);if(!B)return Q;return oL2(B)}function aW(A){let Q=A&&typeof A==="object"?A:{},B=aT1(Q.commands,fJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:aT1(Q.timeline,fJ.timeline),newSession:aT1(Q.newSession,fJ.newSession)}}function sL2(){let A=globalThis?.process,Q=typeof A?.platform==="string"?A.platform:"";if(Q)return Q==="darwin";let B=globalThis?.navigator,U=typeof B?.platform==="string"?B.platform:"";return/Mac|iPhone|iPad|iPod/i.test(U)}function CH(A){let Q=c21(A);if(!Q)return"";let B=[],U=sL2();if(Q.mod)B.push(U?"Cmd":"Ctrl");else{if(Q.ctrl)B.push("Ctrl");if(Q.meta)B.push(U?"Cmd":"Meta")}if(Q.alt)B.push(U?"Option":"Alt");if(Q.shift)B.push("Shift");let J=Q.key.length===1?Q.key.toUpperCase():Q.key.toUpperCase();return B.push(J),B.join("+")}function MI(A,Q){let B=c21(Q);if(!B)return!1;let U=String(A.key??"").toLowerCase();if(!U||U!==B.key)return!1;let J=Boolean(A.ctrlKey),Y=Boolean(A.metaKey),V=Boolean(A.altKey),E=Boolean(A.shiftKey);if(B.mod){if(!J&&!Y)return!1}else{if(B.ctrl!==J)return!1;if(B.meta!==Y)return!1}if(B.alt!==V)return!1;if(B.shift!==E)return!1;return!0}LV();var VbA=/^[0-9a-f]{7,40}$/i,tL2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function hE(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!VbA.test(B))return null;return B}function eL2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function EbA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(tL2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!VbA.test(J))return null;if(U&&!J.startsWith(U))return null;return J}function yO(A){let Q=String(A||"").trim();if(!Q)return"";let B=eL2(Q);return`[${Q}](${B})`}function FbA(A){let Q=String(A||"").trim();if(!Q)return"";return`git:commit:${Q}`}function jO(A){let Q=String(A??"").replace(/\r/g,"");if(!Q)return"";let B=Q.split(`
|
|
2136
2136
|
`),U=String(B[0]??"").trim();if(U!=="[focus_files]"&&U!=="[user_focus_files]"){let V=((I)=>{let W=String(I??"");if(!W)return null;let Z=0,G=0;while(Z<W.length){while(Z<W.length&&(W[Z]===" "||W[Z]==="\t"||W[Z]===`
|
|
2137
2137
|
`))Z++;let K=W.slice(Z).match(/^\[([^\]]*)\]\(((?:\\\)|[^)])+)\)/);if(!K)break;let C=String(K[2]??"").trim();if(C.startsWith("<")&&C.endsWith(">"))C=C.slice(1,-1);if(C=C.replace(/\\\)/g,")").trim(),!(C.startsWith("/")||/^[A-Z]:[\\/]/i.test(C)))break;G++,Z+=K[0].length}if(!G)return null;let X=W.slice(Z);if(X=X.replace(/^[ \t]+/g,""),X.startsWith(`
|
|
2138
2138
|
|
|
@@ -2576,7 +2576,7 @@ ${U}
|
|
|
2576
2576
|
`);return[U||(Q.some((F)=>bx2(F))?B?"User attached image(s).":"User attached image(s) (vision not available).":"User attached file(s)."),J,Y].filter(Boolean).join(`
|
|
2577
2577
|
|
|
2578
2578
|
`)}function cnA(A){let Q=String(A.sessionId??"").trim(),B=A.toolContext&&typeof A.toolContext==="object"?A.toolContext:void 0;return{session_id:Q||void 0,cwd:A.cwd,env:A.env,...B?{toolContext:B}:null,...A.resume?{resume:!0}:null}}function pnA(A){let Q=Array.isArray(A.attachments)?A.attachments:[];return[{role:"user",content:dnA(A.input,Q,A.imagesEnabled)}]}function inA(A,Q){let B=A.sessionId;if(Q.resolvedSessionId)B=Q.resolvedSessionId;let U=Q.delta;return{finalText:typeof U==="string"?A.finalText+U:A.finalText,sessionId:B}}import{randomBytes as dx2}from"node:crypto";function lnA(A,Q){let B="127.0.0.1",U=13442,J=!1,Y=!1,V=!1,E=Q?.env??process.env,F=Q?.makeToken??(()=>dx2(12).toString("hex")),I=E.DIMCODE_SERVER_TOKEN||E.GOATCHAIN_SERVER_TOKEN;for(let W=0;W<A.length;W+=1){let Z=A[W];if(Z==="--host")B=String(A[++W]??B);else if(Z==="--port"){let G=Number(A[++W]);if(Number.isFinite(G))U=Math.max(0,Math.floor(G))}else if(Z==="--open"||Z==="-o")J=!0;else if(Z==="--no-open")J=!1;else if(Z==="--verbose"||Z==="-v")Y=!0;else if(Z==="--debug"||Z==="--debug-ui")V=!0;else if(Z==="--token"){let G=A[W+1];if(!G||String(G).startsWith("-"))I=F();else I=String(A[++W])}}return{host:B,port:U,open:J,verbose:Y,debugUi:V,token:I}}function nnA(A){return{append:(Q,B)=>{let U=A.appendRaw(Q,B);A.setLastEventId(U.id)}}}function anA(A){let Q=A.message?.metadata??{},B=String(Q.originalEventType??""),U=Q.session_id??A.currentSessionId,J=A.currentSessionId;if(!J&&Q.session_id)J=Q.session_id;if(B==="text_delta"){let Y=uS(A.message.content);return{resolvedSessionId:J,delta:Y,events:[{type:"message.delta",payload:{sessionId:U,runId:A.runId,role:"assistant",delta:Y}}]}}if(B==="thinking_start")return{resolvedSessionId:J,events:[{type:"thinking_start",payload:{sessionId:U,runId:A.runId}}]};if(B==="thinking_delta"){let Y=uS(A.message.content);return{resolvedSessionId:J,events:[{type:"thinking_delta",payload:{sessionId:U,runId:A.runId,delta:Y}}]}}if(B==="thinking_end"){let Y=uS(A.message.content);return{resolvedSessionId:J,events:[{type:"thinking_end",payload:{sessionId:U,runId:A.runId,...Y?{content:Y}:{}}}]}}if(B==="tool_call_start"||B==="tool_call_delta"||B==="tool_call_end"){let Y=(()=>{let V=Q.linesWritten??Q.lines_written,E=Number(V);return Number.isFinite(E)?E:void 0})();return{resolvedSessionId:J,events:[{type:"tool.call",payload:{sessionId:U,runId:A.runId,callId:Q.callId,toolName:Q.toolName,argsTextDelta:Q.argsTextDelta,...typeof Y==="number"?{linesWritten:Y}:null,tool_calls:A.message.tool_calls??void 0,originalEventType:B}}]}}if(B==="tool_output_delta")return{resolvedSessionId:J,events:[{type:"tool.output",payload:{sessionId:U,runId:A.runId,tool_call_id:Q.tool_call_id,delta:uS(A.message.content),isStderr:Q.isStderr}}]};if(B==="tool_result")return{resolvedSessionId:J,events:[{type:"tool.result",payload:{sessionId:U,runId:A.runId,tool_call_id:A.message.tool_call_id??Q.tool_call_id,output:uS(A.message.content),error:Q.error??!1,structuredContent:Q.structuredContent}}]};if(B==="requires_action"){let Y=typeof Q.kind==="string"?Q.kind:typeof Q.action_kind==="string"?Q.action_kind:"",V=typeof Q.tool_call_id==="string"?Q.tool_call_id:typeof Q.toolCallId==="string"?Q.toolCallId:typeof Q.callId==="string"?Q.callId:void 0,E=Array.isArray(Q.questions)?Q.questions:void 0;return{resolvedSessionId:J,events:[{type:"requires_action",payload:{sessionId:U,runId:A.runId,kind:Y,action_kind:Y,...V?{toolCallId:V,tool_call_id:V}:null,...E?{questions:E}:null}}]}}if(B==="session_created")return{resolvedSessionId:J,events:[{type:"session.created",payload:{sessionId:U}}]};if(B==="done")return{resolvedSessionId:J,events:[{type:"run.status",payload:{sessionId:U,runId:A.runId,status:"done",stopReason:Q.stopReason,error:Q.error}}]};return{resolvedSessionId:J,events:[]}}import rnA from"node:path";LV();function cx2(A){if(!A)return;let Q=A.trim().toLowerCase();if(["1","true","yes","on"].includes(Q))return!0;if(["0","false","no","off"].includes(Q))return!1;return}function onA(A,Q){let B=cx2(Q.DIMCODE_IMAGES??Q.GOATCHAIN_IMAGES??Q.DIMCODE_VISION??Q.GOATCHAIN_VISION);if(B!=null)return B;let U=A.settings??{},J=qV(U.providerId),Y=U.activeModelByProvider??{},V=U.providerConnections??{},E=U.customProvider??{},I=String(Q.DIMCODE_MODEL??Q.GOATCHAIN_MODEL??"").trim()||(J==="custom"?String(Y.custom??(E.models?.[0]?.id??"")).trim():String(Y[J??""]??"").trim());if(!J||J==="custom"||!I)return!1;let W=J5(J),Z=W?.customModels?V?.[J]?.models:void 0,X=(Array.isArray(Z)&&Z.length?Z:W?.models)?.find((M)=>String(M.id??"").trim()===I||String(M.name??"").trim()===I);if(!X)return!1;let K=X.vision;if(typeof K==="boolean")return K;return(X.modalities?.input??[]).map((M)=>String(M).toLowerCase()).includes("image")}function snA(A){return rnA.join(A,"state")}function tnA(A){return rnA.join(A,"uploads")}function enA(A){A.env.DIMCODE_STATE_DIR=A.stateDir,A.contextEnv.DIMCODE_STATE_DIR=A.stateDir,A.env.GOATCHAIN_STATE_DIR=A.stateDir,A.contextEnv.GOATCHAIN_STATE_DIR=A.stateDir}function vj1(A){if(!Array.isArray(A))return[];return A.map((Q)=>{if(Q.transport==="http")return{id:Q.id,name:Q.name,transport:"http",url:Q.url,auth:Q.auth?.token?{type:"bearer",token:Q.auth.token}:void 0,headers:Q.headers,requestTimeoutMs:Q.requestTimeoutMs,enabled:Q.enabled};return{id:Q.id,name:Q.name,transport:"stdio",command:Q.command,args:Q.args,env:Q.env,cwd:Q.cwd,autoRestart:Q.autoRestart,requestTimeoutMs:Q.requestTimeoutMs,restartDelayMs:Q.restartDelayMs,maxRestarts:Q.maxRestarts,restartWindowMs:Q.restartWindowMs,enabled:Q.enabled}})}function AaA(A,Q){try{let B=new URL(A);if(Q?.debug)B.searchParams.set("debug","1");let U=String(Q?.token??"").trim();if(U)B.searchParams.set("token",U);return B.toString()}catch{return A}}function QaA(A){let Q=[];Q.push(`GoatChain server running at ${A.baseUrl}`);let B=String(A.token??"").trim();if(B)Q.push(`Token: ${B}`);return Q}async function BaA(A){return await new Promise((Q)=>{let B=!1;function U(){if(B)return;B=!0,Promise.resolve(A.onShutdown()).finally(()=>{J(),Q()})}function J(){if(typeof A.proc.off==="function")A.proc.off("SIGINT",U),A.proc.off("SIGTERM",U);else if(typeof A.proc.removeListener==="function")A.proc.removeListener("SIGINT",U),A.proc.removeListener("SIGTERM",U)}A.proc.on("SIGINT",U),A.proc.on("SIGTERM",U)})}function UaA(A,Q){if(!A)return;return{info:(B,U)=>Q(`[server] ${B} ${U?JSON.stringify(U):""}`.trim()),error:(B,U)=>Q(`[server] ${B} ${U?JSON.stringify(U):""}`.trim())}}function JaA(A){return{websearch:{apiKey:()=>A?.websearch?.apiKey??"",apiEndpoint:A?.websearch?.apiEndpoint,numResults:A?.websearch?.numResults}}}function YaA(A,Q){if(!A)return;return{list:async()=>{let B=await A.list?.(),U=[];for(let J of B??[]){let Y=Q(J);if(Y)U.push(Y);else if(J&&typeof J==="object")U.push(J)}return U},get:async(B)=>A.get?.(B),create:async(B)=>A.create?.(B),destroy:async(B)=>{await A.destroy?.(B)},interrupt:A.interrupt?async(B)=>A.interrupt?.(B)??!1:void 0,rename:A.rename?async(B,U)=>A.rename?.(B,U):void 0,updateMetadata:A.updateMetadata?async(B,U)=>A.updateMetadata?.(B,U):void 0}}function ix2(A){return async(Q,B)=>{let U=B.modeManager?.getCurrentMode();if(U&&typeof A.agent.setMode==="function")try{await Promise.resolve(A.agent.setMode(U))}catch{}let J=pnA({input:Q,attachments:B.attachments,imagesEnabled:A.imagesEnabled}),Y=A.cwd;if(B.sessionId&&A.sessions)try{let I=await A.sessions.get(B.sessionId),W=typeof I?.metadata?.cwd==="string"?I.metadata.cwd.trim():"";if(W)Y=W}catch{}let V=cnA({sessionId:B.sessionId,cwd:Y,env:A.contextEnv,toolContext:B.toolContext,resume:B.resume}),E=nnA({appendRaw:(I,W)=>B.events.append(I,W),setLastEventId:(I)=>B.state.setLastEventId(I)}),F={finalText:"",sessionId:B.sessionId??void 0};for await(let I of A.agent.receiveMessage(J,V)){let W=anA({message:I,runId:B.runId,currentSessionId:F.sessionId});F=inA(F,W);for(let Z of W.events)E.append(Z.type,Z.payload)}return{result:F.finalText||"Done.",skipDefaultEvent:!0,sessionId:F.sessionId}}}function Vd(A){process.stdout.write(`${A}
|
|
2579
|
-
`)}async function lx2(A){let Q=UaA(A.verbose,Vd),B=A.cwd??process.cwd(),{context:U,cacheDir:J,tools:Y,toolsFile:V,config:E}=await dm({cwd:B,env:process.env}),F=snA(J),I=tnA(F);enA({env:process.env,contextEnv:U.env,stateDir:F});let W=Y&&typeof Y==="object"?Y:{version:1,updatedAt:0,settings:{}};if(!W.settings||typeof W.settings!=="object")W.settings={};let Z=W.settings;if(!Array.isArray(Z.mcpServers))Z.mcpServers=[];let G=JaA(Z),X=new Map,K=Promise.resolve(),C=()=>{let U1=Array.isArray(Z.mcpServers)?Z.mcpServers:[];return JSON.parse(JSON.stringify(U1))},M=async(U1)=>{let b=JSON.parse(JSON.stringify(U1));Z.mcpServers=b,W.settings={...W.settings??{},mcpServers:b},W.updatedAt=Date.now(),K=K.then(()=>m21(V,W)),await K},q=(U1,b)=>{let B1=String(b??"").trim();if(!B1)return!1;if(B1.startsWith("custom:"))return`custom:${String(U1.id??"").trim()}`===B1;return unA(U1)===B1},L=(U1,b)=>{let B1=[];return U1.forEach((Y1,s)=>{if(q(Y1,b))B1.push(s)}),B1},O=()=>mnA({servers:C(),healthByConnector:X}),w=(U1)=>O().find((b)=>b.id===U1),R=async(U1,b)=>{let B1=String(U1??"").trim();if(!B1)return{ok:!1,error:"Missing connector id"};let Y1=C(),s=L(Y1,B1);if(s.length===0)return{ok:!1,error:`Connector "${B1}" is not configured. Add an MCP server first via /mcp.`};for(let I1 of s)Y1[I1]={...Y1[I1],enabled:b};await M(Y1);let W1=w(B1);return W1?{ok:!0,connector:W1}:{ok:!1,error:`Connector "${B1}" was updated but cannot be resolved.`}},T=async(U1)=>{let b=String(U1??"").trim();if(!b)return{ok:!1,error:"Missing connector id"};let B1=C(),Y1=L(B1,b);if(Y1.length===0)return{ok:!1,error:`Connector "${b}" is not configured.`};let s=Y1.map((D1)=>B1[D1]).filter((D1)=>D1.enabled!==!1);if(s.length===0)return{ok:!1,error:`Connector "${b}" is configured but disabled.`};let{McpHttpClient:W1,McpStdioClient:I1}=await Promise.resolve().then(() => (DH(),qT1)),n=vj1(s),j=0,u="";for(let D1 of n){let L1=D1.transport==="http"?new W1(D1):new I1(D1);try{await L1.initialize();let z1=await L1.listTools().catch(()=>[]);j+=z1.length}catch(z1){u=z1 instanceof Error?z1.message:String(z1);break}finally{await L1.disconnect().catch(()=>{})}}let t=new Date().toISOString();if(u){X.set(b,{lastCheckedAt:t,lastError:u});let D1=w(b);return{ok:!1,error:u,...D1?{connector:D1}:{}}}X.set(b,{lastCheckedAt:t,toolCount:j});let J1=w(b);return J1?{ok:!0,connector:J1}:{ok:!1,error:`Connector "${b}" test passed but state is unavailable.`}},S={listConnectors:()=>O(),setEnabled:(U1,b)=>R(U1,b),testConnector:(U1)=>T(U1)},_=new Set,P=x21({context:U,processEnv:process.env,stateDir:F,tools:G,mcpServers:()=>vj1(Z?.mcpServers),forcedSkills:()=>[..._]}),h=P?.__sessions,y=YaA(h,n21),v=onA(E,U.env),a=ix2({agent:P,contextEnv:U.env,cwd:U.cwd,imagesEnabled:v,sessions:y}),i="0.0.
|
|
2579
|
+
`)}async function lx2(A){let Q=UaA(A.verbose,Vd),B=A.cwd??process.cwd(),{context:U,cacheDir:J,tools:Y,toolsFile:V,config:E}=await dm({cwd:B,env:process.env}),F=snA(J),I=tnA(F);enA({env:process.env,contextEnv:U.env,stateDir:F});let W=Y&&typeof Y==="object"?Y:{version:1,updatedAt:0,settings:{}};if(!W.settings||typeof W.settings!=="object")W.settings={};let Z=W.settings;if(!Array.isArray(Z.mcpServers))Z.mcpServers=[];let G=JaA(Z),X=new Map,K=Promise.resolve(),C=()=>{let U1=Array.isArray(Z.mcpServers)?Z.mcpServers:[];return JSON.parse(JSON.stringify(U1))},M=async(U1)=>{let b=JSON.parse(JSON.stringify(U1));Z.mcpServers=b,W.settings={...W.settings??{},mcpServers:b},W.updatedAt=Date.now(),K=K.then(()=>m21(V,W)),await K},q=(U1,b)=>{let B1=String(b??"").trim();if(!B1)return!1;if(B1.startsWith("custom:"))return`custom:${String(U1.id??"").trim()}`===B1;return unA(U1)===B1},L=(U1,b)=>{let B1=[];return U1.forEach((Y1,s)=>{if(q(Y1,b))B1.push(s)}),B1},O=()=>mnA({servers:C(),healthByConnector:X}),w=(U1)=>O().find((b)=>b.id===U1),R=async(U1,b)=>{let B1=String(U1??"").trim();if(!B1)return{ok:!1,error:"Missing connector id"};let Y1=C(),s=L(Y1,B1);if(s.length===0)return{ok:!1,error:`Connector "${B1}" is not configured. Add an MCP server first via /mcp.`};for(let I1 of s)Y1[I1]={...Y1[I1],enabled:b};await M(Y1);let W1=w(B1);return W1?{ok:!0,connector:W1}:{ok:!1,error:`Connector "${B1}" was updated but cannot be resolved.`}},T=async(U1)=>{let b=String(U1??"").trim();if(!b)return{ok:!1,error:"Missing connector id"};let B1=C(),Y1=L(B1,b);if(Y1.length===0)return{ok:!1,error:`Connector "${b}" is not configured.`};let s=Y1.map((D1)=>B1[D1]).filter((D1)=>D1.enabled!==!1);if(s.length===0)return{ok:!1,error:`Connector "${b}" is configured but disabled.`};let{McpHttpClient:W1,McpStdioClient:I1}=await Promise.resolve().then(() => (DH(),qT1)),n=vj1(s),j=0,u="";for(let D1 of n){let L1=D1.transport==="http"?new W1(D1):new I1(D1);try{await L1.initialize();let z1=await L1.listTools().catch(()=>[]);j+=z1.length}catch(z1){u=z1 instanceof Error?z1.message:String(z1);break}finally{await L1.disconnect().catch(()=>{})}}let t=new Date().toISOString();if(u){X.set(b,{lastCheckedAt:t,lastError:u});let D1=w(b);return{ok:!1,error:u,...D1?{connector:D1}:{}}}X.set(b,{lastCheckedAt:t,toolCount:j});let J1=w(b);return J1?{ok:!0,connector:J1}:{ok:!1,error:`Connector "${b}" test passed but state is unavailable.`}},S={listConnectors:()=>O(),setEnabled:(U1,b)=>R(U1,b),testConnector:(U1)=>T(U1)},_=new Set,P=x21({context:U,processEnv:process.env,stateDir:F,tools:G,mcpServers:()=>vj1(Z?.mcpServers),forcedSkills:()=>[..._]}),h=P?.__sessions,y=YaA(h,n21),v=onA(E,U.env),a=ix2({agent:P,contextEnv:U.env,cwd:U.cwd,imagesEnabled:v,sessions:y}),i="0.0.14-beta.1",Q1=px2(),A1=[h81.join(Q1,".claude","skills"),h81.join(Q1,".agents","skills"),h81.join(B,".claude","skills"),h81.join(B,".agents","skills")],r=String(process.env.DIMCODE_SESSION_SYNC_POLL_MS??process.env.GOATCHAIN_SESSION_SYNC_POLL_MS??"").trim(),x=Number(r),f=Number.isFinite(x)&&x>0?x:void 0,c=await xnA({host:A.host,port:A.port,protocolVersion:"0.1",serverVersion:i??"0.0.0",token:A.token,defaultCwd:U.cwd,uploadDir:I,capabilities:{uploads:!0,images:v},sessions:y,sessionSyncPollMs:f,queryHandler:a,skillsDirectories:A1,activeSkills:_,mcpConnectors:S,logger:Q});return{server:c,baseUrl:c.baseUrl}}async function VaA(A){let Q=lnA(A),{server:B,baseUrl:U}=await lx2({host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token});for(let J of QaA({baseUrl:U,token:Q.token}))Vd(J);if(Q.open){let J=AaA(U,{debug:Q.debugUi,token:Q.token});if(!xS(J))Vd("Failed to open browser automatically.")}await BaA({proc:process,onShutdown:async()=>{Vd("Shutting down...");let J=setTimeout(()=>{Vd("Shutdown taking too long, forcing exit..."),process.exit(0)},1500);try{await B.close()}finally{clearTimeout(J)}}})}fE();import{createRequire as nx2}from"node:module";var EaA=!1;function FaA(){return h5(p3())}function ax2(A){let Q=String(A??"").trim().toLowerCase();return Q==="1"||Q==="true"||Q==="yes"||Q==="on"}function rx2(){let A=Number(FaA().prefixedStr("GC_LOG_SLOW_MS"));if(Number.isFinite(A)&&A>0)return Math.max(1,Math.floor(A));return 20}function ox2(A){switch(Number(A)){case 1:return"minor";case 2:return"major";case 4:return"incremental";case 8:return"weakcb";default:return String(A??"")}}function IaA(){if(EaA)return;EaA=!0;let A=FaA();if(!ax2(A.prefixedStr("GC_LOG")))return;let Q=nx2(import.meta.url),B;try{({PerformanceObserver:B}=Q("node:perf_hooks"))}catch{return}try{let U=rx2();new B((Y)=>{try{for(let V of Y?.getEntries?.()??[]){let E=V,F=Number(E.duration??0);if(!Number.isFinite(F)||F<U)continue;vJ(`[GC] ${F.toFixed(1)}ms kind=${ox2(E.kind)} name=${String(E.name??"")}`)}}catch{}}).observe({entryTypes:["gc"]})}catch{}}fE();function WaA(A){let Q=String(A[0]??"").trim().toLowerCase();if(Q==="version"||Q==="--version"||Q==="-v")return{kind:"version"};if(Q==="upgrade"||Q==="update")return{kind:"upgrade",argv:A.slice(1)};if(Q==="acp")return{kind:"acp",argv:A.slice(1)};if(Q==="server")return{kind:"server",argv:A.slice(1)};if(Q==="auth")return{kind:"auth",argv:A.slice(1)};if(Q==="exec"||Q==="e")return{kind:"exec",argv:A.slice(1)};if(Q&&!Q.startsWith("-"))return{kind:"prompt",argv:A};return{kind:"none",argv:A}}var b81=WZ(void 0,"DEBUG"),Ed=b81==="1"||b81==="true"||b81==="yes"||b81==="on"||process.argv.includes("--debug"),m81=SK(void 0,"DEBUG_LOG")||"./dimcode-debug.log",tx2=1500,ex2="DIMCODE_STARTUP_UPGRADE_WAIT_MS",Ah2="GOATCHAIN_STARTUP_UPGRADE_WAIT_MS";function QG(A,Q){if(!Ed)return;let U=`[${new Date().toISOString()}] ${A}${Q?`: ${JSON.stringify(Q,null,2)}`:""}
|
|
2580
2580
|
`;try{ZaA(m81,U)}catch{}}function Qh2(A){let Q=A instanceof Error?A:Error(String(A)),B={message:Q.message,stack:Q.stack};if(Ed){QG("[CLI] fatal error during setup",B);return}let J=`[${new Date().toISOString()}] [CLI] fatal error during setup: ${B.message}${B.stack?`
|
|
2581
2581
|
${B.stack}`:""}
|
|
2582
2582
|
`;try{ZaA(m81,J)}catch{}}var fj1={enabled:Ed,logPath:m81,log:QG};async function Bh2(A){let Q=globalThis.process;if(!Q)throw Error("runCli is only supported in Node");if(b_(Q.env,"TOKEN_COUNT_MODE","estimate"),b_(Q.env,"FAST_START","1"),cQ()){let O=[["PERF_LOG","1"],["PROFILE_LAYOUT_BREAKDOWN","1"],["PROFILE_RENDERERS","1"],["PROFILE_STREAM_MUTATIONS","1"],["PROFILE_TOOL_EXECUTION","1"],["EVENT_LOOP_LAG_LOG","1"],["EVENT_LOOP_LAG_LOG_PATH","/tmp/dimcode-event-loop-lag.log"],["EVENT_LOOP_LAG_INTERVAL_MS","50"],["EVENT_LOOP_LAG_WARN_MS","120"],["GC_LOG","1"],["GC_LOG_SLOW_MS","20"],["PROFILE_TUI","1"],["PROFILE_TUI_LOG_DEST","file"],["PROFILE_TUI_LOG_PATH","/tmp/dimcode-profile-tui.log"],["PROFILE_TUI_LOG_EVERY_MS","200"],["TRACE","1"],["TRACE_LOG_PATH","/tmp/dimcode-trace.log"],["TRACE_MAX_LINES_PER_SEC","10000"],["TRACE_LOG_MODE","async"]];for(let[w,R]of O)b_(Q.env,w,R)}if(dU())vJ(`[BOOT] perf=1 oneshot=${cQ()?1:0}`);if(WZ(Q.env,"TRACE")==="1")BL({tag:"BOOT",message:"trace=1",payload:{pid:process.pid,argv:(A??Q.argv?.slice(2)??[]).slice(0,16)}});if(WZ(Q.env,"EVENT_LOOP_LAG_LOG")==="1")SlA();IaA(),IdA();let B=A??Q.argv?.slice(2)??[];if(l91(B)){console.log(n91());return}let U=Kv1(B,{stdout:Q.stdout}),J=SK(Q.env,"TERM_TITLE_BASE")||String(U.app??"").trim()||"dim";if(b_(Q.env,"TERM_TITLE_BASE",J),eu(J,{stdout:Q.stdout}),U.debug){if(H51(Q.env,"DEBUG","1"),!Ed)Ed=!0,fj1.enabled=!0,uy1(fj1)}if(QG("[CLI] runCli() called"),QG("[CLI] args",{app:U.app,cols:U.cols,rows:U.rows}),U.approvals)H51(Q.env,"TOOL_APPROVALS",U.approvals);let Y=U.app==="dim"?(O)=>{let w=hy1({initialRoute:U.initialRoute||"home"});O.use(w)}:void 0;QG("[CLI] Before createGoatChainShellProps");let V=U.app==="dim"?await im({cwd:String(Q.cwd?.()??"."),env:Q.env}):{cols:U.cols,rows:U.rows};QG("[CLI] After createGoatChainShellProps"),QG("[CLI] About to call runTerminalUi");let E=hO({env:Q.env,isTTY:Boolean(Q.stdout?.isTTY),platform:String(Q.platform??"")}),F=m61(V?.context?.env??Q.env),I=X_1({mode:F,capability:E}),W=I.context,Z=W.token("bg.window")?.bg??"black",G=W.style(["text.primary","bg.window"]),X=W.palette??void 0,K=null,C=null,M=U.app==="dim"?(O)=>{let w=V?.onStoreCreated;if(typeof w==="function")w(O);sx2(()=>O?.state?.ui?.theme?.mode,(R)=>{I.setMode(R);let T=W.token("bg.window")?.bg??"black",S=W.style(["text.primary","bg.window"]),_=W.palette??void 0,P={defaultStyle:S,defaultBg:T,palette:_};if(C)C(P);else K=P},{immediate:!0})}:void 0,q=U.app==="dim"?{...V,onStoreCreated:M}:V,L=(O)=>{Y?.(O),O.provide(u61,W)};await kuA({proc:Q,cols:U.cols,rows:U.rows,sizeLocked:U.sizeLocked,component:by1,props:q,install:L,defaultStyle:U.app==="dim"?G:void 0,palette:U.app==="dim"?X:void 0,defaultBg:U.app==="dim"?Z:void 0,onThemeReady:(O)=>{if(C=O,K)O(K),K=null},altScreen:U.altScreen,enableMouse:U.enableMouse,recordPath:U.recordPath,replayPath:U.replayPath,snapshotPath:U.snapshotPath})}async function Uh2(){if(uy1(fj1),l91(process.argv.slice(2))){console.log(n91());try{process.stdin?.pause?.()}catch{}process.exit(0)}let A=process.argv.slice(2),Q=WaA(A);if(Q.kind==="version"){await PlA(process.env);try{process.stdin?.pause?.()}catch{}process.exit(0);return}if(Q.kind==="upgrade"){if(DG())await Hx1(Q.argv);else await uuA(Q.argv);return}if(Q.kind==="acp"){let E=String(process.cwd?.()??"."),F=process.env;await gj1({cwd:E,env:{ACP_DEBUG:"true",ACP_STICKY_SESSION:F.ACP_STICKY_SESSION,WORKSPACE_CWD:F.WORKSPACE_CWD}});return}if(Q.kind==="server"){await VaA(Q.argv);return}if(Q.kind==="auth"){let E=await AnA(Q.argv);try{process.stdin?.pause?.()}catch{}process.exit(Number.isFinite(E)?E:1);return}if(Q.kind==="exec"||Q.kind==="prompt"){let E=await jbA(Q.argv,process);try{process.stdin?.pause?.()}catch{}if(Number.isFinite(E))process.exit(E);process.exit(1);return}if(await $x1())return;let B=puA(ylA),U=D_1();U.then(B).catch((E)=>{QG("[CLI] upgrade check failed",{error:E instanceof Error?E.message:String(E)})});let J=String(process.env[ex2]??process.env[Ah2]??"").trim(),Y=J?Number(J):0;if(Number.isFinite(Y)&&Y>0){let E=await jlA(U,Math.min(Y,tx2));if(E===null)QG("[CLI] npm upgrade check timed out",{timeoutMs:Y});B(E)}let V=iuA({intervalMs:cuA(process.env),checkUpgrade:D_1,onMessage:B,onError:(E)=>{QG("[CLI] periodic upgrade check failed",{error:E instanceof Error?E.message:String(E)})}});try{await Bh2()}finally{V()}}if(DA.main==DA.module||import.meta.url===`file://${process.argv[1]}`)Uh2().catch((A)=>{Qh2(A),console.error("Fatal error during setup:",A),console.error(`Debug log written to: ${m81}`),g81(1)});export{Bh2 as runCli};
|