Updates
Rolling release / release (push) Successful in 7m29s

This commit is contained in:
2026-09-12 16:46:49 -04:00
parent 04a9306594
commit 4383763cb5
20 changed files with 490 additions and 26 deletions
+19 -2
View File
@@ -4,6 +4,7 @@
const engine = require('../lib/qvac.js');
const catalog = require('../lib/catalog.js');
const toolParse = require('../lib/tool-parse.js');
const sessions = require('./sessions.js');
const tools = require('./tools.js');
const sandbox = require('./sandbox.js');
@@ -232,7 +233,7 @@ function resolvePlanDecision(sessionId, decision) {
function buildToolDefs(session, payload, tracker) {
const hostWorkspace = session.hostWorkspace !== false;
return tools
const defs = tools
.defs({
planMode: planMode.isActive(tracker),
webFetch: payload && payload.webFetch,
@@ -240,6 +241,7 @@ function buildToolDefs(session, payload, tracker) {
builtinTools: session.builtinTools,
})
.concat(customTools.defs(session.id));
return catalog.filterToolsForModel(defs, session.model);
}
function refreshSystem(session, sys) {
@@ -394,7 +396,7 @@ async function runTurn(ctx) {
if (session.goal && goalMod.isActive(session.goal)) {
extraSys = [extraSys, goalMod.plannerAddendum(session.goal)].filter(Boolean).join('\n\n');
}
const sys = prompts.assemble({
const sysBase = prompts.assemble({
cwd: hostWorkspace ? cwd : session.workspace || cwd,
hostWorkspace,
extra: extraSys,
@@ -410,6 +412,9 @@ async function runTurn(ctx) {
}
: null,
});
const sys = catalog.isCompactToolModel(session.model)
? sysBase + '\n\n' + toolParse.FORMAT_REMINDER
: sysBase;
const sidecars = [];
if (hostWorkspace) {
if (!voice) {
@@ -737,6 +742,18 @@ async function runTurn(ctx) {
);
let calls = (result && result.toolCalls) || [];
if (!calls.length && result) {
const recovered = toolParse.recover({
text: result.text,
thinking: result.thinking,
tools: toolDefs,
existing: calls,
});
calls = recovered.calls;
if (recovered.text != null) result.text = recovered.text;
} else if (result && result.text) {
result.text = toolParse.stripToolMarkup(result.text);
}
if (budget.answerOnly) calls = [];
if ((result && result.text) || calls.length) {
if (result.text) lastText = result.text;
+11 -2
View File
@@ -52,12 +52,21 @@ function loadWorkspaceRules(fsRead, cwd) {
return loadWorkspaceFiles(fsRead, cwd, ['AGENTS.md', '.agent-harness/AGENTS.md']);
}
function voiceWorkspaceFiles(extra) {
const acting = /\n## Acting\n/.test(String(extra || ''));
return VOICE_WORKSPACE_FILES.filter((name) => {
if (name === 'PERSONA.md') return false;
if (acting && (name === 'SOUL.md' || name === 'IDENTITY.md')) return false;
return true;
});
}
function assemble({ cwd, extra, fsRead, hostWorkspace, personality }) {
if (personality === 'voice') {
const parts = [];
if (extra) parts.push(String(extra));
if (cwd) parts.push('Current workspace: ' + cwd);
const files = fsRead ? loadWorkspaceFiles(fsRead, cwd, VOICE_WORKSPACE_FILES) : '';
const files = fsRead ? loadWorkspaceFiles(fsRead, cwd, voiceWorkspaceFiles(extra)) : '';
if (files) parts.push(files);
return parts.join('\n\n');
}
@@ -69,4 +78,4 @@ function assemble({ cwd, extra, fsRead, hostWorkspace, personality }) {
return parts.join('\n\n');
}
module.exports = { DEFAULT_SYSTEM, PAGE_SYSTEM, assemble, loadWorkspaceRules, VOICE_WORKSPACE_FILES };
module.exports = { DEFAULT_SYSTEM, PAGE_SYSTEM, assemble, loadWorkspaceRules, VOICE_WORKSPACE_FILES, voiceWorkspaceFiles };