@dreb/coding-agent 2.38.1 → 2.39.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 +0 -1
- package/dist/config.d.ts +3 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -11
- package/dist/config.js.map +1 -1
- package/dist/core/settings-manager.d.ts +0 -6
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +0 -16
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +0 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +1 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +0 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +0 -10
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +0 -7
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +2 -85
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/mach6.md +1 -1
- package/docs/settings.md +0 -1
- package/docs/version-history.md +9 -0
- package/package.json +3 -4
- package/CHANGELOG.md +0 -3371
- package/dist/utils/changelog.d.ts +0 -21
- package/dist/utils/changelog.d.ts.map +0 -1
- package/dist/utils/changelog.js +0 -87
- package/dist/utils/changelog.js.map +0 -1
|
@@ -27,7 +27,6 @@ import { TabTitleGenerator } from "../../core/tab-title.js";
|
|
|
27
27
|
import { resolveThinkingDisplay } from "../../core/thinking.js";
|
|
28
28
|
import { resolveToCwd } from "../../core/tools/path-utils.js";
|
|
29
29
|
import { abortBackgroundAgents, discoverAgentTypes, getRunningBackgroundAgents } from "../../core/tools/subagent.js";
|
|
30
|
-
import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
|
|
31
30
|
import { copyToClipboard } from "../../utils/clipboard.js";
|
|
32
31
|
import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
|
|
33
32
|
import { parseGitUrl } from "../../utils/git.js";
|
|
@@ -99,7 +98,6 @@ export class InteractiveMode {
|
|
|
99
98
|
currentWorkingMessage = this.defaultWorkingMessage;
|
|
100
99
|
lastSigintTime = 0;
|
|
101
100
|
lastEscapeTime = 0;
|
|
102
|
-
changelogMarkdown = undefined;
|
|
103
101
|
// Status line tracking (for mutating immediately-sequential status updates)
|
|
104
102
|
lastStatusSpacer = undefined;
|
|
105
103
|
lastStatusText = undefined;
|
|
@@ -146,7 +144,7 @@ export class InteractiveMode {
|
|
|
146
144
|
customFooter = undefined;
|
|
147
145
|
// Header container that holds the built-in or custom header
|
|
148
146
|
headerContainer;
|
|
149
|
-
// Built-in header (logo + keybinding hints
|
|
147
|
+
// Built-in header (logo + keybinding hints)
|
|
150
148
|
builtInHeader = undefined;
|
|
151
149
|
// Custom header from extension (undefined = use built-in header)
|
|
152
150
|
customHeader = undefined;
|
|
@@ -352,8 +350,6 @@ export class InteractiveMode {
|
|
|
352
350
|
async init() {
|
|
353
351
|
if (this.isInitialized)
|
|
354
352
|
return;
|
|
355
|
-
// Load changelog (only show new entries, skip for resumed sessions)
|
|
356
|
-
this.changelogMarkdown = this.getChangelogForDisplay();
|
|
357
353
|
// Ensure fd and rg are available (downloads if missing, adds to PATH via getBinDir)
|
|
358
354
|
// Both are needed: fd for autocomplete, rg for grep tool and bash commands
|
|
359
355
|
const [fdPath] = await Promise.all([ensureTool("fd"), ensureTool("rg")]);
|
|
@@ -396,36 +392,11 @@ export class InteractiveMode {
|
|
|
396
392
|
this.headerContainer.addChild(new Spacer(1));
|
|
397
393
|
this.headerContainer.addChild(this.builtInHeader);
|
|
398
394
|
this.headerContainer.addChild(new Spacer(1));
|
|
399
|
-
// Add changelog if provided
|
|
400
|
-
if (this.changelogMarkdown) {
|
|
401
|
-
this.headerContainer.addChild(new DynamicBorder());
|
|
402
|
-
if (this.settingsManager.getCollapseChangelog()) {
|
|
403
|
-
const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+)\]?/);
|
|
404
|
-
const latestVersion = versionMatch ? versionMatch[1] : this.version;
|
|
405
|
-
const condensedText = `Updated to v${latestVersion}. Use ${theme.bold("/changelog")} to view full changelog.`;
|
|
406
|
-
this.headerContainer.addChild(new Text(condensedText, 1, 0));
|
|
407
|
-
}
|
|
408
|
-
else {
|
|
409
|
-
this.headerContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
|
|
410
|
-
this.headerContainer.addChild(new Spacer(1));
|
|
411
|
-
this.headerContainer.addChild(new Markdown(this.changelogMarkdown.trim(), 1, 0, this.getMarkdownThemeWithSettings(), undefined, true));
|
|
412
|
-
this.headerContainer.addChild(new Spacer(1));
|
|
413
|
-
}
|
|
414
|
-
this.headerContainer.addChild(new DynamicBorder());
|
|
415
|
-
}
|
|
416
395
|
}
|
|
417
396
|
else {
|
|
418
397
|
// Minimal header when silenced
|
|
419
398
|
this.builtInHeader = new Text("", 0, 0);
|
|
420
399
|
this.headerContainer.addChild(this.builtInHeader);
|
|
421
|
-
if (this.changelogMarkdown) {
|
|
422
|
-
// Still show changelog notification even in silent mode
|
|
423
|
-
this.headerContainer.addChild(new Spacer(1));
|
|
424
|
-
const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+)\]?/);
|
|
425
|
-
const latestVersion = versionMatch ? versionMatch[1] : this.version;
|
|
426
|
-
const condensedText = `Updated to v${latestVersion}. Use ${theme.bold("/changelog")} to view full changelog.`;
|
|
427
|
-
this.headerContainer.addChild(new Text(condensedText, 1, 0));
|
|
428
|
-
}
|
|
429
400
|
}
|
|
430
401
|
this.ui.addChild(this.committedChatContainer);
|
|
431
402
|
this.ui.addChild(this.chatContainer);
|
|
@@ -680,32 +651,6 @@ export class InteractiveMode {
|
|
|
680
651
|
}
|
|
681
652
|
return undefined;
|
|
682
653
|
}
|
|
683
|
-
/**
|
|
684
|
-
* Get changelog entries to display on startup.
|
|
685
|
-
* Only shows new entries since last seen version, skips for resumed sessions.
|
|
686
|
-
*/
|
|
687
|
-
getChangelogForDisplay() {
|
|
688
|
-
// Skip changelog for resumed/continued sessions (already have messages)
|
|
689
|
-
if (this.session.state.messages.length > 0) {
|
|
690
|
-
return undefined;
|
|
691
|
-
}
|
|
692
|
-
const lastVersion = this.settingsManager.getLastChangelogVersion();
|
|
693
|
-
const changelogPath = getChangelogPath();
|
|
694
|
-
const entries = parseChangelog(changelogPath);
|
|
695
|
-
if (!lastVersion) {
|
|
696
|
-
// Fresh install - just record the version, don't show changelog
|
|
697
|
-
this.settingsManager.setLastChangelogVersion(VERSION);
|
|
698
|
-
return undefined;
|
|
699
|
-
}
|
|
700
|
-
else {
|
|
701
|
-
const newEntries = getNewEntries(entries, lastVersion);
|
|
702
|
-
if (newEntries.length > 0) {
|
|
703
|
-
this.settingsManager.setLastChangelogVersion(VERSION);
|
|
704
|
-
return newEntries.map((e) => e.content).join("\n\n");
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
return undefined;
|
|
708
|
-
}
|
|
709
654
|
getMarkdownThemeWithSettings() {
|
|
710
655
|
return {
|
|
711
656
|
...getMarkdownTheme(),
|
|
@@ -1912,11 +1857,6 @@ export class InteractiveMode {
|
|
|
1912
1857
|
this.editor.setText("");
|
|
1913
1858
|
return;
|
|
1914
1859
|
}
|
|
1915
|
-
if (text === "/changelog") {
|
|
1916
|
-
this.handleChangelogCommand();
|
|
1917
|
-
this.editor.setText("");
|
|
1918
|
-
return;
|
|
1919
|
-
}
|
|
1920
1860
|
if (text === "/hotkeys") {
|
|
1921
1861
|
this.handleHotkeysCommand();
|
|
1922
1862
|
this.editor.setText("");
|
|
@@ -2941,11 +2881,9 @@ export class InteractiveMode {
|
|
|
2941
2881
|
showNewVersionNotification(newVersion) {
|
|
2942
2882
|
const action = theme.fg("accent", getUpdateInstruction("@dreb/coding-agent"));
|
|
2943
2883
|
const updateInstruction = theme.fg("muted", `New version ${newVersion} is available. `) + action;
|
|
2944
|
-
const changelogUrl = theme.fg("accent", "https://github.com/aebrer/dreb/blob/master/packages/coding-agent/CHANGELOG.md");
|
|
2945
|
-
const changelogLine = theme.fg("muted", "Changelog: ") + changelogUrl;
|
|
2946
2884
|
this.chatContainer.addChild(new Spacer(1));
|
|
2947
2885
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2948
|
-
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}
|
|
2886
|
+
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}`, 1, 0, undefined, true));
|
|
2949
2887
|
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
2950
2888
|
this.ui.requestRender();
|
|
2951
2889
|
}
|
|
@@ -3189,7 +3127,6 @@ export class InteractiveMode {
|
|
|
3189
3127
|
hideThinkingBlock: this.hideThinkingBlock,
|
|
3190
3128
|
thinkingDisplaySupported,
|
|
3191
3129
|
thinkingDisplay,
|
|
3192
|
-
collapseChangelog: this.settingsManager.getCollapseChangelog(),
|
|
3193
3130
|
doubleEscapeAction: this.settingsManager.getDoubleEscapeAction(),
|
|
3194
3131
|
treeFilterMode: this.settingsManager.getTreeFilterMode(),
|
|
3195
3132
|
showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
|
|
@@ -3287,9 +3224,6 @@ export class InteractiveMode {
|
|
|
3287
3224
|
this.showWarning(`Thinking display for "${model.id}" was not changed: a project-level "modelSettings" override in .dreb/settings.json takes precedence (effective: "${effective}"). Remove or edit that override to use this toggle.`);
|
|
3288
3225
|
}
|
|
3289
3226
|
},
|
|
3290
|
-
onCollapseChangelogChange: (collapsed) => {
|
|
3291
|
-
this.settingsManager.setCollapseChangelog(collapsed);
|
|
3292
|
-
},
|
|
3293
3227
|
onQuietStartupChange: (enabled) => {
|
|
3294
3228
|
this.settingsManager.setQuietStartup(enabled);
|
|
3295
3229
|
},
|
|
@@ -4042,23 +3976,6 @@ export class InteractiveMode {
|
|
|
4042
3976
|
this.chatContainer.addChild(new Text(info, 1, 0, undefined, true));
|
|
4043
3977
|
this.ui.requestRender();
|
|
4044
3978
|
}
|
|
4045
|
-
handleChangelogCommand() {
|
|
4046
|
-
const changelogPath = getChangelogPath();
|
|
4047
|
-
const allEntries = parseChangelog(changelogPath);
|
|
4048
|
-
const changelogMarkdown = allEntries.length > 0
|
|
4049
|
-
? allEntries
|
|
4050
|
-
.reverse()
|
|
4051
|
-
.map((e) => e.content)
|
|
4052
|
-
.join("\n\n")
|
|
4053
|
-
: "No changelog entries found.";
|
|
4054
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4055
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
4056
|
-
this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
|
|
4057
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4058
|
-
this.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, this.getMarkdownThemeWithSettings(), undefined, true));
|
|
4059
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
4060
|
-
this.ui.requestRender();
|
|
4061
|
-
}
|
|
4062
3979
|
/**
|
|
4063
3980
|
* Capitalize keybinding for display (e.g., "ctrl+c" -> "Ctrl+C").
|
|
4064
3981
|
*/
|