From 176e3de1054205b4fa090d7d6088af2ab4dc2f0a Mon Sep 17 00:00:00 2001 From: Lorenzo Ganzella Date: Tue, 15 Sep 2026 16:02:52 -0300 Subject: [PATCH] feat: continue in build agent when answering plan questions Answering a question through the question tool while the plan agent was active always kept the session in plan mode, so users had to answer, switch agents manually and often got asked to confirm again. question.reply now accepts an optional agent. When the user picks one, the question tool appends a synthetic user message with that agent (the same hand-off used by plan_exit) so the session continues in the build agent. - tui: ctrl+b answers and continues in build (keybind question_build) - app: "Answer & continue in build agent" button in the question dock --- packages/app/src/i18n/am.ts | 1 + packages/app/src/i18n/ar.ts | 1 + packages/app/src/i18n/az.ts | 1 + packages/app/src/i18n/bg.ts | 1 + packages/app/src/i18n/bn.ts | 1 + packages/app/src/i18n/br.ts | 1 + packages/app/src/i18n/bs.ts | 1 + packages/app/src/i18n/ca.ts | 1 + packages/app/src/i18n/cs.ts | 1 + packages/app/src/i18n/da.ts | 1 + packages/app/src/i18n/de.ts | 1 + packages/app/src/i18n/dv.ts | 1 + packages/app/src/i18n/dz.ts | 1 + packages/app/src/i18n/el.ts | 1 + packages/app/src/i18n/en.ts | 1 + packages/app/src/i18n/es.ts | 1 + packages/app/src/i18n/et.ts | 1 + packages/app/src/i18n/fa.ts | 1 + packages/app/src/i18n/fi.ts | 1 + packages/app/src/i18n/fo.ts | 1 + packages/app/src/i18n/fr.ts | 1 + packages/app/src/i18n/hi.ts | 1 + packages/app/src/i18n/hr.ts | 1 + packages/app/src/i18n/hu.ts | 1 + packages/app/src/i18n/hy.ts | 1 + packages/app/src/i18n/id.ts | 1 + packages/app/src/i18n/is.ts | 1 + packages/app/src/i18n/it.ts | 1 + packages/app/src/i18n/ja.ts | 1 + packages/app/src/i18n/ka.ts | 1 + packages/app/src/i18n/km.ts | 1 + packages/app/src/i18n/ko.ts | 1 + packages/app/src/i18n/lo.ts | 1 + packages/app/src/i18n/lt.ts | 1 + packages/app/src/i18n/lv.ts | 1 + packages/app/src/i18n/mk.ts | 1 + packages/app/src/i18n/mn.ts | 1 + packages/app/src/i18n/ms.ts | 1 + packages/app/src/i18n/my.ts | 1 + packages/app/src/i18n/ne.ts | 1 + packages/app/src/i18n/nl.ts | 1 + packages/app/src/i18n/no.ts | 1 + packages/app/src/i18n/pa.ts | 1 + packages/app/src/i18n/pl.ts | 1 + packages/app/src/i18n/ro.ts | 1 + packages/app/src/i18n/ru.ts | 1 + packages/app/src/i18n/si.ts | 1 + packages/app/src/i18n/sk.ts | 1 + packages/app/src/i18n/sl.ts | 1 + packages/app/src/i18n/sq.ts | 1 + packages/app/src/i18n/sr.ts | 1 + packages/app/src/i18n/sv.ts | 1 + packages/app/src/i18n/tg.ts | 1 + packages/app/src/i18n/th.ts | 1 + packages/app/src/i18n/tk.ts | 1 + packages/app/src/i18n/tr.ts | 1 + packages/app/src/i18n/uk.ts | 1 + packages/app/src/i18n/ur.ts | 1 + packages/app/src/i18n/uz.ts | 1 + packages/app/src/i18n/vi.ts | 1 + packages/app/src/i18n/zh.ts | 1 + packages/app/src/i18n/zht.ts | 1 + .../composer/session-question-dock.tsx | 34 ++++++++-- packages/app/src/utils/server-compat.ts | 11 +++- .../client/src/generated-effect/client.ts | 3 +- packages/client/src/generated/client.ts | 2 +- packages/client/src/generated/types.ts | 3 +- packages/opencode/src/question/index.ts | 18 ++++-- .../instance/httpapi/groups/question.ts | 3 + .../instance/httpapi/handlers/question.ts | 1 + packages/opencode/src/session/agent-switch.ts | 43 +++++++++++++ packages/opencode/src/tool/plan.ts | 29 ++------- packages/opencode/src/tool/question.ts | 34 ++++++++-- .../opencode/test/question/question.test.ts | 38 +++++++++++- packages/opencode/test/session/prompt.test.ts | 56 +++++++++++++++++ packages/opencode/test/tool/question.test.ts | 62 ++++++++++++++++++- packages/schema/src/question.ts | 3 + packages/schema/src/v1/question.ts | 3 + packages/sdk/js/src/v2/gen/sdk.gen.ts | 2 + packages/sdk/js/src/v2/gen/types.gen.ts | 2 + packages/sdk/openapi.json | 6 ++ packages/tui/src/config/keybind.ts | 2 + packages/tui/src/routes/session/question.tsx | 59 +++++++++++++++--- 83 files changed, 424 insertions(+), 52 deletions(-) create mode 100644 packages/opencode/src/session/agent-switch.ts diff --git a/packages/app/src/i18n/am.ts b/packages/app/src/i18n/am.ts index bda48350e532..5e93b42fc227 100644 --- a/packages/app/src/i18n/am.ts +++ b/packages/app/src/i18n/am.ts @@ -728,6 +728,7 @@ export const dict = { "session.question.progress": "{{current}} ከ{{total}} ጥያቄዎች", "session.question.minimize": "ጥያቄን አሳንስ", "session.question.restore": "ጥያቄን ወደነበረበት መልስ", + "session.question.build": "መልሱ እና በBuild ወኪል ይቀጥሉ", "session.question.pending.one": "{{count}} በመጠባበቅ ላይ ያለ ጥያቄ", "session.question.pending.other": "{{count}} በመጠባበቅ ላይ ያሉ ጥያቄዎች", "session.followupDock.summary.one": "{{count}}የተሰለፈ መልእክት", diff --git a/packages/app/src/i18n/ar.ts b/packages/app/src/i18n/ar.ts index 3f55b3084088..18ff2a31f054 100644 --- a/packages/app/src/i18n/ar.ts +++ b/packages/app/src/i18n/ar.ts @@ -721,6 +721,7 @@ export const dict = { "session.todo.expand": "توسيع", "session.question.minimize": "تصغير السؤال", "session.question.restore": "استعادة السؤال", + "session.question.build": "أجب وتابع مع وكيل Build", "session.question.pending.one": "{{count}} سؤال معلق", "session.question.pending.zero": "عدد الأسئلة المعلقة: {{count}}", "session.question.pending.two": "عدد الأسئلة المعلقة: {{count}}", diff --git a/packages/app/src/i18n/az.ts b/packages/app/src/i18n/az.ts index d818ae57fd6c..1406b3208a86 100644 --- a/packages/app/src/i18n/az.ts +++ b/packages/app/src/i18n/az.ts @@ -751,6 +751,7 @@ export const dict = { "session.question.progress": "{{total}} sualdan {{current}}-i", "session.question.minimize": "Sualı kiçilt", "session.question.restore": "Sualı bərpa edin", + "session.question.build": "Cavab verin və Build agenti ilə davam edin", "session.question.pending.one": "{{count}} cavab gözləyən sual", "session.question.pending.other": "{{count}} cavab gözləyən sual", "session.followupDock.summary.one": "{{count}} növbəyə qoyulmuş mesaj", diff --git a/packages/app/src/i18n/bg.ts b/packages/app/src/i18n/bg.ts index 7f63d1fa4b3e..862d8428cd64 100644 --- a/packages/app/src/i18n/bg.ts +++ b/packages/app/src/i18n/bg.ts @@ -747,6 +747,7 @@ export const dict = { "session.question.progress": "{{current}} от {{total}} въпроса", "session.question.minimize": "Минимизиране на въпроса", "session.question.restore": "Възстановете въпроса", + "session.question.build": "Отговорете и продължете с агента Build", "session.question.pending.one": "{{count}} чакащ въпрос", "session.question.pending.other": "{{count}} висящи въпроси", "session.followupDock.summary.one": "{{count}} съобщение в опашка", diff --git a/packages/app/src/i18n/bn.ts b/packages/app/src/i18n/bn.ts index 5f0698ab64f1..193f044c945a 100644 --- a/packages/app/src/i18n/bn.ts +++ b/packages/app/src/i18n/bn.ts @@ -741,6 +741,7 @@ export const dict: Record = { "session.question.progress": "{{total}} প্রশ্নের {{current}}", "session.question.minimize": "প্রশ্ন ছোট করুন", "session.question.restore": "প্রশ্ন পুনরুদ্ধার করুন", + "session.question.build": "উত্তর দিন এবং Build এজেন্টে চালিয়ে যান", "session.question.pending.one": "{{count}} মুলতুবি প্রশ্ন", "session.question.pending.other": "{{count}} মুলতুবি প্রশ্ন", "session.followupDock.summary.one": "{{count}} সারিবদ্ধ বার্তা", diff --git a/packages/app/src/i18n/br.ts b/packages/app/src/i18n/br.ts index 09da845ccb53..c3d1b1f80eac 100644 --- a/packages/app/src/i18n/br.ts +++ b/packages/app/src/i18n/br.ts @@ -729,6 +729,7 @@ export const dict = { "session.todo.expand": "Expandir", "session.question.minimize": "Minimizar pergunta", "session.question.restore": "Restaurar pergunta", + "session.question.build": "Responder e continuar no agente Build", "session.question.pending.one": "{{count}} pergunta pendente", "session.question.pending.many": "{{count}} de perguntas pendentes", "session.question.pending.other": "{{count}} perguntas pendentes", diff --git a/packages/app/src/i18n/bs.ts b/packages/app/src/i18n/bs.ts index feb41c651a87..1da2dce80364 100644 --- a/packages/app/src/i18n/bs.ts +++ b/packages/app/src/i18n/bs.ts @@ -785,6 +785,7 @@ export const dict = { "session.todo.expand": "Proširi", "session.question.minimize": "Minimiziraj pitanje", "session.question.restore": "Vrati pitanje", + "session.question.build": "Odgovori i nastavi s agentom Build", "session.question.pending.one": "{{count}} pitanje na čekanju", "session.question.pending.few": "{{count}} pitanja na čekanju", "session.question.pending.other": "{{count}} pitanja na čekanju", diff --git a/packages/app/src/i18n/ca.ts b/packages/app/src/i18n/ca.ts index 21ad325607a6..9c5afbf219e6 100644 --- a/packages/app/src/i18n/ca.ts +++ b/packages/app/src/i18n/ca.ts @@ -747,6 +747,7 @@ export const dict = { "session.question.progress": "{{current}} de {{total}} preguntes", "session.question.minimize": "Minimitzar la pregunta", "session.question.restore": "Pregunta de restauració", + "session.question.build": "Respon i continua amb l'agent Build", "session.question.pending.one": "{{count}} pregunta pendent", "session.question.pending.other": "{{count}} preguntes pendents", "session.question.pending.many": "{{count}} preguntes pendents", diff --git a/packages/app/src/i18n/cs.ts b/packages/app/src/i18n/cs.ts index d79d4eb5a7f8..37507d9a7250 100644 --- a/packages/app/src/i18n/cs.ts +++ b/packages/app/src/i18n/cs.ts @@ -741,6 +741,7 @@ export const dict = { "session.question.progress": "{{current}} z {{total}} otázek", "session.question.minimize": "Minimalizujte otázku", "session.question.restore": "Obnovit otázku", + "session.question.build": "Odpovědět a pokračovat v agentu Build", "session.question.pending.one": "{{count}} nevyřízená otázka", "session.question.pending.other": "{{count}} nevyřízené otázky", "session.question.pending.few": "{{count}} nevyřízené otázky", diff --git a/packages/app/src/i18n/da.ts b/packages/app/src/i18n/da.ts index 87737b094240..30fcf6751261 100644 --- a/packages/app/src/i18n/da.ts +++ b/packages/app/src/i18n/da.ts @@ -663,6 +663,7 @@ export const dict = { "session.todo.expand": "Udvid", "session.question.minimize": "Minimer spørgsmål", "session.question.restore": "Gendan spørgsmål", + "session.question.build": "Svar og fortsæt med Build-agenten", "session.question.pending.one": "{{count}} afventende spørgsmål", "session.question.pending.other": "{{count}} afventende spørgsmål", "session.followupDock.summary.one": "{{count}} besked i kø", diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts index 00849598c5c5..398e0d82c3bc 100644 --- a/packages/app/src/i18n/de.ts +++ b/packages/app/src/i18n/de.ts @@ -622,6 +622,7 @@ export const dict = { "session.todo.expand": "Ausklappen", "session.question.minimize": "Frage minimieren", "session.question.restore": "Frage wiederherstellen", + "session.question.build": "Antworten und mit Build-Agent fortfahren", "session.question.pending.one": "{{count}} ausstehende Frage", "session.question.pending.other": "{{count}} ausstehende Fragen", "session.followupDock.summary.one": "{{count}} Nachricht in der Warteschlange", diff --git a/packages/app/src/i18n/dv.ts b/packages/app/src/i18n/dv.ts index 27b5fea86999..3ad096a74395 100644 --- a/packages/app/src/i18n/dv.ts +++ b/packages/app/src/i18n/dv.ts @@ -753,6 +753,7 @@ export const dict = { "session.question.progress": "{{current}} ގެ {{total}} ސުވާލުތަކެވެ", "session.question.minimize": "ސުވާލު އެންމެ ކުޑަކުރުން", "session.question.restore": "ސުވާލު އަލުން އާލާކުރުން", + "session.question.build": "ޖަވާބު ދީ ބިލްޑް އޭޖެންޓާއެކު ކުރިއަށްގެންދޭށެވެ", "session.question.pending.one": "{{count}} ކުރިއަށް އޮތް ސުވާލު", "session.question.pending.other": "{{count}} ކުރިއަށް އޮތް ސުވާލުތައް", "session.followupDock.summary.one": "{{count}} ކިއު ކޮށްފައިވާ މެސެޖެކެވެ", diff --git a/packages/app/src/i18n/dz.ts b/packages/app/src/i18n/dz.ts index 3b2ad46ca304..799de99ba2b8 100644 --- a/packages/app/src/i18n/dz.ts +++ b/packages/app/src/i18n/dz.ts @@ -754,6 +754,7 @@ export const dict: Record = { "session.question.progress": "{{current}}གི་{{total}}དྲི་བ།", "session.question.minimize": "དྲི་བ་ཉུང་སུ་བཟོ།", "session.question.restore": "དྲི་བ་སླར་གསོ་འབད།", + "session.question.build": "ལན་སྤྲོད་དེ་ Build ལས་ཚབ་དང་མཉམ་དུ་འཕྲོ་མཐུད།", "session.question.pending.one": "{{count}} བསྒུག་པའི་དྲི་བ།", "session.question.pending.other": "{{count}} སྒུག་པའི་དྲི་བ།", "session.followupDock.summary.one": "{{count}} གྲལ་ཐིག་ཅན་གྱི་འཕྲིན་འཕྲིན།", diff --git a/packages/app/src/i18n/el.ts b/packages/app/src/i18n/el.ts index 8f91b46af010..f4fef41df2cd 100644 --- a/packages/app/src/i18n/el.ts +++ b/packages/app/src/i18n/el.ts @@ -749,6 +749,7 @@ export const dict = { "session.question.progress": "{{current}} από {{total}} ερωτήσεις", "session.question.minimize": "Ελαχιστοποίηση ερώτησης", "session.question.restore": "Ερώτηση επαναφοράς", + "session.question.build": "Απαντήστε και συνεχίστε με τον πράκτορα Build", "session.question.pending.one": "{{count}} ερώτηση σε εκκρεμότητα", "session.question.pending.other": "{{count}} ερωτήσεις σε εκκρεμότητα", "session.followupDock.summary.one": "{{count}} μήνυμα στην ουρά", diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index 62d4dc1ae6e9..9a228ce288c2 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -708,6 +708,7 @@ export const dict = { "session.question.progress": "{{current}} of {{total}} questions", "session.question.minimize": "Minimize question", "session.question.restore": "Restore question", + "session.question.build": "Answer & continue in build agent", "session.question.pending.one": "{{count}} pending question", "session.question.pending.other": "{{count}} pending questions", "session.followupDock.summary.one": "{{count}} queued message", diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts index 9e9ff2c36750..8c9910d1e529 100644 --- a/packages/app/src/i18n/es.ts +++ b/packages/app/src/i18n/es.ts @@ -788,6 +788,7 @@ export const dict = { "session.todo.expand": "Expandir", "session.question.minimize": "Minimizar pregunta", "session.question.restore": "Restaurar pregunta", + "session.question.build": "Responder y continuar en el agente Build", "session.question.pending.one": "{{count}} pregunta pendiente", "session.question.pending.many": "{{count}} de preguntas pendientes", "session.question.pending.other": "{{count}} preguntas pendientes", diff --git a/packages/app/src/i18n/et.ts b/packages/app/src/i18n/et.ts index d78296675e3d..dfaef7b1786e 100644 --- a/packages/app/src/i18n/et.ts +++ b/packages/app/src/i18n/et.ts @@ -737,6 +737,7 @@ export const dict = { "session.question.progress": "{{current}} küsimust {{total}}-st", "session.question.minimize": "Minimeerige küsimus", "session.question.restore": "Taasta küsimus", + "session.question.build": "Vasta ja jätka Build-agendiga", "session.question.pending.one": "{{count}} ootel küsimus", "session.question.pending.other": "{{count}} ootel küsimust", "session.followupDock.summary.one": "{{count}} järjekorda pandud sõnum", diff --git a/packages/app/src/i18n/fa.ts b/packages/app/src/i18n/fa.ts index 0d3d721b5324..1317ea4445bf 100644 --- a/packages/app/src/i18n/fa.ts +++ b/packages/app/src/i18n/fa.ts @@ -740,6 +740,7 @@ export const dict = { "session.question.progress": "{{current}} از سوالات {{total}}", "session.question.minimize": "سوال را به حداقل برسانید", "session.question.restore": "بازیابی سوال", + "session.question.build": "پاسخ دهید و با عامل Build ادامه دهید", "session.question.pending.one": "سوال معلق {{count}}", "session.question.pending.other": "{{count}} سوالات معلق", "session.followupDock.summary.one": "پیام {{count}} در صف", diff --git a/packages/app/src/i18n/fi.ts b/packages/app/src/i18n/fi.ts index aa9c92574cff..ad962aefcaa4 100644 --- a/packages/app/src/i18n/fi.ts +++ b/packages/app/src/i18n/fi.ts @@ -639,6 +639,7 @@ export const dict = { "session.question.progress": "{{current}}/{{total}} kysymystä", "session.question.minimize": "Pienennä kysymys", "session.question.restore": "Palauta kysymys", + "session.question.build": "Vastaa ja jatka Build-agentilla", "session.question.pending.one": "{{count}} odottava kysymys", "session.question.pending.other": "{{count}} odottavaa kysymystä", "session.followupDock.summary.one": "{{count}} jonossa oleva viesti", diff --git a/packages/app/src/i18n/fo.ts b/packages/app/src/i18n/fo.ts index 4329a35b4247..c20ee378fff4 100644 --- a/packages/app/src/i18n/fo.ts +++ b/packages/app/src/i18n/fo.ts @@ -741,6 +741,7 @@ export const dict = { "session.question.progress": "{{current}} av {{total}} spurningum", "session.question.minimize": "Minka um spurningin", "session.question.restore": "Endurnýggja spurningin", + "session.question.build": "Svara og hald fram við Build-agentinum", "session.question.pending.one": "{{count}} spurningur í bíðini", "session.question.pending.other": "{{count}} bíðandi spurningar", "session.followupDock.summary.one": "{{count}} bíðirøð boð", diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts index 3c89860a4490..03f5f8a467a8 100644 --- a/packages/app/src/i18n/fr.ts +++ b/packages/app/src/i18n/fr.ts @@ -739,6 +739,7 @@ export const dict = { "session.todo.expand": "Développer", "session.question.minimize": "Réduire la question", "session.question.restore": "Restaurer la question", + "session.question.build": "Répondre et continuer avec l'agent Build", "session.question.pending.one": "{{count}} question en attente", "session.question.pending.many": "{{count}} de questions en attente", "session.question.pending.other": "{{count}} questions en attente", diff --git a/packages/app/src/i18n/hi.ts b/packages/app/src/i18n/hi.ts index 0aaf8e14dc6d..07a8bafe62e6 100644 --- a/packages/app/src/i18n/hi.ts +++ b/packages/app/src/i18n/hi.ts @@ -751,6 +751,7 @@ export const dict = { "session.question.progress": "{{total}} प्रश्नों में से {{current}}", "session.question.minimize": "प्रश्न छोटा करें", "session.question.restore": "प्रश्न पुनर्स्थापित करें", + "session.question.build": "उत्तर दें और Build एजेंट में जारी रखें", "session.question.pending.one": "{{count}} लंबित प्रश्न", "session.question.pending.other": "{{count}} लंबित प्रश्न", "session.followupDock.summary.one": "कतार में {{count}} संदेश", diff --git a/packages/app/src/i18n/hr.ts b/packages/app/src/i18n/hr.ts index 2130c88ada2d..26a86660d5b5 100644 --- a/packages/app/src/i18n/hr.ts +++ b/packages/app/src/i18n/hr.ts @@ -748,6 +748,7 @@ export const dict = { "session.question.progress": "{{current}} od {{total}} pitanja", "session.question.minimize": "Smanjite pitanje", "session.question.restore": "Vrati pitanje", + "session.question.build": "Odgovori i nastavi s agentom Build", "session.question.pending.one": "{{count}} pitanje na čekanju", "session.question.pending.other": "{{count}} pitanja na čekanju", "session.question.pending.few": "{{count}} pitanja na čekanju", diff --git a/packages/app/src/i18n/hu.ts b/packages/app/src/i18n/hu.ts index 664abf8ee4c0..b2358e4c34bf 100644 --- a/packages/app/src/i18n/hu.ts +++ b/packages/app/src/i18n/hu.ts @@ -748,6 +748,7 @@ export const dict = { "session.question.progress": "{{current}}/{{total}} kérdések", "session.question.minimize": "Minimalizálja a kérdést", "session.question.restore": "Kérdés visszaállítása", + "session.question.build": "Válaszolj, és folytasd a Build ügynökkel", "session.question.pending.one": "{{count}} függőben lévő kérdés", "session.question.pending.other": "{{count}} függőben lévő kérdések", "session.followupDock.summary.one": "{{count}} sorba állított üzenet", diff --git a/packages/app/src/i18n/hy.ts b/packages/app/src/i18n/hy.ts index 6eac43b5e6dd..d87aaabfc208 100644 --- a/packages/app/src/i18n/hy.ts +++ b/packages/app/src/i18n/hy.ts @@ -746,6 +746,7 @@ export const dict = { "session.question.progress": "{{current}}՝ {{total}} հարցից", "session.question.minimize": "Նվազագույնի հասցնել հարցը", "session.question.restore": "Վերականգնել հարցը", + "session.question.build": "Պատասխանել և շարունակել Build գործակալում", "session.question.pending.one": "{{count}} առկախ հարց", "session.question.pending.other": "{{count}} առկախ հարցեր", "session.followupDock.summary.one": "{{count}} հերթագրված հաղորդագրություն", diff --git a/packages/app/src/i18n/id.ts b/packages/app/src/i18n/id.ts index 96dc3c7592e4..4a5073370436 100644 --- a/packages/app/src/i18n/id.ts +++ b/packages/app/src/i18n/id.ts @@ -809,6 +809,7 @@ export const dict = { "session.question.progress": "{{current}} dari {{total}} pertanyaan", "session.question.minimize": "Minimalkan pertanyaan", "session.question.restore": "Pulihkan pertanyaan", + "session.question.build": "Jawab dan lanjutkan dengan agen Build", "session.question.pending.one": "{{count}} pertanyaan tertunda", "session.question.pending.other": "{{count}} pertanyaan tertunda", "session.followupDock.summary.one": "{{count}} pesan dalam antrean", diff --git a/packages/app/src/i18n/is.ts b/packages/app/src/i18n/is.ts index a45ed9a40cb0..c114c0954ff5 100644 --- a/packages/app/src/i18n/is.ts +++ b/packages/app/src/i18n/is.ts @@ -744,6 +744,7 @@ export const dict = { "session.question.progress": "{{current}} af {{total}} spurningum", "session.question.minimize": "Lágmarka spurninguna", "session.question.restore": "Endurheimta spurningu", + "session.question.build": "Svara og haltu áfram með Build-fulltrúa", "session.question.pending.one": "{{count}} spurning í bið", "session.question.pending.other": "{{count}} spurningar í bið", "session.followupDock.summary.one": "{{count}} skilaboð í biðröð", diff --git a/packages/app/src/i18n/it.ts b/packages/app/src/i18n/it.ts index a093e11485a3..215e622a491e 100644 --- a/packages/app/src/i18n/it.ts +++ b/packages/app/src/i18n/it.ts @@ -657,6 +657,7 @@ export const dict = { "session.question.progress": "{{current}} di {{total}} domande", "session.question.minimize": "Riduci la domanda", "session.question.restore": "Ripristina la domanda", + "session.question.build": "Rispondi e continua con l'agente Build", "session.question.pending.one": "{{count}} domanda in sospeso", "session.question.pending.many": "{{count}} di domande in sospeso", "session.question.pending.other": "{{count}} domande in sospeso", diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts index b96e8b544b2b..8c55454a59be 100644 --- a/packages/app/src/i18n/ja.ts +++ b/packages/app/src/i18n/ja.ts @@ -724,6 +724,7 @@ export const dict = { "session.todo.expand": "展開", "session.question.minimize": "質問を最小化", "session.question.restore": "質問を復元", + "session.question.build": "回答して Build エージェントで続行", "session.question.pending.one": "{{count}}件の保留中の質問", "session.question.pending.other": "{{count}}件の保留中の質問", "session.followupDock.summary.one": "{{count}} 件のメッセージが待機中", diff --git a/packages/app/src/i18n/ka.ts b/packages/app/src/i18n/ka.ts index be052930a2ec..70a5ad684db2 100644 --- a/packages/app/src/i18n/ka.ts +++ b/packages/app/src/i18n/ka.ts @@ -741,6 +741,7 @@ export const dict = { "session.question.progress": "{{current}} / {{total}} შეკითხვადან", "session.question.minimize": "შეკითხვის მინიმიზაცია", "session.question.restore": "კითხვის აღდგენა", + "session.question.build": "უპასუხე და გააგრძელე Build აგენტით", "session.question.pending.one": "{{count}} მომლოდინე შეკითხვა", "session.question.pending.other": "{{count}} მომლოდინე შეკითხვა", "session.followupDock.summary.one": "{{count}} რიგში დადებული შეტყობინება", diff --git a/packages/app/src/i18n/km.ts b/packages/app/src/i18n/km.ts index 7f1b61fe3667..853609ede319 100644 --- a/packages/app/src/i18n/km.ts +++ b/packages/app/src/i18n/km.ts @@ -738,6 +738,7 @@ export const dict = { "session.question.progress": "{{current}} នៃសំណួរ {{total}}", "session.question.minimize": "បង្រួមសំណួរ", "session.question.restore": "ស្ដារសំណួរ", + "session.question.build": "ឆ្លើយ និងបន្តជាមួយភ្នាក់ងារ Build", "session.question.pending.one": "{{count}} សំណួរដែលមិនទាន់សម្រេច", "session.question.pending.other": "{{count}} សំណួរមិនទាន់សម្រេច", "session.followupDock.summary.one": "សារដែលបានតម្រង់ជួរ {{count}}", diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts index b96fb4c59471..b5425105af60 100644 --- a/packages/app/src/i18n/ko.ts +++ b/packages/app/src/i18n/ko.ts @@ -1003,6 +1003,7 @@ export const dict = { "session.review.noBranchChanges": "아직 브랜치 변경 사항이 없습니다", "session.question.minimize": "질문 최소화", "session.question.restore": "질문 복원", + "session.question.build": "답변하고 Build 에이전트로 계속", "session.question.pending.one": "{{count}}개의 대기 중인 질문", "session.question.pending.other": "{{count}}개의 대기 중인 질문", "session.new.project.new": "새 프로젝트", diff --git a/packages/app/src/i18n/lo.ts b/packages/app/src/i18n/lo.ts index acdc26df08aa..a56219f1548e 100644 --- a/packages/app/src/i18n/lo.ts +++ b/packages/app/src/i18n/lo.ts @@ -736,6 +736,7 @@ export const dict = { "session.question.progress": "{{current}} ຂອງ {{total}} ຄໍາຖາມ", "session.question.minimize": "ຫຍໍ້ຄໍາຖາມ", "session.question.restore": "ຟື້ນຟູຄໍາຖາມ", + "session.question.build": "ຕອບ ແລະສືບຕໍ່ກັບຕົວແທນ Build", "session.question.pending.one": "{{count}} ຄຳຖາມທີ່ຍັງຄ້າງຢູ່", "session.question.pending.other": "{{count}} ຄຳຖາມທີ່ຍັງຄ້າງຢູ່", "session.followupDock.summary.one": "{{count}} ຄິວຂໍ້ຄວາມ", diff --git a/packages/app/src/i18n/lt.ts b/packages/app/src/i18n/lt.ts index ba161eb31879..4ead5f8e19f8 100644 --- a/packages/app/src/i18n/lt.ts +++ b/packages/app/src/i18n/lt.ts @@ -748,6 +748,7 @@ export const dict = { "session.question.progress": "{{current}} iš {{total}} klausimų", "session.question.minimize": "Sumažinti klausimą", "session.question.restore": "Atkurti klausimą", + "session.question.build": "Atsakyti ir tęsti su Build agentu", "session.question.pending.one": "Laukiamas klausimas {{count}}", "session.question.pending.other": "{{count}} laukiantys klausimai", "session.question.pending.few": "{{count}} laukiantys klausimai", diff --git a/packages/app/src/i18n/lv.ts b/packages/app/src/i18n/lv.ts index df4c5b2dcd91..a0f2d63d370c 100644 --- a/packages/app/src/i18n/lv.ts +++ b/packages/app/src/i18n/lv.ts @@ -743,6 +743,7 @@ export const dict = { "session.question.progress": "{{current}} no {{total}} jautājumiem", "session.question.minimize": "Minimizēt jautājumu", "session.question.restore": "Atjaunot jautājumu", + "session.question.build": "Atbildēt un turpināt ar Build aģentu", "session.question.pending.one": "{{count}} neatbildēts jautājums", "session.question.pending.other": "{{count}} neatbildēti jautājumi", "session.question.pending.zero": "{{count}} neatbildētu jautājumu", diff --git a/packages/app/src/i18n/mk.ts b/packages/app/src/i18n/mk.ts index 01e60baa408b..bce4701cfcae 100644 --- a/packages/app/src/i18n/mk.ts +++ b/packages/app/src/i18n/mk.ts @@ -745,6 +745,7 @@ export const dict = { "session.question.progress": "{{current}} од {{total}} прашања", "session.question.minimize": "Минимизирајте го прашањето", "session.question.restore": "Врати прашање", + "session.question.build": "Одговори и продолжи со агентот Build", "session.question.pending.one": "{{count}} нерешено прашање", "session.question.pending.other": "{{count}} нерешени прашања", "session.followupDock.summary.one": "{{count}} порака во редица", diff --git a/packages/app/src/i18n/mn.ts b/packages/app/src/i18n/mn.ts index 41c4fa085d1a..8b1638bbda00 100644 --- a/packages/app/src/i18n/mn.ts +++ b/packages/app/src/i18n/mn.ts @@ -747,6 +747,7 @@ export const dict = { "session.question.progress": "{{total}} асуултын {{current}}", "session.question.minimize": "Асуултыг багасгах", "session.question.restore": "Асуултыг сэргээх", + "session.question.build": "Хариулж, Build агентоор үргэлжлүүлэх", "session.question.pending.one": "{{count}} хүлээгдэж буй асуулт", "session.question.pending.other": "{{count}} хүлээгдэж буй асуултууд", "session.followupDock.summary.one": "{{count}} дараалалд орсон мессеж", diff --git a/packages/app/src/i18n/ms.ts b/packages/app/src/i18n/ms.ts index 2c3783d43b7d..35496c7654df 100644 --- a/packages/app/src/i18n/ms.ts +++ b/packages/app/src/i18n/ms.ts @@ -739,6 +739,7 @@ export const dict = { "session.question.progress": "{{current}} daripada {{total}} soalan", "session.question.minimize": "Minimumkan soalan", "session.question.restore": "Pulihkan soalan", + "session.question.build": "Jawab dan teruskan dengan ejen Build", "session.question.pending.one": "{{count}} soalan belum dijawab", "session.question.pending.other": "{{count}} soalan belum dijawab", "session.followupDock.summary.one": "{{count}} mesej dalam giliran", diff --git a/packages/app/src/i18n/my.ts b/packages/app/src/i18n/my.ts index 6046f337ff06..ce82e7d0287d 100644 --- a/packages/app/src/i18n/my.ts +++ b/packages/app/src/i18n/my.ts @@ -749,6 +749,7 @@ export const dict = { "session.question.progress": "{{total}} မေးခွန်းများ၏ {{current}}", "session.question.minimize": "မေးခွန်းကို လျှော့ပါ။", "session.question.restore": "မေးခွန်းကို ပြန်ယူပါ။", + "session.question.build": "ဖြေဆိုပြီး Build အေးဂျင့်ဖြင့် ဆက်လုပ်ပါ။", "session.question.pending.one": "{{count}} ဆိုင်းငံ့မေးခွန်း", "session.question.pending.other": "{{count}} ဆိုင်းငံ့မေးခွန်းများ", "session.followupDock.summary.one": "{{count}} တန်းစီနေသည့် မက်ဆေ့ဂျ်", diff --git a/packages/app/src/i18n/ne.ts b/packages/app/src/i18n/ne.ts index cc60bff9f400..923f68573442 100644 --- a/packages/app/src/i18n/ne.ts +++ b/packages/app/src/i18n/ne.ts @@ -743,6 +743,7 @@ export const dict: Record = { "session.question.progress": "{{total}} प्रश्नहरूको {{current}}", "session.question.minimize": "प्रश्न कम गर्नुहोस्", "session.question.restore": "प्रश्न पुनर्स्थापित गर्नुहोस्", + "session.question.build": "जवाफ दिनुहोस् र Build एजेन्टमा जारी राख्नुहोस्", "session.question.pending.one": "{{count}} विचाराधीन प्रश्न", "session.question.pending.other": "{{count}} विचाराधीन प्रश्नहरू", "session.followupDock.summary.one": "{{count}} लामबद्ध सन्देश", diff --git a/packages/app/src/i18n/nl.ts b/packages/app/src/i18n/nl.ts index 6fb1dc09f24b..f7101d07974e 100644 --- a/packages/app/src/i18n/nl.ts +++ b/packages/app/src/i18n/nl.ts @@ -749,6 +749,7 @@ export const dict = { "session.question.progress": "{{current}} van {{total}} vragen", "session.question.minimize": "Minimaliseer de vraag", "session.question.restore": "Vraag herstellen", + "session.question.build": "Antwoorden en doorgaan in de Build-agent", "session.question.pending.one": "{{count}} openstaande vraag", "session.question.pending.other": "{{count}} openstaande vragen", "session.followupDock.summary.one": "{{count}} bericht in de wachtrij", diff --git a/packages/app/src/i18n/no.ts b/packages/app/src/i18n/no.ts index 11958029dc38..cbcc604c0bc2 100644 --- a/packages/app/src/i18n/no.ts +++ b/packages/app/src/i18n/no.ts @@ -1216,6 +1216,7 @@ export const dict = { "session.review.noBranchChanges": "Ingen grenendringer ennå", "session.question.minimize": "Minimer spørsmål", "session.question.restore": "Gjenopprett spørsmål", + "session.question.build": "Svar og fortsett med Build-agenten", "session.question.pending.one": "{{count}} ventende spørsmål", "session.question.pending.other": "{{count}} ventende spørsmål", "session.new.project.new": "Nytt prosjekt", diff --git a/packages/app/src/i18n/pa.ts b/packages/app/src/i18n/pa.ts index 6298581c0aab..c339ddb9a2be 100644 --- a/packages/app/src/i18n/pa.ts +++ b/packages/app/src/i18n/pa.ts @@ -750,6 +750,7 @@ export const dict = { "session.question.progress": "{{total}} سوالاں وچوں {{current}}", "session.question.minimize": "سوال نوں چھوٹا کرو", "session.question.restore": "سوال بحال کرو", + "session.question.build": "جواب دیو تے Build ایجنٹ نال جاری رکھو", "session.question.pending.one": "{{count}} زیر التوا سوال", "session.question.pending.other": "{{count}} زیر التوا سوال", "session.followupDock.summary.one": "{{count}} قطار چ لگیا ہویا پیغام", diff --git a/packages/app/src/i18n/pl.ts b/packages/app/src/i18n/pl.ts index 9b3c927498d8..5d2f79da872a 100644 --- a/packages/app/src/i18n/pl.ts +++ b/packages/app/src/i18n/pl.ts @@ -728,6 +728,7 @@ export const dict = { "session.todo.expand": "Rozwiń", "session.question.minimize": "Zminimalizuj pytanie", "session.question.restore": "Przywróć pytanie", + "session.question.build": "Odpowiedz i kontynuuj z agentem Build", "session.question.pending.one": "{{count}} oczekujące pytanie", "session.question.pending.few": "{{count}} oczekujące pytania", "session.question.pending.many": "{{count}} oczekujących pytań", diff --git a/packages/app/src/i18n/ro.ts b/packages/app/src/i18n/ro.ts index c84f9a4ee76e..9ddd0bc04018 100644 --- a/packages/app/src/i18n/ro.ts +++ b/packages/app/src/i18n/ro.ts @@ -743,6 +743,7 @@ export const dict = { "session.question.progress": "{{current}} din {{total}} întrebări", "session.question.minimize": "Minimizează întrebarea", "session.question.restore": "Restaurează întrebarea", + "session.question.build": "Răspunde și continuă cu agentul Build", "session.question.pending.one": "{{count}} întrebare în așteptare", "session.question.pending.other": "{{count}} întrebări în așteptare", "session.question.pending.few": "{{count}} întrebări în așteptare", diff --git a/packages/app/src/i18n/ru.ts b/packages/app/src/i18n/ru.ts index cf4fa8d8f4ca..6c48f567c8d1 100644 --- a/packages/app/src/i18n/ru.ts +++ b/packages/app/src/i18n/ru.ts @@ -782,6 +782,7 @@ export const dict = { "session.todo.expand": "Развернуть", "session.question.minimize": "Свернуть вопрос", "session.question.restore": "Восстановить вопрос", + "session.question.build": "Ответьте и продолжите с агентом Build", "session.question.pending.one": "{{count}} вопрос без ответа", "session.question.pending.few": "{{count}} вопроса без ответа", "session.question.pending.many": "{{count}} вопросов без ответа", diff --git a/packages/app/src/i18n/si.ts b/packages/app/src/i18n/si.ts index 00ca188b1581..93b9bbfa6d73 100644 --- a/packages/app/src/i18n/si.ts +++ b/packages/app/src/i18n/si.ts @@ -738,6 +738,7 @@ export const dict: Record = { "session.question.progress": "{{current}} {{total}} ප්‍රශ්න", "session.question.minimize": "ප්‍රශ්නය අවම කරන්න", "session.question.restore": "ප්‍රශ්නය ප්‍රතිසාධනය කරන්න", + "session.question.build": "පිළිතුරු දී Build නියෝජිතයා සමඟ දිගටම කරගෙන යන්න", "session.question.pending.one": "{{count}} පොරොත්තු ප්‍රශ්නය", "session.question.pending.other": "{{count}} පොරොත්තු ප්‍රශ්න", "session.followupDock.summary.one": "{{count}} පෝලිම් පණිවිඩය", diff --git a/packages/app/src/i18n/sk.ts b/packages/app/src/i18n/sk.ts index 9992e06cc4af..6fcc7db0c53f 100644 --- a/packages/app/src/i18n/sk.ts +++ b/packages/app/src/i18n/sk.ts @@ -739,6 +739,7 @@ export const dict = { "session.question.progress": "{{current}} z {{total}} otázok", "session.question.minimize": "Minimalizovať otázku", "session.question.restore": "Obnoviť otázku", + "session.question.build": "Odpovedať a pokračovať s agentom Build", "session.question.pending.one": "{{count}} čakajúca otázka", "session.question.pending.other": "{{count}} čakajúcich otázok", "session.question.pending.few": "{{count}} čakajúce otázky", diff --git a/packages/app/src/i18n/sl.ts b/packages/app/src/i18n/sl.ts index 3c23fcd7f708..6eab73946d22 100644 --- a/packages/app/src/i18n/sl.ts +++ b/packages/app/src/i18n/sl.ts @@ -741,6 +741,7 @@ export const dict = { "session.question.progress": "{{current}} od vprašanj {{total}}", "session.question.minimize": "Zmanjšajte vprašanje", "session.question.restore": "Obnovi vprašanje", + "session.question.build": "Odgovori in nadaljuj z agentom Build", "session.question.pending.one": "{{count}} čakajoče vprašanje", "session.question.pending.other": "{{count}} čakajočih vprašanj", "session.question.pending.two": "{{count}} čakajoči vprašanji", diff --git a/packages/app/src/i18n/sq.ts b/packages/app/src/i18n/sq.ts index ca94793ab0e6..9a21f2d9ec3e 100644 --- a/packages/app/src/i18n/sq.ts +++ b/packages/app/src/i18n/sq.ts @@ -744,6 +744,7 @@ export const dict = { "session.question.progress": "{{current}} e pyetjeve {{total}}", "session.question.minimize": "Minimizo pyetjen", "session.question.restore": "Rivendos pyetjen", + "session.question.build": "Përgjigju dhe vazhdo me agjentin Build", "session.question.pending.one": "{{count}} pyetje në pritje", "session.question.pending.other": "{{count}} pyetje në pritje", "session.followupDock.summary.one": "Mesazhi në radhë {{count}}", diff --git a/packages/app/src/i18n/sr.ts b/packages/app/src/i18n/sr.ts index f059160087d8..c2abcd1abe63 100644 --- a/packages/app/src/i18n/sr.ts +++ b/packages/app/src/i18n/sr.ts @@ -742,6 +742,7 @@ export const dict = { "session.question.progress": "{{current}} од {{total}} питања", "session.question.minimize": "Смањите питање", "session.question.restore": "Врати питање", + "session.question.build": "Одговори и настави са агентом Build", "session.question.pending.one": "{{count}} питање на чекању", "session.question.pending.few": "{{count}} питања на чекању", "session.question.pending.other": "{{count}} питања на чекању", diff --git a/packages/app/src/i18n/sv.ts b/packages/app/src/i18n/sv.ts index 39b363c6b657..72ffd8013b35 100644 --- a/packages/app/src/i18n/sv.ts +++ b/packages/app/src/i18n/sv.ts @@ -746,6 +746,7 @@ export const dict = { "session.question.progress": "{{current}} av {{total}} frågor", "session.question.minimize": "Minimera frågan", "session.question.restore": "Återställ fråga", + "session.question.build": "Svara och fortsätt med Build-agenten", "session.question.pending.one": "{{count}} väntande fråga", "session.question.pending.other": "{{count}} väntande frågor", "session.followupDock.summary.one": "{{count}} meddelande i kö", diff --git a/packages/app/src/i18n/tg.ts b/packages/app/src/i18n/tg.ts index ffa08409f684..2e5050c48fdf 100644 --- a/packages/app/src/i18n/tg.ts +++ b/packages/app/src/i18n/tg.ts @@ -744,6 +744,7 @@ export const dict = { "session.question.progress": "{{current}} аз {{total}} саволҳо", "session.question.minimize": "Саволро кам кунед", "session.question.restore": "Саволро барқарор кунед", + "session.question.build": "Ҷавоб диҳед ва бо агента Build идома диҳед", "session.question.pending.one": "{{count}} саволи интизорӣ", "session.question.pending.other": "{{count}} саволҳои интизорӣ", "session.followupDock.summary.one": "{{count}} паёми навбатӣ", diff --git a/packages/app/src/i18n/th.ts b/packages/app/src/i18n/th.ts index 1a0e9db72b1b..62078edcbe36 100644 --- a/packages/app/src/i18n/th.ts +++ b/packages/app/src/i18n/th.ts @@ -776,6 +776,7 @@ export const dict = { "session.todo.expand": "ขยาย", "session.question.minimize": "ย่อคำถาม", "session.question.restore": "คืนค่าคำถาม", + "session.question.build": "ตอบและดำเนินการต่อด้วยเอเจนต์ Build", "session.question.pending.one": "คำถามที่รอดำเนินการ {{count}} ข้อ", "session.question.pending.other": "คำถามที่รอดำเนินการ {{count}} ข้อ", "session.followupDock.summary.one": "{{count}} ข้อความในคิว", diff --git a/packages/app/src/i18n/tk.ts b/packages/app/src/i18n/tk.ts index 2b144c6a26c7..2b8bb70d1281 100644 --- a/packages/app/src/i18n/tk.ts +++ b/packages/app/src/i18n/tk.ts @@ -741,6 +741,7 @@ export const dict = { "session.question.progress": "{{total}} soraglarynyň {{current}}", "session.question.minimize": "Soragy azaldyň", "session.question.restore": "Soragy dikelt", + "session.question.build": "Jogap beriň we Build agenty bilen dowam ediň", "session.question.pending.one": "Garaşylýan sorag {{count}}", "session.question.pending.other": "Garaşylýan soraglar {{count}}", "session.followupDock.summary.one": "{{count}} nobatdaky habar", diff --git a/packages/app/src/i18n/tr.ts b/packages/app/src/i18n/tr.ts index 85623036e429..a41775de2b9e 100644 --- a/packages/app/src/i18n/tr.ts +++ b/packages/app/src/i18n/tr.ts @@ -789,6 +789,7 @@ export const dict = { "session.todo.expand": "Genişlet", "session.question.minimize": "Soruyu küçült", "session.question.restore": "Soruyu geri yükle", + "session.question.build": "Yanıtla ve Build ajanıyla devam et", "session.question.pending.one": "{{count}} bekleyen soru", "session.question.pending.other": "{{count}} bekleyen soru", "session.followupDock.summary.one": "{{count}} sıradaki mesaj", diff --git a/packages/app/src/i18n/uk.ts b/packages/app/src/i18n/uk.ts index 54732a87b7eb..a53bfbb6811f 100644 --- a/packages/app/src/i18n/uk.ts +++ b/packages/app/src/i18n/uk.ts @@ -813,6 +813,7 @@ export const dict = { "session.question.progress": "{{current}} з {{total}} запитань", "session.question.minimize": "Згорнути запитання", "session.question.restore": "Відновити запитання", + "session.question.build": "Дайте відповідь і продовжте з агентом Build", "session.question.pending.one": "{{count}} запитання очікує відповіді", "session.question.pending.few": "{{count}} запитання очікують відповіді", "session.question.pending.many": "{{count}} запитань очікують відповіді", diff --git a/packages/app/src/i18n/ur.ts b/packages/app/src/i18n/ur.ts index 2ab69e7aec71..ca48df5b75de 100644 --- a/packages/app/src/i18n/ur.ts +++ b/packages/app/src/i18n/ur.ts @@ -753,6 +753,7 @@ export const dict = { "session.question.progress": "{{total}} میں سے سوال {{current}}", "session.question.minimize": "سوال کو کم سے کم کریں۔", "session.question.restore": "سوال بحال کریں۔", + "session.question.build": "جواب دیں اور Build ایجنٹ کے ساتھ جاری رکھیں", "session.question.pending.one": "{{count}} زیر التواء سوال", "session.question.pending.other": "{{count}} زیر التواء سوالات", "session.followupDock.summary.one": "{{count}} قطار میں شامل پیغام", diff --git a/packages/app/src/i18n/uz.ts b/packages/app/src/i18n/uz.ts index 8cb7097fc07a..fd27575502c4 100644 --- a/packages/app/src/i18n/uz.ts +++ b/packages/app/src/i18n/uz.ts @@ -746,6 +746,7 @@ export const dict = { "session.question.progress": "{{total}} savollarining {{current}}", "session.question.minimize": "Savolni minimallashtirish", "session.question.restore": "Savolni tiklash", + "session.question.build": "Javob bering va Build agent bilan davom eting", "session.question.pending.one": "{{count}} kutilayotgan savol", "session.question.pending.other": "{{count}} kutilayotgan savollar", "session.followupDock.summary.one": "{{count}} navbatdagi xabar", diff --git a/packages/app/src/i18n/vi.ts b/packages/app/src/i18n/vi.ts index 06fda4ce707c..7c3ba4103135 100644 --- a/packages/app/src/i18n/vi.ts +++ b/packages/app/src/i18n/vi.ts @@ -751,6 +751,7 @@ export const dict = { "session.question.progress": "{{current}} trong số {{total}} câu hỏi", "session.question.minimize": "Giảm thiểu câu hỏi", "session.question.restore": "Khôi phục câu hỏi", + "session.question.build": "Trả lời và tiếp tục với tác nhân Build", "session.question.pending.one": "{{count}} câu hỏi đang chờ xử lý", "session.question.pending.other": "{{count}} câu hỏi đang chờ xử lý", "session.followupDock.summary.one": "{{count}} tin nhắn đang chờ", diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index b0ba0453479b..0a080762c6c4 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -774,6 +774,7 @@ export const dict = { "session.todo.expand": "展开", "session.question.minimize": "收起问题", "session.question.restore": "展开问题", + "session.question.build": "回答并继续使用 Build 智能体", "session.question.pending.one": "{{count}} 个待处理问题", "session.question.pending.other": "{{count}} 个待处理问题", "session.followupDock.summary.one": "{{count}} 条排队消息", diff --git a/packages/app/src/i18n/zht.ts b/packages/app/src/i18n/zht.ts index 6cc3d555289d..523c84e6a734 100644 --- a/packages/app/src/i18n/zht.ts +++ b/packages/app/src/i18n/zht.ts @@ -770,6 +770,7 @@ export const dict = { "session.todo.expand": "展開", "session.question.minimize": "最小化問題", "session.question.restore": "還原問題", + "session.question.build": "回答並繼續使用 Build 代理程式", "session.question.pending.one": "{{count}} 個待處理問題", "session.question.pending.other": "{{count}} 個待處理問題", "session.followupDock.summary.one": "{{count}} 則佇列訊息", diff --git a/packages/app/src/pages/session/composer/session-question-dock.tsx b/packages/app/src/pages/session/composer/session-question-dock.tsx index 1fdcb11ccae6..cf595e60dbf3 100644 --- a/packages/app/src/pages/session/composer/session-question-dock.tsx +++ b/packages/app/src/pages/session/composer/session-question-dock.tsx @@ -9,6 +9,7 @@ import { showToast } from "@/utils/toast" import type { QuestionAnswer, QuestionRequest } from "@opencode-ai/sdk/v2" import { useLanguage } from "@/context/language" import { useSDK } from "@/context/sdk" +import { useSync } from "@/context/sync" import { makeEventListener } from "@solid-primitives/event-listener" import { createResizeObserver } from "@solid-primitives/resize-observer" import { useServerSDK } from "@/context/server-sdk" @@ -64,6 +65,7 @@ function Option(props: { export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit: () => void }> = (props) => { const sdk = useSDK() const serverSDK = useServerSDK() + const sync = useSync() const language = useLanguage() const cacheKey = ScopedKey.from(serverSDK().scope, props.request.id) @@ -96,6 +98,15 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit const multi = createMemo(() => question()?.multiple === true) const count = createMemo(() => options().length + 1) + // Only offer the build hand-off when the plan agent asked the question. + const canBuild = createMemo(() => { + if (serverSDK().protocolKind() !== "v1") return false + const messageID = props.request.tool?.messageID + if (!messageID) return false + const message = (sync().data.message[props.request.sessionID] ?? []).find((item) => item.id === messageID) + return message?.role === "assistant" && message.agent === "plan" + }) + const summary = createMemo(() => { const n = Math.min(store.tab + 1, total()) return language.t("session.question.progress", { current: n, total: total() }) @@ -223,8 +234,13 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit } const replyMutation = useMutation(() => ({ - mutationFn: (answers: QuestionAnswer[]) => - sdk().api.question.reply({ sessionID: props.request.sessionID, requestID: props.request.id, answers }), + mutationFn: (input: { answers: QuestionAnswer[]; agent?: string }) => + sdk().api.question.reply({ + sessionID: props.request.sessionID, + requestID: props.request.id, + answers: input.answers, + agent: input.agent, + }), onMutate: () => { props.onSubmit() }, @@ -249,9 +265,9 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit const sending = createMemo(() => replyMutation.isPending || rejectMutation.isPending) - const reply = async (answers: QuestionAnswer[]) => { + const reply = async (answers: QuestionAnswer[], agent?: string) => { if (sending()) return - await replyMutation.mutateAsync(answers) + await replyMutation.mutateAsync({ answers, agent }) } const reject = async () => { @@ -260,6 +276,11 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit } const submit = () => void reply(questions().map((_, i) => store.answers[i] ?? [])) + const submitBuild = () => + void reply( + questions().map((_, i) => store.answers[i] ?? []), + "build", + ) const answered = (i: number) => { if ((store.answers[i]?.length ?? 0) > 0) return true @@ -505,6 +526,11 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit {language.t("ui.common.back")} + + +