@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
@@ -35,7 +35,7 @@ import { isSensitivePath } from "./sensitive-paths.js";
35
35
  import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-manager.js";
36
36
  import { createSyntheticSourceInfo } from "./source-info.js";
37
37
  import { buildSystemPrompt } from "./system-prompt.js";
38
- import { createAllToolDefinitions, getRunningBackgroundAgents, } from "./tools/index.js";
38
+ import { createAllToolDefinitions, discoverAgentTypes, getRunningBackgroundAgents, } from "./tools/index.js";
39
39
  import { expandSkillContent } from "./tools/skill.js";
40
40
  import { createToolDefinitionFromAgentTool, wrapToolDefinition } from "./tools/tool-definition-wrapper.js";
41
41
  // ============================================================================
@@ -530,6 +530,27 @@ export class AgentSession {
530
530
  ];
531
531
  this.warnInSession(`Resource loading issues:\n${lines.join("\n")}`);
532
532
  }
533
+ /**
534
+ * Detect agentModels settings keys that reference agents which no longer exist
535
+ * (e.g. an upstream agent was renamed or removed) and surface a LOUD warning.
536
+ *
537
+ * Such keys are silently ignored during resolution — getAgentModelsForAgent
538
+ * never matches them — so without this check a stale override would vanish
539
+ * with no signal to the user. The agent-name keys must match exactly how
540
+ * discoverAgentTypes keys agents (case-sensitive, e.g. "Explore"), which is
541
+ * the same lookup getAgentModelsForAgent uses.
542
+ */
543
+ warnStaleAgentModelKeys() {
544
+ const configured = Object.keys(this.settingsManager?.getAgentModels() ?? {});
545
+ if (configured.length === 0)
546
+ return;
547
+ const discovered = discoverAgentTypes(this._cwd);
548
+ const staleKeys = configured.filter((key) => !discovered.has(key));
549
+ if (staleKeys.length === 0)
550
+ return;
551
+ this.warnInSession(`agentModels settings reference unknown agent(s): ${staleKeys.join(", ")}. ` +
552
+ "These overrides will be ignored. Check for typos or renamed/removed agents.");
553
+ }
533
554
  /**
534
555
  * Surface a warning in the session so both the human and the AI agent can see it.
535
556
  * During streaming: steers the warning as a user message into the conversation.
@@ -2295,6 +2316,7 @@ export class AgentSession {
2295
2316
  parentProvider: () => this.model?.provider,
2296
2317
  parentModel: () => this.model?.id,
2297
2318
  modelRegistry: this._modelRegistry,
2319
+ getAgentModelsForAgent: (name) => this.settingsManager?.getAgentModelsForAgent(name),
2298
2320
  onBackgroundStart: (agentId, agentType, taskSummary) => {
2299
2321
  this._emit({ type: "background_agent_start", agentId, agentType, taskSummary });
2300
2322
  },