@proxysoul/soulforge 2.15.6 → 2.15.7
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 +976 -439
- package/dist/workers/io.worker.js +78 -4
- package/package.json +1 -1
|
@@ -30964,6 +30964,50 @@ var init_errors4 = __esm(() => {
|
|
|
30964
30964
|
})));
|
|
30965
30965
|
});
|
|
30966
30966
|
|
|
30967
|
+
// src/stores/model-events.ts
|
|
30968
|
+
function recordModelCall(event) {
|
|
30969
|
+
try {
|
|
30970
|
+
const s = useModelEventsStore.getState();
|
|
30971
|
+
if (!s.enabled)
|
|
30972
|
+
return;
|
|
30973
|
+
s.push(event);
|
|
30974
|
+
} catch {}
|
|
30975
|
+
}
|
|
30976
|
+
var MAX_EVENTS = 500, useModelEventsStore;
|
|
30977
|
+
var init_model_events = __esm(() => {
|
|
30978
|
+
init_esm();
|
|
30979
|
+
init_middleware();
|
|
30980
|
+
useModelEventsStore = create()(subscribeWithSelector((set2, get) => ({
|
|
30981
|
+
enabled: false,
|
|
30982
|
+
events: [],
|
|
30983
|
+
setEnabled: (v) => set2(v ? {
|
|
30984
|
+
enabled: true
|
|
30985
|
+
} : {
|
|
30986
|
+
enabled: false,
|
|
30987
|
+
events: []
|
|
30988
|
+
}),
|
|
30989
|
+
push: (event) => {
|
|
30990
|
+
if (!get().enabled)
|
|
30991
|
+
return null;
|
|
30992
|
+
const id = event.id ?? crypto.randomUUID();
|
|
30993
|
+
const full = {
|
|
30994
|
+
...event,
|
|
30995
|
+
id
|
|
30996
|
+
};
|
|
30997
|
+
set2((s) => {
|
|
30998
|
+
const events = s.events.length >= MAX_EVENTS ? [...s.events.slice(-(MAX_EVENTS - 1)), full] : [...s.events, full];
|
|
30999
|
+
return {
|
|
31000
|
+
events
|
|
31001
|
+
};
|
|
31002
|
+
});
|
|
31003
|
+
return id;
|
|
31004
|
+
},
|
|
31005
|
+
clear: () => set2({
|
|
31006
|
+
events: []
|
|
31007
|
+
})
|
|
31008
|
+
})));
|
|
31009
|
+
});
|
|
31010
|
+
|
|
30967
31011
|
// src/utils/errors.ts
|
|
30968
31012
|
function toErrorMessage(err) {
|
|
30969
31013
|
return err instanceof Error ? err.message : String(err);
|
|
@@ -30990,7 +31034,8 @@ function keychainGet(key) {
|
|
|
30990
31034
|
if (process.platform === "darwin") {
|
|
30991
31035
|
const result = spawnSync("security", ["find-generic-password", "-a", KEYCHAIN_SERVICE, "-s", key, "-w"], {
|
|
30992
31036
|
timeout: 5000,
|
|
30993
|
-
encoding: "utf-8"
|
|
31037
|
+
encoding: "utf-8",
|
|
31038
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
30994
31039
|
});
|
|
30995
31040
|
if (result.status === 0 && result.stdout) {
|
|
30996
31041
|
return result.stdout.trim();
|
|
@@ -31000,7 +31045,8 @@ function keychainGet(key) {
|
|
|
31000
31045
|
if (process.platform === "linux") {
|
|
31001
31046
|
const result = spawnSync("secret-tool", ["lookup", "service", KEYCHAIN_SERVICE, "key", key], {
|
|
31002
31047
|
timeout: 5000,
|
|
31003
|
-
encoding: "utf-8"
|
|
31048
|
+
encoding: "utf-8",
|
|
31049
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
31004
31050
|
});
|
|
31005
31051
|
if (result.status === 0 && result.stdout) {
|
|
31006
31052
|
return result.stdout.trim();
|
|
@@ -31052,8 +31098,9 @@ function getProviderApiKey(envVar, priority = _defaultPriority) {
|
|
|
31052
31098
|
}
|
|
31053
31099
|
return getEnv() ?? getApp();
|
|
31054
31100
|
}
|
|
31055
|
-
var SECRETS_DIR, SECRETS_FILE, KEYCHAIN_SERVICE = "soulforge", _defaultPriority = "env", STATIC_SECRETS, ENV_MAP, ENV_TO_SECRET;
|
|
31101
|
+
var _keychainHasCache, SECRETS_DIR, SECRETS_FILE, KEYCHAIN_SERVICE = "soulforge", _defaultPriority = "env", STATIC_SECRETS, ENV_MAP, ENV_TO_SECRET;
|
|
31056
31102
|
var init_secrets = __esm(() => {
|
|
31103
|
+
_keychainHasCache = new Map;
|
|
31057
31104
|
SECRETS_DIR = join3(homedir2(), ".soulforge");
|
|
31058
31105
|
SECRETS_FILE = join3(SECRETS_DIR, "secrets.json");
|
|
31059
31106
|
STATIC_SECRETS = {
|
|
@@ -42556,6 +42603,7 @@ var init_ui = __esm(() => {
|
|
|
42556
42603
|
hearthSettings: false,
|
|
42557
42604
|
tabNamePopup: false,
|
|
42558
42605
|
memoryBrowser: false,
|
|
42606
|
+
modelEvents: false,
|
|
42559
42607
|
uiDemo: false
|
|
42560
42608
|
};
|
|
42561
42609
|
useUIStore = create()(subscribeWithSelector((set2) => ({
|
|
@@ -42563,6 +42611,7 @@ var init_ui = __esm(() => {
|
|
|
42563
42611
|
...INITIAL_MODALS
|
|
42564
42612
|
},
|
|
42565
42613
|
routerSlotPicking: null,
|
|
42614
|
+
fallbackForModel: null,
|
|
42566
42615
|
commandPickerConfig: null,
|
|
42567
42616
|
infoPopupConfig: null,
|
|
42568
42617
|
statusDashboardTab: "Context",
|
|
@@ -42599,6 +42648,9 @@ var init_ui = __esm(() => {
|
|
|
42599
42648
|
setRouterSlotPicking: (slot) => set2({
|
|
42600
42649
|
routerSlotPicking: slot
|
|
42601
42650
|
}),
|
|
42651
|
+
setFallbackForModel: (modelId) => set2({
|
|
42652
|
+
fallbackForModel: modelId
|
|
42653
|
+
}),
|
|
42602
42654
|
openCommandPicker: (config2) => set2(() => ({
|
|
42603
42655
|
commandPickerConfig: config2,
|
|
42604
42656
|
modals: {
|
|
@@ -50459,7 +50511,7 @@ var package_default;
|
|
|
50459
50511
|
var init_package = __esm(() => {
|
|
50460
50512
|
package_default = {
|
|
50461
50513
|
name: "@proxysoul/soulforge",
|
|
50462
|
-
version: "2.15.
|
|
50514
|
+
version: "2.15.7",
|
|
50463
50515
|
description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
|
|
50464
50516
|
repository: {
|
|
50465
50517
|
type: "git",
|
|
@@ -81683,6 +81735,8 @@ async function buildV2Summary(opts) {
|
|
|
81683
81735
|
}
|
|
81684
81736
|
let gapFill;
|
|
81685
81737
|
let llmUsage;
|
|
81738
|
+
const v2StartedAt = Date.now();
|
|
81739
|
+
const v2ModelId = getModelId(model);
|
|
81686
81740
|
try {
|
|
81687
81741
|
const genResult = await generateText({
|
|
81688
81742
|
model,
|
|
@@ -81714,8 +81768,27 @@ async function buildV2Summary(opts) {
|
|
|
81714
81768
|
cacheWriteTokens: details?.cacheWriteTokens ?? 0
|
|
81715
81769
|
};
|
|
81716
81770
|
}
|
|
81771
|
+
recordModelCall({
|
|
81772
|
+
modelId: v2ModelId,
|
|
81773
|
+
source: "compaction",
|
|
81774
|
+
startedAt: v2StartedAt,
|
|
81775
|
+
durationMs: Math.max(0, Date.now() - v2StartedAt),
|
|
81776
|
+
state: "ok",
|
|
81777
|
+
input: llmUsage?.inputTokens ?? 0,
|
|
81778
|
+
output: llmUsage?.outputTokens ?? 0,
|
|
81779
|
+
cacheRead: llmUsage?.cacheReadTokens ?? 0,
|
|
81780
|
+
cacheWrite: llmUsage?.cacheWriteTokens ?? 0
|
|
81781
|
+
});
|
|
81717
81782
|
} catch (err) {
|
|
81718
81783
|
logBackgroundError("compaction-summarize", err instanceof Error ? err.message : String(err));
|
|
81784
|
+
recordModelCall({
|
|
81785
|
+
modelId: v2ModelId,
|
|
81786
|
+
source: "compaction",
|
|
81787
|
+
startedAt: v2StartedAt,
|
|
81788
|
+
durationMs: Math.max(0, Date.now() - v2StartedAt),
|
|
81789
|
+
state: "error",
|
|
81790
|
+
errorMessage: (err instanceof Error ? err.message : String(err)).slice(0, 500)
|
|
81791
|
+
});
|
|
81719
81792
|
return {
|
|
81720
81793
|
summary: structuredState
|
|
81721
81794
|
};
|
|
@@ -81780,6 +81853,7 @@ function messageTextFull(msg) {
|
|
|
81780
81853
|
var init_summarize = __esm(() => {
|
|
81781
81854
|
init_dist5();
|
|
81782
81855
|
init_errors4();
|
|
81856
|
+
init_model_events();
|
|
81783
81857
|
init_provider_options();
|
|
81784
81858
|
});
|
|
81785
81859
|
|