@proxysoul/soulforge 2.20.9 → 2.20.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +132 -44
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -46983,6 +46983,8 @@ function supportsTemperature(modelId) {
|
|
|
46983
46983
|
const base = extractBaseModel(modelId);
|
|
46984
46984
|
if (!base.startsWith("claude"))
|
|
46985
46985
|
return true;
|
|
46986
|
+
if (isClaude5Plus(base))
|
|
46987
|
+
return false;
|
|
46986
46988
|
const v = parseOpusVersion(base);
|
|
46987
46989
|
if (!v)
|
|
46988
46990
|
return true;
|
|
@@ -46990,11 +46992,20 @@ function supportsTemperature(modelId) {
|
|
|
46990
46992
|
}
|
|
46991
46993
|
function isAdaptiveOnly(modelId) {
|
|
46992
46994
|
const base = extractBaseModel(modelId);
|
|
46995
|
+
if (isClaude5Plus(base))
|
|
46996
|
+
return true;
|
|
46993
46997
|
const v = parseOpusVersion(base);
|
|
46994
46998
|
if (!v)
|
|
46995
46999
|
return false;
|
|
46996
47000
|
return v.major >= 5 || v.major === 4 && v.minor >= 7;
|
|
46997
47001
|
}
|
|
47002
|
+
function isClaude5Plus(base) {
|
|
47003
|
+
if (/(?:fable|mythos)-(\d+)/.test(base)) {
|
|
47004
|
+
const m = base.match(/(?:fable|mythos)-(\d+)/);
|
|
47005
|
+
return m ? Number(m[1]) >= 5 : false;
|
|
47006
|
+
}
|
|
47007
|
+
return false;
|
|
47008
|
+
}
|
|
46998
47009
|
|
|
46999
47010
|
// src/utils/errors.ts
|
|
47000
47011
|
function toErrorMessage(err2) {
|
|
@@ -52021,6 +52032,8 @@ var init_anthropic = __esm(() => {
|
|
|
52021
52032
|
return result;
|
|
52022
52033
|
},
|
|
52023
52034
|
fallbackModels: [
|
|
52035
|
+
{ id: "claude-fable-5", name: "Claude Fable 5" },
|
|
52036
|
+
{ id: "claude-mythos-5", name: "Claude Mythos 5" },
|
|
52024
52037
|
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
|
|
52025
52038
|
{ id: "claude-opus-4-7", name: "Claude Opus 4.7" },
|
|
52026
52039
|
{ id: "claude-opus-4-6", name: "Claude Opus 4.6" },
|
|
@@ -52032,6 +52045,8 @@ var init_anthropic = __esm(() => {
|
|
|
52032
52045
|
{ id: "claude-haiku-4", name: "Claude Haiku 4" }
|
|
52033
52046
|
],
|
|
52034
52047
|
contextWindows: [
|
|
52048
|
+
["claude-fable-5", 1e6],
|
|
52049
|
+
["claude-mythos-5", 1e6],
|
|
52035
52050
|
["claude-opus-4-8", 1e6],
|
|
52036
52051
|
["claude-opus-4-7", 1e6],
|
|
52037
52052
|
["claude-opus-4-6", 1e6],
|
|
@@ -71947,7 +71962,7 @@ var package_default;
|
|
|
71947
71962
|
var init_package = __esm(() => {
|
|
71948
71963
|
package_default = {
|
|
71949
71964
|
name: "@proxysoul/soulforge",
|
|
71950
|
-
version: "2.20.
|
|
71965
|
+
version: "2.20.11",
|
|
71951
71966
|
description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
|
|
71952
71967
|
repository: {
|
|
71953
71968
|
type: "git",
|
|
@@ -100230,6 +100245,7 @@ import {
|
|
|
100230
100245
|
mkdirSync as mkdirSync13,
|
|
100231
100246
|
readdirSync as readdirSync4,
|
|
100232
100247
|
readFileSync as readFileSync13,
|
|
100248
|
+
statSync as statSync3,
|
|
100233
100249
|
unlinkSync as unlinkSync4,
|
|
100234
100250
|
writeFileSync as writeFileSync11
|
|
100235
100251
|
} from "fs";
|
|
@@ -100659,6 +100675,8 @@ function runProxyLogin(onOutput, providerFlag) {
|
|
|
100659
100675
|
}
|
|
100660
100676
|
ensureConfig();
|
|
100661
100677
|
const flag = providerFlag ?? "-claude-login";
|
|
100678
|
+
const prefix = PROXY_PROVIDERS.find((p) => p.flag === flag)?.prefix ?? "";
|
|
100679
|
+
const credSnapshot = snapshotProviderCreds(prefix);
|
|
100662
100680
|
const proc = spawn4(binary2, ["-config", PROXY_CONFIG_PATH, flag], {
|
|
100663
100681
|
stdio: ["ignore", "pipe", "pipe"]
|
|
100664
100682
|
});
|
|
@@ -100678,12 +100696,20 @@ function runProxyLogin(onOutput, providerFlag) {
|
|
|
100678
100696
|
proc.stderr?.on("data", handleData);
|
|
100679
100697
|
const promise2 = new Promise((resolve6) => {
|
|
100680
100698
|
proc.on("close", async (code) => {
|
|
100681
|
-
|
|
100682
|
-
|
|
100683
|
-
resolve6({ ok: result.ok });
|
|
100684
|
-
} else {
|
|
100699
|
+
const authed = code === 0 && credsChangedSince(prefix, credSnapshot);
|
|
100700
|
+
if (!authed) {
|
|
100685
100701
|
resolve6({ ok: false });
|
|
100702
|
+
return;
|
|
100686
100703
|
}
|
|
100704
|
+
try {
|
|
100705
|
+
const healthy = await bounceProxy();
|
|
100706
|
+
if (!healthy) {
|
|
100707
|
+
onOutput("Credentials saved, but the proxy did not come back up. Run /proxy restart.");
|
|
100708
|
+
}
|
|
100709
|
+
} catch {
|
|
100710
|
+
onOutput("Credentials saved, but restarting the proxy failed. Run /proxy restart.");
|
|
100711
|
+
}
|
|
100712
|
+
resolve6({ ok: true });
|
|
100687
100713
|
});
|
|
100688
100714
|
proc.on("error", (err2) => {
|
|
100689
100715
|
onOutput(`Login failed: ${err2.message}`);
|
|
@@ -100825,6 +100851,35 @@ function parseNetstatPidsForPort(out2, port) {
|
|
|
100825
100851
|
}
|
|
100826
100852
|
return pids;
|
|
100827
100853
|
}
|
|
100854
|
+
function snapshotProviderCreds(prefix) {
|
|
100855
|
+
const snap = new Map;
|
|
100856
|
+
if (!prefix || !existsSync16(AUTH_DIR))
|
|
100857
|
+
return snap;
|
|
100858
|
+
for (const f of readdirSync4(AUTH_DIR)) {
|
|
100859
|
+
if (!f.startsWith(prefix) || !f.endsWith(".json"))
|
|
100860
|
+
continue;
|
|
100861
|
+
try {
|
|
100862
|
+
snap.set(f, statSync3(join19(AUTH_DIR, f)).mtimeMs);
|
|
100863
|
+
} catch {}
|
|
100864
|
+
}
|
|
100865
|
+
return snap;
|
|
100866
|
+
}
|
|
100867
|
+
function credsChangedSince(prefix, before) {
|
|
100868
|
+
if (!prefix || !existsSync16(AUTH_DIR))
|
|
100869
|
+
return false;
|
|
100870
|
+
for (const f of readdirSync4(AUTH_DIR)) {
|
|
100871
|
+
if (!f.startsWith(prefix) || !f.endsWith(".json"))
|
|
100872
|
+
continue;
|
|
100873
|
+
const prev = before.get(f);
|
|
100874
|
+
if (prev === undefined)
|
|
100875
|
+
return true;
|
|
100876
|
+
try {
|
|
100877
|
+
if (statSync3(join19(AUTH_DIR, f)).mtimeMs > prev)
|
|
100878
|
+
return true;
|
|
100879
|
+
} catch {}
|
|
100880
|
+
}
|
|
100881
|
+
return false;
|
|
100882
|
+
}
|
|
100828
100883
|
var proxyProcess = null, PROXY_URL, PROXY_CONFIG_DIR, PROXY_CONFIG_PATH, HEALTH_TIMEOUT_MS = 2000, STARTUP_POLL_MS = 500, STARTUP_POLL_ATTEMPTS = 10, currentState = "stopped", lastError = null, stateListeners, VERSION_FILE, LEGACY_PERF_MARKER_PREFIX = "# soulforge-perf-defaults", bounceInFlight = null, PROXY_PROVIDERS, AUTH_DIR, cachedLatest = null, VERSION_CACHE_TTL;
|
|
100829
100884
|
var init_lifecycle = __esm(() => {
|
|
100830
100885
|
init_errors();
|
|
@@ -115417,7 +115472,7 @@ var init_checkpoints = __esm(() => {
|
|
|
115417
115472
|
});
|
|
115418
115473
|
|
|
115419
115474
|
// src/core/commands/utils.ts
|
|
115420
|
-
import { existsSync as existsSync17, readdirSync as readdirSync5, statSync as
|
|
115475
|
+
import { existsSync as existsSync17, readdirSync as readdirSync5, statSync as statSync4 } from "fs";
|
|
115421
115476
|
import { homedir as homedir4 } from "os";
|
|
115422
115477
|
import { join as join20 } from "path";
|
|
115423
115478
|
function sysMsg(ctx, content) {
|
|
@@ -115445,7 +115500,7 @@ function dirSize(dirPath) {
|
|
|
115445
115500
|
for (const entry of readdirSync5(dirPath)) {
|
|
115446
115501
|
const fp = join20(dirPath, entry);
|
|
115447
115502
|
try {
|
|
115448
|
-
const s =
|
|
115503
|
+
const s = statSync4(fp);
|
|
115449
115504
|
total += s.isDirectory() ? dirSize(fp) : s.size;
|
|
115450
115505
|
} catch {}
|
|
115451
115506
|
}
|
|
@@ -115453,7 +115508,7 @@ function dirSize(dirPath) {
|
|
|
115453
115508
|
}
|
|
115454
115509
|
function fileSize(filePath) {
|
|
115455
115510
|
try {
|
|
115456
|
-
return
|
|
115511
|
+
return statSync4(filePath).size;
|
|
115457
115512
|
} catch {
|
|
115458
115513
|
return 0;
|
|
115459
115514
|
}
|
|
@@ -134682,7 +134737,7 @@ ${lanes.join(`
|
|
|
134682
134737
|
return process.memoryUsage().heapUsed;
|
|
134683
134738
|
},
|
|
134684
134739
|
getFileSize(path) {
|
|
134685
|
-
const stat2 =
|
|
134740
|
+
const stat2 = statSync5(path);
|
|
134686
134741
|
if (stat2 == null ? undefined : stat2.isFile()) {
|
|
134687
134742
|
return stat2.size;
|
|
134688
134743
|
}
|
|
@@ -134725,7 +134780,7 @@ ${lanes.join(`
|
|
|
134725
134780
|
}
|
|
134726
134781
|
};
|
|
134727
134782
|
return nodeSystem;
|
|
134728
|
-
function
|
|
134783
|
+
function statSync5(path) {
|
|
134729
134784
|
try {
|
|
134730
134785
|
return _fs.statSync(path, statSyncOptions);
|
|
134731
134786
|
} catch {
|
|
@@ -134777,7 +134832,7 @@ ${lanes.join(`
|
|
|
134777
134832
|
activeSession.post("Profiler.stop", (err2, { profile }) => {
|
|
134778
134833
|
var _a31;
|
|
134779
134834
|
if (!err2) {
|
|
134780
|
-
if ((_a31 =
|
|
134835
|
+
if ((_a31 = statSync5(profilePath)) == null ? undefined : _a31.isDirectory()) {
|
|
134781
134836
|
profilePath = _path.join(profilePath, `${(/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-")}+P${process.pid}.cpuprofile`);
|
|
134782
134837
|
}
|
|
134783
134838
|
try {
|
|
@@ -134886,7 +134941,7 @@ ${lanes.join(`
|
|
|
134886
134941
|
let stat2;
|
|
134887
134942
|
if (typeof dirent === "string" || dirent.isSymbolicLink()) {
|
|
134888
134943
|
const name38 = combinePaths(path, entry);
|
|
134889
|
-
stat2 =
|
|
134944
|
+
stat2 = statSync5(name38);
|
|
134890
134945
|
if (!stat2) {
|
|
134891
134946
|
continue;
|
|
134892
134947
|
}
|
|
@@ -134910,7 +134965,7 @@ ${lanes.join(`
|
|
|
134910
134965
|
return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, process.cwd(), depth, getAccessibleFileSystemEntries, realpath);
|
|
134911
134966
|
}
|
|
134912
134967
|
function fileSystemEntryExists(path, entryKind) {
|
|
134913
|
-
const stat2 =
|
|
134968
|
+
const stat2 = statSync5(path);
|
|
134914
134969
|
if (!stat2) {
|
|
134915
134970
|
return false;
|
|
134916
134971
|
}
|
|
@@ -134944,7 +134999,7 @@ ${lanes.join(`
|
|
|
134944
134999
|
}
|
|
134945
135000
|
function getModifiedTime3(path) {
|
|
134946
135001
|
var _a31;
|
|
134947
|
-
return (_a31 =
|
|
135002
|
+
return (_a31 = statSync5(path)) == null ? undefined : _a31.mtime;
|
|
134948
135003
|
}
|
|
134949
135004
|
function setModifiedTime(path, time3) {
|
|
134950
135005
|
try {
|
|
@@ -378118,7 +378173,7 @@ var init_trigram = __esm(() => {
|
|
|
378118
378173
|
|
|
378119
378174
|
// src/core/intelligence/repo-map.ts
|
|
378120
378175
|
import { Database } from "bun:sqlite";
|
|
378121
|
-
import { chmodSync as chmodSync3, existsSync as existsSync25, readdirSync as readdirSync9, readFileSync as readFileSync17, statSync as
|
|
378176
|
+
import { chmodSync as chmodSync3, existsSync as existsSync25, readdirSync as readdirSync9, readFileSync as readFileSync17, statSync as statSync5 } from "fs";
|
|
378122
378177
|
import { stat as statAsync } from "fs/promises";
|
|
378123
378178
|
import { dirname as dirname8, extname as extname2, join as join30, relative as relative4, resolve as resolve13 } from "path";
|
|
378124
378179
|
|
|
@@ -380193,7 +380248,7 @@ class RepoMap {
|
|
|
380193
380248
|
for (const f of files) {
|
|
380194
380249
|
const absPath = join30(this.cwd, f.path);
|
|
380195
380250
|
try {
|
|
380196
|
-
const st2 =
|
|
380251
|
+
const st2 = statSync5(absPath);
|
|
380197
380252
|
if (st2.mtimeMs !== f.mtime_ms || st2.size !== f.size_bytes) {
|
|
380198
380253
|
this.onFileChanged(absPath);
|
|
380199
380254
|
}
|
|
@@ -380698,7 +380753,7 @@ class RepoMap {
|
|
|
380698
380753
|
continue;
|
|
380699
380754
|
seenPaths.add(absPath);
|
|
380700
380755
|
try {
|
|
380701
|
-
const stat3 =
|
|
380756
|
+
const stat3 = statSync5(absPath);
|
|
380702
380757
|
if (Math.abs(stat3.mtimeMs - row.mtime_ms) > 1000)
|
|
380703
380758
|
continue;
|
|
380704
380759
|
} catch {
|
|
@@ -380788,7 +380843,7 @@ class RepoMap {
|
|
|
380788
380843
|
seen.add(key);
|
|
380789
380844
|
const absPath = join30(this.cwd, row.path);
|
|
380790
380845
|
try {
|
|
380791
|
-
const stat3 =
|
|
380846
|
+
const stat3 = statSync5(absPath);
|
|
380792
380847
|
if (Math.abs(stat3.mtimeMs - row.mtime_ms) > 1000)
|
|
380793
380848
|
continue;
|
|
380794
380849
|
} catch {
|
|
@@ -380842,7 +380897,7 @@ class RepoMap {
|
|
|
380842
380897
|
for (const row of rows) {
|
|
380843
380898
|
const absPath = join30(this.cwd, row.path);
|
|
380844
380899
|
try {
|
|
380845
|
-
const stat3 =
|
|
380900
|
+
const stat3 = statSync5(absPath);
|
|
380846
380901
|
if (Math.abs(stat3.mtimeMs - row.mtime_ms) > 1000)
|
|
380847
380902
|
continue;
|
|
380848
380903
|
} catch {
|
|
@@ -403005,6 +403060,8 @@ function matchPricing(modelId) {
|
|
|
403005
403060
|
if (id.includes(key))
|
|
403006
403061
|
return pricing;
|
|
403007
403062
|
}
|
|
403063
|
+
if (id.includes("fable") || id.includes("mythos"))
|
|
403064
|
+
return MODEL_PRICING["claude-fable-5"] ?? DEFAULT_PRICING;
|
|
403008
403065
|
if (id.includes("opus"))
|
|
403009
403066
|
return MODEL_PRICING["claude-opus-4-8"] ?? DEFAULT_PRICING;
|
|
403010
403067
|
if (id.includes("sonnet"))
|
|
@@ -403013,6 +403070,8 @@ function matchPricing(modelId) {
|
|
|
403013
403070
|
return MODEL_PRICING["claude-haiku-4-5"] ?? DEFAULT_PRICING;
|
|
403014
403071
|
if (id.includes("gemini"))
|
|
403015
403072
|
return MODEL_PRICING["gemini-2.5-flash"] ?? DEFAULT_PRICING;
|
|
403073
|
+
if (id.includes("grok"))
|
|
403074
|
+
return MODEL_PRICING["grok-4.3"] ?? DEFAULT_PRICING;
|
|
403016
403075
|
if (id.includes("gpt"))
|
|
403017
403076
|
return MODEL_PRICING["gpt-5.4"] ?? DEFAULT_PRICING;
|
|
403018
403077
|
if (id.includes("deepseek"))
|
|
@@ -403052,6 +403111,9 @@ function resetStatusBarStore() {
|
|
|
403052
403111
|
memPollTimer = null;
|
|
403053
403112
|
memPollStarted = false;
|
|
403054
403113
|
}
|
|
403114
|
+
footprintCacheMB = null;
|
|
403115
|
+
footprintCacheAt = 0;
|
|
403116
|
+
footprintRefreshInFlight = false;
|
|
403055
403117
|
useStatusBarStore.setState({
|
|
403056
403118
|
tokenUsage: { ...ZERO_USAGE },
|
|
403057
403119
|
activeModel: "none",
|
|
@@ -403143,8 +403205,24 @@ async function getMainFootprintMB() {
|
|
|
403143
403205
|
const rssMB = Math.round(process.memoryUsage().rss / 1024 / 1024);
|
|
403144
403206
|
if (process.platform !== "darwin")
|
|
403145
403207
|
return rssMB;
|
|
403146
|
-
const
|
|
403147
|
-
|
|
403208
|
+
const now2 = Date.now();
|
|
403209
|
+
if (footprintCacheMB === null || now2 - footprintCacheAt >= FOOTPRINT_TTL_MS) {
|
|
403210
|
+
refreshFootprintMB();
|
|
403211
|
+
}
|
|
403212
|
+
return footprintCacheMB ?? rssMB;
|
|
403213
|
+
}
|
|
403214
|
+
async function refreshFootprintMB() {
|
|
403215
|
+
if (footprintRefreshInFlight)
|
|
403216
|
+
return;
|
|
403217
|
+
footprintRefreshInFlight = true;
|
|
403218
|
+
try {
|
|
403219
|
+
const mb = await macFootprintMB(process.pid);
|
|
403220
|
+
footprintCacheAt = Date.now();
|
|
403221
|
+
if (mb != null)
|
|
403222
|
+
footprintCacheMB = mb;
|
|
403223
|
+
} finally {
|
|
403224
|
+
footprintRefreshInFlight = false;
|
|
403225
|
+
}
|
|
403148
403226
|
}
|
|
403149
403227
|
function macFootprintMB(pid) {
|
|
403150
403228
|
return new Promise((resolve14) => {
|
|
@@ -403197,7 +403275,7 @@ function startMemoryPoll(intervalMs = 2000) {
|
|
|
403197
403275
|
});
|
|
403198
403276
|
}, intervalMs);
|
|
403199
403277
|
}
|
|
403200
|
-
var MODEL_PRICING, FREE_PRICING, DEFAULT_PRICING, FREE, M025, M033, M1, M3, M30, M75, COPILOT_PRICING, LOCAL_PROVIDERS, ZERO_USAGE, ZERO_PROCESS_RSS, useStatusBarStore, memPollStarted = false, memPollTimer = null;
|
|
403278
|
+
var MODEL_PRICING, FREE_PRICING, DEFAULT_PRICING, FREE, M025, M033, M1, M3, M30, M75, COPILOT_PRICING, LOCAL_PROVIDERS, ZERO_USAGE, ZERO_PROCESS_RSS, useStatusBarStore, FOOTPRINT_TTL_MS = 30000, footprintCacheMB = null, footprintCacheAt = 0, footprintRefreshInFlight = false, memPollStarted = false, memPollTimer = null;
|
|
403201
403279
|
var init_statusbar = __esm(() => {
|
|
403202
403280
|
init_esm();
|
|
403203
403281
|
init_middleware();
|
|
@@ -403207,6 +403285,8 @@ var init_statusbar = __esm(() => {
|
|
|
403207
403285
|
init_platform();
|
|
403208
403286
|
init_lifecycle();
|
|
403209
403287
|
MODEL_PRICING = {
|
|
403288
|
+
"claude-fable-5": { input: 10, cacheWrite: 12.5, cacheRead: 1, output: 50 },
|
|
403289
|
+
"claude-mythos-5": { input: 10, cacheWrite: 12.5, cacheRead: 1, output: 50 },
|
|
403210
403290
|
"claude-opus-4-8": { input: 5, cacheWrite: 6.25, cacheRead: 0.5, output: 25 },
|
|
403211
403291
|
"claude-opus-4-7": { input: 5, cacheWrite: 6.25, cacheRead: 0.5, output: 25 },
|
|
403212
403292
|
"claude-opus-4-6": { input: 5, cacheWrite: 6.25, cacheRead: 0.5, output: 25 },
|
|
@@ -403242,10 +403322,10 @@ var init_statusbar = __esm(() => {
|
|
|
403242
403322
|
"gemini-2.5-flash-lite": { input: 0.1, cacheWrite: 0.1, cacheRead: 0.01, output: 0.4 },
|
|
403243
403323
|
"gemini-2.0-flash": { input: 0.1, cacheWrite: 0.1, cacheRead: 0.025, output: 0.4 },
|
|
403244
403324
|
"gemini-2.0-flash-lite": { input: 0.075, cacheWrite: 0.075, cacheRead: 0.019, output: 0.3 },
|
|
403245
|
-
"deepseek-v4-pro": { input:
|
|
403246
|
-
"deepseek-v4-flash": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.
|
|
403247
|
-
"deepseek-chat": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.
|
|
403248
|
-
"deepseek-reasoner": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.
|
|
403325
|
+
"deepseek-v4-pro": { input: 0.435, cacheWrite: 0.435, cacheRead: 0.003625, output: 0.87 },
|
|
403326
|
+
"deepseek-v4-flash": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.0028, output: 0.28 },
|
|
403327
|
+
"deepseek-chat": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.0028, output: 0.28 },
|
|
403328
|
+
"deepseek-reasoner": { input: 0.14, cacheWrite: 0.14, cacheRead: 0.0028, output: 0.28 },
|
|
403249
403329
|
"deepseek-v3": { input: 0.28, cacheWrite: 0.28, cacheRead: 0.028, output: 0.42 },
|
|
403250
403330
|
"deepseek-r1": { input: 0.28, cacheWrite: 0.28, cacheRead: 0.028, output: 0.42 },
|
|
403251
403331
|
"llama-3.3-70b": { input: 0.59, cacheWrite: 0.59, cacheRead: 0.295, output: 0.79 },
|
|
@@ -403254,9 +403334,17 @@ var init_statusbar = __esm(() => {
|
|
|
403254
403334
|
"qwen3-32b": { input: 0.29, cacheWrite: 0.29, cacheRead: 0.145, output: 0.59 },
|
|
403255
403335
|
"gpt-oss-20b": { input: 0.075, cacheWrite: 0.075, cacheRead: 0.0375, output: 0.3 },
|
|
403256
403336
|
"gpt-oss-120b": { input: 0.15, cacheWrite: 0.15, cacheRead: 0.075, output: 0.6 },
|
|
403337
|
+
"grok-4.3": { input: 1.25, cacheWrite: 1.25, cacheRead: 0.2, output: 2.5 },
|
|
403338
|
+
"grok-4.20": { input: 1.25, cacheWrite: 1.25, cacheRead: 0.2, output: 2.5 },
|
|
403339
|
+
"grok-4.1-fast": { input: 0.2, cacheWrite: 0.2, cacheRead: 0.05, output: 0.5 },
|
|
403340
|
+
"grok-4-fast": { input: 0.2, cacheWrite: 0.2, cacheRead: 0.05, output: 0.5 },
|
|
403341
|
+
"grok-code-fast": { input: 0.2, cacheWrite: 0.2, cacheRead: 0.02, output: 1.5 },
|
|
403342
|
+
"grok-4": { input: 3, cacheWrite: 3, cacheRead: 0.75, output: 15 },
|
|
403343
|
+
"grok-3": { input: 3, cacheWrite: 3, cacheRead: 0.75, output: 15 },
|
|
403344
|
+
"grok-3-mini": { input: 0.3, cacheWrite: 0.3, cacheRead: 0.075, output: 0.5 },
|
|
403257
403345
|
"mistral-large": { input: 0.5, cacheWrite: 0.5, cacheRead: 0.05, output: 1.5 },
|
|
403258
|
-
"mistral-medium": { input:
|
|
403259
|
-
"mistral-small": { input: 0.
|
|
403346
|
+
"mistral-medium": { input: 1.5, cacheWrite: 1.5, cacheRead: 0.15, output: 7.5 },
|
|
403347
|
+
"mistral-small": { input: 0.15, cacheWrite: 0.15, cacheRead: 0.015, output: 0.6 },
|
|
403260
403348
|
codestral: { input: 0.3, cacheWrite: 0.3, cacheRead: 0.03, output: 0.9 },
|
|
403261
403349
|
magistral: { input: 0.5, cacheWrite: 0.5, cacheRead: 0.05, output: 1.5 },
|
|
403262
403350
|
ministral: { input: 0.1, cacheWrite: 0.1, cacheRead: 0.01, output: 0.1 },
|
|
@@ -415140,7 +415228,7 @@ var init_approval_gates = __esm(() => {
|
|
|
415140
415228
|
});
|
|
415141
415229
|
|
|
415142
415230
|
// src/core/utils/path-display.ts
|
|
415143
|
-
import { realpathSync as realpathSync3, statSync as
|
|
415231
|
+
import { realpathSync as realpathSync3, statSync as statSync6 } from "fs";
|
|
415144
415232
|
import { homedir as homedir11, platform as platform4 } from "os";
|
|
415145
415233
|
import { isAbsolute, relative as relative5, resolve as resolve15, sep as sep2 } from "path";
|
|
415146
415234
|
function canonicalizePath(p) {
|
|
@@ -435334,7 +435422,7 @@ function isTextWithEncodingHint(fileBuffer, bytesRead, encoding) {
|
|
|
435334
435422
|
var MAX_BYTES = 512;
|
|
435335
435423
|
|
|
435336
435424
|
// node_modules/isbinaryfile/lib/index.js
|
|
435337
|
-
import { statSync as
|
|
435425
|
+
import { statSync as statSync7, openSync, readSync, closeSync } from "fs";
|
|
435338
435426
|
import { open, stat as stat4 } from "fs/promises";
|
|
435339
435427
|
|
|
435340
435428
|
class Reader {
|
|
@@ -435443,7 +435531,7 @@ async function isBinaryFile(file2, options) {
|
|
|
435443
435531
|
}
|
|
435444
435532
|
function isBinaryFileSync(file2, options) {
|
|
435445
435533
|
if (isString(file2)) {
|
|
435446
|
-
const fileStat =
|
|
435534
|
+
const fileStat = statSync7(file2);
|
|
435447
435535
|
isStatFile(fileStat);
|
|
435448
435536
|
const fileDescriptor = openSync(file2, "r");
|
|
435449
435537
|
const allocBuffer = Buffer.alloc(MAX_BYTES2 + UTF8_BOUNDARY_RESERVE);
|
|
@@ -435538,7 +435626,7 @@ var MAX_BYTES2 = 512, UTF8_BOUNDARY_RESERVE = 3;
|
|
|
435538
435626
|
var init_lib2 = () => {};
|
|
435539
435627
|
|
|
435540
435628
|
// src/core/tools/binary-detect.ts
|
|
435541
|
-
import { existsSync as existsSync41, statSync as
|
|
435629
|
+
import { existsSync as existsSync41, statSync as statSync8 } from "fs";
|
|
435542
435630
|
import { extname as extname3, resolve as resolve28 } from "path";
|
|
435543
435631
|
function binaryHint(ext) {
|
|
435544
435632
|
if (IMAGE_EXTS.has(ext))
|
|
@@ -435561,7 +435649,7 @@ function checkBinaryFile(filePath) {
|
|
|
435561
435649
|
try {
|
|
435562
435650
|
if (!existsSync41(filePath))
|
|
435563
435651
|
return null;
|
|
435564
|
-
const stat5 =
|
|
435652
|
+
const stat5 = statSync8(filePath);
|
|
435565
435653
|
if (!stat5.isFile())
|
|
435566
435654
|
return null;
|
|
435567
435655
|
if (!isBinaryFileSync(filePath))
|
|
@@ -437548,7 +437636,7 @@ import {
|
|
|
437548
437636
|
existsSync as existsSync42,
|
|
437549
437637
|
openSync as openSync2,
|
|
437550
437638
|
readFileSync as readFileSync22,
|
|
437551
|
-
statSync as
|
|
437639
|
+
statSync as statSync9,
|
|
437552
437640
|
unlinkSync as unlinkSync8,
|
|
437553
437641
|
writeSync
|
|
437554
437642
|
} from "fs";
|
|
@@ -437613,7 +437701,7 @@ function isRenderableImage(filePath) {
|
|
|
437613
437701
|
if (!IMAGE_EXTENSIONS2.has(ext))
|
|
437614
437702
|
return false;
|
|
437615
437703
|
try {
|
|
437616
|
-
const stat5 =
|
|
437704
|
+
const stat5 = statSync9(filePath);
|
|
437617
437705
|
return stat5.isFile() && stat5.size > 0 && stat5.size <= MAX_IMAGE_SIZE;
|
|
437618
437706
|
} catch {
|
|
437619
437707
|
return false;
|
|
@@ -438054,7 +438142,7 @@ import {
|
|
|
438054
438142
|
existsSync as existsSync43,
|
|
438055
438143
|
readdirSync as readdirSync10,
|
|
438056
438144
|
readFileSync as readFileSync23,
|
|
438057
|
-
statSync as
|
|
438145
|
+
statSync as statSync10,
|
|
438058
438146
|
unlinkSync as unlinkSync9,
|
|
438059
438147
|
writeFileSync as writeFileSync18
|
|
438060
438148
|
} from "fs";
|
|
@@ -438665,7 +438753,7 @@ async function showImage(args2, cwd2, toolCallId, signal) {
|
|
|
438665
438753
|
const filePath = resolve34(cwd2, args2.path);
|
|
438666
438754
|
let stat5;
|
|
438667
438755
|
try {
|
|
438668
|
-
stat5 =
|
|
438756
|
+
stat5 = statSync10(filePath);
|
|
438669
438757
|
} catch {
|
|
438670
438758
|
return { success: false, output: `File not found: ${args2.path}` };
|
|
438671
438759
|
}
|
|
@@ -438807,7 +438895,7 @@ async function restoreSessionImages(messages, cwd2) {
|
|
|
438807
438895
|
const filePath = resolve34(cwd2, path);
|
|
438808
438896
|
if (!existsSync43(filePath))
|
|
438809
438897
|
continue;
|
|
438810
|
-
const stat5 =
|
|
438898
|
+
const stat5 = statSync10(filePath);
|
|
438811
438899
|
if (!stat5.isFile() || stat5.size > MAX_IMAGE_SIZE2)
|
|
438812
438900
|
continue;
|
|
438813
438901
|
data = readFileSync23(filePath);
|
|
@@ -438897,7 +438985,7 @@ var init_show_image = __esm(() => {
|
|
|
438897
438985
|
});
|
|
438898
438986
|
|
|
438899
438987
|
// src/core/skills/manager.ts
|
|
438900
|
-
import { existsSync as existsSync44, readdirSync as readdirSync11, readFileSync as readFileSync24, realpathSync as realpathSync4, rmSync as rmSync6, statSync as
|
|
438988
|
+
import { existsSync as existsSync44, readdirSync as readdirSync11, readFileSync as readFileSync24, realpathSync as realpathSync4, rmSync as rmSync6, statSync as statSync11 } from "fs";
|
|
438901
438989
|
import { homedir as homedir13 } from "os";
|
|
438902
438990
|
import { dirname as dirname22, join as join47 } from "path";
|
|
438903
438991
|
async function searchSkills(query2) {
|
|
@@ -439011,7 +439099,7 @@ function scanSkillDir(dir, scope, byName, seenPaths) {
|
|
|
439011
439099
|
}
|
|
439012
439100
|
function isDirectorySafe(path) {
|
|
439013
439101
|
try {
|
|
439014
|
-
return
|
|
439102
|
+
return statSync11(path).isDirectory();
|
|
439015
439103
|
} catch {
|
|
439016
439104
|
return false;
|
|
439017
439105
|
}
|
|
@@ -470275,7 +470363,7 @@ var init_headless = __esm(() => {
|
|
|
470275
470363
|
});
|
|
470276
470364
|
|
|
470277
470365
|
// src/core/presets/registry.ts
|
|
470278
|
-
import { existsSync as existsSync54, mkdirSync as mkdirSync25, readFileSync as readFileSync29, statSync as
|
|
470366
|
+
import { existsSync as existsSync54, mkdirSync as mkdirSync25, readFileSync as readFileSync29, statSync as statSync12, writeFileSync as writeFileSync21 } from "fs";
|
|
470279
470367
|
import { join as join56 } from "path";
|
|
470280
470368
|
function getCacheDirInternal() {
|
|
470281
470369
|
return join56(configDir(), "presets");
|
|
@@ -470303,7 +470391,7 @@ function cacheAge() {
|
|
|
470303
470391
|
if (!existsSync54(file2))
|
|
470304
470392
|
return Number.POSITIVE_INFINITY;
|
|
470305
470393
|
try {
|
|
470306
|
-
return Date.now() -
|
|
470394
|
+
return Date.now() - statSync12(file2).mtimeMs;
|
|
470307
470395
|
} catch {
|
|
470308
470396
|
return Number.POSITIVE_INFINITY;
|
|
470309
470397
|
}
|
|
@@ -502394,7 +502482,7 @@ var init_hearth2 = __esm(() => {
|
|
|
502394
502482
|
|
|
502395
502483
|
// src/components/settings/HearthSettings.tsx
|
|
502396
502484
|
import { spawn as spawn22 } from "child_process";
|
|
502397
|
-
import { appendFileSync as appendFileSync5, existsSync as existsSync59, readFileSync as readFileSync33, statSync as
|
|
502485
|
+
import { appendFileSync as appendFileSync5, existsSync as existsSync59, readFileSync as readFileSync33, statSync as statSync13, watch as watch3 } from "fs";
|
|
502398
502486
|
import { tmpdir as tmpdir6 } from "os";
|
|
502399
502487
|
import { delimiter as delimiter2, dirname as dirname25, join as join64, resolve as resolve45 } from "path";
|
|
502400
502488
|
import { decodePasteBytes as decodePasteBytes6, TextAttributes as TextAttributes27 } from "@opentui/core";
|
|
@@ -505494,7 +505582,7 @@ function findSourceCheckout(startPath) {
|
|
|
505494
505582
|
}
|
|
505495
505583
|
function isExecutable(p3) {
|
|
505496
505584
|
try {
|
|
505497
|
-
const st4 =
|
|
505585
|
+
const st4 = statSync13(p3);
|
|
505498
505586
|
if (!st4.isFile())
|
|
505499
505587
|
return false;
|
|
505500
505588
|
if (IS_WIN)
|