@proxysoul/soulforge 2.16.3 → 2.16.4
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 +219 -40
- package/dist/workers/io.worker.js +42 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2748,8 +2748,8 @@ var init_store = __esm(() => {
|
|
|
2748
2748
|
init_esm();
|
|
2749
2749
|
init_tokens();
|
|
2750
2750
|
useThemeStore = create((set) => ({
|
|
2751
|
-
name: "
|
|
2752
|
-
tokens: DARK_THEME,
|
|
2751
|
+
name: "proxysoul-coffee",
|
|
2752
|
+
tokens: BUILTIN_THEMES["proxysoul-coffee"] ?? DARK_THEME,
|
|
2753
2753
|
setTheme: (name2, tokens) => set({ name: name2, tokens })
|
|
2754
2754
|
}));
|
|
2755
2755
|
});
|
|
@@ -2817,7 +2817,7 @@ function resolveTheme(name2) {
|
|
|
2817
2817
|
const overrides = normalizeKeys(raw);
|
|
2818
2818
|
return { ...base, ...overrides };
|
|
2819
2819
|
}
|
|
2820
|
-
return DARK_THEME;
|
|
2820
|
+
return BUILTIN_THEMES["proxysoul-coffee"] ?? DARK_THEME;
|
|
2821
2821
|
}
|
|
2822
2822
|
function blendBgOpacity(hex, opacity) {
|
|
2823
2823
|
if (opacity <= 0)
|
|
@@ -63440,7 +63440,7 @@ var package_default;
|
|
|
63440
63440
|
var init_package = __esm(() => {
|
|
63441
63441
|
package_default = {
|
|
63442
63442
|
name: "@proxysoul/soulforge",
|
|
63443
|
-
version: "2.16.
|
|
63443
|
+
version: "2.16.4",
|
|
63444
63444
|
description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
|
|
63445
63445
|
repository: {
|
|
63446
63446
|
type: "git",
|
|
@@ -98246,6 +98246,43 @@ ${normalize(details)}`;
|
|
|
98246
98246
|
summary: summaryById.get(s.id) ?? ""
|
|
98247
98247
|
}));
|
|
98248
98248
|
}
|
|
98249
|
+
findByTopics(topics, limit = 50) {
|
|
98250
|
+
if (topics.length === 0)
|
|
98251
|
+
return [];
|
|
98252
|
+
const placeholders = topics.map(() => "?").join(",");
|
|
98253
|
+
const rows = this.db.query(`SELECT DISTINCT m.id
|
|
98254
|
+
FROM memories m, json_each(m.topics) je
|
|
98255
|
+
WHERE je.value IN (${placeholders}) AND m.hidden = 0
|
|
98256
|
+
ORDER BY m.last_used_at DESC
|
|
98257
|
+
LIMIT ${limit}`).all(...topics);
|
|
98258
|
+
return rows.map((r) => r.id);
|
|
98259
|
+
}
|
|
98260
|
+
topRecallFor(opts, limit = 1) {
|
|
98261
|
+
const ids = new Set;
|
|
98262
|
+
if (opts.paths && opts.paths.length > 0) {
|
|
98263
|
+
for (const id of this.findByPaths(opts.paths, 50))
|
|
98264
|
+
ids.add(id);
|
|
98265
|
+
}
|
|
98266
|
+
if (opts.topics && opts.topics.length > 0) {
|
|
98267
|
+
for (const id of this.findByTopics(opts.topics, 50))
|
|
98268
|
+
ids.add(id);
|
|
98269
|
+
}
|
|
98270
|
+
if (opts.query && opts.query.trim().length > 0) {
|
|
98271
|
+
for (const hit of this.searchUnicode(opts.query, 25))
|
|
98272
|
+
ids.add(hit.id);
|
|
98273
|
+
for (const hit of this.searchTrigram(opts.query, 25))
|
|
98274
|
+
ids.add(hit.id);
|
|
98275
|
+
}
|
|
98276
|
+
if (ids.size === 0)
|
|
98277
|
+
return [];
|
|
98278
|
+
const placeholders = [...ids].map(() => "?").join(",");
|
|
98279
|
+
const rows = this.db.query(`SELECT id, summary, pinned
|
|
98280
|
+
FROM memories
|
|
98281
|
+
WHERE id IN (${placeholders}) AND hidden = 0
|
|
98282
|
+
ORDER BY pinned DESC, last_used_at DESC, use_count DESC
|
|
98283
|
+
LIMIT ${limit}`).all(...[...ids]);
|
|
98284
|
+
return rows.map((r) => ({ id: r.id, summary: r.summary, pinned: r.pinned === 1 }));
|
|
98285
|
+
}
|
|
98249
98286
|
}
|
|
98250
98287
|
function normalize(s) {
|
|
98251
98288
|
return s.replace(/\s+/g, " ").trim().toLowerCase();
|
|
@@ -361422,6 +361459,127 @@ function analyzeFile(content) {
|
|
|
361422
361459
|
};
|
|
361423
361460
|
}
|
|
361424
361461
|
|
|
361462
|
+
// src/core/memory/hints.ts
|
|
361463
|
+
function setMemoryHintProvider(manager) {
|
|
361464
|
+
_manager = manager;
|
|
361465
|
+
}
|
|
361466
|
+
function resetSurfacedHints() {
|
|
361467
|
+
_surfacedThisTurn.clear();
|
|
361468
|
+
}
|
|
361469
|
+
function reportHintError(scope, err2) {
|
|
361470
|
+
try {
|
|
361471
|
+
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
361472
|
+
logBackgroundError(`memory-hint:${scope}`, msg);
|
|
361473
|
+
} catch {}
|
|
361474
|
+
}
|
|
361475
|
+
function truncateSummary(s) {
|
|
361476
|
+
if (s.length <= SUMMARY_MAX)
|
|
361477
|
+
return s;
|
|
361478
|
+
return `${s.slice(0, SUMMARY_MAX - 1).trimEnd()}\u2026`;
|
|
361479
|
+
}
|
|
361480
|
+
function buildHintLine(top, total) {
|
|
361481
|
+
if (total <= 0)
|
|
361482
|
+
return "";
|
|
361483
|
+
if (!top)
|
|
361484
|
+
return total === 1 ? `
|
|
361485
|
+
\xB7 1 memory` : `
|
|
361486
|
+
\xB7 ${String(total)} memories`;
|
|
361487
|
+
if (_surfacedThisTurn.has(top.id)) {
|
|
361488
|
+
return total === 1 ? `
|
|
361489
|
+
\xB7 1 memory` : `
|
|
361490
|
+
\xB7 ${String(total)} memories`;
|
|
361491
|
+
}
|
|
361492
|
+
_surfacedThisTurn.add(top.id);
|
|
361493
|
+
const prefix = top.pinned ? "pinned: " : "";
|
|
361494
|
+
const summary = truncateSummary(top.summary);
|
|
361495
|
+
const rest = total - 1;
|
|
361496
|
+
const more = rest > 0 ? ` +${String(rest)}` : "";
|
|
361497
|
+
return `
|
|
361498
|
+
\xB7 ${prefix}"${summary}"${more}`;
|
|
361499
|
+
}
|
|
361500
|
+
function countMemoriesForPaths(paths) {
|
|
361501
|
+
if (!_manager || paths.length === 0)
|
|
361502
|
+
return 0;
|
|
361503
|
+
try {
|
|
361504
|
+
const projectDb = _manager.getDbForScope("project");
|
|
361505
|
+
const globalDb = _manager.getDbForScope("global");
|
|
361506
|
+
const ids = new Set;
|
|
361507
|
+
for (const id of projectDb.findByPaths(paths, 100))
|
|
361508
|
+
ids.add(id);
|
|
361509
|
+
for (const id of globalDb.findByPaths(paths, 100))
|
|
361510
|
+
ids.add(id);
|
|
361511
|
+
return ids.size;
|
|
361512
|
+
} catch (err2) {
|
|
361513
|
+
reportHintError("paths", err2);
|
|
361514
|
+
return 0;
|
|
361515
|
+
}
|
|
361516
|
+
}
|
|
361517
|
+
function formatMemoryHint(count) {
|
|
361518
|
+
if (count <= 0)
|
|
361519
|
+
return "";
|
|
361520
|
+
return count === 1 ? `
|
|
361521
|
+
\xB7 1 memory` : `
|
|
361522
|
+
\xB7 ${String(count)} memories`;
|
|
361523
|
+
}
|
|
361524
|
+
function memoryHintForPaths(paths) {
|
|
361525
|
+
return formatMemoryHint(countMemoriesForPaths(paths));
|
|
361526
|
+
}
|
|
361527
|
+
function memoryHintComposite(opts) {
|
|
361528
|
+
if (!_manager)
|
|
361529
|
+
return "";
|
|
361530
|
+
try {
|
|
361531
|
+
const projectDb = _manager.getDbForScope("project");
|
|
361532
|
+
const globalDb = _manager.getDbForScope("global");
|
|
361533
|
+
const ids = new Set;
|
|
361534
|
+
if (opts.paths && opts.paths.length > 0) {
|
|
361535
|
+
for (const id of projectDb.findByPaths(opts.paths, 100))
|
|
361536
|
+
ids.add(id);
|
|
361537
|
+
for (const id of globalDb.findByPaths(opts.paths, 100))
|
|
361538
|
+
ids.add(id);
|
|
361539
|
+
}
|
|
361540
|
+
if (opts.topics && opts.topics.length > 0) {
|
|
361541
|
+
for (const id of projectDb.findByTopics(opts.topics, 100))
|
|
361542
|
+
ids.add(id);
|
|
361543
|
+
for (const id of globalDb.findByTopics(opts.topics, 100))
|
|
361544
|
+
ids.add(id);
|
|
361545
|
+
}
|
|
361546
|
+
if (opts.query && opts.query.trim().length > 0) {
|
|
361547
|
+
for (const hit of projectDb.searchUnicode(opts.query, 25))
|
|
361548
|
+
ids.add(hit.id);
|
|
361549
|
+
for (const hit of projectDb.searchTrigram(opts.query, 25))
|
|
361550
|
+
ids.add(hit.id);
|
|
361551
|
+
for (const hit of globalDb.searchUnicode(opts.query, 25))
|
|
361552
|
+
ids.add(hit.id);
|
|
361553
|
+
for (const hit of globalDb.searchTrigram(opts.query, 25))
|
|
361554
|
+
ids.add(hit.id);
|
|
361555
|
+
}
|
|
361556
|
+
const total = ids.size;
|
|
361557
|
+
if (total === 0)
|
|
361558
|
+
return "";
|
|
361559
|
+
const projectTop = projectDb.topRecallFor(opts, 1);
|
|
361560
|
+
const globalTop = globalDb.topRecallFor(opts, 1);
|
|
361561
|
+
let top = null;
|
|
361562
|
+
const candidates = [...projectTop, ...globalTop];
|
|
361563
|
+
for (const c of candidates) {
|
|
361564
|
+
if (!top) {
|
|
361565
|
+
top = c;
|
|
361566
|
+
continue;
|
|
361567
|
+
}
|
|
361568
|
+
if (c.pinned && !top.pinned)
|
|
361569
|
+
top = c;
|
|
361570
|
+
}
|
|
361571
|
+
return buildHintLine(top, total);
|
|
361572
|
+
} catch (err2) {
|
|
361573
|
+
reportHintError("composite", err2);
|
|
361574
|
+
return "";
|
|
361575
|
+
}
|
|
361576
|
+
}
|
|
361577
|
+
var _manager = null, _surfacedThisTurn, SUMMARY_MAX = 60;
|
|
361578
|
+
var init_hints = __esm(() => {
|
|
361579
|
+
init_errors();
|
|
361580
|
+
_surfacedThisTurn = new Set;
|
|
361581
|
+
});
|
|
361582
|
+
|
|
361425
361583
|
// src/core/tools/file-events.ts
|
|
361426
361584
|
function onFileEdited(cb) {
|
|
361427
361585
|
editListeners.add(cb);
|
|
@@ -363089,6 +363247,7 @@ async function applyEdit(filePath, content, updated, editLine, label, tabId) {
|
|
|
363089
363247
|
if (nudge)
|
|
363090
363248
|
output += `
|
|
363091
363249
|
${nudge}`;
|
|
363250
|
+
output += memoryHintComposite({ paths: [toRelEditPath(filePath)] });
|
|
363092
363251
|
return { success: true, output };
|
|
363093
363252
|
}
|
|
363094
363253
|
function resolveLineRange(content, oldStr, lineStart) {
|
|
@@ -363102,9 +363261,14 @@ function resolveLineRange(content, oldStr, lineStart) {
|
|
|
363102
363261
|
return null;
|
|
363103
363262
|
return { start: start2, end };
|
|
363104
363263
|
}
|
|
363264
|
+
function toRelEditPath(abs) {
|
|
363265
|
+
const cwd = process.cwd();
|
|
363266
|
+
return abs.startsWith(`${cwd}/`) ? abs.slice(cwd.length + 1) : abs;
|
|
363267
|
+
}
|
|
363105
363268
|
var editFileTool;
|
|
363106
363269
|
var init_edit_file = __esm(() => {
|
|
363107
363270
|
init_instance();
|
|
363271
|
+
init_hints();
|
|
363108
363272
|
init_forbidden();
|
|
363109
363273
|
init_path_display();
|
|
363110
363274
|
init_edit_stack();
|
|
@@ -363144,6 +363308,7 @@ var init_edit_file = __esm(() => {
|
|
|
363144
363308
|
if (openedInEditor)
|
|
363145
363309
|
out2 += " \u2192 opened in editor";
|
|
363146
363310
|
out2 = await appendCloneHints(filePath, out2);
|
|
363311
|
+
out2 += memoryHintComposite({ paths: [toRelEditPath(filePath)] });
|
|
363147
363312
|
return { success: true, output: out2 };
|
|
363148
363313
|
}
|
|
363149
363314
|
try {
|
|
@@ -363269,6 +363434,7 @@ var SUPPORTED_EXTENSIONS, _backend = null, astEditTool;
|
|
|
363269
363434
|
var init_ast_edit = __esm(() => {
|
|
363270
363435
|
init_instance();
|
|
363271
363436
|
init_ts_morph();
|
|
363437
|
+
init_hints();
|
|
363272
363438
|
init_forbidden();
|
|
363273
363439
|
init_path_display();
|
|
363274
363440
|
init_edit_file();
|
|
@@ -363353,6 +363519,9 @@ var init_ast_edit = __esm(() => {
|
|
|
363353
363519
|
output2 += ` (${deltas2.join(", ")})`;
|
|
363354
363520
|
output2 = await appendAutoFormatResult(filePath, content, output2, args2.tabId);
|
|
363355
363521
|
output2 = await appendPostEditDiagnostics(diagsPromise2, filePath, output2);
|
|
363522
|
+
const cwdHint2 = process.cwd();
|
|
363523
|
+
const relHint2 = filePath.startsWith(`${cwdHint2}/`) ? filePath.slice(cwdHint2.length + 1) : filePath;
|
|
363524
|
+
output2 += memoryHintComposite({ paths: [relHint2] });
|
|
363356
363525
|
return { success: true, output: output2 };
|
|
363357
363526
|
} catch (err2) {
|
|
363358
363527
|
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
@@ -363417,6 +363586,9 @@ ${details.map((d) => ` \u2022 ${d}`).join(`
|
|
|
363417
363586
|
output = await appendPostEditDiagnostics(diagsPromise, filePath, output);
|
|
363418
363587
|
output = await appendCloneHints(filePath, output);
|
|
363419
363588
|
await consumeAstEditNudge(filePath);
|
|
363589
|
+
const cwdHint = process.cwd();
|
|
363590
|
+
const relHint = filePath.startsWith(`${cwdHint}/`) ? filePath.slice(cwdHint.length + 1) : filePath;
|
|
363591
|
+
output += memoryHintComposite({ paths: [relHint] });
|
|
363420
363592
|
return { success: true, output };
|
|
363421
363593
|
} catch (err2) {
|
|
363422
363594
|
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
@@ -378015,10 +378187,22 @@ async function execBlame(file2, startLine, endLine) {
|
|
|
378015
378187
|
error: result.ok ? undefined : "blame failed"
|
|
378016
378188
|
};
|
|
378017
378189
|
}
|
|
378190
|
+
function extractDiffPaths(diff, max = 10) {
|
|
378191
|
+
const paths = new Set;
|
|
378192
|
+
const re = /^diff --git a\/(\S+) b\/(\S+)/gm;
|
|
378193
|
+
for (const m of diff.matchAll(re)) {
|
|
378194
|
+
if (m[2])
|
|
378195
|
+
paths.add(m[2]);
|
|
378196
|
+
if (paths.size >= max)
|
|
378197
|
+
break;
|
|
378198
|
+
}
|
|
378199
|
+
return [...paths];
|
|
378200
|
+
}
|
|
378018
378201
|
var cwd, MAX_GIT_OUTPUT = 32000, gitTool, lastDiffOutput = null, lastDiffStaged;
|
|
378019
378202
|
var init_git = __esm(() => {
|
|
378020
378203
|
init_WorkspaceCoordinator();
|
|
378021
378204
|
init_status();
|
|
378205
|
+
init_hints();
|
|
378022
378206
|
init_tee();
|
|
378023
378207
|
cwd = process.cwd();
|
|
378024
378208
|
gitTool = {
|
|
@@ -378117,6 +378301,25 @@ ${args2.footer}`;
|
|
|
378117
378301
|
|
|
378118
378302
|
${result.output}` };
|
|
378119
378303
|
}
|
|
378304
|
+
if (result.success) {
|
|
378305
|
+
try {
|
|
378306
|
+
let hint = "";
|
|
378307
|
+
if (args2.action === "diff" || args2.action === "show") {
|
|
378308
|
+
const paths = extractDiffPaths(result.output);
|
|
378309
|
+
hint = memoryHintComposite({ paths, topics: ["git", args2.action] });
|
|
378310
|
+
} else if (args2.action === "status") {
|
|
378311
|
+
hint = memoryHintComposite({ topics: ["git", "commit", "status"] });
|
|
378312
|
+
} else if (args2.action === "commit") {
|
|
378313
|
+
hint = memoryHintComposite({
|
|
378314
|
+
topics: ["git", "commit", "conventional-commits"]
|
|
378315
|
+
});
|
|
378316
|
+
} else if (args2.action === "log" || args2.action === "blame" || args2.action === "push" || args2.action === "pull" || args2.action === "rebase" || args2.action === "cherry_pick" || args2.action === "reset") {
|
|
378317
|
+
hint = memoryHintComposite({ topics: ["git", args2.action] });
|
|
378318
|
+
}
|
|
378319
|
+
if (hint)
|
|
378320
|
+
result = { ...result, output: `${result.output}${hint}` };
|
|
378321
|
+
} catch {}
|
|
378322
|
+
}
|
|
378120
378323
|
if (args2.action === "commit" && result.success && tabId) {
|
|
378121
378324
|
const coordinator = getWorkspaceCoordinator();
|
|
378122
378325
|
const myClaims = coordinator.getClaimsForTab(tabId);
|
|
@@ -378966,7 +379169,7 @@ function createMemoryTool(deps) {
|
|
|
378966
379169
|
"supersede"
|
|
378967
379170
|
]),
|
|
378968
379171
|
scope: exports_external.enum(["global", "project", "both", "all"]).nullable().optional().describe("write/delete/pin: project|global. list/search: project|global|both|all"),
|
|
378969
|
-
summary: exports_external.string().nullable().optional().describe(`write: one-line headline (\u2264${String(
|
|
379172
|
+
summary: exports_external.string().nullable().optional().describe(`write: one-line headline (\u2264${String(SUMMARY_MAX2)}ch)`),
|
|
378970
379173
|
details: exports_external.string().nullable().optional().describe(`write: rationale / context (\u2264${String(DETAILS_MAX)}ch)`),
|
|
378971
379174
|
category: categorySchema.nullable().optional().describe("write/list: category"),
|
|
378972
379175
|
topics: exports_external.array(exports_external.string()).nullable().optional().describe(`write: free-form tags (\u2264${String(TOPICS_MAX)})`),
|
|
@@ -379033,7 +379236,7 @@ function createMemoryTool(deps) {
|
|
|
379033
379236
|
error: "bad_scope"
|
|
379034
379237
|
};
|
|
379035
379238
|
}
|
|
379036
|
-
const cleanSummary = summary.length >
|
|
379239
|
+
const cleanSummary = summary.length > SUMMARY_MAX2 ? `${summary.slice(0, SUMMARY_MAX2 - 3)}...` : summary;
|
|
379037
379240
|
const cleanDetails = details.length > DETAILS_MAX ? `${details.slice(0, DETAILS_MAX - 3)}...` : details;
|
|
379038
379241
|
const topics = normalizeTopics(args2.topics ?? []);
|
|
379039
379242
|
const filePaths = (args2.file_paths ?? []).slice(0, FILE_REFS_MAX);
|
|
@@ -379351,7 +379554,7 @@ function formatRecordFull(m) {
|
|
|
379351
379554
|
return lines.join(`
|
|
379352
379555
|
`);
|
|
379353
379556
|
}
|
|
379354
|
-
var
|
|
379557
|
+
var SUMMARY_MAX2 = 200, DETAILS_MAX = 2000, TOPICS_MAX = 8, TOPIC_LEN_MAX = 32, FILE_REFS_MAX = 16, categorySchema;
|
|
379355
379558
|
var init_memory = __esm(() => {
|
|
379356
379559
|
init_dist5();
|
|
379357
379560
|
init_zod();
|
|
@@ -380290,6 +380493,7 @@ import { resolve as resolve24 } from "path";
|
|
|
380290
380493
|
var multiEditTool;
|
|
380291
380494
|
var init_multi_edit = __esm(() => {
|
|
380292
380495
|
init_instance();
|
|
380496
|
+
init_hints();
|
|
380293
380497
|
init_forbidden();
|
|
380294
380498
|
init_path_display();
|
|
380295
380499
|
init_edit_file();
|
|
@@ -380451,6 +380655,9 @@ NO edits were applied (atomic rollback). Re-read the file and retry ALL edits.`,
|
|
|
380451
380655
|
if (nudge)
|
|
380452
380656
|
output += `
|
|
380453
380657
|
${nudge}`;
|
|
380658
|
+
const cwd2 = process.cwd();
|
|
380659
|
+
const rel = filePath.startsWith(`${cwd2}/`) ? filePath.slice(cwd2.length + 1) : filePath;
|
|
380660
|
+
output += memoryHintComposite({ paths: [rel] });
|
|
380454
380661
|
return { success: true, output };
|
|
380455
380662
|
} catch (err2) {
|
|
380456
380663
|
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
@@ -381227,38 +381434,6 @@ function isStatFile(stat5) {
|
|
|
381227
381434
|
var MAX_BYTES2 = 512, UTF8_BOUNDARY_RESERVE = 3;
|
|
381228
381435
|
var init_lib2 = () => {};
|
|
381229
381436
|
|
|
381230
|
-
// src/core/memory/hints.ts
|
|
381231
|
-
function setMemoryHintProvider(manager) {
|
|
381232
|
-
_manager = manager;
|
|
381233
|
-
}
|
|
381234
|
-
function countMemoriesForPaths(paths) {
|
|
381235
|
-
if (!_manager || paths.length === 0)
|
|
381236
|
-
return 0;
|
|
381237
|
-
try {
|
|
381238
|
-
const projectDb = _manager.getDbForScope("project");
|
|
381239
|
-
const globalDb = _manager.getDbForScope("global");
|
|
381240
|
-
const ids = new Set;
|
|
381241
|
-
for (const id of projectDb.findByPaths(paths, 100))
|
|
381242
|
-
ids.add(id);
|
|
381243
|
-
for (const id of globalDb.findByPaths(paths, 100))
|
|
381244
|
-
ids.add(id);
|
|
381245
|
-
return ids.size;
|
|
381246
|
-
} catch {
|
|
381247
|
-
return 0;
|
|
381248
|
-
}
|
|
381249
|
-
}
|
|
381250
|
-
function formatMemoryHint(count) {
|
|
381251
|
-
if (count <= 0)
|
|
381252
|
-
return "";
|
|
381253
|
-
return count === 1 ? `
|
|
381254
|
-
\xB7 1 memory` : `
|
|
381255
|
-
\xB7 ${String(count)} memories`;
|
|
381256
|
-
}
|
|
381257
|
-
function memoryHintForPaths(paths) {
|
|
381258
|
-
return formatMemoryHint(countMemoriesForPaths(paths));
|
|
381259
|
-
}
|
|
381260
|
-
var _manager = null;
|
|
381261
|
-
|
|
381262
381437
|
// src/core/tools/binary-detect.ts
|
|
381263
381438
|
import { existsSync as existsSync23, statSync as statSync5 } from "fs";
|
|
381264
381439
|
import { extname as extname4, resolve as resolve26 } from "path";
|
|
@@ -381636,6 +381811,7 @@ var init_read_file = __esm(() => {
|
|
|
381636
381811
|
init_lib2();
|
|
381637
381812
|
init_instance();
|
|
381638
381813
|
init_intelligence();
|
|
381814
|
+
init_hints();
|
|
381639
381815
|
init_forbidden();
|
|
381640
381816
|
init_io_client();
|
|
381641
381817
|
init_binary_detect();
|
|
@@ -397334,7 +397510,6 @@ function createForgeAgent({
|
|
|
397334
397510
|
activeDeferredTools
|
|
397335
397511
|
});
|
|
397336
397512
|
const STABLE_ORDER = [
|
|
397337
|
-
"set_lockin",
|
|
397338
397513
|
"soul_grep",
|
|
397339
397514
|
"soul_find",
|
|
397340
397515
|
"soul_analyze",
|
|
@@ -397361,6 +397536,7 @@ function createForgeAgent({
|
|
|
397361
397536
|
"plan",
|
|
397362
397537
|
"update_plan_step",
|
|
397363
397538
|
"ask_user",
|
|
397539
|
+
"set_lockin",
|
|
397364
397540
|
"editor",
|
|
397365
397541
|
"task_list",
|
|
397366
397542
|
"undo_edit",
|
|
@@ -412363,6 +412539,7 @@ var init_manager5 = __esm(() => {
|
|
|
412363
412539
|
init_instance2();
|
|
412364
412540
|
init_provider();
|
|
412365
412541
|
init_provider_options();
|
|
412542
|
+
init_hints();
|
|
412366
412543
|
init_manager2();
|
|
412367
412544
|
init_recall();
|
|
412368
412545
|
init_types4();
|
|
@@ -412768,6 +412945,7 @@ var init_manager5 = __esm(() => {
|
|
|
412768
412945
|
resetConversationTracking() {
|
|
412769
412946
|
this.editedFiles.clear();
|
|
412770
412947
|
this.surfacedMemoryIds.clear();
|
|
412948
|
+
resetSurfacedHints();
|
|
412771
412949
|
this.recallCache = null;
|
|
412772
412950
|
this.mentionedFiles.clear();
|
|
412773
412951
|
this.conversationTokens = 0;
|
|
@@ -412784,6 +412962,7 @@ var init_manager5 = __esm(() => {
|
|
|
412784
412962
|
}
|
|
412785
412963
|
resetForCompaction() {
|
|
412786
412964
|
this.recallCache = null;
|
|
412965
|
+
resetSurfacedHints();
|
|
412787
412966
|
if (this.repoMapCache)
|
|
412788
412967
|
this.repoMapCache.at = 0;
|
|
412789
412968
|
this.repoMapGeneration++;
|
|
@@ -43040,7 +43040,7 @@ var init_icons = __esm(() => {
|
|
|
43040
43040
|
});
|
|
43041
43041
|
|
|
43042
43042
|
// src/core/theme/tokens.ts
|
|
43043
|
-
var DARK_THEME, LIGHT_THEME, SOLARIZED_DARK, CATPPUCCIN, GRUVBOX_DARK, TOKYO_NIGHT, DRACULA, NORD, ONE_DARK, ROSE_PINE, KANAGAWA, CATPPUCCIN_LATTE, CATPPUCCIN_FRAPPE, CATPPUCCIN_MACCHIATO, GITHUB_DARK, GITHUB_LIGHT, EVERFOREST_DARK, AYU_DARK, NIGHTFOX, TOKYONIGHT_STORM, ONE_LIGHT, CYBERDREAM, OXOCARBON, SONOKAI, MOONFLY, MELANGE, SOLARIZED_OSAKA, BAMBOO, NORDIC, SYNTHWAVE, ICEBERG, EMBER, VESPER, PROXYSOUL_MAIN, PROXYSOUL_COFFEE, PROXYSOUL_WATER;
|
|
43043
|
+
var DARK_THEME, LIGHT_THEME, SOLARIZED_DARK, CATPPUCCIN, GRUVBOX_DARK, TOKYO_NIGHT, DRACULA, NORD, ONE_DARK, ROSE_PINE, KANAGAWA, CATPPUCCIN_LATTE, CATPPUCCIN_FRAPPE, CATPPUCCIN_MACCHIATO, GITHUB_DARK, GITHUB_LIGHT, EVERFOREST_DARK, AYU_DARK, NIGHTFOX, TOKYONIGHT_STORM, ONE_LIGHT, CYBERDREAM, OXOCARBON, SONOKAI, MOONFLY, MELANGE, SOLARIZED_OSAKA, BAMBOO, NORDIC, SYNTHWAVE, ICEBERG, EMBER, VESPER, PROXYSOUL_MAIN, PROXYSOUL_COFFEE, PROXYSOUL_WATER, BUILTIN_THEMES;
|
|
43044
43044
|
var init_tokens = __esm(() => {
|
|
43045
43045
|
DARK_THEME = {
|
|
43046
43046
|
brand: "#9B30FF",
|
|
@@ -44430,6 +44430,44 @@ var init_tokens = __esm(() => {
|
|
|
44430
44430
|
accentUser: "#009a8b",
|
|
44431
44431
|
accentAssistant: "#00a2ce"
|
|
44432
44432
|
};
|
|
44433
|
+
BUILTIN_THEMES = {
|
|
44434
|
+
dark: DARK_THEME,
|
|
44435
|
+
light: LIGHT_THEME,
|
|
44436
|
+
"solarized-dark": SOLARIZED_DARK,
|
|
44437
|
+
catppuccin: CATPPUCCIN,
|
|
44438
|
+
"gruvbox-dark": GRUVBOX_DARK,
|
|
44439
|
+
"tokyo-night": TOKYO_NIGHT,
|
|
44440
|
+
dracula: DRACULA,
|
|
44441
|
+
nord: NORD,
|
|
44442
|
+
"one-dark": ONE_DARK,
|
|
44443
|
+
"rose-pine": ROSE_PINE,
|
|
44444
|
+
kanagawa: KANAGAWA,
|
|
44445
|
+
"catppuccin-latte": CATPPUCCIN_LATTE,
|
|
44446
|
+
"catppuccin-frappe": CATPPUCCIN_FRAPPE,
|
|
44447
|
+
"catppuccin-macchiato": CATPPUCCIN_MACCHIATO,
|
|
44448
|
+
"github-dark": GITHUB_DARK,
|
|
44449
|
+
"github-light": GITHUB_LIGHT,
|
|
44450
|
+
"everforest-dark": EVERFOREST_DARK,
|
|
44451
|
+
"ayu-dark": AYU_DARK,
|
|
44452
|
+
nightfox: NIGHTFOX,
|
|
44453
|
+
"tokyonight-storm": TOKYONIGHT_STORM,
|
|
44454
|
+
"one-light": ONE_LIGHT,
|
|
44455
|
+
"proxysoul-main": PROXYSOUL_MAIN,
|
|
44456
|
+
"proxysoul-coffee": PROXYSOUL_COFFEE,
|
|
44457
|
+
"proxysoul-water": PROXYSOUL_WATER,
|
|
44458
|
+
cyberdream: CYBERDREAM,
|
|
44459
|
+
oxocarbon: OXOCARBON,
|
|
44460
|
+
sonokai: SONOKAI,
|
|
44461
|
+
moonfly: MOONFLY,
|
|
44462
|
+
melange: MELANGE,
|
|
44463
|
+
"solarized-osaka": SOLARIZED_OSAKA,
|
|
44464
|
+
bamboo: BAMBOO,
|
|
44465
|
+
nordic: NORDIC,
|
|
44466
|
+
synthwave: SYNTHWAVE,
|
|
44467
|
+
iceberg: ICEBERG,
|
|
44468
|
+
ember: EMBER,
|
|
44469
|
+
vesper: VESPER
|
|
44470
|
+
};
|
|
44433
44471
|
});
|
|
44434
44472
|
|
|
44435
44473
|
// src/core/theme/store.ts
|
|
@@ -44441,8 +44479,8 @@ var init_store = __esm(() => {
|
|
|
44441
44479
|
init_esm();
|
|
44442
44480
|
init_tokens();
|
|
44443
44481
|
useThemeStore = create((set2) => ({
|
|
44444
|
-
name: "
|
|
44445
|
-
tokens: DARK_THEME,
|
|
44482
|
+
name: "proxysoul-coffee",
|
|
44483
|
+
tokens: BUILTIN_THEMES["proxysoul-coffee"] ?? DARK_THEME,
|
|
44446
44484
|
setTheme: (name21, tokens) => set2({
|
|
44447
44485
|
name: name21,
|
|
44448
44486
|
tokens
|
|
@@ -50610,7 +50648,7 @@ var package_default;
|
|
|
50610
50648
|
var init_package = __esm(() => {
|
|
50611
50649
|
package_default = {
|
|
50612
50650
|
name: "@proxysoul/soulforge",
|
|
50613
|
-
version: "2.16.
|
|
50651
|
+
version: "2.16.4",
|
|
50614
50652
|
description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
|
|
50615
50653
|
repository: {
|
|
50616
50654
|
type: "git",
|