Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions app/src/lib/i18n/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4649,6 +4649,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'نافذة الذاكرة',
'memoryData.windowUpdated': 'تم تحديث نافذة الذاكرة',
'memoryData.windowUpdatedMsg': 'تم الضبط على {window}.',

// Run queue
'runQueue.mode.interrupt': 'مقاطعة',
'runQueue.mode.steer': 'توجيه',
'runQueue.mode.followup': 'متابعة',
'runQueue.mode.collect': 'إضافة سياق',
'runQueue.queued': 'تم وضع الرسالة في الانتظار',
'runQueue.steerHint': 'وجّه الدور الحالي',
'runQueue.followupHint': 'أضف إلى قائمة الانتظار كمتابعة',
'runQueue.collectHint': 'إضافة كسياق إضافي',
'runQueue.status': '{total} في الانتظار',
'runQueue.cleared': 'تم مسح قائمة الانتظار',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/bn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4739,6 +4739,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'মেমোরি উইন্ডো',
'memoryData.windowUpdated': 'মেমোরি উইন্ডো আপডেট হয়েছে',
'memoryData.windowUpdatedMsg': '{window}-এ সেট করা হয়েছে।',

// Run queue
'runQueue.mode.interrupt': 'বাধা দিন',
'runQueue.mode.steer': 'পরিচালনা করুন',
'runQueue.mode.followup': 'ফলো-আপ',
'runQueue.mode.collect': 'প্রসঙ্গ যোগ করুন',
'runQueue.queued': 'বার্তা সারিবদ্ধ হয়েছে',
'runQueue.steerHint': 'বর্তমান পর্যায় পরিচালনা করুন',
'runQueue.followupHint': 'ফলো-আপ হিসেবে সারিতে যোগ করুন',
'runQueue.collectHint': 'অতিরিক্ত প্রসঙ্গ হিসেবে যোগ করুন',
'runQueue.status': '{total}টি সারিবদ্ধ',
'runQueue.cleared': 'সারি পরিষ্কার করা হয়েছে',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4874,6 +4874,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Speicherfenster',
'memoryData.windowUpdated': 'Speicherfenster aktualisiert',
'memoryData.windowUpdatedMsg': 'Auf {window} gesetzt.',

// Run queue
'runQueue.mode.interrupt': 'Unterbrechen',
'runQueue.mode.steer': 'Steuern',
'runQueue.mode.followup': 'Nachfassen',
'runQueue.mode.collect': 'Kontext hinzufügen',
'runQueue.queued': 'Nachricht in Warteschlange',
'runQueue.steerHint': 'Aktuellen Durchlauf steuern',
'runQueue.followupHint': 'Als Nachfassen einreihen',
'runQueue.collectHint': 'Als zusätzlichen Kontext hinzufügen',
'runQueue.status': '{total} in der Warteschlange',
'runQueue.cleared': 'Warteschlange geleert',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4985,6 +4985,18 @@ const en: TranslationMap = {
// Monthly cost badge
'monthlyCost.badge': '${amount} this month',
'monthlyCost.noData': 'No syncs this month',

// Run queue
'runQueue.mode.interrupt': 'Interrupt',
'runQueue.mode.steer': 'Steer',
'runQueue.mode.followup': 'Follow-up',
'runQueue.mode.collect': 'Add context',
'runQueue.queued': 'Message queued',
'runQueue.steerHint': 'Steer the current turn',
'runQueue.followupHint': 'Queue as follow-up',
'runQueue.collectHint': 'Add as extra context',
'runQueue.status': '{total} queued',
'runQueue.cleared': 'Queue cleared',
};

export default en;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4840,6 +4840,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Ventana de memoria',
'memoryData.windowUpdated': 'Ventana de memoria actualizada',
'memoryData.windowUpdatedMsg': 'Establecida en {window}.',

// Run queue
'runQueue.mode.interrupt': 'Interrumpir',
'runQueue.mode.steer': 'Dirigir',
'runQueue.mode.followup': 'Seguimiento',
'runQueue.mode.collect': 'Añadir contexto',
'runQueue.queued': 'Mensaje en cola',
'runQueue.steerHint': 'Dirigir el turno actual',
'runQueue.followupHint': 'Poner en cola como seguimiento',
'runQueue.collectHint': 'Añadir como contexto adicional',
'runQueue.status': '{total} en cola',
'runQueue.cleared': 'Cola vaciada',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4856,6 +4856,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Fenêtre de mémoire',
'memoryData.windowUpdated': 'Fenêtre de mémoire mise à jour',
'memoryData.windowUpdatedMsg': 'Définie sur {window}.',

