fix: auto-approve phase 3 rewrite

This commit is contained in:
User
2026-07-14 13:51:39 +02:00
parent c7d586aaf7
commit 1b1554b353
5 changed files with 169 additions and 13 deletions
+21 -4
View File
@@ -1266,10 +1266,11 @@ export default function (pi) {
pi.registerTool({
name: "rewrite_question",
label: "Riscrittura domanda (deterministica)",
label: "Riscrittura domanda e chiusura F3 (deterministica)",
description:
"Scrive deterministicamente question.md via tht session set-question (evita il tool " +
"di edit unreliable). assumptions puo' essere array o stringa JSON.",
"In Fase 3 scrive deterministicamente question.md, registra question_rewritten e " +
"chiude la fase senza chiedere conferma al reviewer. assumptions puo' essere array " +
"o stringa JSON.",
parameters: Type.Object({
session: Type.String(),
question: Type.String(),
@@ -1278,6 +1279,10 @@ export default function (pi) {
async execute(_id, params, _signal, _onUpdate, ctx) {
lockActive = true;
const { session, question, assumptions } = params;
const curNum = currentPhase(ctx, session);
if (curNum !== 3) {
return textResult("La riscrittura automatica e' disponibile solo in Fase 3.");
}
let assumps = assumptions;
if (typeof assumps === "string") {
try {
@@ -1295,7 +1300,19 @@ export default function (pi) {
}
const err = relayIfThtFails(ctx, args, "");
if (err) return err;
return textResult(`Domanda riscritta per la sessione ${session}.`);
const decisionErr = relayIfThtFails(
ctx,
decisionAddArgs(session, {
type: "question_rewritten",
subject: "domanda",
detail: question,
}),
"",
);
if (decisionErr) return decisionErr;
const advanced = advancePhaseAndFinalize(ctx, session, curNum);
if (advanced.err) return advanced.err;
return textResult(`Domanda riscritta e Fase 3 completata (sessione ${session}).`);
},
});