@duetso/agent 0.1.60 → 0.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetso/agent",
3
- "version": "0.1.60",
3
+ "version": "0.1.61",
4
4
  "description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
5
5
  "keywords": [
6
6
  "agent",
@@ -21,8 +21,20 @@ export interface SessionPromptInput {
21
21
  }
22
22
  export interface SessionAnswerInput {
23
23
  questions: TurnQuestion[];
24
- answers: Record<string, string>;
24
+ /**
25
+ * Selected option labels per question, keyed by `question.question`. Always
26
+ * an array so single-select and multi-select share one shape; an empty
27
+ * array means the user advanced past a multi-select without picking.
28
+ */
29
+ answers: Record<string, string[]>;
25
30
  behavior?: TurnPromptBehavior;
31
+ /**
32
+ * Optional free-form prompt text appended after the answer XML. Used by the
33
+ * TUI to flush partial answers along with a typed message in one turn.
34
+ */
35
+ message?: string;
36
+ /** Optional image attachments delivered with the synthesized prompt. */
37
+ images?: TurnPromptImage[];
26
38
  }
27
39
  export interface SessionEditFollowUpQueueInput {
28
40
  prompts: TurnFollowUpQueueEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"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"}
@@ -124,6 +124,8 @@ export class Session {
124
124
  questions: input.questions,
125
125
  answers: input.answers,
126
126
  behavior: input.behavior ?? "follow_up",
127
+ message: input.message,
128
+ images: input.images,
127
129
  };
128
130
  this.dispatchTurn(command);
129
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { TurnTerminalEvent } from "../types/protocol.js";
4
4
  export type { HistoryBlockKind, HistoryDisplayBlock, LimitedHistory } from "./history.js";
5
5
  export type { StartupHeaderInput } from "./history.js";
6
6
  export type { AutocompleteToken, AutocompleteToken as SkillAutocompleteToken, FileAutocompleteItem, SkillAutocompleteItem, SkillAutocompleteReplacement, } from "./autocomplete.js";
7
- export { activeFileAutocompleteToken, activeSkillAutocompleteToken, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionOptionSelection, moveSkillAutocompleteSelection, questionPickerAnswerPayload, replaceFileAutocompleteToken, replaceSkillAutocompleteToken, skillAutocompleteMatches, } from "./autocomplete.js";
7
+ export { activeFileAutocompleteToken, activeSkillAutocompleteToken, commitActiveAnswer, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionHighlight, moveSkillAutocompleteSelection, NO_HIGHLIGHT, questionPickerAnswer, replaceFileAutocompleteToken, replaceSkillAutocompleteToken, restoreSavedAnswer, skillAutocompleteMatches, } from "./autocomplete.js";
8
8
  export { formatSkillAutocompleteItem } from "./autocomplete.js";
9
9
  export { DUET_BANNER_LINES, historyDisplayBlocks, limitHistoryDisplayMessages, startupHeaderLines, } from "./history.js";
10
10
  export interface RunTuiInput {
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/tui/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA0BlE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAMV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAiC9B,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,IAAI,sBAAsB,EAC3C,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,kCAAkC,EAClC,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,6DAA6D;IAC7D,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAUD;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAsiEvF"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/tui/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA0BlE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAMV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAmC9B,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,IAAI,sBAAsB,EAC3C,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,kCAAkC,EAClC,qBAAqB,EACrB,8BAA8B,EAC9B,YAAY,EACZ,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,6DAA6D;IAC7D,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAUD;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA6uEvF"}
@@ -2,7 +2,7 @@ import { BoxRenderable, createCliRenderer, decodePasteBytes, fg, ScrollBoxRender
2
2
  import { writeClipboardText } from "./clipboard.js";
3
3
  import { describeMacClipboardTypes, loadImageFromPath, looksLikeImageFilePath, persistPastedImage, sniffImageMimeType, tryReadClipboardImage, tryReadClipboardText, } from "./paste.js";
4
4
  import { parseCopyArgument, selectCopyText } from "./transcript-log.js";
5
- import { activeFileAutocompleteToken, activeSkillAutocompleteToken, AUTOCOMPLETE_LIMITS, BUILT_IN_SLASH_COMMANDS, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionOptionSelection, moveSkillAutocompleteSelection, questionPickerAnswerPayload, skillAutocompleteMatches, } from "./autocomplete.js";
5
+ import { activeFileAutocompleteToken, activeSkillAutocompleteToken, AUTOCOMPLETE_LIMITS, BUILT_IN_SLASH_COMMANDS, commitActiveAnswer, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionHighlight, moveSkillAutocompleteSelection, NO_HIGHLIGHT, restoreSavedAnswer, skillAutocompleteMatches, } from "./autocomplete.js";
6
6
  import { homedir } from "node:os";
7
7
  import { buildFileIndex } from "./file-index.js";
8
8
  import { DUET_BANNER_LINES_COMPACT, historyDisplayBlocks, limitHistoryDisplayMessages, } from "./history.js";
@@ -12,7 +12,7 @@ import { orderedSelectableStarters, selectStarters } from "./starters.js";
12
12
  import { COLORS, HINT_IDLE, HINT_RUNNING, HINT_SELECTION_COPY } from "./theme.js";
13
13
  // Re-exports preserve the historical `tui/app.js` entry point used by tests
14
14
  // and external callers; the implementations live in focused leaf modules.
15
- export { activeFileAutocompleteToken, activeSkillAutocompleteToken, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionOptionSelection, moveSkillAutocompleteSelection, questionPickerAnswerPayload, replaceFileAutocompleteToken, replaceSkillAutocompleteToken, skillAutocompleteMatches, } from "./autocomplete.js";
15
+ export { activeFileAutocompleteToken, activeSkillAutocompleteToken, commitActiveAnswer, fileAutocompleteMatches, formatQuestionOptionDescription, formatSkillAutocompleteDescription, moveQuestionHighlight, moveSkillAutocompleteSelection, NO_HIGHLIGHT, questionPickerAnswer, replaceFileAutocompleteToken, replaceSkillAutocompleteToken, restoreSavedAnswer, skillAutocompleteMatches, } from "./autocomplete.js";
16
16
  export { formatSkillAutocompleteItem } from "./autocomplete.js";
17
17
  export { DUET_BANNER_LINES, historyDisplayBlocks, limitHistoryDisplayMessages, startupHeaderLines, } from "./history.js";
18
18
  import { assembleToolBlock, formatToolBlock, truncateToolText } from "./tool-formatters.js";
@@ -897,7 +897,20 @@ export async function runTui(input) {
897
897
  let fileAutocompleteItems = [];
898
898
  let fileAutocompleteSelectedIndex = 0;
899
899
  let pendingQuestions = [];
900
- let questionOptionSelectedIndex = 0;
900
+ let questionActiveIndex = 0;
901
+ // `NO_HIGHLIGHT` (-1) means no row is highlighted yet — the user must press
902
+ // Up/Down to land on a concrete row. Single-select live-records the
903
+ // highlight as the answer; multi-select uses highlight purely for
904
+ // navigation and toggles the checked set on Space/Enter.
905
+ let questionOptionSelectedIndex = NO_HIGHLIGHT;
906
+ // Per-question checked indices for the active multi-select question. Reset
907
+ // when the picker advances to the next question; single-select questions
908
+ // simply ignore this set and use `questionOptionSelectedIndex` instead.
909
+ let questionMultiSelectChecked = new Set();
910
+ // Answers collected while walking the picker, keyed by question text. We
911
+ // dispatch the full map once the user finishes the last question, or flush
912
+ // it early when they decide to type a free-form prompt instead.
913
+ let questionAccumulatedAnswers = {};
901
914
  let suppressNextEscapeExit = false;
902
915
  function skillAutocompleteIsOpen() {
903
916
  return Boolean(skillAutocompleteToken && skillAutocompleteItems.length > 0);
@@ -906,9 +919,12 @@ export async function runTui(input) {
906
919
  return Boolean(fileAutocompleteToken && fileAutocompleteItems.length > 0);
907
920
  }
908
921
  function questionPickerIsOpen() {
909
- const question = pendingQuestions[0];
922
+ const question = pendingQuestions[questionActiveIndex];
910
923
  return Boolean(question && question.options.length > 0);
911
924
  }
925
+ function activeQuestion() {
926
+ return pendingQuestions[questionActiveIndex];
927
+ }
912
928
  function hideSkillAutocomplete() {
913
929
  skillAutocompleteToken = undefined;
914
930
  skillAutocompleteItems = [];
@@ -933,7 +949,10 @@ export async function runTui(input) {
933
949
  }
934
950
  function hideQuestions() {
935
951
  pendingQuestions = [];
936
- questionOptionSelectedIndex = 0;
952
+ questionActiveIndex = 0;
953
+ questionOptionSelectedIndex = NO_HIGHLIGHT;
954
+ questionMultiSelectChecked = new Set();
955
+ questionAccumulatedAnswers = {};
937
956
  questionPanel.visible = false;
938
957
  for (const row of questionRows) {
939
958
  row.visible = false;
@@ -942,46 +961,176 @@ export async function runTui(input) {
942
961
  }
943
962
  function showQuestions(questions) {
944
963
  pendingQuestions = questions;
945
- questionOptionSelectedIndex = 0;
964
+ questionActiveIndex = 0;
965
+ questionOptionSelectedIndex = NO_HIGHLIGHT;
966
+ questionMultiSelectChecked = new Set();
967
+ questionAccumulatedAnswers = {};
946
968
  renderQuestions();
947
969
  }
970
+ /**
971
+ * Total navigable rows for the active question. The Up/Down handler clamps
972
+ * navigation to what is actually rendered on screen so a user cannot land
973
+ * the highlight on a row they cannot see.
974
+ */
975
+ function activeRowCount() {
976
+ const question = activeQuestion();
977
+ if (!question)
978
+ return 0;
979
+ const optionLimit = question.multiSelect ? QUESTION_OPTION_LIMIT - 1 : QUESTION_OPTION_LIMIT;
980
+ const visibleOptionCount = Math.min(question.options.length, optionLimit);
981
+ return visibleOptionCount + (question.multiSelect ? 1 : 0);
982
+ }
983
+ /**
984
+ * Row index of the synthetic Done row when the active question is
985
+ * multi-select; `undefined` otherwise so callers don't compare against a
986
+ * sentinel value. The Done row sits one past the last visible option,
987
+ * clamped to the same limit `renderQuestions` uses.
988
+ */
989
+ function activeQuestionDoneIndex() {
990
+ const question = activeQuestion();
991
+ if (!question?.multiSelect)
992
+ return undefined;
993
+ const optionLimit = QUESTION_OPTION_LIMIT - 1;
994
+ return Math.min(question.options.length, optionLimit);
995
+ }
948
996
  function renderQuestions() {
949
- const question = pendingQuestions[0];
997
+ const question = activeQuestion();
950
998
  if (!question || question.options.length === 0) {
951
999
  hideQuestions();
952
1000
  return;
953
1001
  }
954
1002
  questionPanel.visible = true;
955
- questionTitle.content = question.header
1003
+ const baseTitle = question.header
956
1004
  ? `${question.header}: ${question.question}`
957
1005
  : question.question;
958
- const visibleOptions = question.options.slice(0, QUESTION_OPTION_LIMIT);
1006
+ const positionPrefix = pendingQuestions.length > 1 ? `(${questionActiveIndex + 1}/${pendingQuestions.length}) ` : "";
1007
+ const navHint = pendingQuestions.length > 1 ? " [←/→ navigate]" : "";
1008
+ questionTitle.content = `${positionPrefix}${baseTitle}${navHint}`;
1009
+ const optionLimit = question.multiSelect ? QUESTION_OPTION_LIMIT - 1 : QUESTION_OPTION_LIMIT;
1010
+ const visibleOptions = question.options.slice(0, optionLimit);
1011
+ const doneIndex = activeQuestionDoneIndex();
959
1012
  for (const [index, row] of questionRows.entries()) {
960
- const option = visibleOptions[index];
961
- if (!option) {
962
- row.visible = false;
963
- row.content = "";
1013
+ if (index < visibleOptions.length) {
1014
+ const option = visibleOptions[index];
1015
+ const highlighted = index === questionOptionSelectedIndex;
1016
+ const checkbox = question.multiSelect
1017
+ ? questionMultiSelectChecked.has(index)
1018
+ ? "[x] "
1019
+ : "[ ] "
1020
+ : "";
1021
+ const labelColor = highlighted ? COLORS.status : COLORS.user;
1022
+ const description = formatQuestionOptionDescription(option.description);
1023
+ const labelLine = `${checkbox}${option.label}`;
1024
+ row.content = description
1025
+ ? t `${fg(labelColor)(labelLine)}\n${description}`
1026
+ : t `${fg(labelColor)(labelLine)}`;
1027
+ row.fg = highlighted ? COLORS.agent : COLORS.hint;
1028
+ row.visible = true;
964
1029
  continue;
965
1030
  }
966
- const selected = index === questionOptionSelectedIndex;
967
- const labelColor = selected ? COLORS.status : COLORS.user;
968
- const description = formatQuestionOptionDescription(option.description);
969
- row.content = description
970
- ? t `${fg(labelColor)(option.label)}\n${description}`
971
- : t `${fg(labelColor)(option.label)}`;
972
- row.fg = selected ? COLORS.agent : COLORS.hint;
973
- row.visible = true;
1031
+ if (question.multiSelect && index === visibleOptions.length) {
1032
+ // Synthetic Done row carries no checkbox prefix and self-documents
1033
+ // its purpose so users discover how to advance from a multi-select.
1034
+ const highlighted = doneIndex === questionOptionSelectedIndex;
1035
+ const labelColor = highlighted ? COLORS.status : COLORS.user;
1036
+ const description = formatQuestionOptionDescription("Advance to next question");
1037
+ row.content = t `${fg(labelColor)("Done")}\n${description}`;
1038
+ row.fg = highlighted ? COLORS.agent : COLORS.hint;
1039
+ row.visible = true;
1040
+ continue;
1041
+ }
1042
+ row.visible = false;
1043
+ row.content = "";
1044
+ }
1045
+ }
1046
+ function moveActiveQuestionHighlight(direction) {
1047
+ const question = activeQuestion();
1048
+ if (!question)
1049
+ return;
1050
+ questionOptionSelectedIndex = moveQuestionHighlight(questionOptionSelectedIndex, activeRowCount(), direction);
1051
+ // Single-select live-records the highlight as the answer so a
1052
+ // prompt-flush or arrow-nav captures it without requiring Space/Enter.
1053
+ // Multi-select keeps highlight separate from the toggled set.
1054
+ if (!question.multiSelect) {
1055
+ questionAccumulatedAnswers = commitActiveAnswer(question, questionOptionSelectedIndex, questionMultiSelectChecked, questionAccumulatedAnswers);
1056
+ }
1057
+ renderQuestions();
1058
+ }
1059
+ function toggleActiveMultiSelectOption() {
1060
+ const question = activeQuestion();
1061
+ if (!question?.multiSelect)
1062
+ return;
1063
+ if (questionMultiSelectChecked.has(questionOptionSelectedIndex)) {
1064
+ questionMultiSelectChecked.delete(questionOptionSelectedIndex);
974
1065
  }
1066
+ else {
1067
+ questionMultiSelectChecked.add(questionOptionSelectedIndex);
1068
+ }
1069
+ questionAccumulatedAnswers = commitActiveAnswer(question, questionOptionSelectedIndex, questionMultiSelectChecked, questionAccumulatedAnswers);
1070
+ renderQuestions();
975
1071
  }
976
- function submitSelectedQuestionOption() {
977
- const answers = questionPickerAnswerPayload(pendingQuestions, questionOptionSelectedIndex);
978
- if (!answers)
1072
+ function navigateActiveQuestion(direction) {
1073
+ if (pendingQuestions.length <= 1)
979
1074
  return false;
980
- const answerText = Object.values(answers).join("\n");
981
- recordTranscriptEntry("user", answerText);
982
- appendBlock("you:", answerText, COLORS.user);
1075
+ const nextIndex = questionActiveIndex + direction;
1076
+ if (nextIndex < 0 || nextIndex >= pendingQuestions.length)
1077
+ return false;
1078
+ questionAccumulatedAnswers = commitActiveAnswer(activeQuestion(), questionOptionSelectedIndex, questionMultiSelectChecked, questionAccumulatedAnswers);
1079
+ questionActiveIndex = nextIndex;
1080
+ const restored = restoreSavedAnswer(activeQuestion(), questionAccumulatedAnswers);
1081
+ questionOptionSelectedIndex = restored.selectedIndex;
1082
+ questionMultiSelectChecked = restored.checked;
1083
+ renderQuestions();
1084
+ return true;
1085
+ }
1086
+ function describeAnswerLabels(question, labels) {
1087
+ if (labels.length === 0)
1088
+ return question.multiSelect ? "(no selection)" : "";
1089
+ return labels.join(", ");
1090
+ }
1091
+ /**
1092
+ * Handle Space/Enter when the picker is open and the composer is empty.
1093
+ * Multi-select on a regular row toggles; multi-select on the Done row
1094
+ * advances. Single-select always advances (highlight = answer is already
1095
+ * live-recorded by Up/Down). No-op when nothing is highlighted yet so the
1096
+ * user is forced to make an explicit choice (or skip via Right-arrow).
1097
+ */
1098
+ function confirmActiveSelection() {
1099
+ const question = activeQuestion();
1100
+ if (!question)
1101
+ return false;
1102
+ if (questionOptionSelectedIndex === NO_HIGHLIGHT)
1103
+ return false;
1104
+ if (question.multiSelect && questionOptionSelectedIndex !== activeQuestionDoneIndex()) {
1105
+ toggleActiveMultiSelectOption();
1106
+ return true;
1107
+ }
1108
+ return advanceOrSubmit();
1109
+ }
1110
+ function advanceOrSubmit() {
1111
+ const question = activeQuestion();
1112
+ if (!question)
1113
+ return false;
1114
+ const accumulatedForActive = questionAccumulatedAnswers[question.question] ?? [];
1115
+ const transcriptText = describeAnswerLabels(question, accumulatedForActive);
1116
+ if (transcriptText) {
1117
+ recordTranscriptEntry("user", transcriptText);
1118
+ appendBlock("you:", transcriptText, COLORS.user);
1119
+ }
1120
+ if (questionActiveIndex < pendingQuestions.length - 1) {
1121
+ questionActiveIndex += 1;
1122
+ const restored = restoreSavedAnswer(activeQuestion(), questionAccumulatedAnswers);
1123
+ questionOptionSelectedIndex = restored.selectedIndex;
1124
+ questionMultiSelectChecked = restored.checked;
1125
+ renderQuestions();
1126
+ return true;
1127
+ }
983
1128
  void input.session
984
- .answer({ questions: pendingQuestions, answers, behavior: "follow_up" })
1129
+ .answer({
1130
+ questions: pendingQuestions,
1131
+ answers: questionAccumulatedAnswers,
1132
+ behavior: "follow_up",
1133
+ })
985
1134
  .catch(reportError);
986
1135
  hideQuestions();
987
1136
  markRunning();
@@ -1319,17 +1468,33 @@ export async function runTui(input) {
1319
1468
  }
1320
1469
  if (questionPickerIsOpen()) {
1321
1470
  if (key.name === "up") {
1322
- questionOptionSelectedIndex = moveQuestionOptionSelection(questionOptionSelectedIndex, Math.min(pendingQuestions[0]?.options.length ?? 0, QUESTION_OPTION_LIMIT), -1);
1323
- renderQuestions();
1471
+ moveActiveQuestionHighlight(-1);
1324
1472
  key.preventDefault();
1325
1473
  return;
1326
1474
  }
1327
1475
  if (key.name === "down") {
1328
- questionOptionSelectedIndex = moveQuestionOptionSelection(questionOptionSelectedIndex, Math.min(pendingQuestions[0]?.options.length ?? 0, QUESTION_OPTION_LIMIT), 1);
1329
- renderQuestions();
1476
+ moveActiveQuestionHighlight(1);
1477
+ key.preventDefault();
1478
+ return;
1479
+ }
1480
+ // Space confirms the active selection only when the composer is empty
1481
+ // so users can still type a free-form prompt that includes spaces.
1482
+ if (key.name === "space" && inputField.plainText.length === 0) {
1330
1483
  key.preventDefault();
1484
+ confirmActiveSelection();
1331
1485
  return;
1332
1486
  }
1487
+ // Left/Right navigate between questions, but only when the composer is
1488
+ // empty so editing a typed prompt with arrow keys still works.
1489
+ if ((key.name === "left" || key.name === "right") &&
1490
+ inputField.plainText.length === 0 &&
1491
+ pendingQuestions.length > 1) {
1492
+ const direction = key.name === "left" ? -1 : 1;
1493
+ if (navigateActiveQuestion(direction)) {
1494
+ key.preventDefault();
1495
+ return;
1496
+ }
1497
+ }
1333
1498
  if (key.name === "escape") {
1334
1499
  key.preventDefault();
1335
1500
  suppressNextEscapeExit = true;
@@ -1353,7 +1518,7 @@ export async function runTui(input) {
1353
1518
  submit(value);
1354
1519
  }
1355
1520
  else if (questionPickerIsOpen()) {
1356
- submitSelectedQuestionOption();
1521
+ confirmActiveSelection();
1357
1522
  }
1358
1523
  else if (startersAreVisible()) {
1359
1524
  submitHighlightedStarter();
@@ -1636,11 +1801,29 @@ export async function runTui(input) {
1636
1801
  const lines = submittedImages.map((p) => `📎 ${p.label}: ${p.path}`).join("\n");
1637
1802
  appendBlock(null, lines, COLORS.hint);
1638
1803
  }
1639
- hideQuestions();
1640
1804
  const images = submittedImages.map((p) => p.attachment);
1641
1805
  // Reset before dispatch so an in-flight error does not leave the user
1642
1806
  // double-charged with the same attachments on retry.
1643
1807
  clearPendingImages();
1808
+ // If the question picker is open, treat the typed message as a flush:
1809
+ // dispatch whatever answers were already collected together with the new
1810
+ // prompt text so the model sees one combined turn instead of dropping
1811
+ // the partial answers on the floor.
1812
+ if (pendingQuestions.length > 0) {
1813
+ void input.session
1814
+ .answer({
1815
+ questions: pendingQuestions,
1816
+ answers: questionAccumulatedAnswers,
1817
+ behavior: "follow_up",
1818
+ message,
1819
+ images,
1820
+ })
1821
+ .catch(reportError);
1822
+ hideQuestions();
1823
+ if (!running)
1824
+ markRunning();
1825
+ return;
1826
+ }
1644
1827
  // Every submit — running or idle — is a follow_up. While the agent is
1645
1828
  // running this queues; while idle it kicks off a fresh turn. Single
1646
1829
  // mental model: type, press Enter, your message lands.