@dreb/coding-agent 2.24.0 → 2.25.1

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.
Files changed (39) hide show
  1. package/README.md +2 -0
  2. package/dist/core/agent-session.d.ts +11 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +23 -1
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/sdk.d.ts.map +1 -1
  7. package/dist/core/sdk.js +4 -0
  8. package/dist/core/sdk.js.map +1 -1
  9. package/dist/core/settings-manager.d.ts +14 -0
  10. package/dist/core/settings-manager.d.ts.map +1 -1
  11. package/dist/core/settings-manager.js +41 -0
  12. package/dist/core/settings-manager.js.map +1 -1
  13. package/dist/core/tools/index.d.ts +1 -1
  14. package/dist/core/tools/index.d.ts.map +1 -1
  15. package/dist/core/tools/index.js +1 -1
  16. package/dist/core/tools/index.js.map +1 -1
  17. package/dist/core/tools/subagent.d.ts +4 -1
  18. package/dist/core/tools/subagent.d.ts.map +1 -1
  19. package/dist/core/tools/subagent.js +16 -11
  20. package/dist/core/tools/subagent.js.map +1 -1
  21. package/dist/core/tools/web.d.ts +10 -0
  22. package/dist/core/tools/web.d.ts.map +1 -1
  23. package/dist/core/tools/web.js +51 -1
  24. package/dist/core/tools/web.js.map +1 -1
  25. package/dist/modes/interactive/components/settings-selector.d.ts +36 -1
  26. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  27. package/dist/modes/interactive/components/settings-selector.js +195 -1
  28. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  29. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  30. package/dist/modes/interactive/interactive-mode.js +24 -1
  31. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  32. package/dist/modes/interactive/tab-title.d.ts +5 -0
  33. package/dist/modes/interactive/tab-title.d.ts.map +1 -1
  34. package/dist/modes/interactive/tab-title.js +6 -0
  35. package/dist/modes/interactive/tab-title.js.map +1 -1
  36. package/docs/agent-models.md +64 -0
  37. package/docs/mach6.md +2 -0
  38. package/docs/settings.md +18 -0
  39. package/package.json +1 -1
@@ -23,7 +23,7 @@ import { SessionManager } from "../../core/session-manager.js";
23
23
  import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
24
24
  import { restoreStderr, takeOverStderr } from "../../core/stderr-guard.js";
25
25
  import { resolveToCwd } from "../../core/tools/path-utils.js";
26
- import { abortBackgroundAgents, getRunningBackgroundAgents } from "../../core/tools/subagent.js";
26
+ import { abortBackgroundAgents, discoverAgentTypes, getRunningBackgroundAgents } from "../../core/tools/subagent.js";
27
27
  import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
28
28
  import { copyToClipboard } from "../../utils/clipboard.js";
29
29
  import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
@@ -487,6 +487,7 @@ export class InteractiveMode {
487
487
  getModel: () => this.session.model,
488
488
  getModelRegistry: () => this.session.modelRegistry,
489
489
  getProvider: () => this.session.model?.provider,
490
+ getAgentModelsOverride: (name) => this.settingsManager.getAgentModelsForAgent(name),
490
491
  });
491
492
  }
492
493
  /**
@@ -2972,6 +2973,11 @@ export class InteractiveMode {
2972
2973
  }
2973
2974
  showSettingsSelector() {
2974
2975
  this.showSelector((done) => {
2976
+ // Discover agent types for agent models section
2977
+ const agentTypes = discoverAgentTypes(process.cwd());
2978
+ const agentNames = Array.from(agentTypes.keys()).sort();
2979
+ const availableModels = this.session.modelRegistry.getAvailable();
2980
+ const availableModelIds = availableModels.map((m) => `${m.provider}/${m.id}`);
2975
2981
  const selector = new SettingsSelectorComponent({
2976
2982
  autoCompact: this.session.autoCompactionEnabled,
2977
2983
  showImages: this.settingsManager.getShowImages(),
@@ -2993,6 +2999,9 @@ export class InteractiveMode {
2993
2999
  editorPaddingX: this.settingsManager.getEditorPaddingX(),
2994
3000
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
2995
3001
  quietStartup: this.settingsManager.getQuietStartup(),
3002
+ agentModels: this.settingsManager.getAgentModels(),
3003
+ agentNames: agentNames,
3004
+ availableModelIds,
2996
3005
  }, {
2997
3006
  onAutoCompactChange: (enabled) => {
2998
3007
  this.session.setAutoCompactionEnabled(enabled);
@@ -3087,6 +3096,20 @@ export class InteractiveMode {
3087
3096
  this.editor.setAutocompleteMaxVisible(maxVisible);
3088
3097
  }
3089
3098
  },
3099
+ onAgentModelsChange: (agentName, models) => {
3100
+ const shadowedByProject = this.settingsManager.hasProjectAgentModelOverride(agentName);
3101
+ if (models.length > 0) {
3102
+ this.settingsManager.setAgentModelsForAgent(agentName, models);
3103
+ }
3104
+ else {
3105
+ this.settingsManager.removeAgentModelsForAgent(agentName);
3106
+ }
3107
+ if (shadowedByProject) {
3108
+ this.showWarning(`A project-level agentModels override for "${agentName}" (.dreb/settings.json) ` +
3109
+ "takes precedence — this change to global settings will have no effect. " +
3110
+ "Edit the project settings file to change it.");
3111
+ }
3112
+ },
3090
3113
  onCancel: () => {
3091
3114
  done();
3092
3115
  this.ui.requestRender();