// Run queue
'runQueue.mode.interrupt': 'Interrompre',
'runQueue.mode.steer': 'Orienter',
'runQueue.mode.followup': 'Suivi',
'runQueue.mode.collect': 'Ajouter du contexte',
'runQueue.queued': "Message en file d'attente",
'runQueue.steerHint': 'Orienter le tour en cours',
'runQueue.followupHint': "Mettre en file d'attente comme suivi",
'runQueue.collectHint': 'Ajouter comme contexte supplémentaire',
'runQueue.status': '{total} en attente',
'runQueue.cleared': "File d'attente vidée",
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/hi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4746,6 +4746,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'मेमोरी विंडो',
'memoryData.windowUpdated': 'मेमोरी विंडो अपडेट हुई',
'memoryData.windowUpdatedMsg': '{window} पर सेट किया गया।',

// Run queue
'runQueue.mode.interrupt': 'बाधित करें',
'runQueue.mode.steer': 'दिशा दें',
'runQueue.mode.followup': 'अनुसरण',
'runQueue.mode.collect': 'संदर्भ जोड़ें',
'runQueue.queued': 'संदेश कतार में है',
'runQueue.steerHint': 'वर्तमान चरण को दिशा दें',
'runQueue.followupHint': 'अनुसरण के रूप में कतार में जोड़ें',
'runQueue.collectHint': 'अतिरिक्त संदर्भ के रूप में जोड़ें',
'runQueue.status': '{total} कतार में',
'runQueue.cleared': 'कतार साफ़ की गई',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/id.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4758,6 +4758,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Jendela memori',
'memoryData.windowUpdated': 'Jendela memori diperbarui',
'memoryData.windowUpdatedMsg': 'Diatur ke {window}.',

// Run queue
'runQueue.mode.interrupt': 'Interupsi',
'runQueue.mode.steer': 'Arahkan',
'runQueue.mode.followup': 'Tindak lanjut',
'runQueue.mode.collect': 'Tambah konteks',
'runQueue.queued': 'Pesan masuk antrean',
'runQueue.steerHint': 'Arahkan giliran saat ini',
'runQueue.followupHint': 'Masukkan ke antrean sebagai tindak lanjut',
'runQueue.collectHint': 'Tambahkan sebagai konteks tambahan',
'runQueue.status': '{total} dalam antrean',
'runQueue.cleared': 'Antrean dikosongkan',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4830,6 +4830,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Finestra di memoria',
'memoryData.windowUpdated': 'Finestra di memoria aggiornata',
'memoryData.windowUpdatedMsg': 'Impostata su {window}.',

