feat: combina il testo del campo editor con la trascrizione audio (F12)
Quando l'utente scrive testo nel campo input prima di avviare la registrazione,
il flusso /agy:record ora legge il testo via ctx.ui.getEditorText() e lo include
nel prompt di interpretazione inviato a Gemini, insieme alla trascrizione audio.
Il testo viene svuotato dopo (setEditorText('')) per evitare reinvii duplicati.
Nessun testo nel campo = comportamento invariato.
This commit is contained in:
+18
-1
@@ -1754,14 +1754,21 @@ export default function agyExtension(pi: ExtensionAPI) {
|
||||
}
|
||||
const transcript = tr.text;
|
||||
|
||||
// Legge il testo scritto a mano nel campo editor prima della registrazione
|
||||
// e lo combina con la trascrizione audio (comportamento "multimodale").
|
||||
const editorText = (ctx.ui.getEditorText?.() ?? "").trim();
|
||||
|
||||
// Interpreta con Gemini (testo) usando il contesto della conversazione
|
||||
ctx.ui.notify("Interpretazione con Gemini...", "info");
|
||||
const context = getConversationContext(ctx);
|
||||
const res = await executeAgy({
|
||||
prompt:
|
||||
`Ecco la trascrizione di un messaggio vocale dell'utente:\n\n${transcript}` +
|
||||
(editorText
|
||||
? `\n\nTesto scritto dall'utente nel campo di input (da combinare con la voce):\n${editorText}`
|
||||
: "") +
|
||||
`\n\nContesto della conversazione:\n${context || "(nessuno)"}` +
|
||||
`\n\nRestituisci la trascrizione corretta e una breve interpretazione/risposta.`,
|
||||
`\n\nRestituisci la trascrizione corretta e una breve interpretazione/risposta che integri sia la voce sia il testo scritto dell'utente.`,
|
||||
stateless: true,
|
||||
model: "Gemini 3.6 Flash (Medium)",
|
||||
yolo: true,
|
||||
@@ -1770,6 +1777,16 @@ export default function agyExtension(pi: ExtensionAPI) {
|
||||
|
||||
const finalText = res.text.trim() || transcript;
|
||||
|
||||
// Il testo dell'editor è stato consumato nel messaggio vocale: lo svuota
|
||||
// per evitare che venga reinviato due volte.
|
||||
if (editorText) {
|
||||
try {
|
||||
ctx.ui.setEditorText?.("");
|
||||
} catch {
|
||||
/* ignora */
|
||||
}
|
||||
}
|
||||
|
||||
// Inserisci il risultato come prompt su pi
|
||||
if (ctx.isIdle()) {
|
||||
pi.sendUserMessage(finalText);
|
||||
|
||||
Reference in New Issue
Block a user