@dreb/coding-agent 2.32.1 → 2.34.0
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/README.md +4 -0
- package/dist/core/agent-session.d.ts +14 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +59 -8
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/settings-manager.d.ts +18 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +22 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +4 -4
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +2 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +2 -2
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +2 -2
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +2 -2
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +2 -2
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/search.d.ts.map +1 -1
- package/dist/core/tools/search.js +2 -2
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/tools/skill.d.ts.map +1 -1
- package/dist/core/tools/skill.js +2 -2
- package/dist/core/tools/skill.js.map +1 -1
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +2 -2
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/core/tools/suggest-next.d.ts.map +1 -1
- package/dist/core/tools/suggest-next.js +5 -5
- package/dist/core/tools/suggest-next.js.map +1 -1
- package/dist/core/tools/tasks.d.ts.map +1 -1
- package/dist/core/tools/tasks.js +2 -2
- package/dist/core/tools/tasks.js.map +1 -1
- package/dist/core/tools/wait.d.ts.map +1 -1
- package/dist/core/tools/wait.js +2 -2
- package/dist/core/tools/wait.js.map +1 -1
- package/dist/core/tools/web.d.ts.map +1 -1
- package/dist/core/tools/web.js +4 -4
- package/dist/core/tools/web.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +1 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +5 -10
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +4 -4
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +2 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +36 -29
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/settings.md +20 -0
- package/package.json +1 -1
|
@@ -407,7 +407,7 @@ export class InteractiveMode {
|
|
|
407
407
|
else {
|
|
408
408
|
this.headerContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
|
|
409
409
|
this.headerContainer.addChild(new Spacer(1));
|
|
410
|
-
this.headerContainer.addChild(new Markdown(this.changelogMarkdown.trim(), 1, 0, this.getMarkdownThemeWithSettings()));
|
|
410
|
+
this.headerContainer.addChild(new Markdown(this.changelogMarkdown.trim(), 1, 0, this.getMarkdownThemeWithSettings(), undefined, true));
|
|
411
411
|
this.headerContainer.addChild(new Spacer(1));
|
|
412
412
|
}
|
|
413
413
|
this.headerContainer.addChild(new DynamicBorder());
|
|
@@ -907,7 +907,7 @@ export class InteractiveMode {
|
|
|
907
907
|
const contextList = contextFiles
|
|
908
908
|
.map((f) => theme.fg("dim", ` ${this.formatDisplayPath(f.path)}`))
|
|
909
909
|
.join("\n");
|
|
910
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Context")}\n${contextList}`, 0, 0));
|
|
910
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Context")}\n${contextList}`, 0, 0, undefined, true));
|
|
911
911
|
this.chatContainer.addChild(new Spacer(1));
|
|
912
912
|
}
|
|
913
913
|
const memoryIndexes = this.session.resourceLoader.getMemoryIndexes();
|
|
@@ -920,7 +920,7 @@ export class InteractiveMode {
|
|
|
920
920
|
return theme.fg("dim", ` ${this.formatDisplayPath(m.dir)}/MEMORY.md${label}`);
|
|
921
921
|
})
|
|
922
922
|
.join("\n");
|
|
923
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Memory")}\n${memoryList}`, 0, 0));
|
|
923
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Memory")}\n${memoryList}`, 0, 0, undefined, true));
|
|
924
924
|
this.chatContainer.addChild(new Spacer(1));
|
|
925
925
|
}
|
|
926
926
|
const skills = skillsResult.skills;
|
|
@@ -930,7 +930,7 @@ export class InteractiveMode {
|
|
|
930
930
|
formatPath: (item) => this.formatDisplayPath(item.path),
|
|
931
931
|
formatPackagePath: (item) => this.getShortPath(item.path, item.sourceInfo),
|
|
932
932
|
});
|
|
933
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Skills")}\n${skillList}`, 0, 0));
|
|
933
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Skills")}\n${skillList}`, 0, 0, undefined, true));
|
|
934
934
|
this.chatContainer.addChild(new Spacer(1));
|
|
935
935
|
}
|
|
936
936
|
const templates = this.session.promptTemplates;
|
|
@@ -947,7 +947,7 @@ export class InteractiveMode {
|
|
|
947
947
|
return template ? `/${template.name}` : this.formatDisplayPath(item.path);
|
|
948
948
|
},
|
|
949
949
|
});
|
|
950
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Prompts")}\n${templateList}`, 0, 0));
|
|
950
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Prompts")}\n${templateList}`, 0, 0, undefined, true));
|
|
951
951
|
this.chatContainer.addChild(new Spacer(1));
|
|
952
952
|
}
|
|
953
953
|
if (extensions.length > 0) {
|
|
@@ -956,7 +956,7 @@ export class InteractiveMode {
|
|
|
956
956
|
formatPath: (item) => this.formatDisplayPath(item.path),
|
|
957
957
|
formatPackagePath: (item) => this.getShortPath(item.path, item.sourceInfo),
|
|
958
958
|
});
|
|
959
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Extensions", "mdHeading")}\n${extList}`, 0, 0));
|
|
959
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Extensions", "mdHeading")}\n${extList}`, 0, 0, undefined, true));
|
|
960
960
|
this.chatContainer.addChild(new Spacer(1));
|
|
961
961
|
}
|
|
962
962
|
// Show loaded themes (excluding built-in)
|
|
@@ -971,7 +971,7 @@ export class InteractiveMode {
|
|
|
971
971
|
formatPath: (item) => this.formatDisplayPath(item.path),
|
|
972
972
|
formatPackagePath: (item) => this.getShortPath(item.path, item.sourceInfo),
|
|
973
973
|
});
|
|
974
|
-
this.chatContainer.addChild(new Text(`${sectionHeader("Themes")}\n${themeList}`, 0, 0));
|
|
974
|
+
this.chatContainer.addChild(new Text(`${sectionHeader("Themes")}\n${themeList}`, 0, 0, undefined, true));
|
|
975
975
|
this.chatContainer.addChild(new Spacer(1));
|
|
976
976
|
}
|
|
977
977
|
}
|
|
@@ -979,13 +979,13 @@ export class InteractiveMode {
|
|
|
979
979
|
const skillDiagnostics = skillsResult.diagnostics;
|
|
980
980
|
if (skillDiagnostics.length > 0) {
|
|
981
981
|
const warningLines = this.formatDiagnostics(skillDiagnostics, sourceInfos);
|
|
982
|
-
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Skill conflicts]")}\n${warningLines}`, 0, 0));
|
|
982
|
+
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Skill conflicts]")}\n${warningLines}`, 0, 0, undefined, true));
|
|
983
983
|
this.chatContainer.addChild(new Spacer(1));
|
|
984
984
|
}
|
|
985
985
|
const promptDiagnostics = promptsResult.diagnostics;
|
|
986
986
|
if (promptDiagnostics.length > 0) {
|
|
987
987
|
const warningLines = this.formatDiagnostics(promptDiagnostics, sourceInfos);
|
|
988
|
-
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Prompt conflicts]")}\n${warningLines}`, 0, 0));
|
|
988
|
+
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Prompt conflicts]")}\n${warningLines}`, 0, 0, undefined, true));
|
|
989
989
|
this.chatContainer.addChild(new Spacer(1));
|
|
990
990
|
}
|
|
991
991
|
const extensionDiagnostics = [];
|
|
@@ -1002,13 +1002,13 @@ export class InteractiveMode {
|
|
|
1002
1002
|
extensionDiagnostics.push(...shortcutDiagnostics);
|
|
1003
1003
|
if (extensionDiagnostics.length > 0) {
|
|
1004
1004
|
const warningLines = this.formatDiagnostics(extensionDiagnostics, sourceInfos);
|
|
1005
|
-
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Extension issues]")}\n${warningLines}`, 0, 0));
|
|
1005
|
+
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Extension issues]")}\n${warningLines}`, 0, 0, undefined, true));
|
|
1006
1006
|
this.chatContainer.addChild(new Spacer(1));
|
|
1007
1007
|
}
|
|
1008
1008
|
const themeDiagnostics = themesResult.diagnostics;
|
|
1009
1009
|
if (themeDiagnostics.length > 0) {
|
|
1010
1010
|
const warningLines = this.formatDiagnostics(themeDiagnostics, sourceInfos);
|
|
1011
|
-
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Theme conflicts]")}\n${warningLines}`, 0, 0));
|
|
1011
|
+
this.chatContainer.addChild(new Text(`${theme.fg("warning", "[Theme conflicts]")}\n${warningLines}`, 0, 0, undefined, true));
|
|
1012
1012
|
this.chatContainer.addChild(new Spacer(1));
|
|
1013
1013
|
}
|
|
1014
1014
|
}
|
|
@@ -1740,7 +1740,7 @@ export class InteractiveMode {
|
|
|
1740
1740
|
*/
|
|
1741
1741
|
showExtensionError(extensionPath, error, stack) {
|
|
1742
1742
|
const errorMsg = `Extension "${extensionPath}" error: ${error}`;
|
|
1743
|
-
const errorText = new Text(theme.fg("error", errorMsg), 1, 0);
|
|
1743
|
+
const errorText = new Text(theme.fg("error", errorMsg), 1, 0, undefined, true);
|
|
1744
1744
|
this.chatContainer.addChild(errorText);
|
|
1745
1745
|
if (stack) {
|
|
1746
1746
|
// Show stack trace in dim color, indented
|
|
@@ -1750,7 +1750,7 @@ export class InteractiveMode {
|
|
|
1750
1750
|
.map((line) => theme.fg("dim", ` ${line.trim()}`))
|
|
1751
1751
|
.join("\n");
|
|
1752
1752
|
if (stackLines) {
|
|
1753
|
-
this.chatContainer.addChild(new Text(stackLines, 1, 0));
|
|
1753
|
+
this.chatContainer.addChild(new Text(stackLines, 1, 0, undefined, true));
|
|
1754
1754
|
}
|
|
1755
1755
|
}
|
|
1756
1756
|
this.ui.requestRender();
|
|
@@ -2268,7 +2268,7 @@ export class InteractiveMode {
|
|
|
2268
2268
|
else if (event.errorMessage) {
|
|
2269
2269
|
// Compaction failed (e.g., quota exceeded, API error)
|
|
2270
2270
|
this.chatContainer.addChild(new Spacer(1));
|
|
2271
|
-
this.chatContainer.addChild(new Text(theme.fg("error", event.errorMessage), 1, 0));
|
|
2271
|
+
this.chatContainer.addChild(new Text(theme.fg("error", event.errorMessage), 1, 0, undefined, true));
|
|
2272
2272
|
}
|
|
2273
2273
|
void this.flushCompactionQueue({ willRetry: event.willRetry });
|
|
2274
2274
|
this.ui.requestRender();
|
|
@@ -2344,6 +2344,13 @@ export class InteractiveMode {
|
|
|
2344
2344
|
this.updateBackgroundAgentStatus();
|
|
2345
2345
|
break;
|
|
2346
2346
|
}
|
|
2347
|
+
case "parent_paused_for_background_agents": {
|
|
2348
|
+
const count = event.runningAgentCount;
|
|
2349
|
+
const agentWord = count === 1 ? "agent" : "agents";
|
|
2350
|
+
this.showStatus(`Paused automatically — ${count} background ${agentWord} still working. dreb will resume when they report back, or send a message to continue. (configure via backgroundAgents settings)`);
|
|
2351
|
+
this.updateBackgroundAgentStatus();
|
|
2352
|
+
break;
|
|
2353
|
+
}
|
|
2347
2354
|
case "tasks_update": {
|
|
2348
2355
|
this.tasksPanel.update(event.tasks);
|
|
2349
2356
|
this.ui.requestRender();
|
|
@@ -2409,7 +2416,7 @@ export class InteractiveMode {
|
|
|
2409
2416
|
return;
|
|
2410
2417
|
}
|
|
2411
2418
|
const spacer = new Spacer(1);
|
|
2412
|
-
const text = new Text(theme.fg("dim", message), 1, 0);
|
|
2419
|
+
const text = new Text(theme.fg("dim", message), 1, 0, undefined, true);
|
|
2413
2420
|
this.chatContainer.addChild(spacer);
|
|
2414
2421
|
this.chatContainer.addChild(text);
|
|
2415
2422
|
this.lastStatusSpacer = spacer;
|
|
@@ -2907,12 +2914,12 @@ export class InteractiveMode {
|
|
|
2907
2914
|
}
|
|
2908
2915
|
showError(errorMessage) {
|
|
2909
2916
|
this.chatContainer.addChild(new Spacer(1));
|
|
2910
|
-
this.chatContainer.addChild(new Text(theme.fg("error", `Error: ${errorMessage}`), 1, 0));
|
|
2917
|
+
this.chatContainer.addChild(new Text(theme.fg("error", `Error: ${errorMessage}`), 1, 0, undefined, true));
|
|
2911
2918
|
this.ui.requestRender();
|
|
2912
2919
|
}
|
|
2913
2920
|
showWarning(warningMessage) {
|
|
2914
2921
|
this.chatContainer.addChild(new Spacer(1));
|
|
2915
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `Warning: ${warningMessage}`), 1, 0));
|
|
2922
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", `Warning: ${warningMessage}`), 1, 0, undefined, true));
|
|
2916
2923
|
this.ui.requestRender();
|
|
2917
2924
|
}
|
|
2918
2925
|
showNewVersionNotification(newVersion) {
|
|
@@ -2922,7 +2929,7 @@ export class InteractiveMode {
|
|
|
2922
2929
|
const changelogLine = theme.fg("muted", "Changelog: ") + changelogUrl;
|
|
2923
2930
|
this.chatContainer.addChild(new Spacer(1));
|
|
2924
2931
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2925
|
-
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}\n${changelogLine}`, 1, 0));
|
|
2932
|
+
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}\n${changelogLine}`, 1, 0, undefined, true));
|
|
2926
2933
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2927
2934
|
this.ui.requestRender();
|
|
2928
2935
|
}
|
|
@@ -2932,7 +2939,7 @@ export class InteractiveMode {
|
|
|
2932
2939
|
const packageLines = packages.map((pkg) => `- ${pkg}`).join("\n");
|
|
2933
2940
|
this.chatContainer.addChild(new Spacer(1));
|
|
2934
2941
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2935
|
-
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Package Updates Available"))}\n${updateInstruction}\n${theme.fg("muted", "Packages:")}\n${packageLines}`, 1, 0));
|
|
2942
|
+
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Package Updates Available"))}\n${updateInstruction}\n${theme.fg("muted", "Packages:")}\n${packageLines}`, 1, 0, undefined, true));
|
|
2936
2943
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2937
2944
|
this.ui.requestRender();
|
|
2938
2945
|
}
|
|
@@ -3972,7 +3979,7 @@ export class InteractiveMode {
|
|
|
3972
3979
|
const currentName = this.sessionManager.getSessionName();
|
|
3973
3980
|
if (currentName) {
|
|
3974
3981
|
this.chatContainer.addChild(new Spacer(1));
|
|
3975
|
-
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name: ${currentName}`), 1, 0));
|
|
3982
|
+
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name: ${currentName}`), 1, 0, undefined, true));
|
|
3976
3983
|
}
|
|
3977
3984
|
else {
|
|
3978
3985
|
this.showWarning("Usage: /name <name>");
|
|
@@ -3983,7 +3990,7 @@ export class InteractiveMode {
|
|
|
3983
3990
|
this.sessionManager.appendSessionInfo(name);
|
|
3984
3991
|
this.updateTerminalTitle();
|
|
3985
3992
|
this.chatContainer.addChild(new Spacer(1));
|
|
3986
|
-
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name set: ${name}`), 1, 0));
|
|
3993
|
+
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name set: ${name}`), 1, 0, undefined, true));
|
|
3987
3994
|
this.ui.requestRender();
|
|
3988
3995
|
}
|
|
3989
3996
|
handleSessionCommand() {
|
|
@@ -4016,7 +4023,7 @@ export class InteractiveMode {
|
|
|
4016
4023
|
info += `${theme.fg("dim", "Total:")} ${stats.cost.toFixed(4)}`;
|
|
4017
4024
|
}
|
|
4018
4025
|
this.chatContainer.addChild(new Spacer(1));
|
|
4019
|
-
this.chatContainer.addChild(new Text(info, 1, 0));
|
|
4026
|
+
this.chatContainer.addChild(new Text(info, 1, 0, undefined, true));
|
|
4020
4027
|
this.ui.requestRender();
|
|
4021
4028
|
}
|
|
4022
4029
|
handleChangelogCommand() {
|
|
@@ -4032,7 +4039,7 @@ export class InteractiveMode {
|
|
|
4032
4039
|
this.chatContainer.addChild(new DynamicBorder());
|
|
4033
4040
|
this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
|
|
4034
4041
|
this.chatContainer.addChild(new Spacer(1));
|
|
4035
|
-
this.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, this.getMarkdownThemeWithSettings()));
|
|
4042
|
+
this.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, this.getMarkdownThemeWithSettings(), undefined, true));
|
|
4036
4043
|
this.chatContainer.addChild(new DynamicBorder());
|
|
4037
4044
|
this.ui.requestRender();
|
|
4038
4045
|
}
|
|
@@ -4165,7 +4172,7 @@ ${cycleModelForward || cycleModelBackward ? `| \`${cycleModelForward}\` / \`${cy
|
|
|
4165
4172
|
this.chatContainer.addChild(new DynamicBorder());
|
|
4166
4173
|
this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "Keyboard Shortcuts")), 1, 0));
|
|
4167
4174
|
this.chatContainer.addChild(new Spacer(1));
|
|
4168
|
-
this.chatContainer.addChild(new Markdown(hotkeys.trim(), 1, 1, this.getMarkdownThemeWithSettings()));
|
|
4175
|
+
this.chatContainer.addChild(new Markdown(hotkeys.trim(), 1, 1, this.getMarkdownThemeWithSettings(), undefined, true));
|
|
4169
4176
|
this.chatContainer.addChild(new DynamicBorder());
|
|
4170
4177
|
this.ui.requestRender();
|
|
4171
4178
|
}
|
|
@@ -4213,7 +4220,7 @@ ${cycleModelForward || cycleModelBackward ? `| \`${cycleModelForward}\` / \`${cy
|
|
|
4213
4220
|
fs.mkdirSync(path.dirname(debugLogPath), { recursive: true });
|
|
4214
4221
|
fs.writeFileSync(debugLogPath, debugData);
|
|
4215
4222
|
this.chatContainer.addChild(new Spacer(1));
|
|
4216
|
-
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ Debug log written")}\n${theme.fg("muted", debugLogPath)}`, 1, 1));
|
|
4223
|
+
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ Debug log written")}\n${theme.fg("muted", debugLogPath)}`, 1, 1, undefined, true));
|
|
4217
4224
|
this.ui.requestRender();
|
|
4218
4225
|
}
|
|
4219
4226
|
handleArminSaysHi() {
|
|
@@ -4510,7 +4517,7 @@ ${cycleModelForward || cycleModelBackward ? `| \`${cycleModelForward}\` / \`${cy
|
|
|
4510
4517
|
case "off": {
|
|
4511
4518
|
this.removeBuddy();
|
|
4512
4519
|
this.chatContainer.addChild(new Spacer(1));
|
|
4513
|
-
this.chatContainer.addChild(new Text(theme.fg("muted", "Buddy hidden. Use /buddy to bring them back."), 1, 0));
|
|
4520
|
+
this.chatContainer.addChild(new Text(theme.fg("muted", "Buddy hidden. Use /buddy to bring them back."), 1, 0, undefined, true));
|
|
4514
4521
|
this.ui.requestRender();
|
|
4515
4522
|
break;
|
|
4516
4523
|
}
|
|
@@ -4525,7 +4532,7 @@ ${cycleModelForward || cycleModelBackward ? `| \`${cycleModelForward}\` / \`${cy
|
|
|
4525
4532
|
}
|
|
4526
4533
|
case "model": {
|
|
4527
4534
|
this.chatContainer.addChild(new Spacer(1));
|
|
4528
|
-
this.chatContainer.addChild(new Text(result.message, 1, 0));
|
|
4535
|
+
this.chatContainer.addChild(new Text(result.message, 1, 0, undefined, true));
|
|
4529
4536
|
this.ui.requestRender();
|
|
4530
4537
|
break;
|
|
4531
4538
|
}
|
|
@@ -4628,12 +4635,12 @@ ${cycleModelForward || cycleModelBackward ? `| \`${cycleModelForward}\` / \`${cy
|
|
|
4628
4635
|
async checkAndWarnOllama() {
|
|
4629
4636
|
const status = await checkOllama();
|
|
4630
4637
|
if (!status.available) {
|
|
4631
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", "⚠️ Buddy reactions require Ollama. Install it at https://ollama.com then pull a model."), 1, 0));
|
|
4638
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", "⚠️ Buddy reactions require Ollama. Install it at https://ollama.com then pull a model."), 1, 0, undefined, true));
|
|
4632
4639
|
return;
|
|
4633
4640
|
}
|
|
4634
4641
|
const nudge = this.buddyController.getModelNudge();
|
|
4635
4642
|
if (nudge) {
|
|
4636
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `⚠️ ${nudge}`), 1, 0));
|
|
4643
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", `⚠️ ${nudge}`), 1, 0, undefined, true));
|
|
4637
4644
|
}
|
|
4638
4645
|
}
|
|
4639
4646
|
async playHatchAnimation() {
|