release: v2.0.1 - Advanced Knowledge Mix & Architectural Intelligence
This commit is contained in:
@@ -66,13 +66,21 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
|
||||
if (!view) return true;
|
||||
try {
|
||||
const entry = getOrCreateAgentEntry(data.agentPath || '');
|
||||
const knowledgeMapHasEntry = entry.knowledgeFolders.length > 0 || (entry.skillFolders?.length ?? 0) > 0;
|
||||
const hasWeightOverride = typeof entry.secondBrainWeight === 'number';
|
||||
const knowledgeMapHasEntry = entry.knowledgeFolders.length > 0
|
||||
|| (entry.skillFolders?.length ?? 0) > 0
|
||||
|| !!(entry.model && entry.model.trim())
|
||||
|| hasWeightOverride;
|
||||
view.webview.postMessage({
|
||||
type: 'agentMapData',
|
||||
value: {
|
||||
name: entry.name,
|
||||
knowledgeFolders: entry.knowledgeFolders,
|
||||
skillFolders: entry.skillFolders || [],
|
||||
// Per-agent model override — empty string means "use current default model".
|
||||
model: entry.model || '',
|
||||
// null = no override (fall back to global slider); number = pinned 0–100.
|
||||
secondBrainWeight: hasWeightOverride ? entry.secondBrainWeight : null,
|
||||
exists: knowledgeMapHasEntry,
|
||||
},
|
||||
});
|
||||
@@ -80,7 +88,7 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
|
||||
logError('agent-map: load failed.', { error: e?.message ?? String(e) });
|
||||
view.webview.postMessage({
|
||||
type: 'agentMapData',
|
||||
value: { name: '', knowledgeFolders: [], skillFolders: [], exists: false },
|
||||
value: { name: '', knowledgeFolders: [], skillFolders: [], model: '', secondBrainWeight: null, exists: false },
|
||||
});
|
||||
}
|
||||
return true;
|
||||
@@ -96,10 +104,20 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
|
||||
const skillFolders = Array.isArray(data.skillFolders)
|
||||
? data.skillFolders.filter((f: unknown) => typeof f === 'string')
|
||||
: [];
|
||||
// Treat blank / "Use current model" as no override — drop the field entirely
|
||||
// so the JSON stays clean and the resolver falls back to the global default.
|
||||
const modelOverride = typeof data.model === 'string' ? data.model.trim() : '';
|
||||
// null / undefined / non-finite = "Use global setting" → drop the field.
|
||||
let weightOverride: number | undefined;
|
||||
if (typeof data.secondBrainWeight === 'number' && Number.isFinite(data.secondBrainWeight)) {
|
||||
weightOverride = Math.max(0, Math.min(100, Math.round(data.secondBrainWeight)));
|
||||
}
|
||||
const result = upsertAgentEntry({
|
||||
name,
|
||||
knowledgeFolders,
|
||||
skillFolders,
|
||||
model: modelOverride || undefined,
|
||||
secondBrainWeight: weightOverride,
|
||||
});
|
||||
view.webview.postMessage({
|
||||
type: 'agentMapSaved',
|
||||
|
||||
Reference in New Issue
Block a user