dimcode 0.0.10-beta.2 → 0.0.11

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.
@@ -9,4 +9,4 @@
9
9
  }
10
10
  } catch (e) {}
11
11
  })();
12
- </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"630937f4-6174-4e34-838d-eca8dea0bc0f",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771130987133,false]</script></body></html>
12
+ </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"95fbe12d-15ea-4bf8-91f9-6a016cdb79ea",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771131107210,false]</script></body></html>
@@ -9,4 +9,4 @@
9
9
  }
10
10
  } catch (e) {}
11
11
  })();
12
- </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"630937f4-6174-4e34-838d-eca8dea0bc0f",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771130987133,false]</script></body></html>
12
+ </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"95fbe12d-15ea-4bf8-91f9-6a016cdb79ea",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771131107210,false]</script></body></html>
@@ -1 +1 @@
1
- {"id":"630937f4-6174-4e34-838d-eca8dea0bc0f","timestamp":1771130973164}
1
+ {"id":"95fbe12d-15ea-4bf8-91f9-6a016cdb79ea","timestamp":1771131092101}
@@ -0,0 +1 @@
1
+ {"id":"95fbe12d-15ea-4bf8-91f9-6a016cdb79ea","timestamp":1771131092101,"prerendered":[]}
@@ -9,4 +9,4 @@
9
9
  }
10
10
  } catch (e) {}
11
11
  })();
12
- </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"630937f4-6174-4e34-838d-eca8dea0bc0f",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771130987133,false]</script></body></html>
12
+ </script><link rel="stylesheet" href="/_nuxt/entry.CEtVlF9V.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-markstream.D6yyxftE.css" crossorigin><link rel="stylesheet" href="/_nuxt/vendor-katex.ltkKqWhd.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DTsXV384.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cd_MtzEZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLcXGJ1M.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ULB_ug-y.js"><script type="module" src="/_nuxt/DTsXV384.js" crossorigin></script><meta name="description" content="GoatChain GUI - shared event stream viewer and query console."><script id="unhead:payload" type="application/json">{"title":"GoatChain GUI"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"95fbe12d-15ea-4bf8-91f9-6a016cdb79ea",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1771131107210,false]</script></body></html>
package/dist/cli.mjs CHANGED
@@ -2019,7 +2019,7 @@ ${["","Debug runtime values:",`DEBUG_SERVER_BASE_URL=${Q}`,`DEBUG_SESSION_ID=${B
2019
2019
  `);return{async*receiveMessage(U){yield{role:"assistant",content:B,metadata:{done:!0,error:!0,stopReason:"error",originalEventType:"done"}}}}}import{appendFileSync as onA}from"node:fs";function h91(A){return A.includes("-h")||A.includes("--help")}function b91(){return["Usage:"," dim [--route name] [--approvals auto|all] [--auto-approve|-y] [--cols N --rows N] [--record file] [--replay file] [--snapshot file] [--no-mouse] [--no-alt-screen] [--debug]"," dim version"," dim upgrade [version] [--check] [--quiet]"," dim server [--host HOST] [--port N] [--open] [--token TOKEN] [--verbose] [--debug-ui|--debug]"," dim gui [--host HOST] [--port N] [--gui-host HOST] [--gui-port N] [--open|--no-open] [--token TOKEN] [--verbose] [--debug-ui|--debug]"," dim exec [-c dir] <prompt>"," dim acp","","Notes:"," - Auto-update is enabled by default (set DIMCODE_DISABLE_AUTOUPDATE=1 to disable checks; set DIMCODE_AUTOUPDATE=0 to disable background installs; set DIMCODE_UPGRADE_CHECK_INTERVAL_MS=0 to disable periodic checks)."," - npm install: updates are checked against npm."," - standalone binary: updates are checked against releases; `dim upgrade` installs under ~/.dimcode/dimcode/bin."," - server: starts the local API server and serves the bundled Web GUI (if present). Use --open to launch the browser; add --debug-ui/--debug to show diagnostics."," - gui: starts the Nuxt dev server (hot reload) and a local API server. Repo-only: expects ./packages/gui and requires bun."," - acp: Start ACP server mode for editor integrations (e.g., Zed)."," - exec: Run a one-shot prompt (tools auto-approved)."].join(`
2020
2020
  `)}function Qv1(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,F=J,V=!1,E=!1,I="dim",W="home",Z=null,D=null,X=null,K=!0,C=!0,M=null,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),V=!0;else if(w==="--rows")F=Number.parseInt(O()??"",10),E=!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 g=String(O()??"").trim().toLowerCase();if(g==="auto")M="auto";else if(g==="all"||g==="on"||g==="yes"||g==="true"||g==="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")D=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)),F=Math.max(5,Math.floor(F||J)),{cols:Y,rows:F,sizeLocked:V||E,app:I,initialRoute:W,recordPath:Z,replayPath:D,snapshotPath:X,enableMouse:K,altScreen:C,approvals:M,debug:q}}var bI=C9(cd(),1);import{spawn as of1}from"node:child_process";import{createWriteStream as w40,existsSync as P40,statSync as T40}from"node:fs";import{chmod as Y51,mkdir as sf1,readFile as S40,rename as tf1,stat as _40,unlink as y40,writeFile as j40}from"node:fs/promises";import GC from"node:path";import{Readable as k40}from"node:stream";import{pipeline as v40}from"node:stream/promises";RL();function _0(A){return String(A??"").trim()||void 0}function VJ(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 gL(A){return JSON.parse(JSON.stringify(A))}async function iF(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=_0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U,pd);let J=_0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,k_,pd);return B.resolve(Q(),k_,pd)}async function U51(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=_0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U);let J=_0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,k_);return B.resolve(Q(),k_)}async function nd(A){let Q=await iF(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"),F=JSON.parse(Y);if(F&&typeof F==="object"&&F.version===1)return{dir:Q,filePath:J,cache:F}}catch{}return{dir:Q,filePath:J,cache:{version:1,updatedAt:0}}}async function ad(A){let Q=await U51(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"),F=JSON.parse(Y);if(F&&typeof F==="object"&&F.version===1)return{dir:Q,filePath:J,config:F}}catch{}return{dir:Q,filePath:J,config:{version:1,updatedAt:0}}}async function v_(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},F]=await Promise.all([import("node:fs/promises"),import("node:path")]),V=F.dirname(A);await B(V,{recursive:!0});let E=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${E}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
