@dreb/coding-agent 2.64.1 → 2.64.3
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/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +5 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/buddy/buddy-manager.d.ts +6 -2
- package/dist/core/buddy/buddy-manager.d.ts.map +1 -1
- package/dist/core/buddy/buddy-manager.js +10 -6
- package/dist/core/buddy/buddy-manager.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +2 -2
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +14 -10
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/dispatch-arbiter.d.ts +2 -0
- package/dist/core/dispatch-arbiter.d.ts.map +1 -1
- package/dist/core/dispatch-arbiter.js +2 -0
- package/dist/core/dispatch-arbiter.js.map +1 -1
- package/dist/core/tab-title.d.ts +2 -0
- package/dist/core/tab-title.d.ts.map +1 -1
- package/dist/core/tab-title.js +3 -1
- package/dist/core/tab-title.js.map +1 -1
- package/dist/core/tools/subagent.d.ts +14 -2
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +17 -9
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +3 -2
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -2
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/package.json +1 -1
|
@@ -787,7 +787,7 @@ function makeProbeSignal(parentSignal, timeoutMs) {
|
|
|
787
787
|
};
|
|
788
788
|
}
|
|
789
789
|
export async function probeModelAvailability(model, options = {}) {
|
|
790
|
-
const { signal, registry, timeoutMs = DEFAULT_MODEL_AVAILABILITY_PROBE_TIMEOUT_MS } = options;
|
|
790
|
+
const { signal, registry, timeoutMs = DEFAULT_MODEL_AVAILABILITY_PROBE_TIMEOUT_MS, sessionId } = options;
|
|
791
791
|
if (signal?.aborted)
|
|
792
792
|
return { ok: false, reason: "Aborted before spawn", aborted: true };
|
|
793
793
|
const probeSignal = makeProbeSignal(signal, timeoutMs);
|
|
@@ -815,6 +815,7 @@ export async function probeModelAvailability(model, options = {}) {
|
|
|
815
815
|
maxRetryDelayMs: 0,
|
|
816
816
|
reasoning,
|
|
817
817
|
signal: probeSignal.signal,
|
|
818
|
+
...(sessionId ? { sessionId } : {}),
|
|
818
819
|
}),
|
|
819
820
|
probeSignal.timeoutPromise,
|
|
820
821
|
]);
|
|
@@ -836,7 +837,9 @@ export async function probeModelAvailability(model, options = {}) {
|
|
|
836
837
|
}
|
|
837
838
|
export async function resolveModelForSubagentSpawn(models, parentProvider, registry, parentModel, signal,
|
|
838
839
|
/** Optional log prefix for warning messages (defaults to "[subagent]") */
|
|
839
|
-
logPrefix = "[subagent]"
|
|
840
|
+
logPrefix = "[subagent]",
|
|
841
|
+
/** Stable conversation ID forwarded to availability probes (issue 500). */
|
|
842
|
+
sessionId) {
|
|
840
843
|
if (signal?.aborted)
|
|
841
844
|
return { ok: false, error: "Aborted before spawn", skippedModels: [] };
|
|
842
845
|
// Runtime probing only applies to agent definition fallback lists. Single
|
|
@@ -861,7 +864,7 @@ logPrefix = "[subagent]") {
|
|
|
861
864
|
}
|
|
862
865
|
const modelObj = resolved.provider ? registry.find(resolved.provider, resolved.modelId) : undefined;
|
|
863
866
|
if (modelObj) {
|
|
864
|
-
const probe = await probeModelAvailability(modelObj, { signal, registry });
|
|
867
|
+
const probe = await probeModelAvailability(modelObj, { signal, registry, sessionId });
|
|
865
868
|
if (!probe.ok && probe.aborted) {
|
|
866
869
|
return { ok: false, error: "Aborted before spawn", skippedModels };
|
|
867
870
|
}
|
|
@@ -971,7 +974,9 @@ function clampCwd(defaultCwd, itemCwd) {
|
|
|
971
974
|
}
|
|
972
975
|
return { ok: true, cwd: resolved };
|
|
973
976
|
}
|
|
974
|
-
export async function executeSingle(agents, agentName, task, cwd, signal, onProgress, modelOverride, parentProvider, registry, sessionDir, parentModel, agentModels, parentSessionFile, onChildEvent, thinkingOverride, arbitration, onControlAvailable
|
|
977
|
+
export async function executeSingle(agents, agentName, task, cwd, signal, onProgress, modelOverride, parentProvider, registry, sessionDir, parentModel, agentModels, parentSessionFile, onChildEvent, thinkingOverride, arbitration, onControlAvailable,
|
|
978
|
+
/** Parent session UUID for spawn-time availability probes (issue 500). */
|
|
979
|
+
parentSessionId) {
|
|
975
980
|
let name = agentName || DEFAULT_AGENT;
|
|
976
981
|
let config = agents.get(name);
|
|
977
982
|
if (!config) {
|
|
@@ -1005,7 +1010,7 @@ export async function executeSingle(agents, agentName, task, cwd, signal, onProg
|
|
|
1005
1010
|
let skippedModels = [];
|
|
1006
1011
|
if (modelSpec) {
|
|
1007
1012
|
const parentFallback = configuredModelSpec ? parentModel : undefined;
|
|
1008
|
-
const resolved = await resolveModelForSubagentSpawn(modelSpec, parentProvider, registry, parentFallback, signal);
|
|
1013
|
+
const resolved = await resolveModelForSubagentSpawn(modelSpec, parentProvider, registry, parentFallback, signal, "[subagent]", parentSessionId);
|
|
1009
1014
|
skippedModels = resolved.skippedModels;
|
|
1010
1015
|
if (!resolved.ok) {
|
|
1011
1016
|
const skippedDetails = formatSkippedModelFailureDetails(skippedModels);
|
|
@@ -1213,7 +1218,9 @@ export async function executeSingle(agents, agentName, task, cwd, signal, onProg
|
|
|
1213
1218
|
}
|
|
1214
1219
|
return result;
|
|
1215
1220
|
}
|
|
1216
|
-
async function executeChain(agents, chain, defaultCwd, signal, onProgress, parentProvider, registry, sessionBaseDir, defaultAgent, defaultModel, defaultThinking, parentModel, getAgentModelsForAgentFn, parentSessionFile, onChildEvent, arbitration, onControlAvailable
|
|
1221
|
+
async function executeChain(agents, chain, defaultCwd, signal, onProgress, parentProvider, registry, sessionBaseDir, defaultAgent, defaultModel, defaultThinking, parentModel, getAgentModelsForAgentFn, parentSessionFile, onChildEvent, arbitration, onControlAvailable,
|
|
1222
|
+
/** Parent session UUID for spawn-time availability probes (issue 500). */
|
|
1223
|
+
parentSessionId) {
|
|
1217
1224
|
const results = [];
|
|
1218
1225
|
let previousOutput = "";
|
|
1219
1226
|
for (let i = 0; i < chain.length; i++) {
|
|
@@ -1250,7 +1257,7 @@ async function executeChain(agents, chain, defaultCwd, signal, onProgress, paren
|
|
|
1250
1257
|
const stepSessionDir = sessionBaseDir ? join(sessionBaseDir, `step-${i + 1}`) : undefined;
|
|
1251
1258
|
const stepAgentName = step.agent || defaultAgent || DEFAULT_AGENT;
|
|
1252
1259
|
const stepMach6Models = getAgentModelsForAgentFn?.(stepAgentName);
|
|
1253
|
-
const result = await executeSingle(agents, step.agent || defaultAgent, task, cwdResult.cwd, signal, onProgress, step.model || defaultModel, parentProvider, registry, stepSessionDir, parentModel, stepMach6Models, parentSessionFile, onChildEvent, resolveSubagentThinkingOverride(step.thinking, defaultThinking), arbitration ? { ...arbitration, step: i + 1 } : undefined, onControlAvailable);
|
|
1260
|
+
const result = await executeSingle(agents, step.agent || defaultAgent, task, cwdResult.cwd, signal, onProgress, step.model || defaultModel, parentProvider, registry, stepSessionDir, parentModel, stepMach6Models, parentSessionFile, onChildEvent, resolveSubagentThinkingOverride(step.thinking, defaultThinking), arbitration ? { ...arbitration, step: i + 1 } : undefined, onControlAvailable, parentSessionId);
|
|
1254
1261
|
results.push(result);
|
|
1255
1262
|
if (result.exitCode !== 0) {
|
|
1256
1263
|
break; // stop chain on error
|
|
@@ -1751,6 +1758,7 @@ export function createSubagentToolDefinition(cwd, options) {
|
|
|
1751
1758
|
const getParentProvider = options?.parentProvider ?? (() => undefined);
|
|
1752
1759
|
const getParentModel = options?.parentModel ?? (() => undefined);
|
|
1753
1760
|
const getParentSessionFile = options?.parentSessionFile ?? (() => undefined);
|
|
1761
|
+
const getParentSessionId = options?.parentSessionId ?? (() => undefined);
|
|
1754
1762
|
const modelRegistry = options?.modelRegistry;
|
|
1755
1763
|
const getAgentModelsForAgent = options?.getAgentModelsForAgent;
|
|
1756
1764
|
const arbitrate = options?.arbitrate;
|
|
@@ -1970,7 +1978,7 @@ export function createSubagentToolDefinition(cwd, options) {
|
|
|
1970
1978
|
defaultThinkingLevel: getDefaultThinkingLevel?.(),
|
|
1971
1979
|
getAgentModelsForAgent,
|
|
1972
1980
|
}
|
|
1973
|
-
: undefined, onControlAvailable));
|
|
1981
|
+
: undefined, onControlAvailable, getParentSessionId()));
|
|
1974
1982
|
};
|
|
1975
1983
|
if (params.task) {
|
|
1976
1984
|
// Single background task
|
|
@@ -2043,7 +2051,7 @@ export function createSubagentToolDefinition(cwd, options) {
|
|
|
2043
2051
|
defaultThinkingLevel: getDefaultThinkingLevel?.(),
|
|
2044
2052
|
getAgentModelsForAgent,
|
|
2045
2053
|
}
|
|
2046
|
-
: undefined, onControlAvailable);
|
|
2054
|
+
: undefined, onControlAvailable, getParentSessionId());
|
|
2047
2055
|
const resultText = results
|
|
2048
2056
|
.map((r, i) => `### Step ${i + 1}\n${formatSingleResult(r)}`)
|
|
2049
2057
|
.join("\n\n---\n\n");
|