dimcode 0.0.6-beta.27 → 0.0.6-beta.28
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/assets/gui/200.html +1 -1
- package/assets/gui/404.html +1 -1
- package/assets/gui/_nuxt/builds/latest.json +1 -1
- package/assets/gui/_nuxt/builds/meta/da06d8f2-e58c-46e7-8ab8-613cb78b612c.json +1 -0
- package/assets/gui/index.html +1 -1
- package/dist/aihubmix.json +1 -0
- package/dist/anthropic.json +1 -0
- package/dist/ark-code.json +1 -0
- package/dist/cli.mjs +3 -3
- package/dist/deepseek.json +1 -0
- package/dist/google.json +1 -0
- package/dist/kimi-for-coding.json +1 -0
- package/dist/lm-studio.json +1 -0
- package/dist/minimax-cn-coding-plan.json +1 -0
- package/dist/minimax-cn.json +1 -0
- package/dist/minimax-coding-plan.json +1 -0
- package/dist/minimax.json +1 -0
- package/dist/models/aihubmix.json +1 -19601
- package/dist/models/openrouter.json +1 -7804
- package/dist/models/siliconflow-com.json +1 -2130
- package/dist/models/siliconflow.json +1 -3560
- package/dist/models/zenmux.json +1 -2372
- package/dist/moonshot-ai.json +1 -0
- package/dist/moonshot.json +1 -0
- package/dist/ollama.json +1 -0
- package/dist/openai.json +1 -0
- package/dist/openrouter.json +1 -0
- package/dist/ppinfra.json +1 -0
- package/dist/siliconflow-com.json +1 -0
- package/dist/siliconflow.json +1 -0
- package/dist/xai.json +1 -0
- package/dist/zai-coding-plan.json +1 -0
- package/dist/zai.json +1 -0
- package/dist/zenmux.json +1 -0
- package/dist/zhipuai-coding-plan.json +1 -0
- package/dist/zhipuai.json +1 -0
- package/package.json +1 -1
- package/assets/gui/_nuxt/builds/meta/3f7eb177-bef8-4115-9f58-0121a8de3434.json +0 -1
package/assets/gui/200.html
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
}
|
|
10
10
|
} catch (e) {}
|
|
11
11
|
})();
|
|
12
|
-
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"
|
|
12
|
+
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"da06d8f2-e58c-46e7-8ab8-613cb78b612c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1770643319252,false]</script></body></html>
|
package/assets/gui/404.html
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
}
|
|
10
10
|
} catch (e) {}
|
|
11
11
|
})();
|
|
12
|
-
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"
|
|
12
|
+
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"da06d8f2-e58c-46e7-8ab8-613cb78b612c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1770643319252,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"da06d8f2-e58c-46e7-8ab8-613cb78b612c","timestamp":1770643308960}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"da06d8f2-e58c-46e7-8ab8-613cb78b612c","timestamp":1770643308960,"prerendered":[]}
|
package/assets/gui/index.html
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
}
|
|
10
10
|
} catch (e) {}
|
|
11
11
|
})();
|
|
12
|
-
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"
|
|
12
|
+
</script><link rel="stylesheet" href="/_nuxt/entry.PbPm020F.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C8FO969Z.js"><script type="module" src="/_nuxt/C8FO969Z.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:"da06d8f2-e58c-46e7-8ab8-613cb78b612c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1770643319252,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"aihubmix","name":"Aihubmix","api":"https://aihubmix.com/v1","adapter":"openai","modelsFile":"models/aihubmix.json","defaultModelId":"claude-opus-4-6"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"anthropic","name":"Anthropic","api":"https://api.anthropic.com","adapter":"anthropic","models":[{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4 (latest)"},{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192},"display_name":"Claude Sonnet 3.5 v2"},{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4.1 (latest)"},{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Haiku 4.5 (latest)"},{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192},"display_name":"Claude Sonnet 3.5"},{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"display_name":"Claude Opus 4.6"},{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"display_name":"Claude Haiku 3.5 (latest)"},{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Opus 4.5 (latest)"},{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096},"display_name":"Claude Opus 3"},{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Opus 4.5"},{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4.5 (latest)"},{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4.5"},{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4"},{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4"},{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"display_name":"Claude Haiku 3.5"},{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096},"display_name":"Claude Haiku 3"},{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 3.7"},{"id":"claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (latest)","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 3.7 (latest)"},{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4 (latest)"},{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4.1"},{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096},"display_name":"Claude Sonnet 3"},{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Haiku 4.5"}],"defaultModelId":"claude-opus-4-0"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"ark-code","name":"Ark Code","api":"https://ark.cn-beijing.volces.com/api/coding/v3","models":[{"id":"ark-code-latest","name":"ark-code-latest","tool_call":true,"temperature":true,"modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":60000},"display_name":"ark code","type":"chat"}]}
|
package/dist/cli.mjs
CHANGED
|
@@ -1895,7 +1895,7 @@ ${["","Debug runtime values:",`DEBUG_SERVER_BASE_URL=${Q}`,`DEBUG_SESSION_ID=${B
|
|
|
1895
1895
|
`);return{async*receiveMessage(U){yield{role:"assistant",content:B,metadata:{done:!0,error:!0,stopReason:"error",originalEventType:"done"}}}}}import{appendFileSync as WiA}from"node:fs";function a41(A){return A.includes("-h")||A.includes("--help")}function r41(){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)."," - 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(`
|
|
1896
1896
|
`)}function lj1(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,F=!1,E=!1,I="dim",W="home",Z=null,G=null,D=null,K=!0,C=!0,M=null,q=!1,z=0,O=()=>{if(z+1>=A.length)return;return z+=1,A[z]};for(;z<A.length;z++){let g=A[z];if(g==="--cols")Y=Number.parseInt(O()??"",10),F=!0;else if(g==="--rows")V=Number.parseInt(O()??"",10),E=!0;else if(g==="--app"||g==="--example")I=String(O()??I);else if(g==="--route"||g==="--initial-route")W=String(O()??W);else if(g==="--approvals"||g==="--approval"){let w=String(O()??"").trim().toLowerCase();if(w==="auto")M="auto";else if(w==="all"||w==="on"||w==="yes"||w==="true"||w==="1")M="all"}else if(g==="--auto-approve"||g==="--yes"||g==="-y")M="all";else if(g==="--record")Z=O()??null;else if(g==="--replay")G=O()??null;else if(g==="--snapshot")D=O()??null;else if(g==="--no-mouse")K=!1;else if(g==="--no-alt-screen")C=!1;else if(g==="--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:F||E,app:I,initialRoute:W,recordPath:Z,replayPath:G,snapshotPath:D,enableMouse:K,altScreen:C,approvals:M,debug:q}}var OI=j2(Tu(),1);import{spawn as mk1}from"node:child_process";import{createWriteStream as n20,existsSync as a20,statSync as r20}from"node:fs";import{chmod as $81,mkdir as uk1,readFile as o20,rename as dk1,stat as s20,unlink as t20,writeFile as e20}from"node:fs/promises";import cH from"node:path";import{Readable as A60}from"node:stream";import{pipeline as Q60}from"node:stream/promises";iO();function P0(A){return String(A??"").trim()||void 0}function rU(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 lO(A){return JSON.parse(JSON.stringify(A))}async function yV(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=P0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U,Su);let J=P0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,hS,Su);return B.resolve(Q(),hS,Su)}async function X81(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=P0(A.DIMCODE_HOME??A.GOATCHAIN_HOME);if(U)return B.resolve(U);let J=P0(A.XDG_CONFIG_HOME);if(J)return B.resolve(J,hS);return B.resolve(Q(),hS)}async function yu(A){let Q=await yV(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 ku(A){let Q=await X81(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 bS(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),F=V.dirname(A);await B(F,{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)}
|
|
1897
1897
|
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}async function N$(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),F=V.dirname(A);await B(F,{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)}
|
|
1898
|
-
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var u20="upgrade-toast.json";function BX(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{}d20(Q)}async function d20(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await yV(process.env);await Q(J,{recursive:!0});let Y=U.join(J,u20),V=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,V,"utf8")}catch{}}import{existsSync as c20,readFileSync as p20}from"node:fs";import D81 from"node:path";import{fileURLToPath as i20}from"node:url";function UX(){let A="0.0.6-beta.
|
|
1898
|
+
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}var u20="upgrade-toast.json";function BX(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{}d20(Q)}async function d20(A){try{let[{mkdir:Q,writeFile:B},U]=await Promise.all([import("node:fs/promises"),import("node:path")]),J=await yV(process.env);await Q(J,{recursive:!0});let Y=U.join(J,u20),V=JSON.stringify({message:A,createdAt:Date.now()});await B(Y,V,"utf8")}catch{}}import{existsSync as c20,readFileSync as p20}from"node:fs";import D81 from"node:path";import{fileURLToPath as i20}from"node:url";function UX(){let A="0.0.6-beta.28".trim();if(A)return{version:A,source:"injected"};let Q=l20();if(Q)return{version:Q,source:"package"};return null}function l20(){try{let A=D81.dirname(i20(import.meta.url));for(let Q=0;Q<6;Q++){let B=D81.join(A,"package.json");if(c20(B)){let J=p20(B,"utf8"),Y=JSON.parse(J),V=typeof Y?.version==="string"?Y.version.trim():"";if(V)return V}let U=D81.dirname(A);if(U===A)break;A=U}}catch{}return null}var ck1="binary-upgrade.json",pk1=1e4,K81="gitlab.bfbops.com",fk1="nextim/goatagent",hk1="nextim/goatagent",ik1="https://api.github.com",B60=5000,U60=30000;function J60(){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):B60}function Y60(){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):U60}function nO(){try{let A=String(process.execPath??"").trim();if(!A)return"npm";let B=cH.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 JX(A=process){try{let Q=String(A.execPath??"").trim();if(!Q)return!1;let B=cH.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 N81(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 V60(A,Q=process.platform){return Q==="win32"?`dim-${A}.exe`:`dim-${A}`}function F60(A){let Q=String(A??"").trim();if(!Q)return null;let B=Q.startsWith("v")?Q.slice(1):Q;return OI.default.valid(B)?B:null}function E60(A){return String(A??"").trim().replace(/[^\w.-]/g,"_")}function I60(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 W60(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:"",F=Y||V;if(J===Q&&F)return{name:J,url:F}}return null}async function lk1(){if(process.env.GOATCHAIN_BINARY_LAUNCHED==="1")return!1;if(!JX())return!1;let A=UX()?.version;if(!A||!OI.default.valid(A))return!1;let Q=await G60(process.env);if(!Q)return!1;if(!OI.default.valid(Q.cliVersion)||!OI.default.gt(Q.cliVersion,A))return!1;if(!rk1(Q.binaryPath))return!1;let B={...process.env,DIMCODE_BINARY_LAUNCHED:"1",GOATCHAIN_BINARY_LAUNCHED:"1"},U=process.argv.slice(1);try{return mk1(Q.binaryPath,U,{stdio:"inherit",env:B}).unref(),!0}catch{return!1}}async function nk1(){if((process.env.DIMCODE_DISABLE_AUTOUPDATE??process.env.GOATCHAIN_DISABLE_AUTOUPDATE)==="1")return null;if(!JX())return null;let A=UX()?.version;if(!A||!OI.default.valid(A))return null;let Q=await K60(process.env);if(!Q)return null;if(!OI.default.valid(Q.version)||OI.default.gte(A,Q.version))return null;if((process.env.DIMCODE_AUTOUPDATE??process.env.GOATCHAIN_AUTOUPDATE)!=="0")return M60(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 ak1(A){if(!JX()){console.error("Binary upgrade is only supported for the standalone compiled dim binary.");let V=nO();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=Z60(Q),Y=J&&J!=="latest"?J:"latest";try{let V=await sk1(Y,process.env);if(!V)throw Error("failed to resolve release info");let F=UX()?.version;if(U){if(F&&OI.default.valid(F)&&OI.default.valid(V.version)&&OI.default.gte(F,V.version)){if(!B)console.log(`Already up to date: ${F}`);return}if(!B)console.log(`Update available: ${V.version}${F?` (current: ${F})`:""}`);return}let I=`Update installed: dim ${(await q60(V,process.env)).version}. Restart to use the new version.`;if(!B)console.log(I);BX(I)}catch(V){let E=`Binary upgrade failed: ${V instanceof Error?V.message:String(V)}`;if(!B)console.error(E);BX(E),process.exitCode=1}}function Z60(A){for(let Q of A)if(!Q.startsWith("-"))return Q;return null}function rk1(A){try{if(!a20(A))return!1;return r20(A).size>pk1}catch{return!1}}async function G60(A){try{let Q=await yV(A),B=cH.join(Q,"bin",ck1),U=await o20(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:"",F=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,G=typeof J.host==="string"?J.host:void 0;if(!Y||!V||!F||!E||!I||!W)return null;return{version:1,installedAt:Z,cliVersion:Y,target:F,provider:E,project:I,host:G,assetName:W,binaryPath:V}}catch{return null}}async function bk1(A,Q){let B=await yV(A),U=cH.join(B,"bin");await uk1(U,{recursive:!0});let J=cH.join(U,ck1),Y=globalThis.process?.pid??"p",V=`${Date.now()}-${Math.random().toString(16).slice(2)}`,F=`${J}.${Y}.${V}.tmp`;await e20(F,`${JSON.stringify(Q,null,2)}
|
|
1899
1899
|
`,{encoding:"utf8",mode:384}),await dk1(F,J);try{await $81(J,384)}catch{}}function X60(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 H81(A){let Q=X60(A),B=D60(A),U=$60(A,Q);return{provider:Q,host:U.host,project:U.project,githubApiBaseUrl:B}}function D60(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 ik1}function $60(A,Q){if(Q==="github"){let V="".trim();return{project:String(A.DIMCODE_BINARY_UPDATE_REPO??A.GOATCHAIN_BINARY_UPDATE_REPO??V??hk1).trim()||hk1}}let B="".trim(),U="".trim(),J=String(A.DIMCODE_BINARY_UPDATE_GITLAB_HOST??A.GOATCHAIN_BINARY_UPDATE_GITLAB_HOST??B??K81).trim()||K81,Y=String(A.DIMCODE_BINARY_UPDATE_PROJECT??A.GOATCHAIN_BINARY_UPDATE_PROJECT??U??fk1).trim()||fk1;return{host:J,project:Y}}function ok1(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 K60(A){return await sk1("latest",A)}async function sk1(A,Q){let B=H81(Q),U=B.provider,J={host:B.host,project:B.project},Y=ok1(Q,U),V=N81();if(!V)return null;let F=V60(V),E=A==="latest"?["latest"]:N60(A);for(let I of E){let W=await H60({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=F60(Z);if(!G)continue;let D=U==="github"?I60(W,F):W60(W,F);if(!D)continue;return{provider:U,host:J.host,project:J.project,tag:Z,version:G,asset:D,target:V,assetName:F}}return null}function N60(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 H60(A){let Q=new AbortController,B=setTimeout(()=>Q.abort(),J60());try{let U=C60(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 C60(A){if(A.provider==="github"){let U=String(A.githubApiBaseUrl||ik1).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||K81,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 M60(A){try{mk1(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 q60(A,Q){let B=await yV(Q),U=cH.join(B,"bin");await uk1(U,{recursive:!0});let J=process.platform==="win32"?".exe":"",Y=E60(A.version),V=cH.join(U,`dim-${A.target}-${Y}${J}`);if(rk1(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 bk1(Q,I),{version:A.version,binaryPath:V}}let F=`${V}.${process.pid}.${Date.now()}.tmp`;if(await O60(A.asset.url,F,ok1(Q,A.provider)),process.platform!=="win32")try{await $81(F,493)}catch{}try{await t20(V)}catch{}await dk1(F,V);try{if(process.platform!=="win32")await $81(V,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:V};return await bk1(Q,E),{version:A.version,binaryPath:V}}async function O60(A,Q,B){let U=new AbortController,J=setTimeout(()=>U.abort(),Y60());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 Q60(A60.fromWeb(V),n20(Q)),(await s20(Q)).size<=pk1)throw Error("downloaded file is too small")}finally{clearTimeout(J)}}import*as uxA from"node:path";function Z01(A){let Q=A.processEnv,B="agent",U=null,J=null,Y=null,V=async()=>{if(U)return U;if(J)return J;if(J=(async()=>{try{let I=(()=>{let w=String(Q.DIMCODE_AGENT_WORKER??Q.GOATCHAIN_AGENT_WORKER??"").trim().toLowerCase();return w==="1"||w==="true"||w==="yes"||w==="on"})(),W=String(Q.DIMCODE_PROVIDER_ADAPTER||Q.GOATCHAIN_PROVIDER_ADAPTER||A.context.env.DIMCODE_PROVIDER_ADAPTER||A.context.env.GOATCHAIN_PROVIDER_ADAPTER||"").trim().toLowerCase(),Z=W==="openai"||W==="openai-responses"||W==="gemini"||W==="anthropic"?W:"",G=Boolean(String(Q.OPENAI_API_KEY||A.context.env.OPENAI_API_KEY||"").trim()),D=Boolean(String(Q.GOOGLE_API_KEY||A.context.env.GOOGLE_API_KEY||"").trim()),K=Boolean(String(Q.ANTHROPIC_API_KEY||A.context.env.ANTHROPIC_API_KEY||"").trim()),C=Number(G)+Number(D)+Number(K);if(!Z&&C>1)throw Error("Multiple provider API keys detected. Set DIMCODE_PROVIDER_ADAPTER or GOATCHAIN_PROVIDER_ADAPTER to choose a provider.");let M=Z||(C===1?K?"anthropic":D?"gemini":"openai":"openai"),q=M==="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:M==="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,z=M==="gemini"?Q.GOOGLE_API_KEY||A.context.env.GOOGLE_API_KEY:M==="anthropic"?Q.ANTHROPIC_API_KEY||A.context.env.ANTHROPIC_API_KEY:Q.OPENAI_API_KEY||A.context.env.OPENAI_API_KEY,O={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:M,baseUrl:q,apiKey:z,cliTools:!0,subagents:!0,stateDir:A.stateDir,tools:A.tools,mcpServers:A.mcpServers,forcedSkills:A.forcedSkills};if(I)return(await Promise.resolve().then(() => (FxA(),VxA))).createGoatChainWorkerAgent(O);return(await Promise.resolve().then(() => (I01(),E01))).createGoatChainNodeAgent(O)}catch(I){return console.warn("[dimcode] Failed to start DimCode agent:",I),(await Promise.resolve().then(() => ExA)).createErrorGoatChainAgent(I)}})(),U=await J,Y=U?.__sessions??null,J=null,B&&typeof U.setMode==="function")try{await U.setMode(B)}catch{}return U},F=async()=>{if(Y)return Y;return Y=(await V())?.__sessions??null,Y};return{__sessions:{async list(){return(await F())?.list?.()??[]},async get(I){return(await F())?.get?.(I)??null},async create(){return(await F())?.create?.()??null},async destroy(I){let W=await F();if(typeof W?.destroy==="function")await W.destroy(I)},async createWithMessages(I){return(await F())?.createWithMessages?.(I)??null},async rename(I,W){return(await F())?.rename?.(I,W)??null},async updateMetadata(I,W){return(await F())?.updateMetadata?.(I,W)??null}},async*receiveMessage(I,W){yield*(await V()).receiveMessage(I,W)},setMode(I){if(B=I,U&&typeof U.setMode==="function")try{U.setMode(I)}catch{}},getMode(){if(U&&typeof U.getMode==="function")return U.getMode();return B},async triggerManualCompression(I){let Z=(await V()).triggerManualCompression;if(typeof Z==="function")return await Z(I);return{success:!1,error:"Manual compression unavailable"}},invalidateSession(I){if(U&&typeof U.invalidateSession==="function")try{U.invalidateSession(I);return}catch{}V().then((W)=>{let Z=W?.invalidateSession;if(typeof Z==="function")Z(I)})}}}yb();var IxA=`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.
|
|
1900
1900
|
|
|
1901
1901
|
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.
|
|
@@ -2002,7 +2002,7 @@ user: Where are errors from the client handled?
|
|
|
2002
2002
|
assistant: Clients are marked as failed in the \`connectToServer\` function in src/services/process.ts:712.
|
|
2003
2003
|
</example>
|
|
2004
2004
|
`;XV();import{webcrypto as ZxA}from"node:crypto";var WxA="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var rM2=128,YO,YT;function oM2(A){if(!YO||YO.length<A)YO=Buffer.allocUnsafe(A*rM2),ZxA.getRandomValues(YO),YT=0;else if(YT+A>YO.length)ZxA.getRandomValues(YO),YT=0;YT+=A}function G01(A=21){oM2(A|=0);let Q="";for(let B=YT-A;B<YT;B++)Q+=WxA[YO[B]&63];return Q}XV();function tD(A){let Q=A&&typeof A==="object"?A:{},B=rU(Q.context),U=rU(Q.output);if(B==null&&U==null)return;return{...B!=null?{context:B}:{},...U!=null?{output:U}:{}}}var sM2="cp_";function GxA(A){let Q=P0(A);if(Q&&V4(Q))return Q;return`${sM2}${G01(10)}`}function tM2(A){let Q=P0(A);if(Q==="openai"||Q==="openai-responses"||Q==="gemini"||Q==="anthropic")return Q;return}function Pg1(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=P0(B?.id);if(!U)continue;let J=P0(B?.name),Y=tD(B?.limit);Q.push({id:U,...J?{name:J}:{},...Y?{limit:Y}:{}})}return Q}function eM2(A){if(!Array.isArray(A))return[];let Q=[];for(let B of A){let U=P0(B?.id),J=P0(B?.name),Y=tM2(B?.adapter);if(!U||!J||!Y)continue;Q.push({id:GxA(U),name:J,adapter:Y,baseUrl:P0(B?.baseUrl),apiKey:P0(B?.apiKey),models:Pg1(B?.models)})}return Q}function Aq2(A){let Q=A?.customProvider??{},B=P0(Q.baseUrl),U=P0(Q.apiKey),J=Pg1(Q.models);return Boolean(B||U||J.length)}function Qq2(A){let Q=A?.customProvider??{};return{id:GxA(void 0),name:"Custom",adapter:"openai",baseUrl:P0(Q.baseUrl),apiKey:P0(Q.apiKey),models:Pg1(Q.models)}}function X01(A){let Q=A.settings??{},B=!1,U=eM2(Q.customProviders);if(!U.length&&Aq2(Q))U=[Qq2(Q)],B=!0;if(U.length){Q.customProviders=U;let J={...Q.activeModelByProvider??{}};if(a5(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 Tg1={websearch:{apiKey:"",apiEndpoint:"https://google.serper.dev/search?format=json",numResults:10},mcpServers:[]};async function XxA(A){let[{homedir:Q},B]=await Promise.all([import("node:os"),import("node:path")]),U=P0(A.DIMCODE_HOME??A.GOATCHAIN_HOME),J;if(U)J=B.resolve(U);else{let V=P0(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"),F=await V(Y,"utf8"),E=JSON.parse(F);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 DxA(A,Q){let[{mkdir:B,writeFile:U,rename:J,chmod:Y},V]=await Promise.all([import("node:fs/promises"),import("node:path")]),F=V.dirname(A);await B(F,{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)}
|
|
2005
|
-
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function $xA(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 KxA(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=P0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=P0(U.apiEndpoint)??Tg1.websearch.apiEndpoint,Q.tools.websearch.numResults=rU(U.numResults)??Tg1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...Tg1.mcpServers]}async function hb(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=P0("0.0.6-beta.27")??(B?null:await D01(A.cwd)),J=async()=>{let[{homedir:B1},i]=await Promise.all([import("node:os"),import("node:path")]),U1=P0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(U1){let D1=i.resolve(U1);return{dir:D1,filePath:i.join(D1,"tools.json")}}let W1=P0(A.env.XDG_CONFIG_HOME);if(W1){let D1=i.resolve(W1,"dimcode");return{dir:D1,filePath:i.join(D1,"tools.json")}}let J1=i.resolve(B1(),".dimcode");return{dir:J1,filePath:i.join(J1,"tools.json")}},[Y,V,F]=B?await(async()=>{let[B1,i,U1,W1]=await Promise.all([yV(A.env),X81(A.env),J(),import("node:path")]),J1=W1.join(B1,"cache.json"),D1=W1.join(i,"config.json");return[{dir:B1,filePath:J1,cache:{version:1,updatedAt:0}},{dir:i,filePath:D1,config:{version:1,updatedAt:0}},{dir:U1.dir,filePath:U1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([yu(A.env),ku(A.env),XxA(A.env)]),E=Y.cache,I=V.config;X01(I);let W=E.settings??{},Z=I.settings??{},G=P0(W.cwd),D=Array.isArray(W.focusFiles)?W.focusFiles.map((B1)=>String(B1??"")).filter(Boolean):void 0,K=P0(W.authMethod),C=P0(W.codexModel)||P0(W.model),M=zF.some((B1)=>B1.id===C)?C:void 0,q=A.cwd||G||".",z=(B1,i)=>P0(A.env[B1]??(i?A.env[i]:void 0)),O={DIMCODE_VERSION:U??"dev",...z("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")?{DIMCODE_PROVIDER_ADAPTER:z("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")}:{},...z("DIMCODE_MODEL","GOATCHAIN_MODEL")?{DIMCODE_MODEL:z("DIMCODE_MODEL","GOATCHAIN_MODEL")}:{},...z("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")?{DIMCODE_CONTEXT_WINDOW:z("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")}:{},...z("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")?{DIMCODE_TEMPERATURE:z("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")}:{},...z("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")?{DIMCODE_INTERLEAVED_THINKING:z("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")}:{},...z("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")?{DIMCODE_TOOL_APPROVALS:z("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")}:{},...z("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")?{DIMCODE_SKIP_APPROVAL:z("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")}:{},...z("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:z("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")}:{},...z("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:z("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")}:{},...z("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")?{DIMCODE_OPENAI_BASE_URL:z("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")}:{},...z("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")?{DIMCODE_GEMINI_BASE_URL:z("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")}:{},...z("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")?{DIMCODE_ANTHROPIC_BASE_URL:z("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=WV;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=WV;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 g=ZV(Z.providerId),w=Z.providerConnections??{},P=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},T=P0(_?.baseUrl),x=P0(_?.apiKey),j=Array.isArray(_?.models)?_.models.map((B1)=>P0(B1?.id)).filter(Boolean):[],y=P0(P.custom),t=(()=>{if(a5(g)&&S.length){let B1=P0(S[0]?.id);if(B1){if(I.settings)I.settings.providerId=B1;return B1}}return g})(),r=V4(t)?S.find((B1)=>String(B1?.id??"").trim()===t):void 0,d=t&&!V4(t)&&!a5(t)?W5(t):void 0,f=V4(t)?String(r?.adapter??"").trim():a5(t)?"openai":LF(d),n=V4(t)?P0(r?.baseUrl):a5(t)?T:P0(w[t??""]?.baseUrl??JI(d)),b=V4(t)?P0(r?.apiKey):a5(t)?x:P0(w[t??""]?.apiKey),o=V4(t)?P0(P[t]??y??r?.models?.[0]?.id):a5(t)?P0(y??j[0]):P0(P[t??""]??w[t??""]?.models?.[0]?.id??_G(d));if(a5(t)&&!n&&!b&&!o)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&&f)O.DIMCODE_PROVIDER_ADAPTER=f;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&o)O.DIMCODE_MODEL=o;if(f==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&n)O.DIMCODE_GEMINI_BASE_URL=n;if(!O.GOOGLE_API_KEY&&b)O.GOOGLE_API_KEY=b}else if(f==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&n)O.DIMCODE_ANTHROPIC_BASE_URL=n;if(!O.ANTHROPIC_API_KEY&&b)O.ANTHROPIC_API_KEY=b}else{if(!O.DIMCODE_OPENAI_BASE_URL&&n)O.DIMCODE_OPENAI_BASE_URL=n;if(!O.OPENAI_API_KEY&&b)O.OPENAI_API_KEY=b}if(!O.DIMCODE_CONTEXT_WINDOW&&rU(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&rU(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&&P0(W.locale))O.DIMCODE_LANG=P0(W.locale);if(!O.DIMCODE_THEME&&P0(W.themeMode))O.DIMCODE_THEME=P0(W.themeMode);if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="manual")O.DIMCODE_TOOL_APPROVALS="auto";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(B01(d))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:IxA,cwd:q,env:O,...D?.length?{focusFiles:D}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:E,configDir:V.dir,configFile:V.filePath,config:I,toolsFile:F.filePath,tools:F.tools}}async function D01(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 DV}from"vue";var NxA="standard",Bq2=new Set(["off","low","standard"]);function HxA(A){let Q=String(A??"").trim().toLowerCase();if(Bq2.has(Q))return Q;return"standard"}var PJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function Uq2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function $01(A){return Boolean(K01(A))}function K01(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(Uq2).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,F=!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"){V=!0;continue}if(I==="alt"){F=!0;continue}if(I==="shift"){E=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:V,alt:F,shift:E}}function Jq2(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 Sg1(A,Q){let B=K01(A);if(!B)return Q;return Jq2(B)}function PW(A){let Q=A&&typeof A==="object"?A:{},B=Sg1(Q.commands,PJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:Sg1(Q.timeline,PJ.timeline),newSession:Sg1(Q.newSession,PJ.newSession)}}function Yq2(){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 FH(A){let Q=K01(A);if(!Q)return"";let B=[],U=Yq2();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 YI(A,Q){let B=K01(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),F=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!==F)return!1;return!0}XV();var CxA=/^[0-9a-f]{7,40}$/i,Vq2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function VI(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!CxA.test(B))return null;return B}function Fq2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function MxA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(Vq2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!CxA.test(J))return null;if(U&&!J.startsWith(U))return null;return J}function VT(A){let Q=String(A||"").trim();if(!Q)return"";let B=Fq2(Q);return`[${Q}](${B})`}function qxA(A){let Q=String(A||"").trim();if(!Q)return"";return`git:commit:${Q}`}function VO(A){let Q=String(A??"").replace(/\r/g,"");if(!Q)return"";let B=Q.split(`
|
|
2005
|
+
`;await U(W,Z,{encoding:"utf8",mode:384}),await J(W,A);try{await Y(A,384)}catch{}}function $xA(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 KxA(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=P0(U.apiKey)??"",Q.tools.websearch.apiEndpoint=P0(U.apiEndpoint)??Tg1.websearch.apiEndpoint,Q.tools.websearch.numResults=rU(U.numResults)??Tg1.websearch.numResults;if(!Q.mcp)Q.mcp={servers:[]};Q.mcp.servers=J.length?JSON.parse(JSON.stringify(J)):[...Tg1.mcpServers]}async function hb(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=P0("0.0.6-beta.28")??(B?null:await D01(A.cwd)),J=async()=>{let[{homedir:B1},i]=await Promise.all([import("node:os"),import("node:path")]),U1=P0(A.env.DIMCODE_HOME??A.env.GOATCHAIN_HOME);if(U1){let D1=i.resolve(U1);return{dir:D1,filePath:i.join(D1,"tools.json")}}let W1=P0(A.env.XDG_CONFIG_HOME);if(W1){let D1=i.resolve(W1,"dimcode");return{dir:D1,filePath:i.join(D1,"tools.json")}}let J1=i.resolve(B1(),".dimcode");return{dir:J1,filePath:i.join(J1,"tools.json")}},[Y,V,F]=B?await(async()=>{let[B1,i,U1,W1]=await Promise.all([yV(A.env),X81(A.env),J(),import("node:path")]),J1=W1.join(B1,"cache.json"),D1=W1.join(i,"config.json");return[{dir:B1,filePath:J1,cache:{version:1,updatedAt:0}},{dir:i,filePath:D1,config:{version:1,updatedAt:0}},{dir:U1.dir,filePath:U1.filePath,tools:{version:1,updatedAt:0}}]})():await Promise.all([yu(A.env),ku(A.env),XxA(A.env)]),E=Y.cache,I=V.config;X01(I);let W=E.settings??{},Z=I.settings??{},G=P0(W.cwd),D=Array.isArray(W.focusFiles)?W.focusFiles.map((B1)=>String(B1??"")).filter(Boolean):void 0,K=P0(W.authMethod),C=P0(W.codexModel)||P0(W.model),M=zF.some((B1)=>B1.id===C)?C:void 0,q=A.cwd||G||".",z=(B1,i)=>P0(A.env[B1]??(i?A.env[i]:void 0)),O={DIMCODE_VERSION:U??"dev",...z("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")?{DIMCODE_PROVIDER_ADAPTER:z("DIMCODE_PROVIDER_ADAPTER","GOATCHAIN_PROVIDER_ADAPTER")}:{},...z("DIMCODE_MODEL","GOATCHAIN_MODEL")?{DIMCODE_MODEL:z("DIMCODE_MODEL","GOATCHAIN_MODEL")}:{},...z("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")?{DIMCODE_CONTEXT_WINDOW:z("DIMCODE_CONTEXT_WINDOW","GOATCHAIN_CONTEXT_WINDOW")}:{},...z("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")?{DIMCODE_TEMPERATURE:z("DIMCODE_TEMPERATURE","GOATCHAIN_TEMPERATURE")}:{},...z("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")?{DIMCODE_INTERLEAVED_THINKING:z("DIMCODE_INTERLEAVED_THINKING","GOATCHAIN_INTERLEAVED_THINKING")}:{},...z("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")?{DIMCODE_TOOL_APPROVALS:z("DIMCODE_TOOL_APPROVALS","GOATCHAIN_TOOL_APPROVALS")}:{},...z("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")?{DIMCODE_SKIP_APPROVAL:z("DIMCODE_SKIP_APPROVAL","GOATCHAIN_SKIP_APPROVAL")}:{},...z("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:z("DIMCODE_STARTUP_TOAST","GOATCHAIN_STARTUP_TOAST")}:{},...z("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:z("DIMCODE_STARTUP_UPGRADE_TOAST","GOATCHAIN_STARTUP_UPGRADE_TOAST")}:{},...z("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")?{DIMCODE_OPENAI_BASE_URL:z("DIMCODE_OPENAI_BASE_URL","GOATCHAIN_OPENAI_BASE_URL")}:{},...z("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")?{DIMCODE_GEMINI_BASE_URL:z("DIMCODE_GEMINI_BASE_URL","GOATCHAIN_GEMINI_BASE_URL")}:{},...z("DIMCODE_ANTHROPIC_BASE_URL","GOATCHAIN_ANTHROPIC_BASE_URL")?{DIMCODE_ANTHROPIC_BASE_URL:z("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=WV;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=WV;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 g=ZV(Z.providerId),w=Z.providerConnections??{},P=Z.activeModelByProvider??{},S=Array.isArray(Z.customProviders)?Z.customProviders:[],_=Z.customProvider??{},T=P0(_?.baseUrl),x=P0(_?.apiKey),j=Array.isArray(_?.models)?_.models.map((B1)=>P0(B1?.id)).filter(Boolean):[],y=P0(P.custom),t=(()=>{if(a5(g)&&S.length){let B1=P0(S[0]?.id);if(B1){if(I.settings)I.settings.providerId=B1;return B1}}return g})(),r=V4(t)?S.find((B1)=>String(B1?.id??"").trim()===t):void 0,d=t&&!V4(t)&&!a5(t)?W5(t):void 0,f=V4(t)?String(r?.adapter??"").trim():a5(t)?"openai":LF(d),n=V4(t)?P0(r?.baseUrl):a5(t)?T:P0(w[t??""]?.baseUrl??JI(d)),b=V4(t)?P0(r?.apiKey):a5(t)?x:P0(w[t??""]?.apiKey),o=V4(t)?P0(P[t]??y??r?.models?.[0]?.id):a5(t)?P0(y??j[0]):P0(P[t??""]??w[t??""]?.models?.[0]?.id??_G(d));if(a5(t)&&!n&&!b&&!o)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&&f)O.DIMCODE_PROVIDER_ADAPTER=f;if(!O.GOATCHAIN_PROVIDER_ADAPTER&&O.DIMCODE_PROVIDER_ADAPTER)O.GOATCHAIN_PROVIDER_ADAPTER=O.DIMCODE_PROVIDER_ADAPTER;if(!O.DIMCODE_MODEL&&o)O.DIMCODE_MODEL=o;if(f==="gemini"){if(!O.DIMCODE_GEMINI_BASE_URL&&n)O.DIMCODE_GEMINI_BASE_URL=n;if(!O.GOOGLE_API_KEY&&b)O.GOOGLE_API_KEY=b}else if(f==="anthropic"){if(!O.DIMCODE_ANTHROPIC_BASE_URL&&n)O.DIMCODE_ANTHROPIC_BASE_URL=n;if(!O.ANTHROPIC_API_KEY&&b)O.ANTHROPIC_API_KEY=b}else{if(!O.DIMCODE_OPENAI_BASE_URL&&n)O.DIMCODE_OPENAI_BASE_URL=n;if(!O.OPENAI_API_KEY&&b)O.OPENAI_API_KEY=b}if(!O.DIMCODE_CONTEXT_WINDOW&&rU(W.contextWindow)!=null)O.DIMCODE_CONTEXT_WINDOW=String(W.contextWindow);if(!O.DIMCODE_TEMPERATURE&&rU(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&&P0(W.locale))O.DIMCODE_LANG=P0(W.locale);if(!O.DIMCODE_THEME&&P0(W.themeMode))O.DIMCODE_THEME=P0(W.themeMode);if(!O.DIMCODE_TOOL_APPROVALS&&W.toolApprovals==="manual")O.DIMCODE_TOOL_APPROVALS="auto";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(B01(d))O.DIMCODE_CCMOCK="1";else delete O.DIMCODE_CCMOCK;return{context:{system:IxA,cwd:q,env:O,...D?.length?{focusFiles:D}:{}},cacheDir:Y.dir,cacheFile:Y.filePath,cache:E,configDir:V.dir,configFile:V.filePath,config:I,toolsFile:F.filePath,tools:F.tools}}async function D01(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 DV}from"vue";var NxA="standard",Bq2=new Set(["off","low","standard"]);function HxA(A){let Q=String(A??"").trim().toLowerCase();if(Bq2.has(Q))return Q;return"standard"}var PJ={commands:"ctrl+p",timeline:"mod+t",newSession:"mod+n"};function Uq2(A){switch(A){case"control":return"ctrl";case"command":return"cmd";case"option":return"alt";default:return A}}function $01(A){return Boolean(K01(A))}function K01(A){let Q=String(A??"").trim().toLowerCase().replace(/\s+/g,"");if(!Q)return null;let B=Q.split("+").map(Uq2).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,F=!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"){V=!0;continue}if(I==="alt"){F=!0;continue}if(I==="shift"){E=!0;continue}return null}return{key:U,mod:J,ctrl:Y,meta:V,alt:F,shift:E}}function Jq2(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 Sg1(A,Q){let B=K01(A);if(!B)return Q;return Jq2(B)}function PW(A){let Q=A&&typeof A==="object"?A:{},B=Sg1(Q.commands,PJ.commands);return{commands:B==="mod+p"?"ctrl+p":B,timeline:Sg1(Q.timeline,PJ.timeline),newSession:Sg1(Q.newSession,PJ.newSession)}}function Yq2(){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 FH(A){let Q=K01(A);if(!Q)return"";let B=[],U=Yq2();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 YI(A,Q){let B=K01(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),F=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!==F)return!1;return!0}XV();var CxA=/^[0-9a-f]{7,40}$/i,Vq2=/(?:^|[\\/])\.git[\\/]+objects[\\/]+([0-9a-f]{2})[\\/]+([0-9a-f]{7,40})$/i;function VI(A){let Q=String(A||"");if(!Q.startsWith("git:commit:"))return null;let B=Q.slice(11).trim();if(!CxA.test(B))return null;return B}function Fq2(A){let Q=String(A||"").trim();if(!Q)return"";return`.git/objects/${Q.slice(0,2)}/${Q}`}function MxA(A){let Q=String(A||"").trim();if(!Q)return null;let B=Q.match(Vq2);if(!B)return null;let U=String(B[1]??"").toLowerCase(),J=String(B[2]??"").toLowerCase();if(!CxA.test(J))return null;if(U&&!J.startsWith(U))return null;return J}function VT(A){let Q=String(A||"").trim();if(!Q)return"";let B=Fq2(Q);return`[${Q}](${B})`}function qxA(A){let Q=String(A||"").trim();if(!Q)return"";return`git:commit:${Q}`}function VO(A){let Q=String(A??"").replace(/\r/g,"");if(!Q)return"";let B=Q.split(`
|
|
2006
2006
|
`),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]===`
|
|
2007
2007
|
`))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 D=W.slice(Z);if(D=D.replace(/^[ \t]+/g,""),D.startsWith(`
|
|
2008
2008
|
|
|
@@ -2430,7 +2430,7 @@ ${U}
|
|
|
2430
2430
|
|
|
2431
2431
|
`)}function xpA(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 fpA(A){let Q=Array.isArray(A.attachments)?A.attachments:[];return[{role:"user",content:vpA(A.input,Q,A.imagesEnabled)}]}function hpA(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 ly2}from"node:crypto";function bpA(A,Q){let B="127.0.0.1",U=13442,J=!1,Y=!1,V=!1,F=Q?.env??process.env,E=Q?.makeToken??(()=>ly2(12).toString("hex")),I=F.DIMCODE_SERVER_TOKEN||F.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=E();else I=String(A[++W])}}return{host:B,port:U,open:J,verbose:Y,debugUi:V,token:I}}function mpA(A){return{append:(Q,B)=>{let U=A.appendRaw(Q,B);A.setLastEventId(U.id)}}}function upA(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=BS(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=BS(A.message.content);return{resolvedSessionId:J,events:[{type:"thinking_delta",payload:{sessionId:U,runId:A.runId,delta:Y}}]}}if(B==="thinking_end"){let Y=BS(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")return{resolvedSessionId:J,events:[{type:"tool.call",payload:{sessionId:U,runId:A.runId,callId:Q.callId,toolName:Q.toolName,argsTextDelta:Q.argsTextDelta,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:BS(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:BS(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,F=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,...F?{questions:F}: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:[]}}XV();import ny2 from"node:os";import E3 from"node:path";import{fileURLToPath as ay2}from"node:url";function ry2(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 cpA(A,Q){let B=ry2(Q.DIMCODE_IMAGES??Q.GOATCHAIN_IMAGES??Q.DIMCODE_VISION??Q.GOATCHAIN_VISION);if(B!=null)return B;let U=A.settings??{},J=ZV(U.providerId),Y=U.activeModelByProvider??{},V=U.providerConnections??{},F=U.customProvider??{},I=String(Q.DIMCODE_MODEL??Q.GOATCHAIN_MODEL??"").trim()||(J==="custom"?String(Y.custom??(F.models?.[0]?.id??"")).trim():String(Y[J??""]??"").trim());if(!J||J==="custom"||!I)return!1;let W=W5(J),Z=W?.customModels?V?.[J]?.models:void 0,D=(Array.isArray(Z)&&Z.length?Z:W?.models)?.find((M)=>String(M.id??"").trim()===I||String(M.name??"").trim()===I);if(!D)return!1;let K=D.vision;if(typeof K==="boolean")return K;return(D.modalities?.input??[]).map((M)=>String(M).toLowerCase()).includes("image")}function dpA(A){if(!A)return!1;return A.includes(E3.sep)}function oy2(A){if(!A)return!1;let Q=E3.basename(A);if(Q==="dim"||Q==="dimcode"){if(A.includes(`${E3.sep}packages${E3.sep}cli${E3.sep}`))return!0;if(A.includes(`${E3.sep}.bin${E3.sep}`))return!1;return!1}if(/\.(?:mjs|cjs|js|ts)$/i.test(Q))return!0;if(A.includes(`${E3.sep}.bin${E3.sep}`))return!1;if(A.includes(`${E3.sep}packages${E3.sep}cli${E3.sep}`))return!0;return!1}function ppA(A){let Q=E3.dirname(ay2(A.importMetaUrl)),B=dpA(A.argvPath)?A.argvPath:void 0,U=dpA(A.execPath)?A.execPath:void 0;if(!B&&U)return E3.resolve(E3.dirname(U));let J=B??U,Y=J?E3.dirname(J):void 0;if(oy2(J)&&Y&&J){let F=/\.(?:mjs|cjs|js|ts)$/i.test(E3.basename(J));return E3.resolve(Y,F?"..":".")}return E3.resolve(Q,"..")}function A_1(A){let Q=A.DIMCODE_GUI_DIR||A.GOATCHAIN_GUI_DIR;if(!Q)return;return E3.resolve(Q)}function Q_1(A){let Q=String(A.DIMCODE_HOME??A.GOATCHAIN_HOME??"").trim();if(Q)return E3.resolve(Q,"gui");let B=String(A.XDG_CONFIG_HOME??"").trim();if(B)return E3.resolve(B,".dimcode","gui");return E3.resolve(ny2.homedir(),".dimcode","gui")}function B_1(A){let Q=Q_1(A.env);return[E3.resolve(A.cliRoot,"..","gui",".output","public"),E3.resolve(A.cliRoot,"..","..","gui",".output","public"),E3.resolve(A.cwd,"packages","gui",".output","public"),Q,E3.resolve(A.cliRoot,"assets","gui"),E3.resolve(A.cliRoot,"..","assets","gui"),E3.resolve(A.cwd,"packages","cli","assets","gui")]}function ipA(A){let Q=A_1(A.env);if(Q)return Q;let B=B_1(A);for(let U of B)if(A.existsSync(U))return U;return B[0]}function lpA(A){return E3.join(A,"state")}function npA(A){return E3.join(A,"uploads")}function apA(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 rpA(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 opA(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 spA(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 tpA(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 epA(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 AiA(A){return{websearch:{apiKey:()=>A?.websearch?.apiKey??"",apiEndpoint:A?.websearch?.apiEndpoint,numResults:A?.websearch?.numResults}}}function QiA(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 Yk2(A){return async(Q,B)=>{let U=fpA({input:Q,attachments:B.attachments,imagesEnabled:A.imagesEnabled}),J=A.cwd;if(B.sessionId&&A.sessions)try{let E=await A.sessions.get(B.sessionId),I=typeof E?.metadata?.cwd==="string"?E.metadata.cwd.trim():"";if(I)J=I}catch{}let Y=xpA({sessionId:B.sessionId,cwd:J,env:A.contextEnv,toolContext:B.toolContext,resume:B.resume}),V=mpA({appendRaw:(E,I)=>B.events.append(E,I),setLastEventId:(E)=>B.state.setLastEventId(E)}),F={finalText:"",sessionId:B.sessionId??void 0};for await(let E of A.agent.receiveMessage(U,Y)){let I=upA({message:E,runId:B.runId,currentSessionId:F.sessionId});F=hpA(F,I);for(let W of I.events)V.append(W.type,W.payload)}return{result:F.finalText||"Done.",skipDefaultEvent:!0,sessionId:F.sessionId}}}function yO(A){process.stdout.write(`${A}
|
|
2432
2432
|
`)}var BiA=".gui-build-id";function UiA(A){try{let B=Ak2(A,{recursive:!0}).map((U)=>String(U)).sort();return sy2("md5").update(B.join(`
|
|
2433
|
-
`)).digest("hex")}catch{return""}}function Vk2(A,Q){try{let B=Qk2(kF.join(A,BiA),"utf-8").trim(),U=UiA(Q);return!!U&&B===U}catch{return!1}}function Fk2(A,Q){try{let B=UiA(Q);if(B)Uk2(kF.join(A,BiA),B)}catch{}}function Ek2(A){let Q=Q_1(A.env),B=B_1({env:A.env,cliRoot:A.cliRoot,cwd:A.cwd}),U=A.staticDir&&DI(A.staticDir)?A.staticDir:B.find((J)=>DI(J)&&kF.resolve(J)!==kF.resolve(Q));if(!U)return DI(Q)?Q:void 0;if(kF.resolve(U)===kF.resolve(Q))return Q;if(!DI(Q)||!Vk2(Q,U))try{if(DI(Q))Bk2(Q,{recursive:!0});ey2(Q,{recursive:!0}),ty2(U,Q,{recursive:!0}),Fk2(Q,U)}catch{return DI(Q)?Q:void 0}return Q}async function U_1(A){let Q=epA(A.verbose,yO),B=A.cwd??process.cwd(),U=A.staticDir,{context:J,cacheDir:Y,tools:V,config:F}=await hb({cwd:B,env:process.env}),E=lpA(Y),I=npA(E);apA({env:process.env,contextEnv:J.env,stateDir:E});let W=V?.settings??{},Z=AiA(W),G=new Set,D=Z01({context:J,processEnv:process.env,stateDir:E,tools:Z,mcpServers:()=>rpA(W?.mcpServers),forcedSkills:()=>[...G]}),K=D?.__sessions,C=QiA(K,M01),M=cpA(F,J.env),q=Yk2({agent:D,contextEnv:J.env,cwd:J.cwd,imagesEnabled:M,sessions:C}),z="0.0.6-beta.
|
|
2433
|
+
`)).digest("hex")}catch{return""}}function Vk2(A,Q){try{let B=Qk2(kF.join(A,BiA),"utf-8").trim(),U=UiA(Q);return!!U&&B===U}catch{return!1}}function Fk2(A,Q){try{let B=UiA(Q);if(B)Uk2(kF.join(A,BiA),B)}catch{}}function Ek2(A){let Q=Q_1(A.env),B=B_1({env:A.env,cliRoot:A.cliRoot,cwd:A.cwd}),U=A.staticDir&&DI(A.staticDir)?A.staticDir:B.find((J)=>DI(J)&&kF.resolve(J)!==kF.resolve(Q));if(!U)return DI(Q)?Q:void 0;if(kF.resolve(U)===kF.resolve(Q))return Q;if(!DI(Q)||!Vk2(Q,U))try{if(DI(Q))Bk2(Q,{recursive:!0});ey2(Q,{recursive:!0}),ty2(U,Q,{recursive:!0}),Fk2(Q,U)}catch{return DI(Q)?Q:void 0}return Q}async function U_1(A){let Q=epA(A.verbose,yO),B=A.cwd??process.cwd(),U=A.staticDir,{context:J,cacheDir:Y,tools:V,config:F}=await hb({cwd:B,env:process.env}),E=lpA(Y),I=npA(E);apA({env:process.env,contextEnv:J.env,stateDir:E});let W=V?.settings??{},Z=AiA(W),G=new Set,D=Z01({context:J,processEnv:process.env,stateDir:E,tools:Z,mcpServers:()=>rpA(W?.mcpServers),forcedSkills:()=>[...G]}),K=D?.__sessions,C=QiA(K,M01),M=cpA(F,J.env),q=Yk2({agent:D,contextEnv:J.env,cwd:J.cwd,imagesEnabled:M,sessions:C}),z="0.0.6-beta.28",O=Jk2(),g=[kF.join(O,".claude","skills"),kF.join(O,".agents","skills"),kF.join(B,".claude","skills"),kF.join(B,".agents","skills")],w=await kpA({host:A.host,port:A.port,protocolVersion:"0.1",serverVersion:z??"0.0.0",token:A.token,staticDir:U,uploadDir:I,capabilities:{uploads:!0,images:M},sessions:C,queryHandler:q,skillsDirectories:g,activeSkills:G,logger:Q});return{server:w,baseUrl:w.baseUrl,staticDir:U}}async function JiA(A){let Q=bpA(A),B=process.env,U=process.cwd(),J=kF.dirname(process.execPath),Y=ppA({argvPath:process.argv[1],execPath:process.execPath,importMetaUrl:import.meta.url}),V=ipA({env:B,cliRoot:Y,cwd:U,existsSync:DI});if(!DI(V)){let D=[kF.resolve(J,"assets","gui"),kF.resolve(J,"..","assets","gui")].find((K)=>DI(K));if(D)V=D}let E=A_1(B)?void 0:Ek2({env:B,cliRoot:Y,cwd:U,staticDir:V}),I=DI(V)||!E?V:E,{server:W,baseUrl:Z}=await U_1({host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token,staticDir:I});for(let G of spA({baseUrl:Z,token:Q.token,staticDir:I,existsSync:DI}))yO(G);if(!DI(I??""))yO("GUI assets not found. Set DIMCODE_GUI_DIR or rebuild the CLI with bundled assets.");if(Q.open){yO("Opening GUI in browser...");let G=opA(Z,{debug:Q.debugUi,token:Q.token});if(!Y41(G))yO("Failed to open browser automatically.")}await tpA({proc:process,onShutdown:async()=>{yO("Shutting down...");let G=setTimeout(()=>{yO("Shutdown taking too long, forcing exit..."),process.exit(0)},1500);try{await W.close()}finally{clearTimeout(G)}}})}function kO(A){process.stdout.write(`${A}
|
|
2434
2434
|
`)}function Zk2(A){let Q=tm.resolve(A);for(let B=0;B<12;B+=1){let U=tm.join(Q,"packages","gui","package.json");if(Wk2(U))return tm.dirname(U);let J=tm.dirname(Q);if(J===Q)break;Q=J}return null}async function Gk2(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 YiA(A){let Q=KpA(A),B=Zk2(process.cwd());if(!B){kO("GUI dev server is only available in the repo workspace (expected: ./packages/gui)."),kO("Use `dim server --open` to run the bundled GUI instead.");return}let U=await U_1({cwd:process.cwd(),host:Q.host,port:Q.port,verbose:Q.verbose,token:Q.token,staticDir:void 0});if(kO(`API server running at ${U.baseUrl}`),Q.token)kO(`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];kO(`Starting Nuxt dev server in ${tm.relative(process.cwd(),B)||"packages/gui"}...`);let V=null;try{V=Ik2("bun",Y,{cwd:B,env:J,stdio:"inherit"})}catch(E){throw await U.server.close(),E}let F=new URL(`http://${Q.guiHost}:${Q.guiPort}/`);if(Q.debugUi)F.searchParams.set("debug","1");if(Q.token)F.searchParams.set("token",Q.token);if(Q.open){if(!await Gk2(F.toString(),15000))kO(`Nuxt dev server not ready yet at ${F.toString()}`);else if(!Y41(F.toString()))kO("Failed to open browser automatically.")}await new Promise((E,I)=>{let W=!1,Z=async()=>{if(W)return;W=!0;try{if(V&&!V.killed)V.kill("SIGTERM")}finally{await U.server.close()}},G=()=>{Z().then(E).catch(I)};process.on("SIGINT",G),process.on("SIGTERM",G),V?.once("exit",(D)=>{Z().then(()=>{if(typeof D==="number"&&D!==0)process.exitCode=D;E()}).catch(I)})})}RF();import{createRequire as Xk2}from"node:module";var ViA=!1;function FiA(){return g5(d3())}function Dk2(A){let Q=String(A??"").trim().toLowerCase();return Q==="1"||Q==="true"||Q==="yes"||Q==="on"}function $k2(){let A=Number(FiA().prefixedStr("GC_LOG_SLOW_MS"));if(Number.isFinite(A)&&A>0)return Math.max(1,Math.floor(A));return 20}function Kk2(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 EiA(){if(ViA)return;ViA=!0;let A=FiA();if(!Dk2(A.prefixedStr("GC_LOG")))return;let Q=Xk2(import.meta.url),B;try{({PerformanceObserver:B}=Q("node:perf_hooks"))}catch{return}try{let U=$k2();new B((Y)=>{try{for(let V of Y?.getEntries?.()??[]){let F=V,E=Number(F.duration??0);if(!Number.isFinite(E)||E<U)continue;gJ(`[GC] ${E.toFixed(1)}ms kind=${Kk2(F.kind)} name=${String(F.name??"")}`)}}catch{}}).observe({entryTypes:["gc"]})}catch{}}RF();function IiA(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 W41=eW(void 0,"DEBUG"),em=W41==="1"||W41==="true"||W41==="yes"||W41==="on"||process.argv.includes("--debug"),Z41=H$(void 0,"DEBUG_LOG")||"./dimcode-debug.log",Hk2=1500,Ck2="DIMCODE_STARTUP_UPGRADE_WAIT_MS",Mk2="GOATCHAIN_STARTUP_UPGRADE_WAIT_MS";function Y$(A,Q){if(!em)return;let U=`[${new Date().toISOString()}] ${A}${Q?`: ${JSON.stringify(Q,null,2)}`:""}
|
|
2435
2435
|
`;try{WiA(Z41,U)}catch{}}function qk2(A){let Q=A instanceof Error?A:Error(String(A)),B={message:Q.message,stack:Q.stack};if(em){Y$("[CLI] fatal error during setup",B);return}let J=`[${new Date().toISOString()}] [CLI] fatal error during setup: ${B.message}${B.stack?`
|
|
2436
2436
|
${B.stack}`:""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"deepseek","name":"DeepSeek","api":"https://api.deepseek.com/v1","models":[{"id":"deepseek-chat","name":"DeepSeek Chat","family":"deepseek","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":8192},"display_name":"DeepSeek Chat"},{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":64000},"display_name":"DeepSeek Reasoner"}],"defaultModelId":"deepseek-reasoner"}
|
package/dist/google.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"google","name":"Google","doc":"https://ai.google.dev/gemini-api/docs/pricing","display_name":"Google","models":[{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 3 Flash Preview"},{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini-flash","attachment":false,"reasoning":{"supported":false},"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768},"display_name":"Gemini 2.5 Flash Image"},{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Preview 05-20"},{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536},"display_name":"Gemini Flash-Lite Latest"},{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000},"display_name":"Gemini 3 Pro Preview"},{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true,"budget":{"min":0,"max":24576,"default":-1}},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash","search":{"supported":true,"default":false}},{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536},"display_name":"Gemini Flash Latest"},{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Pro Preview 05-06"},{"id":"gemini-2.5-flash-preview-tts","name":"Gemini 2.5 Flash Preview TTS","family":"gemini-flash","attachment":false,"reasoning":{"supported":false},"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0.5,"output":10},"limit":{"context":8000,"output":16000},"display_name":"Gemini 2.5 Flash Preview TTS"},{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":{"supported":false},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192},"display_name":"Gemini 2.0 Flash Lite","search":{"supported":false}},{"id":"gemini-live-2.5-flash-preview-native-audio","name":"Gemini Live 2.5 Flash Preview Native Audio","family":"gemini-flash","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-09-18","modalities":{"input":["text","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":131072,"output":65536},"display_name":"Gemini Live 2.5 Flash Preview Native Audio"},{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":false},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192},"display_name":"Gemini 2.0 Flash","search":{"supported":true,"default":false}},{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":{"supported":true,"default":false,"budget":{"min":512,"max":24576,"default":-1}},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Lite","search":{"supported":true,"default":false}},{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Pro Preview 06-05"},{"id":"gemini-live-2.5-flash","name":"Gemini Live 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":128000,"output":8000},"display_name":"Gemini Live 2.5 Flash"},{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"input_audio":0.3},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Lite Preview 06-17"},{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image Preview","family":"gemini-flash","attachment":false,"reasoning":{"supported":false},"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768},"display_name":"Gemini 2.5 Flash Image Preview"},{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09 2025","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true,"budget":{"min":0,"max":24576,"default":-1}},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Preview 09 2025","search":{"supported":true,"default":false}},{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Preview 04-17"},{"id":"gemini-2.5-pro-preview-tts","name":"Gemini 2.5 Pro Preview TTS","family":"gemini-flash","attachment":false,"reasoning":{"supported":false},"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":1,"output":20},"limit":{"context":8000,"output":16000},"display_name":"Gemini 2.5 Pro Preview TTS"},{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":{"supported":true,"default":true,"budget":{"min":128,"max":32768,"default":-1}},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Pro","search":{"supported":true,"default":false}},{"id":"gemini-1.5-flash","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.01875},"limit":{"context":1000000,"output":8192},"display_name":"Gemini 1.5 Flash"},{"id":"gemini-1.5-flash-8b","name":"Gemini 1.5 Flash-8B","family":"gemini-flash","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-03","last_updated":"2024-10-03","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.0375,"output":0.15,"cache_read":0.01},"limit":{"context":1000000,"output":8192},"display_name":"Gemini 1.5 Flash-8B"},{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09 2025","family":"gemini-flash-lite","attachment":true,"reasoning":{"supported":true,"default":false,"budget":{"min":512,"max":24576,"default":-1}},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536},"display_name":"Gemini 2.5 Flash Lite Preview 09 2025","search":{"supported":true,"default":false}},{"id":"gemini-1.5-pro","name":"Gemini 1.5 Pro","family":"gemini-pro","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-02-15","last_updated":"2024-02-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.3125},"limit":{"context":1000000,"output":8192},"display_name":"Gemini 1.5 Pro"},{"id":"gemini-2.0-flash-preview-image-generation","name":"Gemini 2.0 Flash Preview Image Generation","display_name":"Gemini 2.0 Flash Preview Image Generation","temperature":true,"attachment":true,"tool_call":false,"modalities":{"input":["text","image"],"output":["text","image"]},"limit":{"context":32000,"output":8192},"reasoning":{"supported":false},"search":{"supported":false}}],"adapter":"gemini","defaultModelId":"gemini-3-flash-preview"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"kimi-for-coding","api":"https://api.kimi.com/coding","name":"Kimi For Coding","doc":"https://www.kimi.com/coding/docs/en/third-party-agents.html","display_name":"Kimi For Coding","ccmock":true,"adapter":"anthropic","models":[{"id":"k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768},"display_name":"Kimi K2.5"},{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768},"display_name":"Kimi K2 Thinking"}],"defaultModelId":"k2p5"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"lm-studio","name":"LM Studio","api":"http://127.0.0.1:1234/v1","adapter":"openai","customModels":true,"models":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"minimax-cn-coding-plan","name":"MiniMax Coding Plan (minimaxi.com)","api":"https://api.minimaxi.com/anthropic","adapter":"anthropic","models":[{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000},"display_name":"MiniMax-M2"},{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072},"display_name":"MiniMax-M2.1"}],"defaultModelId":"MiniMax-M2"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"minimax-cn","name":"MiniMax (minimaxi.com)","api":"https://api.minimaxi.com/anthropic","adapter":"anthropic","models":[{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072},"display_name":"MiniMax-M2.1"},{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000},"display_name":"MiniMax-M2"}],"defaultModelId":"MiniMax-M2.1"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"minimax-coding-plan","name":"MiniMax Coding Plan (minimax.io)","api":"https://api.minimax.io/anthropic","adapter":"anthropic","models":[{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000},"display_name":"MiniMax-M2"},{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072},"display_name":"MiniMax-M2.1"}],"defaultModelId":"MiniMax-M2"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"minimax","name":"MiniMax (minimax.io)","api":"https://api.minimax.io/anthropic","adapter":"anthropic","models":[{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000},"display_name":"MiniMax-M2"},{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072},"display_name":"MiniMax-M2.1"}],"defaultModelId":"MiniMax-M2"}
|