2021
2021
  `;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}async function yK(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},F]=await Promise.all([import("node:fs/promises"),import("node:path")]),V=F.dirname(A);await B(V,{recursive:!0});let E=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${E}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
2022
- `;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var q40="upgrade-toast.json";function DD(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{}O40(Q)}async function O40(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await iF(process.env);await Q(J,{recursive:!0});let Y=U.join(J,q40),F=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,F,"utf8")}catch{}}import{existsSync as L40,readFileSync as z40}from"node:fs";import J51 from"node:path";import{fileURLToPath as R40}from"node:url";function XD(){let A="0.0.10-beta.2".trim();if(A)return{version:A,source:"injected"};let Q=g40();if(Q)return{version:Q,source:"package"};return null}function g40(){try{let A=J51.dirname(R40(import.meta.url));for(let Q=0;Q<6;Q++){let B=J51.join(A,"package.json");if(L40(B)){let J=z40(B,"utf8"),Y=JSON.parse(J),F=typeof Y?.version==="string"?Y.version.trim():"";if(F)return F}let U=J51.dirname(A);if(U===A)break;A=U}}catch{}return null}var ef1="binary-upgrade.json",Ax1=1e4,F51="gitlab.bfbops.com",lf1="nextim/goatagent",nf1="nextim/goatagent",Qx1="https://api.github.com",f40=5000,x40=30000,af1=new Set;function h40(){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):f40}function b40(){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):x40}function wL(){try{let A=String(process.execPath??"").trim();if(!A)return"npm";let B=GC.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 KD(A=process){try{let Q=String(A.execPath??"").trim();if(!Q)return!1;let B=GC.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 V51(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 m40(A,Q=process.platform){return Q==="win32"?`dim-${A}.exe`:`dim-${A}`}function u40(A){let Q=String(A??"").trim();if(!Q)return null;let B=Q.startsWith("v")?Q.slice(1):Q;return bI.default.valid(B)?B:null}function d40(A){return String(A??"").trim().replace(/[^\w.-]/g,"_")}function c40(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 p40(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:"",F=typeof U?.url==="string"?U.url:"",V=Y||F;if(J===Q&&V)return{name:J,url:V}}return null}async function Bx1(){if(process.env.GOATCHAIN_BINARY_LAUNCHED==="1")return!1;if(!KD())return!1;let A=XD()?.version;if(!A||!bI.default.valid(A))return!1;let Q=await l40(process.env);if(!Q)return!1;if(!bI.default.valid(Q.cliVersion)||!bI.default.gt(Q.cliVersion,A))return!1;if(!Yx1(Q.binaryPath))return!1;let B={...process.env,DIMCODE_BINARY_LAUNCHED:"1",GOATCHAIN_BINARY_LAUNCHED:"1"},U=process.argv.slice(1);try{return of1(Q.binaryPath,U,{stdio:"inherit",env:B}).unref(),!0}catch{return!1}}async function Ux1(){if((process.env.DIMCODE_DISABLE_AUTOUPDATE??process.env.GOATCHAIN_DISABLE_AUTOUPDATE)==="1")return null;if(!KD())return null;let A=XD()?.version;if(!A||!bI.default.valid(A))return null;let Q=await o40(process.env);if(!Q)return null;if(!bI.default.valid(Q.version)||bI.default.gte(A,Q.version))return null;if((process.env.DIMCODE_AUTOUPDATE??process.env.GOATCHAIN_AUTOUPDATE)!=="0"){if(af1.has(Q.version))return null;return af1.add(Q.version),A80(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 Jx1(A){if(!KD()){console.error("Binary upgrade is only supported for the standalone compiled dim binary.");let F=wL();console.error(`If you installed via ${F}, run: ${F==="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=i40(Q),Y=J&&J!=="latest"?J:"latest";try{let F=await Vx1(Y,process.env);if(!F)throw Error("failed to resolve release info");let V=XD()?.version;if(U){if(V&&bI.default.valid(V)&&bI.default.valid(F.version)&&bI.default.gte(V,F.version)){if(!B)console.log(`Already up to date: ${V}`);return}if(!B)console.log(`Update available: ${F.version}${V?` (current: ${V})`:""}`);return}let I=`Update installed: dim ${(await Q80(F,process.env)).version}. Restart to use the new version.`;if(!B)console.log(I);DD(I)}catch(F){let E=`Binary upgrade failed: ${F instanceof Error?F.message:String(F)}`;if(!B)console.error(E);DD(E),process.exitCode=1}}function i40(A){for(let Q of A)if(!Q.startsWith("-"))return Q;return null}function Yx1(A){try{if(!P40(A))return!1;return T40(A).size>Ax1}catch{return!1}}async function l40(A){try{let Q=await iF(A),B=GC.join(Q,"bin",ef1),U=await S40(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:"",F=typeof J.binaryPath==="string"?J.binaryPath:"",V=typeof J.target==="string"?J.target:"",E=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,D=typeof J.host==="string"?J.host:void 0;if(!Y||!F||!V||!E||!I||!W)return null;return{version:1,installedAt:Z,cliVersion:Y,target:V,provider:E,project:I,host:D,assetName:W,binaryPath:F}}catch{return null}}async function rf1(A,Q){let B=await iF(A),U=GC.join(B,"bin");await sf1(U,{recursive:!0});let J=GC.join(U,ef1),Y=globalThis.process?.pid??"p",F=`${Date.now()}-${Math.random().toString(16).slice(2)}`,V=`${J}.${Y}.${F}.tmp`;await j40(V,`${JSON.stringify(Q,null,2)}
2022
+ `;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var q40="upgrade-toast.json";function DD(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{}O40(Q)}async function O40(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await iF(process.env);await Q(J,{recursive:!0});let Y=U.join(J,q40),F=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,F,"utf8")}catch{}}import{existsSync as L40,readFileSync as z40}from"node:fs";import J51 from"node:path";import{fileURLToPath as R40}from"node:url";function XD(){let A="0.0.11".trim();if(A)return{version:A,source:"injected"};let Q=g40();if(Q)return{version:Q,source:"package"};return null}function g40(){try{let A=J51.dirname(R40(import.meta.url));for(let Q=0;Q<6;Q++){let B=J51.join(A,"package.json");if(L40(B)){let J=z40(B,"utf8"),Y=JSON.parse(J),F=typeof Y?.version==="string"?Y.version.trim():"";if(F)return F}let U=J51.dirname(A);if(U===A)break;A=U}}catch{}return null}var ef1="binary-upgrade.json",Ax1=1e4,F51="gitlab.bfbops.com",lf1="nextim/goatagent",nf1="nextim/goatagent",Qx1="https://api.github.com",f40=5000,x40=30000,af1=new Set;function h40(){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):f40}function b40(){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):x40}function wL(){try{let A=String(process.execPath??"").trim();if(!A)return"npm";let B=GC.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 KD(A=process){try{let Q=String(A.execPath??"").trim();if(!Q)return!1;let B=GC.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 V51(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 m40(A,Q=process.platform){return Q==="win32"?`dim-${A}.exe`:`dim-${A}`}function u40(A){let Q=String(A??"").trim();if(!Q)return null;let B=Q.startsWith("v")?Q.slice(1):Q;return bI.default.valid(B)?B:null}function d40(A){return String(A??"").trim().replace(/[^\w.-]/g,"_")}function c40(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 p40(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:"",F=typeof U?.url==="string"?U.url:"",V=Y||F;if(J===Q&&V)return{name:J,url:V}}return null}async function Bx1(){if(process.env.GOATCHAIN_BINARY_LAUNCHED==="1")return!1;if(!KD())return!1;let A=XD()?.version;if(!A||!bI.default.valid(A))return!1;let Q=await l40(process.env);if(!Q)return!1;if(!bI.default.valid(Q.cliVersion)||!bI.default.gt(Q.cliVersion,A))return!1;if(!Yx1(Q.binaryPath))return!1;let B={...process.env,DIMCODE_BINARY_LAUNCHED:"1",GOATCHAIN_BINARY_LAUNCHED:"1"},U=process.argv.slice(1);try{return of1(Q.binaryPath,U,{stdio:"inherit",env:B}).unref(),!0}catch{return!1}}async function Ux1(){if((process.env.DIMCODE_DISABLE_AUTOUPDATE??process.env.GOATCHAIN_DISABLE_AUTOUPDATE)==="1")return null;if(!KD())return null;let A=XD()?.version;if(!A||!bI.default.valid(A))return null;let Q=await o40(process.env);if(!Q)return null;if(!bI.default.valid(Q.version)||bI.default.gte(A,Q.version))return null;if((process.env.DIMCODE_AUTOUPDATE??process.env.GOATCHAIN_AUTOUPDATE)!=="0"){if(af1.has(Q.version))return null;return af1.add(Q.version),A80(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 Jx1(A){if(!KD()){console.error("Binary upgrade is only supported for the standalone compiled dim binary.");let F=wL();console.error(`If you installed via ${F}, run: ${F==="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=i40(Q),Y=J&&J!=="latest"?J:"latest";try{let F=await Vx1(Y,process.env);if(!F)throw Error("failed to resolve release info");let V=XD()?.version;if(U){if(V&&bI.default.valid(V)&&bI.default.valid(F.version)&&bI.default.gte(V,F.version)){if(!B)console.log(`Already up to date: ${V}`);return}if(!B)console.log(`Update available: ${F.version}${V?` (current: ${V})`:""}`);return}let I=`Update installed: dim ${(await Q80(F,process.env)).version}. Restart to use the new version.`;if(!B)console.log(I);DD(I)}catch(F){let E=`Binary upgrade failed: ${F instanceof Error?F.message:String(F)}`;if(!B)console.error(E);DD(E),process.exitCode=1}}function i40(A){for(let Q of A)if(!Q.startsWith("-"))return Q;return null}function Yx1(A){try{if(!P40(A))return!1;return T40(A).size>Ax1}catch{return!1}}async function l40(A){try{let Q=await iF(A),B=GC.join(Q,"bin",ef1),U=await S40(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:"",F=typeof J.binaryPath==="string"?J.binaryPath:"",V=typeof J.target==="string"?J.target:"",E=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,D=typeof J.host==="string"?J.host:void 0;if(!Y||!F||!V||!E||!I||!W)return null;return{version:1,installedAt:Z,cliVersion:Y,target:V,provider:E,project:I,host:D,assetName:W,binaryPath:F}}catch{return null}}async function rf1(A,Q){let B=await iF(A),U=GC.join(B,"bin");await sf1(U,{recursive:!0});let J=GC.join(U,ef1),Y=globalThis.process?.pid??"p",F=`${Date.now()}-${Math.random().toString(16).slice(2)}`,V=`${J}.${Y}.${F}.tmp`;await j40(V,`${JSON.stringify(Q,null,2)}
2023
2023
  `,{encoding:"utf8",mode:384}),await tf1(V,J);try{await Y51(J,384)}catch{}}function n40(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 E51(A){let Q=n40(A),B=a40(A),U=r40(A,Q);return{provider:Q,host:U.host,project:U.project,githubApiBaseUrl:B}}function a40(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 Qx1}function r40(A,Q){if(Q==="github"){let F="".trim();return{project:String(A.DIMCODE_BINARY_UPDATE_REPO??A.GOATCHAIN_BINARY_UPDATE_REPO??F??nf1).trim()||nf1}}let B="".trim(),U="".trim(),J=String(A.DIMCODE_BINARY_UPDATE_GITLAB_HOST??A.GOATCHAIN_BINARY_UPDATE_GITLAB_HOST??B??F51).trim()||F51,Y=String(A.DIMCODE_BINARY_UPDATE_PROJECT??A.GOATCHAIN_BINARY_UPDATE_PROJECT??U??lf1).trim()||lf1;return{host:J,project:Y}}function Fx1(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 o40(A){return await Vx1("latest",A)}async function Vx1(A,Q){let B=E51(Q),U=B.provider,J={host:B.host,project:B.project},Y=Fx1(Q,U),F=V51();if(!F)return null;let V=m40(F),E=A==="latest"?["latest"]:s40(A);for(let I of E){let W=await t40({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),D=u40(Z);if(!D)continue;let X=U==="github"?c40(W,V):p40(W,V);if(!X)continue;return{provider:U,host:J.host,project:J.project,tag:Z,version:D,asset:X,target:F,assetName:V}}return null}function s40(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 t40(A){let Q=new AbortController,B=setTimeout(()=>Q.abort(),h40());try{let U=e40(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 e40(A){if(A.provider==="github"){let U=String(A.githubApiBaseUrl||Qx1).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||F51,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 A80(A){try{of1(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 Q80(A,Q){let B=await iF(Q),U=GC.join(B,"bin");await sf1(U,{recursive:!0});let J=process.platform==="win32"?".exe":"",Y=d40(A.version),F=GC.join(U,`dim-${A.target}-${Y}${J}`);if(Yx1(F)){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:F};return await rf1(Q,I),{version:A.version,binaryPath:F}}let V=`${F}.${process.pid}.${Date.now()}.tmp`;if(await B80(A.asset.url,V,Fx1(Q,A.provider)),process.platform!=="win32")try{await Y51(V,493)}catch{}try{await y40(F)}catch{}await tf1(V,F);try{if(process.platform!=="win32")await Y51(F,493)}catch{}let E={version:1,installedAt:Date.now(),cliVersion:A.version,target:A.target,provider:A.provider,project:A.project,host:A.host,assetName:A.assetName,binaryPath:F};return await rf1(Q,E),{version:A.version,binaryPath:F}}async function B80(A,Q,B){let U=new AbortController,J=setTimeout(()=>U.abort(),b40());try{let Y=await fetch(A,{redirect:"follow",headers:B,signal:U.signal});if(!Y.ok)throw Error(`download failed (${Y.status})`);let F=Y.body;if(!F)throw Error("download response has no body");if(await v40(k40.fromWeb(F),w40(Q)),(await _40(Q)).size<=Ax1)throw Error("downloaded file is too small")}finally{clearTimeout(J)}}import*as ObA from"node:path";function j21(A){let Q=A.processEnv,B=(Z)=>{let D=String(Z??"").trim().toLowerCase();return D==="1"||D==="true"||D==="yes"||D==="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,F=null,V=null,E=async()=>{if(Y)return Y;if(F)return F;if(F=(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"})(),D=String(Q.DIMCODE_PROVIDER_ADAPTER||Q.GOATCHAIN_PROVIDER_ADAPTER||A.context.env.DIMCODE_PROVIDER_ADAPTER||A.context.env.GOATCHAIN_PROVIDER_ADAPTER||"").trim().toLowerCase(),X=D==="openai"||D==="openai-responses"||D==="gemini"||D==="anthropic"?D:"",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,g={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(() => (dhA(),uhA))).createGoatChainWorkerAgent(g);return(await Promise.resolve().then(() => (_21(),S21))).createGoatChainNodeAgent(g)}catch(Z){return console.warn("[dimcode] Failed to start DimCode agent:",Z),(await Promise.resolve().then(() => chA)).createErrorGoatChainAgent(Z)}})(),Y=await F,V=Y?.__sessions??null,F=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(V)return V;return V=(await E())?.__sessions??null,V};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 D=await I();if(typeof D?.destroy==="function")await D.destroy(Z)},async createWithMessages(Z){return(await I())?.createWithMessages?.(Z)??null},async rename(Z,D){return(await I())?.rename?.(Z,D)??null},async updateMetadata(Z,D){return(await I())?.updateMetadata?.(Z,D)??null}},async*receiveMessage(Z,D){yield*(await E()).receiveMessage(Z,D)},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 E()).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{}E().then((D)=>{let X=D?.invalidateSession;if(typeof X==="function")X(Z)})}}}ym();var phA=`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.
2024
2024
 
2025
2025
  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.
@@ -2126,7 +2126,7 @@ user: Where are errors from the client handled?
2126
2126
  assistant: Clients are marked as failed in the \`connectToServer\` function in src/services/process.ts:712.
2127
2127
  </example>
2128
2128
  `;wF();import{webcrypto as lhA}from"node:crypto";var ihA="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var RL2=128,_O,pT;function gL2(A){if(!_O||_O.length<A)_O=Buffer.allocUnsafe(A*RL2),lhA.getRandomValues(_O),pT=0;else if(pT+A>_O.length)lhA.getRandomValues(_O),pT=0;pT+=A}function k21(A=21){gL2(A|=0);let Q="";for(let B=pT-A;B<pT;B++)Q+=ihA[_O[B]&63];return Q}wF();function ZK(A){let Q=A&&typeof A==="object"?A:{},B=VJ(Q.context),U=VJ(Q.output);if(B==null&&U==null)return;return{...B!=null?{context:B}:{},...U!=null?{output:U}:{}}}var wL2="cp_";function nhA(A){let Q=_0(A);if(Q&&E4(Q))return Q;return`${wL2}${k21(10)}`}function PL2(A){let Q=_0(A);if(Q==="openai"||Q==="openai-responses"||Q==="gemini"||Q==="anthropic")return Q;return}function vT1(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=_0(B?.id);if(!U)continue;let J=_0(B?.name),Y=ZK(B?.limit);Q.push({id:U,...J?{name:J}:{},...Y?{limit:Y}:{}})}return Q}function TL2(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=_0(B?.id),J=_0(B?.name),Y=PL2(B?.adapter);if(!U||!J||!Y)continue;Q.push({id:nhA(U),name:J,adapter:Y,baseUrl:_0(B?.baseUrl),apiKey:_0(B?.apiKey),models:vT1(B?.models)})}return Q}function SL2(A){let Q=A?.customProvider??{},B=_0(Q.baseUrl),U=_0(Q.apiKey),J=vT1(Q.models);return Boolean(B||U||J.length)}function _L2(A){let Q=A?.customProvider??{};return{id:nhA(void 0),name:"Custom",adapter:"openai",baseUrl:_0(Q.baseUrl),apiKey:_0(Q.apiKey),models:vT1(Q.models)}}function v21(A){let Q=A.settings??{},B=!1,U=TL2(Q.customProviders);if(!U.length&&SL2(Q))U=[_L2(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 fT1={websearch:{apiKey:"",apiEndpoint:"https://google.serper.dev/search?format=json",numResults:10},mcpServers:[]};async function ahA(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=_0(A.DIMCODE_HOME??A.GOATCHAIN_HOME),J;if(U)J=B.resolve(U);else{let F=_0(A.XDG_CONFIG_HOME);if(F)J=B.resolve(F,"dimcode");else J=B.resolve(Q(),".dimcode")}let Y=B.join(J,"tools.json");try{let{readFile:F}=await import("node:fs/promises"),V=await F(Y,"utf8"),E=JSON.parse(V);if(E&&typeof E==="object"&&E.version===1)return{dir:J,filePath:Y,tools:E}}catch{}return{dir:J,filePath:Y,tools:{version:1,updatedAt:0}}}async function rhA(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},F]=await Promise.all([import("node:fs/promises"),import("node:path")]),V=F.dirname(A);await B(V,{recursive:!0});let E=globalThis.process?.pid??"p",I=`${Date.now()}-${Math.random().toString(16).slice(2)}`,W=`${A}.${E}.${I}.tmp`,Z=`${JSON.stringify(Q,null,2)}
2129
- `;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function ohA(A){let Q=A.prev.settings??{},B=A.store.state,J=B?.tools?.websearch??{},Y=Array.isArray(B?.mcp?.servers)?B.mcp.servers:[],F={...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:F}}function shA(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=_0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=_0(U.apiEndpoint)??fT1.websearch.apiEndpoint,Q.tools.websearch.numResults=VJ(U.numResults)??fT1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...fT1.mcpServers]}async function mm(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=_0("0.0.10-beta.2")??(B?null:await f21(A.cwd)),J=async()=>{let[{homedir:U1},c]=await Promise.all([import("node:os"),import("node:path")]),B1=_0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(B1){let W1=c.resolve(B1);return{dir:W1,filePath:c.join(W1,"tools.json")}}let V1=_0(A.env.XDG_CONFIG_HOME);if(V1){let W1=c.resolve(V1,"dimcode");return{dir:W1,filePath:c.join(W1,"tools.json")}}let A1=c.resolve(U1(),".dimcode");return{dir:A1,filePath:c.join(A1,"tools.json")}},[Y,F,V]=B?await(async()=>{let[U1,c,B1,V1]=await Promise.all([iF(A.env),U51(A.env),J(),import("node:path")]),A1=V1.join(U1,"cache.json"),W1=V1.join(c,"config.json");return[{dir:U1,filePath:A1,cache:{version:1,updatedAt:0}},{dir:c,filePath:W1,config:{version:1,updatedAt:0}},{dir:B1.dir,filePath:B1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([nd(A.env),ad(A.env),ahA(A.env)]),E=Y.cache,I=F.config;v21(I);let W=E.settings??{},Z=I.settings??{},D=_0(W.cwd),X=Array.isArray(W.focusFiles)?W.focusFiles.map((U1)=>String(U1??"")).filter(Boolean):void 0,K=_0(W.authMethod),C=_0(W.codexModel)||_0(W.model),M=fV.some((U1)=>U1.id===C)?C:void 0,q=A.cwd||D||".",L=(U1,c)=>_0(A.env[U1]??(c?A.env[c]: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=LF;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=LF;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=zF(Z.providerId),g=Z.providerConnections??{},T=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},P=_0(_?.baseUrl),h=_0(_?.apiKey),j=Array.isArray(_?.models)?_.models.map((U1)=>_0(U1?.id)).filter(Boolean):[],x=_0(T.custom),i=(()=>{if($5(w)&&S.length){let U1=_0(S[0]?.id);if(U1){if(I.settings)I.settings.providerId=U1;return U1}}return w})(),n=E4(i)?S.find((U1)=>String(U1?.id??"").trim()===i):void 0,Q1=i&&!E4(i)&&!$5(i)?h9(i):void 0,e=E4(i)?String(n?.adapter??"").trim():$5(i)?"openai":xV(Q1),r=E4(i)?_0(n?.baseUrl):$5(i)?P:_0(g[i??""]?.baseUrl??gF(Q1)),v=E4(i)?_0(n?.apiKey):$5(i)?h:_0(g[i??""]?.apiKey),k=E4(i)?_0(T[i]??x??n?.models?.[0]?.id):$5(i)?_0(x??j[0]):_0(T[i??""]??g[i??""]?.models?.[0]?.id??hG(Q1));if($5(i)&&!r&&!v&&!k)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&&e)O.DIMCODE_PROVIDER_ADAPTER=e;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&k)O.DIMCODE_MODEL=k;if(e==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&r)O.DIMCODE_GEMINI_BASE_URL=r;if(!O.GOOGLE_API_KEY&&v)O.GOOGLE_API_KEY=v}else if(e==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&r)O.DIMCODE_ANTHROPIC_BASE_URL=r;if(!O.ANTHROPIC_API_KEY&&v)O.ANTHROPIC_API_KEY=v}else{if(!O.DIMCODE_OPENAI_BASE_URL&&r)O.DIMCODE_OPENAI_BASE_URL=r;if(!O.OPENAI_API_KEY&&v)O.OPENAI_API_KEY=v}if(!O.DIMCODE_CONTEXT_WINDOW&&VJ(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&VJ(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&&_0(W.locale))O.DIMCODE_LANG=_0(W.locale);if(!O.DIMCODE_THEME&&_0(W.themeMode))O.DIMCODE_THEME=_0(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(M21(Q1))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:phA,cwd:q,env:O,...X?.length?{focusFiles:X}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:E,configDir:F.dir,configFile:F.filePath,config:I,toolsFile:V.filePath,tools:V.tools}}async function f21(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 zY}from"vue";var thA="standard",yL2=new Set(["off","low","standard"]);function ehA(A){let Q=String(A??"").trim().toLowerCase();if(yL2.has(Q))return Q;return"standard"}var mJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function jL2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function x21(A){return Boolean(h21(A))}function h21(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(jL2).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,F=!1,V=!1,E=!1;for(let I of B){if(I==="mod"){J=!0;continue}if(I==="ctrl"){Y=!0;continue}if(I==="cmd"||I==="meta"){F=!0;continue}if(I==="alt"){V=!0;continue}if(I==="shift"){E=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:F,alt:V,shift:E}}function kL2(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 xT1(A,Q){let B=h21(A);if(!B)return Q;return kL2(B)}function lW(A){let Q=A&&typeof A==="object"?A:{},B=xT1(Q.commands,mJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:xT1(Q.timeline,mJ.timeline),newSession:xT1(Q.newSession,mJ.newSession)}}function vL2(){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 qH(A){let Q=h21(A);if(!Q)return"";let B=[],U=vL2();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 qI(A,Q){let B=h21(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),F=Boolean(A.altKey),V=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!==F)return!1;if(B.shift!==V)return!1;return!0}wF();var AbA=/^[0-9a-f]{7,40}$/i,fL2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function mV(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!AbA.test(B))return null;return B}function xL2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function QbA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(fL2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!AbA.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=xL2(Q);return`[${Q}](${B})`}function BbA(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(`
2129
+ `;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function ohA(A){let Q=A.prev.settings??{},B=A.store.state,J=B?.tools?.websearch??{},Y=Array.isArray(B?.mcp?.servers)?B.mcp.servers:[],F={...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:F}}function shA(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=_0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=_0(U.apiEndpoint)??fT1.websearch.apiEndpoint,Q.tools.websearch.numResults=VJ(U.numResults)??fT1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...fT1.mcpServers]}async function mm(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=_0("0.0.11")??(B?null:await f21(A.cwd)),J=async()=>{let[{homedir:U1},c]=await Promise.all([import("node:os"),import("node:path")]),B1=_0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(B1){let W1=c.resolve(B1);return{dir:W1,filePath:c.join(W1,"tools.json")}}let V1=_0(A.env.XDG_CONFIG_HOME);if(V1){let W1=c.resolve(V1,"dimcode");return{dir:W1,filePath:c.join(W1,"tools.json")}}let A1=c.resolve(U1(),".dimcode");return{dir:A1,filePath:c.join(A1,"tools.json")}},[Y,F,V]=B?await(async()=>{let[U1,c,B1,V1]=await Promise.all([iF(A.env),U51(A.env),J(),import("node:path")]),A1=V1.join(U1,"cache.json"),W1=V1.join(c,"config.json");return[{dir:U1,filePath:A1,cache:{version:1,updatedAt:0}},{dir:c,filePath:W1,config:{version:1,updatedAt:0}},{dir:B1.dir,filePath:B1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([nd(A.env),ad(A.env),ahA(A.env)]),E=Y.cache,I=F.config;v21(I);let W=E.settings??{},Z=I.settings??{},D=_0(W.cwd),X=Array.isArray(W.focusFiles)?W.focusFiles.map((U1)=>String(U1??"")).filter(Boolean):void 0,K=_0(W.authMethod),C=_0(W.codexModel)||_0(W.model),M=fV.some((U1)=>U1.id===C)?C:void 0,q=A.cwd||D||".",L=(U1,c)=>_0(A.env[U1]??(c?A.env[c]: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=LF;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=LF;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=zF(Z.providerId),g=Z.providerConnections??{},T=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},P=_0(_?.baseUrl),h=_0(_?.apiKey),j=Array.isArray(_?.models)?_.models.map((U1)=>_0(U1?.id)).filter(Boolean):[],x=_0(T.custom),i=(()=>{if($5(w)&&S.length){let U1=_0(S[0]?.id);if(U1){if(I.settings)I.settings.providerId=U1;return U1}}return w})(),n=E4(i)?S.find((U1)=>String(U1?.id??"").trim()===i):void 0,Q1=i&&!E4(i)&&!$5(i)?h9(i):void 0,e=E4(i)?String(n?.adapter??"").trim():$5(i)?"openai":xV(Q1),r=E4(i)?_0(n?.baseUrl):$5(i)?P:_0(g[i??""]?.baseUrl??gF(Q1)),v=E4(i)?_0(n?.apiKey):$5(i)?h:_0(g[i??""]?.apiKey),k=E4(i)?_0(T[i]??x??n?.models?.[0]?.id):$5(i)?_0(x??j[0]):_0(T[i??""]??g[i??""]?.models?.[0]?.id??hG(Q1));if($5(i)&&!r&&!v&&!k)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&&e)O.DIMCODE_PROVIDER_ADAPTER=e;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&k)O.DIMCODE_MODEL=k;if(e==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&r)O.DIMCODE_GEMINI_BASE_URL=r;if(!O.GOOGLE_API_KEY&&v)O.GOOGLE_API_KEY=v}else if(e==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&r)O.DIMCODE_ANTHROPIC_BASE_URL=r;if(!O.ANTHROPIC_API_KEY&&v)O.ANTHROPIC_API_KEY=v}else{if(!O.DIMCODE_OPENAI_BASE_URL&&r)O.DIMCODE_OPENAI_BASE_URL=r;if(!O.OPENAI_API_KEY&&v)O.OPENAI_API_KEY=v}if(!O.DIMCODE_CONTEXT_WINDOW&&VJ(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&VJ(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&&_0(W.locale))O.DIMCODE_LANG=_0(W.locale);if(!O.DIMCODE_THEME&&_0(W.themeMode))O.DIMCODE_THEME=_0(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(M21(Q1))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:phA,cwd:q,env:O,...X?.length?{focusFiles:X}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:E,configDir:F.dir,configFile:F.filePath,config:I,toolsFile:V.filePath,tools:V.tools}}async function f21(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 zY}from"vue";var thA="standard",yL2=new Set(["off","low","standard"]);function ehA(A){let Q=String(A??"").trim().toLowerCase();if(yL2.has(Q))return Q;return"standard"}var mJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function jL2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function x21(A){return Boolean(h21(A))}function h21(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(jL2).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,F=!1,V=!1,E=!1;for(let I of B){if(I==="mod"){J=!0;continue}if(I==="ctrl"){Y=!0;continue}if(I==="cmd"||I==="meta"){F=!0;continue}if(I==="alt"){V=!0;continue}if(I==="shift"){E=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:F,alt:V,shift:E}}function kL2(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 xT1(A,Q){let B=h21(A);if(!B)return Q;return kL2(B)}function lW(A){let Q=A&&typeof A==="object"?A:{},B=xT1(Q.commands,mJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:xT1(Q.timeline,mJ.timeline),newSession:xT1(Q.newSession,mJ.newSession)}}function vL2(){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 qH(A){let Q=h21(A);if(!Q)return"";let B=[],U=vL2();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 qI(A,Q){let B=h21(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),F=Boolean(A.altKey),V=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!==F)return!1;if(B.shift!==V)return!1;return!0}wF();var AbA=/^[0-9a-f]{7,40}$/i,fL2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function mV(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!AbA.test(B))return null;return B}function xL2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function QbA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(fL2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!AbA.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=xL2(Q);return`[${Q}](${B})`}function BbA(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(`
2130
2130
  `),U=String(B[0]??"").trim();if(U!=="[focus_files]"&&U!=="[user_focus_files]"){let F=((I)=>{let W=String(I??"");if(!W)return null;let Z=0,D=0;while(Z<W.length){while(Z<W.length&&(W[Z]===" "||W[Z]==="\t"||W[Z]===`
2131
2131
  `))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;D++,Z+=K[0].length}if(!D)return null;let X=W.slice(Z);if(X=X.replace(/^[ \t]+/g,""),X.startsWith(`
2132
2132
 
@@ -2565,7 +2565,7 @@ ${U}
2565
2565
 
2566
2566
  `)}function OnA(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 LnA(A){let Q=Array.isArray(A.attachments)?A.attachments:[];return[{role:"user",content:qnA(A.input,Q,A.imagesEnabled)}]}function znA(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 Ax2}from"node:crypto";function RnA(A,Q){let B="127.0.0.1",U=13442,J=!1,Y=!1,F=!1,V=Q?.env??process.env,E=Q?.makeToken??(()=>Ax2(12).toString("hex")),I=V.DIMCODE_SERVER_TOKEN||V.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 D=Number(A[++W]);if(Number.isFinite(D))U=Math.max(0,Math.floor(D))}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")F=!0;else if(Z==="--token"){let D=A[W+1];if(!D||String(D).startsWith("-"))I=E();else I=String(A[++W])}}return{host:B,port:U,open:J,verbose:Y,debugUi:F,token:I}}function gnA(A){return{append:(Q,B)=>{let U=A.appendRaw(Q,B);A.setLastEventId(U.id)}}}function wnA(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 F=Q.linesWritten??Q.lines_written,V=Number(F);return Number.isFinite(V)?V: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:"",F=typeof Q.tool_call_id==="string"?Q.tool_call_id:typeof Q.toolCallId==="string"?Q.toolCallId:typeof Q.callId==="string"?Q.callId:void 0,V=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,...F?{toolCallId:F,tool_call_id:F}:null,...V?{questions:V}: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:[]}}wF();import Qx2 from"node:os";import N3 from"node:path";import{fileURLToPath as Bx2}from"node:url";function Ux2(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 TnA(A,Q){let B=Ux2(Q.DIMCODE_IMAGES??Q.GOATCHAIN_IMAGES??Q.DIMCODE_VISION??Q.GOATCHAIN_VISION);if(B!=null)return B;let U=A.settings??{},J=zF(U.providerId),Y=U.activeModelByProvider??{},F=U.providerConnections??{},V=U.customProvider??{},I=String(Q.DIMCODE_MODEL??Q.GOATCHAIN_MODEL??"").trim()||(J==="custom"?String(Y.custom??(V.models?.[0]?.id??"")).trim():String(Y[J??""]??"").trim());if(!J||J==="custom"||!I)return!1;let W=h9(J),Z=W?.customModels?F?.[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 PnA(A){if(!A)return!1;return A.includes(N3.sep)}function Jx2(A){if(!A)return!1;let Q=N3.basename(A);if(Q==="dim"||Q==="dimcode"){if(A.includes(`${N3.sep}packages${N3.sep}cli${N3.sep}`))return!0;if(A.includes(`${N3.sep}.bin${N3.sep}`))return!1;return!1}if(/\.(?:mjs|cjs|js|ts)$/i.test(Q))return!0;if(A.includes(`${N3.sep}.bin${N3.sep}`))return!1;if(A.includes(`${N3.sep}packages${N3.sep}cli${N3.sep}`))return!0;return!1}function SnA(A){let Q=N3.dirname(Bx2(A.importMetaUrl)),B=PnA(A.argvPath)?A.argvPath:void 0,U=PnA(A.execPath)?A.execPath:void 0;if(!B&&U)return N3.resolve(N3.dirname(U));let J=B??U,Y=J?N3.dirname(J):void 0;if(Jx2(J)&&Y&&J){let V=/\.(?:mjs|cjs|js|ts)$/i.test(N3.basename(J));return N3.resolve(Y,V?"..":".")}return N3.resolve(Q,"..")}function Hj1(A){let Q=A.DIMCODE_GUI_DIR||A.GOATCHAIN_GUI_DIR;if(!Q)return;return N3.resolve(Q)}function Cj1(A){let Q=String(A.DIMCODE_HOME??A.GOATCHAIN_HOME??"").trim();if(Q)return N3.resolve(Q,"gui");let B=String(A.XDG_CONFIG_HOME??"").trim();if(B)return N3.resolve(B,".dimcode","gui");return N3.resolve(Qx2.homedir(),".dimcode","gui")}function Mj1(A){let Q=Cj1(A.env);return[N3.resolve(A.cliRoot,"..","gui",".output","public"),N3.resolve(A.cliRoot,"..","..","gui",".output","public"),N3.resolve(A.cwd,"packages","gui",".output","public"),Q,N3.resolve(A.cliRoot,"assets","gui"),N3.resolve(A.cliRoot,"..","assets","gui"),N3.resolve(A.cwd,"packages","cli","assets","gui")]}function _nA(A){let Q=Hj1(A.env);if(Q)return Q;let B=Mj1(A);for(let U of B)if(A.existsSync(U))return U;return B[0]}function ynA(A){return N3.join(A,"state")}function jnA(A){return N3.join(A,"uploads")}function knA(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 vnA(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 fnA(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 xnA(A){let Q=[];Q.push(`GoatChain server running at ${A.baseUrl}`);let B=String(A.token??"").trim();if(B)Q.push(`Token: ${B}`);let U=String(A.staticDir??"").trim();if(U&&A.existsSync(U))Q.push(`GUI assets: ${U}`);return Q}async function hnA(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 bnA(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 mnA(A){return{websearch:{apiKey:()=>A?.websearch?.apiKey??"",apiEndpoint:A?.websearch?.apiEndpoint,numResults:A?.websearch?.numResults}}}function unA(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)},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 Dx2(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=LnA({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 F=OnA({sessionId:B.sessionId,cwd:Y,env:A.contextEnv,toolContext:B.toolContext,resume:B.resume}),V=gnA({appendRaw:(I,W)=>B.events.append(I,W),setLastEventId:(I)=>B.state.setLastEventId(I)}),E={finalText:"",sessionId:B.sessionId??void 0};for await(let I of A.agent.receiveMessage(J,F)){let W=wnA({message:I,runId:B.runId,currentSessionId:E.sessionId});E=znA(E,W);for(let Z of W.events)V.append(Z.type,Z.payload)}return{result:E.finalText||"Done.",skipDefaultEvent:!0,sessionId:E.sessionId}}}function YL(A){process.stdout.write(`${A}
2567
2567
  `)}var dnA=".gui-build-id";function cnA(A){try{let B=Ex2(A,{recursive:!0}).map((U)=>String(U)).sort();return Yx2("md5").update(B.join(`
2568
- `)).digest("hex")}catch{return""}}function Xx2(A,Q){try{let B=Ix2(oV.join(A,dnA),"utf-8").trim(),U=cnA(Q);return!!U&&B===U}catch{return!1}}function Kx2(A,Q){try{let B=cnA(Q);if(B)Zx2(oV.join(A,dnA),B)}catch{}}function $x2(A){let Q=Cj1(A.env),B=Mj1({env:A.env,cliRoot:A.cliRoot,cwd:A.cwd}),U=A.staticDir&&SI(A.staticDir)?A.staticDir:B.find((J)=>SI(J)&&oV.resolve(J)!==oV.resolve(Q));if(!U)return SI(Q)?Q:void 0;if(oV.resolve(U)===oV.resolve(Q))return Q;if(!SI(Q)||!Xx2(Q,U))try{if(SI(Q))Wx2(Q,{recursive:!0});Vx2(Q,{recursive:!0}),Fx2(U,Q,{recursive:!0}),Kx2(Q,U)}catch{return SI(Q)?Q:void 0}return Q}async function qj1(A){let Q=bnA(A.verbose,YL),B=A.cwd??process.cwd(),U=A.staticDir,{context:J,cacheDir:Y,tools:F,config:V}=await mm({cwd:B,env:process.env}),E=ynA(Y),I=jnA(E);knA({env:process.env,contextEnv:J.env,stateDir:E});let W=F?.settings??{},Z=mnA(W),D=new Set,X=j21({context:J,processEnv:process.env,stateDir:E,tools:Z,mcpServers:()=>vnA(W?.mcpServers),forcedSkills:()=>[...D]}),K=X?.__sessions,C=unA(K,d21),M=TnA(V,J.env),q=Dx2({agent:X,contextEnv:J.env,cwd:J.cwd,imagesEnabled:M,sessions:C}),L="0.0.10-beta.2",O=Gx2(),w=[oV.join(O,".claude","skills"),oV.join(O,".agents","skills"),oV.join(B,".claude","skills"),oV.join(B,".agents","skills")],g=await MnA({host:A.host,port:A.port,protocolVersion:"0.1",serverVersion:L??"0.0.0",token:A.token,staticDir:U,defaultCwd:J.cwd,uploadDir:I,capabilities:{uploads:!0,images:M},sessions:C,queryHandler:q,skillsDirectories:w,activeSkills:D,logger:Q});return{server:g,baseUrl:g.baseUrl,staticDir:U}}async function pnA(A){let Q=RnA(A),B=process.env,U=process.cwd(),J=oV.dirname(process.execPath),Y=SnA({argvPath:process.argv[1],execPath:process.execPath,importMetaUrl:import.meta.url}),F=_nA({env:B,cliRoot:Y,cwd:U,existsSync:SI});if(!SI(F)){let X=[oV.resolve(J,"assets","gui"),oV.resolve(J,"..","assets","gui")].find((K)=>SI(K));if(X)F=X}let E=Hj1(B)?void 0:$x2({env:B,cliRoot:Y,cwd:U,staticDir:F}),I=SI(F)||!E?F:E,{server:W,baseUrl:Z}=await qj1({host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token,staticDir:I});for(let D of xnA({baseUrl:Z,token:Q.token,staticDir:I,existsSync:SI}))YL(D);if(!SI(I??""))YL("GUI assets not found. Set DIMCODE_GUI_DIR or rebuild the CLI with bundled assets.");if(Q.open){YL("Opening GUI in browser...");let D=fnA(Z,{debug:Q.debugUi,token:Q.token});if(!g81(D))YL("Failed to open browser automatically.")}await hnA({proc:process,onShutdown:async()=>{YL("Shutting down...");let D=setTimeout(()=>{YL("Shutdown taking too long, forcing exit..."),process.exit(0)},1500);try{await W.close()}finally{clearTimeout(D)}}})}function FL(A){process.stdout.write(`${A}
2568
+ `)).digest("hex")}catch{return""}}function Xx2(A,Q){try{let B=Ix2(oV.join(A,dnA),"utf-8").trim(),U=cnA(Q);return!!U&&B===U}catch{return!1}}function Kx2(A,Q){try{let B=cnA(Q);if(B)Zx2(oV.join(A,dnA),B)}catch{}}function $x2(A){let Q=Cj1(A.env),B=Mj1({env:A.env,cliRoot:A.cliRoot,cwd:A.cwd}),U=A.staticDir&&SI(A.staticDir)?A.staticDir:B.find((J)=>SI(J)&&oV.resolve(J)!==oV.resolve(Q));if(!U)return SI(Q)?Q:void 0;if(oV.resolve(U)===oV.resolve(Q))return Q;if(!SI(Q)||!Xx2(Q,U))try{if(SI(Q))Wx2(Q,{recursive:!0});Vx2(Q,{recursive:!0}),Fx2(U,Q,{recursive:!0}),Kx2(Q,U)}catch{return SI(Q)?Q:void 0}return Q}async function qj1(A){let Q=bnA(A.verbose,YL),B=A.cwd??process.cwd(),U=A.staticDir,{context:J,cacheDir:Y,tools:F,config:V}=await mm({cwd:B,env:process.env}),E=ynA(Y),I=jnA(E);knA({env:process.env,contextEnv:J.env,stateDir:E});let W=F?.settings??{},Z=mnA(W),D=new Set,X=j21({context:J,processEnv:process.env,stateDir:E,tools:Z,mcpServers:()=>vnA(W?.mcpServers),forcedSkills:()=>[...D]}),K=X?.__sessions,C=unA(K,d21),M=TnA(V,J.env),q=Dx2({agent:X,contextEnv:J.env,cwd:J.cwd,imagesEnabled:M,sessions:C}),L="0.0.11",O=Gx2(),w=[oV.join(O,".claude","skills"),oV.join(O,".agents","skills"),oV.join(B,".claude","skills"),oV.join(B,".agents","skills")],g=await MnA({host:A.host,port:A.port,protocolVersion:"0.1",serverVersion:L??"0.0.0",token:A.token,staticDir:U,defaultCwd:J.cwd,uploadDir:I,capabilities:{uploads:!0,images:M},sessions:C,queryHandler:q,skillsDirectories:w,activeSkills:D,logger:Q});return{server:g,baseUrl:g.baseUrl,staticDir:U}}async function pnA(A){let Q=RnA(A),B=process.env,U=process.cwd(),J=oV.dirname(process.execPath),Y=SnA({argvPath:process.argv[1],execPath:process.execPath,importMetaUrl:import.meta.url}),F=_nA({env:B,cliRoot:Y,cwd:U,existsSync:SI});if(!SI(F)){let X=[oV.resolve(J,"assets","gui"),oV.resolve(J,"..","assets","gui")].find((K)=>SI(K));if(X)F=X}let E=Hj1(B)?void 0:$x2({env:B,cliRoot:Y,cwd:U,staticDir:F}),I=SI(F)||!E?F:E,{server:W,baseUrl:Z}=await qj1({host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token,staticDir:I});for(let D of xnA({baseUrl:Z,token:Q.token,staticDir:I,existsSync:SI}))YL(D);if(!SI(I??""))YL("GUI assets not found. Set DIMCODE_GUI_DIR or rebuild the CLI with bundled assets.");if(Q.open){YL("Opening GUI in browser...");let D=fnA(Z,{debug:Q.debugUi,token:Q.token});if(!g81(D))YL("Failed to open browser automatically.")}await hnA({proc:process,onShutdown:async()=>{YL("Shutting down...");let D=setTimeout(()=>{YL("Shutdown taking too long, forcing exit..."),process.exit(0)},1500);try{await W.close()}finally{clearTimeout(D)}}})}function FL(A){process.stdout.write(`${A}
2569
2569
  `)}function Cx2(A){let Q=Qd.resolve(A);for(let B=0;B<12;B+=1){let U=Qd.join(Q,"packages","gui","package.json");if(Hx2(U))return Qd.dirname(U);let J=Qd.dirname(Q);if(J===Q)break;Q=J}return null}async function Mx2(A,Q){let B=Date.now();while(Date.now()-B<Q){try{let U=new AbortController,J=setTimeout(()=>U.abort(),600),Y=await fetch(A,{signal:U.signal});if(clearTimeout(J),Y.ok)return!0}catch{}await new Promise((U)=>setTimeout(U,120))}return!1}async function inA(A){let Q=QnA(A),B=Cx2(process.cwd());if(!B){FL("GUI dev server is only available in the repo workspace (expected: ./packages/gui)."),FL("Use `dim server --open` to run the bundled GUI instead.");return}let U=await qj1({cwd:process.cwd(),host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token,staticDir:void 0});if(FL(`API server running at ${U.baseUrl}`),Q.token)FL(`Token: ${Q.token}`);let J={...process.env};J.DIMCODE_GUI_API_BASE_URL=U.baseUrl,J.GOATCHAIN_GUI_API_BASE_URL=U.baseUrl;let Y=["run","dev","--","--port",String(Q.guiPort),"--host",Q.guiHost];FL(`Starting Nuxt dev server in ${Qd.relative(process.cwd(),B)||"packages/gui"}...`);let F=null;try{F=Nx2("bun",Y,{cwd:B,env:J,stdio:"inherit"})}catch(E){throw await U.server.close(),E}let V=new URL(`http://${Q.guiHost}:${Q.guiPort}/`);if(Q.debugUi)V.searchParams.set("debug","1");if(Q.token)V.searchParams.set("token",Q.token);if(Q.open){if(!await Mx2(V.toString(),15000))FL(`Nuxt dev server not ready yet at ${V.toString()}`);else if(!g81(V.toString()))FL("Failed to open browser automatically.")}await new Promise((E,I)=>{let W=!1,Z=async()=>{if(W)return;W=!0;try{if(F&&!F.killed)F.kill("SIGTERM")}finally{await U.server.close()}},D=()=>{Z().then(E).catch(I)};process.on("SIGINT",D),process.on("SIGTERM",D),F?.once("exit",(X)=>{Z().then(()=>{if(typeof X==="number"&&X!==0)process.exitCode=X;E()}).catch(I)})})}hV();import{createRequire as qx2}from"node:module";var lnA=!1;function nnA(){return h5(p3())}function Ox2(A){let Q=String(A??"").trim().toLowerCase();return Q==="1"||Q==="true"||Q==="yes"||Q==="on"}function Lx2(){let A=Number(nnA().prefixedStr("GC_LOG_SLOW_MS"));if(Number.isFinite(A)&&A>0)return Math.max(1,Math.floor(A));return 20}function zx2(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 anA(){if(lnA)return;lnA=!0;let A=nnA();if(!Ox2(A.prefixedStr("GC_LOG")))return;let Q=qx2(import.meta.url),B;try{({PerformanceObserver:B}=Q("node:perf_hooks"))}catch{return}try{let U=Lx2();new B((Y)=>{try{for(let F of Y?.getEntries?.()??[]){let V=F,E=Number(V.duration??0);if(!Number.isFinite(E)||E<U)continue;bJ(`[GC] ${E.toFixed(1)}ms kind=${zx2(V.kind)} name=${String(V.name??"")}`)}}catch{}}).observe({entryTypes:["gc"]})}catch{}}hV();function rnA(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==="gui"||Q==="web"||Q==="ui")return{kind:"gui",argv:A.slice(1)};if(Q==="exec"||Q==="e")return{kind:"exec",argv:A.slice(1)};return{kind:"none",argv:A}}var _81=FZ(void 0,"DEBUG"),Bd=_81==="1"||_81==="true"||_81==="yes"||_81==="on"||process.argv.includes("--debug"),y81=jK(void 0,"DEBUG_LOG")||"./dimcode-debug.log",gx2=1500,wx2="DIMCODE_STARTUP_UPGRADE_WAIT_MS",Px2="GOATCHAIN_STARTUP_UPGRADE_WAIT_MS";function AD(A,Q){if(!Bd)return;let U=`[${new Date().toISOString()}] ${A}${Q?`: ${JSON.stringify(Q,null,2)}`:""}
2570
2570
  `;try{onA(y81,U)}catch{}}function Tx2(A){let Q=A instanceof Error?A:Error(String(A)),B={message:Q.message,stack:Q.stack};if(Bd){AD("[CLI] fatal error during setup",B);return}let J=`[${new Date().toISOString()}] [CLI] fatal error during setup: ${B.message}${B.stack?`
2571
2571
  ${B.stack}`:""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dimcode",
3
3
  "type": "module",
4
- "version": "0.0.10-beta.2",
4
+ "version": "0.0.11",
5
5
  "description": "Dim Code CLI built on dreams",
6
6
  "exports": {
7
7
  ".": {
@@ -1 +0,0 @@
1
- {"id":"630937f4-6174-4e34-838d-eca8dea0bc0f","timestamp":1771130973164,"prerendered":[]}