@dreb/coding-agent 2.23.0 → 2.25.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/CHANGELOG.md +4 -0
- package/README.md +2 -0
- package/dist/core/agent-session.d.ts +11 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +35 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/types.d.ts +14 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +4 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +14 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +41 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/subagent.d.ts +5 -1
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +51 -13
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +36 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +195 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +51 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/tab-title.d.ts +5 -0
- package/dist/modes/interactive/tab-title.d.ts.map +1 -1
- package/dist/modes/interactive/tab-title.js +6 -0
- package/dist/modes/interactive/tab-title.js.map +1 -1
- package/docs/agent-models.md +64 -0
- package/docs/extensions.md +13 -0
- package/docs/mach6.md +2 -0
- package/docs/settings.md +18 -0
- 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
|
// ============================================================================
|
|
@@ -404,7 +404,7 @@ export class AgentSession {
|
|
|
404
404
|
if (cancelled) {
|
|
405
405
|
parts.push("This agent was cancelled by the user.");
|
|
406
406
|
}
|
|
407
|
-
if (!cancelled && result.exitCode !== 0) {
|
|
407
|
+
if (!cancelled && (result.exitCode !== 0 || result.errorMessage)) {
|
|
408
408
|
parts.push(`Error: ${result.errorMessage || "unknown"}`);
|
|
409
409
|
}
|
|
410
410
|
if (result.output) {
|
|
@@ -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.
|
|
@@ -756,6 +777,17 @@ export class AgentSession {
|
|
|
756
777
|
};
|
|
757
778
|
await this._extensionRunner.emit(extensionEvent);
|
|
758
779
|
}
|
|
780
|
+
else if (event.type === "length_retry") {
|
|
781
|
+
const extensionEvent = {
|
|
782
|
+
type: "length_retry",
|
|
783
|
+
attempt: event.attempt,
|
|
784
|
+
maxAttempts: event.maxAttempts,
|
|
785
|
+
previousMaxTokens: event.previousMaxTokens,
|
|
786
|
+
nextMaxTokens: event.nextMaxTokens,
|
|
787
|
+
discardedPartial: event.discardedPartial,
|
|
788
|
+
};
|
|
789
|
+
await this._extensionRunner.emit(extensionEvent);
|
|
790
|
+
}
|
|
759
791
|
else if (event.type === "tool_execution_start") {
|
|
760
792
|
const extensionEvent = {
|
|
761
793
|
type: "tool_execution_start",
|
|
@@ -2284,6 +2316,7 @@ export class AgentSession {
|
|
|
2284
2316
|
parentProvider: () => this.model?.provider,
|
|
2285
2317
|
parentModel: () => this.model?.id,
|
|
2286
2318
|
modelRegistry: this._modelRegistry,
|
|
2319
|
+
getAgentModelsForAgent: (name) => this.settingsManager?.getAgentModelsForAgent(name),
|
|
2287
2320
|
onBackgroundStart: (agentId, agentType, taskSummary) => {
|
|
2288
2321
|
this._emit({ type: "background_agent_start", agentId, agentType, taskSummary });
|
|
2289
2322
|
},
|