// Run queue
'runQueue.mode.interrupt': 'Interrompi',
'runQueue.mode.steer': 'Guida',
'runQueue.mode.followup': 'Seguito',
'runQueue.mode.collect': 'Aggiungi contesto',
'runQueue.queued': 'Messaggio in coda',
'runQueue.steerHint': 'Guida il turno corrente',
'runQueue.followupHint': 'Metti in coda come seguito',
'runQueue.collectHint': 'Aggiungi come contesto extra',
'runQueue.status': '{total} in coda',
'runQueue.cleared': 'Coda svuotata',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4694,6 +4694,18 @@ const messages: TranslationMap = {
'memoryData.windowError': '메모리 창',
'memoryData.windowUpdated': '메모리 창 업데이트됨',
'memoryData.windowUpdatedMsg': '{window}(으)로 설정되었습니다.',

// Run queue
'runQueue.mode.interrupt': '중단',
'runQueue.mode.steer': '방향 조정',
'runQueue.mode.followup': '후속 조치',
'runQueue.mode.collect': '컨텍스트 추가',
'runQueue.queued': '메시지가 대기열에 추가됨',
'runQueue.steerHint': '현재 턴 방향 조정',
'runQueue.followupHint': '후속 조치로 대기열에 추가',
'runQueue.collectHint': '추가 컨텍스트로 추가',
'runQueue.status': '{total}개 대기 중',
'runQueue.cleared': '대기열이 비워졌습니다',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4822,6 +4822,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Okno pamięci',
'memoryData.windowUpdated': 'Okno pamięci zaktualizowane',
'memoryData.windowUpdatedMsg': 'Ustawiono na {window}.',

// Run queue
'runQueue.mode.interrupt': 'Przerwij',
'runQueue.mode.steer': 'Kieruj',
'runQueue.mode.followup': 'Kontynuacja',
'runQueue.mode.collect': 'Dodaj kontekst',
'runQueue.queued': 'Wiadomość w kolejce',
'runQueue.steerHint': 'Kieruj bieżącą turą',
'runQueue.followupHint': 'Dodaj do kolejki jako kontynuację',
'runQueue.collectHint': 'Dodaj jako dodatkowy kontekst',
'runQueue.status': '{total} w kolejce',
'runQueue.cleared': 'Kolejka wyczyszczona',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/pt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4827,6 +4827,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Janela de memória',
'memoryData.windowUpdated': 'Janela de memória atualizada',
'memoryData.windowUpdatedMsg': 'Definida para {window}.',

// Run queue
'runQueue.mode.interrupt': 'Interromper',
'runQueue.mode.steer': 'Direcionar',
'runQueue.mode.followup': 'Acompanhamento',
'runQueue.mode.collect': 'Adicionar contexto',
'runQueue.queued': 'Mensagem na fila',
'runQueue.steerHint': 'Direcionar o turno atual',
'runQueue.followupHint': 'Colocar na fila como acompanhamento',
'runQueue.collectHint': 'Adicionar como contexto extra',
'runQueue.status': '{total} na fila',
'runQueue.cleared': 'Fila limpa',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4787,6 +4787,18 @@ const messages: TranslationMap = {
'memoryData.windowError': 'Окно памяти',
'memoryData.windowUpdated': 'Окно памяти обновлено',
'memoryData.windowUpdatedMsg': 'Установлено значение {window}.',

// Run queue
'runQueue.mode.interrupt': 'Прервать',
'runQueue.mode.steer': 'Направить',
'runQueue.mode.followup': 'Продолжение',
'runQueue.mode.collect': 'Добавить контекст',
'runQueue.queued': 'Сообщение в очереди',
'runQueue.steerHint': 'Направить текущий ход',
'runQueue.followupHint': 'Добавить в очередь как продолжение',
'runQueue.collectHint': 'Добавить как дополнительный контекст',
'runQueue.status': '{total} в очереди',
'runQueue.cleared': 'Очередь очищена',
};

export default messages;
12 changes: 12 additions & 0 deletions app/src/lib/i18n/zh-CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4509,6 +4509,18 @@ const messages: TranslationMap = {
'memoryData.windowError': '记忆时间窗口',
'memoryData.windowUpdated': '记忆时间窗口已更新',
'memoryData.windowUpdatedMsg': '已设置为 {window}。',

// Run queue
'runQueue.mode.interrupt': '中断',
'runQueue.mode.steer': '引导',
'runQueue.mode.followup': '后续跟进',
'runQueue.mode.collect': '添加上下文',
'runQueue.queued': '消息已加入队列',
'runQueue.steerHint': '引导当前轮次',
'runQueue.followupHint': '作为后续跟进加入队列',
'runQueue.collectHint': '作为额外上下文添加',
'runQueue.status': '已排队 {total} 条',
'runQueue.cleared': '队列已清空',
};

export default messages;
10 changes: 10 additions & 0 deletions app/src/services/chatService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -942,6 +942,8 @@ export function subscribeChatEvents(listeners: ChatEventListeners): () => void {
};
}

export type QueueMode = 'interrupt' | 'steer' | 'followup' | 'collect';

export interface ChatSendParams {
threadId: string;
message: string;
Expand All @@ -954,6 +956,13 @@ export interface ChatSendParams {
* working unchanged.
*/
locale?: string | null;
/**
* Queue mode for concurrent messages. When a turn is already in
* flight: `steer` injects at the next iteration boundary, `followup`
* queues for after the turn, `collect` adds as context. `interrupt`
* (default) aborts the running turn.
*/
queueMode?: QueueMode | null;
}

/**
Expand All @@ -979,6 +988,7 @@ export async function chatSend(params: ChatSendParams): Promise<void> {
model_override: params.model ?? undefined,
profile_id: params.profileId ?? undefined,
locale: params.locale ?? undefined,
queue_mode: params.queueMode ?? undefined,
},
});
}
Expand Down
Loading
Loading