@introspection-ai/recipes 0.17.1 → 0.18.0

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.
@@ -0,0 +1,12 @@
1
+ import type { ExtensionUIContext } from "@earendil-works/pi-coding-agent";
2
+ interface MultiSelectOption {
3
+ label: string;
4
+ description?: string;
5
+ }
6
+ export interface MultiSelectTuiResult {
7
+ selected: number[];
8
+ custom?: boolean;
9
+ }
10
+ export declare function showMultiSelectTui(message: string, options: readonly MultiSelectOption[], ui: ExtensionUIContext, signal: AbortSignal | undefined): Promise<MultiSelectTuiResult | null>;
11
+ export {};
12
+ //# sourceMappingURL=interaction-tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction-tui.d.ts","sourceRoot":"","sources":["../src/interaction-tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,EAAE,EAAE,kBAAkB,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsHtC"}
@@ -0,0 +1,127 @@
1
+ import { Key, matchesKey, truncateToWidth } from "@earendil-works/pi-tui";
2
+ export function showMultiSelectTui(message, options, ui, signal) {
3
+ return ui.custom((tui, theme, _keybindings, done) => {
4
+ const selected = new Set();
5
+ const customIndex = options.length;
6
+ const doneIndex = options.length + 1;
7
+ const itemCount = options.length + 2;
8
+ let activeIndex = 0;
9
+ let settled = false;
10
+ const finish = (result) => {
11
+ if (settled)
12
+ return;
13
+ settled = true;
14
+ signal?.removeEventListener("abort", cancel);
15
+ done(result);
16
+ };
17
+ const cancel = () => finish(null);
18
+ signal?.addEventListener("abort", cancel, { once: true });
19
+ if (signal?.aborted)
20
+ queueMicrotask(cancel);
21
+ const refresh = () => tui.requestRender();
22
+ const toggle = (index) => {
23
+ if (selected.has(index))
24
+ selected.delete(index);
25
+ else
26
+ selected.add(index);
27
+ refresh();
28
+ };
29
+ return {
30
+ render(width) {
31
+ const lines = [];
32
+ const add = (line) => lines.push(truncateToWidth(line, width));
33
+ const title = " Select all that apply ";
34
+ add(theme.fg("accent", `-${title}${"-".repeat(Math.max(0, width - title.length - 1))}`));
35
+ for (const line of wrapText(message, width - 2)) {
36
+ add(` ${theme.fg("text", theme.bold(line))}`);
37
+ }
38
+ lines.push("");
39
+ for (let index = 0; index < options.length; index += 1) {
40
+ const option = options[index];
41
+ const active = index === activeIndex;
42
+ const prefix = active ? theme.fg("accent", " > ") : " ";
43
+ const marker = selected.has(index) ? "[x]" : "[ ]";
44
+ const label = `${marker} ${index + 1}. ${option.label}`;
45
+ add(prefix + theme.fg(active ? "accent" : "text", label));
46
+ for (const line of wrapText(option.description ?? "", width - 8)) {
47
+ add(` ${theme.fg("muted", line)}`);
48
+ }
49
+ }
50
+ const customActive = activeIndex === customIndex;
51
+ add((customActive ? theme.fg("accent", " > ") : " ") +
52
+ theme.fg(customActive ? "accent" : "muted", "Other"));
53
+ const doneActive = activeIndex === doneIndex;
54
+ add((doneActive ? theme.fg("accent", " > ") : " ") +
55
+ theme.fg(doneActive ? "accent" : "text", `Done (${selected.size})`));
56
+ lines.push("");
57
+ add(theme.fg("dim", " Up/Down move - Space toggle - Enter action - Esc dismiss"));
58
+ add(theme.fg("accent", "-".repeat(width)));
59
+ return lines;
60
+ },
61
+ invalidate() { },
62
+ handleInput(data) {
63
+ if (matchesKey(data, Key.up)) {
64
+ activeIndex = (activeIndex - 1 + itemCount) % itemCount;
65
+ refresh();
66
+ return;
67
+ }
68
+ if (matchesKey(data, Key.down)) {
69
+ activeIndex = (activeIndex + 1) % itemCount;
70
+ refresh();
71
+ return;
72
+ }
73
+ if (data.length === 1 && data >= "1" && data <= "9") {
74
+ const index = Number(data) - 1;
75
+ if (index < options.length)
76
+ toggle(index);
77
+ return;
78
+ }
79
+ if (matchesKey(data, Key.space)) {
80
+ if (activeIndex < options.length)
81
+ toggle(activeIndex);
82
+ return;
83
+ }
84
+ if (matchesKey(data, Key.enter)) {
85
+ if (activeIndex < options.length) {
86
+ toggle(activeIndex);
87
+ }
88
+ else if (activeIndex === customIndex) {
89
+ finish({ selected: [...selected], custom: true });
90
+ }
91
+ else {
92
+ finish({ selected: [...selected] });
93
+ }
94
+ return;
95
+ }
96
+ if (matchesKey(data, Key.escape))
97
+ finish(null);
98
+ },
99
+ dispose() {
100
+ signal?.removeEventListener("abort", cancel);
101
+ },
102
+ };
103
+ });
104
+ }
105
+ function wrapText(text, width) {
106
+ const lines = [];
107
+ for (const paragraph of text.split("\n")) {
108
+ const words = paragraph.split(/\s+/).filter(Boolean);
109
+ if (words.length === 0)
110
+ continue;
111
+ let line = "";
112
+ for (const word of words) {
113
+ const candidate = line ? `${line} ${word}` : word;
114
+ if (line && candidate.length > Math.max(10, width)) {
115
+ lines.push(line);
116
+ line = word;
117
+ }
118
+ else {
119
+ line = candidate;
120
+ }
121
+ }
122
+ if (line)
123
+ lines.push(line);
124
+ }
125
+ return lines;
126
+ }
127
+ //# sourceMappingURL=interaction-tui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction-tui.js","sourceRoot":"","sources":["../src/interaction-tui.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,8 @@ export declare const ASK_USER_REASON_TOOL_CALL = "tool_call";
40
40
  * gets no default timeout (a visible dialog can wait for the user).
41
41
  */
42
42
  export declare const DEFAULT_RPC_DIALOG_TIMEOUT_MS = 120000;
43
+ /** Whether a question accepts one answer or several. */
44
+ export type AskUserSelection = "single" | "multiple";
43
45
  /** Optional structured rendering hints for hosts with richer UI. */
44
46
  export interface AskUserDisplay {
45
47
  /** Renderer kind, e.g. `search_proposal`. */
@@ -73,6 +75,8 @@ export interface AskUserRequest {
73
75
  message: string;
74
76
  /** Optional choices for a question. Hosts may also allow a custom answer. */
75
77
  options?: readonly (string | AskUserOption)[];
78
+ /** Answer cardinality. Defaults to `single`. `multiple` requires options. */
79
+ selection?: AskUserSelection;
76
80
  /**
77
81
  * Native renderer or tool hints for hosts that can render richer UI.
78
82
  */
@@ -92,6 +96,8 @@ export interface AskUserQuestionRequest {
92
96
  header?: string;
93
97
  /** Optional answer suggestions. Hosts may also allow a custom answer. */
94
98
  options?: readonly (string | AskUserOption)[];
99
+ /** Answer cardinality. Defaults to `single`. `multiple` requires options. */
100
+ selection?: AskUserSelection;
95
101
  /** Additional renderer or tool hints. */
96
102
  metadata?: Record<string, unknown>;
97
103
  /** Optional structured display copy. */
@@ -142,6 +148,11 @@ export interface AskUserOptions {
142
148
  export type AskUserOutcome = {
143
149
  type: "answered";
144
150
  answer: string;
151
+ answers?: never;
152
+ } | {
153
+ type: "answered";
154
+ answers: string[];
155
+ answer?: never;
145
156
  } | {
146
157
  type: "approved";
147
158
  feedback?: string;
@@ -164,6 +175,7 @@ export interface AskUserInterrupt {
164
175
  reason: string;
165
176
  message: string;
166
177
  options?: AskUserOption[];
178
+ selection?: AskUserSelection;
167
179
  metadata?: Record<string, unknown>;
168
180
  display?: AskUserDisplay;
169
181
  expiresAt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../src/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../src/interactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,mBAAmB,CAAC;AAC/D,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAC3D,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAOrD,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAarD,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,wCAAwC;IACxC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,GAAG,EAAE,gBAAgB,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,EAAE,EAAE,kBAAkB,EACtB,MAAM,EAAE,wBAAwB,KAC7B,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACzC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,mCAAmC;AACnC,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE;AAC3B,mEAAmE;GACjE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,cAAc,CAAC;CACzB;AAiBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3E;AAED,sEAAsE;AACtE,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,aAAa,CAAC,CAyDxB;AAED,sFAAsF;AACtF,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,aAAa,CAAC,CA6BxB;AA4RD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAqBxE;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,yBAAyB,GAClC,MAAM,CAyCR"}
@@ -43,6 +43,7 @@ export const DEFAULT_RPC_DIALOG_TIMEOUT_MS = 120_000;
43
43
  const APPROVE_OPTION = "Approve";
44
44
  const REQUEST_CHANGES_OPTION = "Request changes";
45
45
  const CUSTOM_ANSWER_OPTION = "Other";
46
+ const COMPLETE_SELECTION_OPTION = "Done";
46
47
  // Frozen envelope literals — the interaction wire contract. Interrupt-capable
47
48
  // hosts synthesize the same literals when resuming a paused run, so recipes
48
49
  // see identical tool results in every mode. Do not reword without a
@@ -73,6 +74,10 @@ export function autoResolveInteractions(fn) {
73
74
  /** Ask the user, resolving the best available interaction channel. */
74
75
  export async function askUser(request, opts) {
75
76
  const env = opts.env ?? process.env;
77
+ if (request.selection === "multiple" &&
78
+ normalizeOptions(request.options).length === 0) {
79
+ throw new Error("Multiple selection requires at least one option");
80
+ }
76
81
  if (interactionAutoResolution.getStore() === true) {
77
82
  return finishedResult(request, isApprovalReason(request.reason)
78
83
  ? { type: "approved" }
@@ -94,7 +99,8 @@ export async function askUser(request, opts) {
94
99
  ? await opts.interactive(opts.ctx.ui, dialog)
95
100
  : undefined;
96
101
  throwIfAborted(opts.signal);
97
- const outcome = custom ?? (await dialogWalk(request, opts.ctx.ui, dialog, opts.signal));
102
+ const outcome = custom ??
103
+ (await dialogWalk(request, opts.ctx.ui, dialog, opts.signal, opts.ctx.mode === "tui"));
98
104
  return finishedResult(request, outcome);
99
105
  }
100
106
  if (flagEnabled(env.PI_INTERRUPT_RESUME)) {
@@ -114,6 +120,7 @@ export async function askUserQuestion(request, opts) {
114
120
  reason: ASK_USER_REASON_INPUT_REQUIRED,
115
121
  message: request.question,
116
122
  options: request.options,
123
+ ...(request.selection ? { selection: request.selection } : {}),
117
124
  ...(Object.keys(metadata).length > 0 ? { metadata } : {}),
118
125
  ...(request.display ? { display: request.display } : {}),
119
126
  ...(request.expiresAt ? { expiresAt: request.expiresAt } : {}),
@@ -201,7 +208,7 @@ function compactDisplay(display) {
201
208
  * approvals, a text input otherwise. Empty and dismissed answers decline —
202
209
  * the user saw the question and chose not to answer it.
203
210
  */
204
- async function dialogWalk(request, ui, dialog, signal) {
211
+ async function dialogWalk(request, ui, dialog, signal, preferCustomTui) {
205
212
  if (isApprovalReason(request.reason)) {
206
213
  // ui.confirm() cannot carry per-option labels, so approvals use a select.
207
214
  const choice = await ui.select(localDialogMessage(request), [APPROVE_OPTION, REQUEST_CHANGES_OPTION], dialog);
@@ -219,6 +226,9 @@ async function dialogWalk(request, ui, dialog, signal) {
219
226
  }
220
227
  if (request.options && request.options.length > 0) {
221
228
  const options = normalizeOptions(request.options);
229
+ if (request.selection === "multiple") {
230
+ return multiSelectDialogWalk(request, options, ui, dialog, signal, preferCustomTui);
231
+ }
222
232
  const selectOptions = [...options.map((option) => option.label)];
223
233
  if (!selectOptions.includes(CUSTOM_ANSWER_OPTION)) {
224
234
  selectOptions.push(CUSTOM_ANSWER_OPTION);
@@ -248,6 +258,79 @@ async function dialogWalk(request, ui, dialog, signal) {
248
258
  ? { type: "answered", answer: trimmed }
249
259
  : { type: "declined" };
250
260
  }
261
+ async function multiSelectDialogWalk(request, options, ui, dialog, signal, preferCustomTui) {
262
+ if (preferCustomTui && typeof ui.custom === "function") {
263
+ const { showMultiSelectTui } = await import("./interaction-tui.js");
264
+ const result = await showMultiSelectTui(localDialogMessage(request), options, ui, signal);
265
+ throwIfAborted(signal);
266
+ if (!result)
267
+ return { type: "declined" };
268
+ const answers = selectedAnswers(options, new Set(result.selected));
269
+ if (result.custom) {
270
+ const text = await ui.input("Answer", "Type another answer", dialog);
271
+ throwIfAborted(signal);
272
+ const customAnswer = text?.trim();
273
+ if (!customAnswer) {
274
+ return answers.length > 0
275
+ ? { type: "answered", answers }
276
+ : { type: "declined" };
277
+ }
278
+ return {
279
+ type: "answered",
280
+ answers: normalizeAnswers([...answers, customAnswer]),
281
+ };
282
+ }
283
+ return answers.length > 0
284
+ ? { type: "answered", answers }
285
+ : { type: "declined" };
286
+ }
287
+ return multiSelectFallback(request, options, ui, dialog, signal);
288
+ }
289
+ async function multiSelectFallback(request, options, ui, dialog, signal) {
290
+ const selected = new Set();
291
+ while (true) {
292
+ const choices = options.map((option, index) => `${selected.has(index) ? "[x]" : "[ ]"} ${option.label}`);
293
+ choices.push(CUSTOM_ANSWER_OPTION, COMPLETE_SELECTION_OPTION);
294
+ const choice = await ui.select(localDialogMessage(request), choices, dialog);
295
+ throwIfAborted(signal);
296
+ if (choice === undefined)
297
+ return { type: "declined" };
298
+ if (choice === COMPLETE_SELECTION_OPTION) {
299
+ const answers = selectedAnswers(options, selected);
300
+ return answers.length > 0
301
+ ? { type: "answered", answers }
302
+ : { type: "declined" };
303
+ }
304
+ if (choice === CUSTOM_ANSWER_OPTION) {
305
+ const text = await ui.input("Answer", "Type another answer", dialog);
306
+ throwIfAborted(signal);
307
+ const customAnswer = text?.trim();
308
+ if (!customAnswer)
309
+ continue;
310
+ return {
311
+ type: "answered",
312
+ answers: normalizeAnswers([
313
+ ...selectedAnswers(options, selected),
314
+ customAnswer,
315
+ ]),
316
+ };
317
+ }
318
+ const optionIndex = choices.indexOf(choice);
319
+ if (optionIndex < 0 || optionIndex >= options.length)
320
+ continue;
321
+ if (selected.has(optionIndex)) {
322
+ selected.delete(optionIndex);
323
+ }
324
+ else {
325
+ selected.add(optionIndex);
326
+ }
327
+ }
328
+ }
329
+ function selectedAnswers(options, selected) {
330
+ return [
331
+ ...new Set(options.flatMap((option, index) => selected.has(index) ? [option.value?.trim() || option.label] : [])),
332
+ ];
333
+ }
251
334
  function localDialogMessage(request) {
252
335
  const display = request.display;
253
336
  if (!display)
@@ -288,7 +371,9 @@ function localDialogMessage(request) {
288
371
  export function formatInteractionOutcome(outcome) {
289
372
  switch (outcome.type) {
290
373
  case "answered":
291
- return `Answer: ${outcome.answer}`;
374
+ return outcome.answers
375
+ ? `Answers: ${JSON.stringify(outcome.answers)}`
376
+ : `Answer: ${outcome.answer}`;
292
377
  case "approved":
293
378
  return outcome.feedback
294
379
  ? `Approved. Feedback: ${outcome.feedback}`
@@ -321,6 +406,10 @@ export function formatInteractionResume(response) {
321
406
  if (answer) {
322
407
  return formatInteractionOutcome({ type: "answered", answer });
323
408
  }
409
+ const answers = normalizeAnswers(payload?.answers);
410
+ if (answers.length > 0) {
411
+ return formatInteractionOutcome({ type: "answered", answers });
412
+ }
324
413
  if (typeof payload?.approved === "boolean") {
325
414
  const feedback = typeof payload.feedback === "string" ? payload.feedback.trim() : "";
326
415
  return formatInteractionOutcome(payload.approved
@@ -337,6 +426,18 @@ export function formatInteractionResume(response) {
337
426
  ? `Interrupt response: ${response.status}`
338
427
  : "Interrupt response received.";
339
428
  }
429
+ function normalizeAnswers(value) {
430
+ if (!Array.isArray(value))
431
+ return [];
432
+ return [
433
+ ...new Set(value.flatMap((answer) => {
434
+ if (typeof answer !== "string")
435
+ return [];
436
+ const trimmed = answer.trim();
437
+ return trimmed ? [trimmed] : [];
438
+ })),
439
+ ];
440
+ }
340
441
  function normalizeOptions(options) {
341
442
  return (options ?? []).flatMap((option) => {
342
443
  if (typeof option === "string") {
@@ -364,6 +465,7 @@ function interruptDetails(request, outcome) {
364
465
  reason: request.reason,
365
466
  message: request.message,
366
467
  ...(options.length > 0 ? { options } : {}),
468
+ ...(request.selection ? { selection: request.selection } : {}),
367
469
  ...(request.metadata ? { metadata: request.metadata } : {}),
368
470
  ...(request.display ? { display: request.display } : {}),
369
471
  ...(request.expiresAt ? { expiresAt: request.expiresAt } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../src/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../src/interactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,mEAAmE;AACnE,MAAM,CAAC,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;AAC/D,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,cAAc,CAAC;AAC3D,wEAAwE;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAErD,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACjD,MAAM,oBAAoB,GAAG,OAAO,CAAC;AACrC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAKzC,8EAA8E;AAC9E,4EAA4E;AAC5E,oEAAoE;AACpE,0DAA0D;AAC1D,MAAM,iBAAiB,GACrB,2DAA2D,CAAC;AAC9D,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AACzD,MAAM,oBAAoB,GACxB,kFAAkF;IAClF,uFAAuF,CAAC;AAwJ1F,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,+CAA+C;AAC/C,MAAM,+BAA+B,GAAG,MAAM,CAAC,GAAG,CAChD,uDAAuD,CACxD,CAAC;AACF,MAAM,kBAAkB,GAAG,UAE1B,CAAC;AACF,MAAM,yBAAyB,GAC7B,kBAAkB,CAAC,+BAA+B,CAAC;IACnD,IAAI,iBAAiB,EAAW,CAAC;AACnC,kBAAkB,CAAC,+BAA+B,CAAC,GAAG,yBAAyB,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAI,EAAoB;IAC7D,OAAO,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAuB,EACvB,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAEpC,IACE,OAAO,CAAC,SAAS,KAAK,UAAU;QAChC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,yBAAyB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,cAAc,CACnB,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC9C,OAAO,cAAc,CACnB,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,OAAO,GACX,IAAI,CAAC,SAAS;YACd,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,MAAM,GAA6B;YACvC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,OAAO,GACX,MAAM;YACN,CAAC,MAAM,UAAU,CACf,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,EAAE,EACX,MAAM,EACN,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CACxB,CAAC,CAAC;QACL,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzC,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,IAAoB;IAEpB,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,IAAI,EAAE,mBAAmB;QACzB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,OAAO,CACZ;QACE,MAAM,EAAE,8BAA8B;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,IAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,IAAI;QACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,IAAI;QACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,OAAO,CACZ;QACE,MAAM,EAAE,4BAA4B;QACpC,OAAO;QACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,OAAO,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,CACL,MAAM,KAAK,4BAA4B;QACvC,MAAM,KAAK,yBAAyB,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B;IACrD,wEAAwE;IACxE,yEAAyE;IACzE,iCAAiC;IACjC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B;IACpD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACZ,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9C,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CACvB,OAAuB,EACvB,EAAsB,EACtB,MAAgC,EAChC,MAA+B,EAC/B,eAAwB;IAExB,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAC5B,kBAAkB,CAAC,OAAO,CAAC,EAC3B,CAAC,cAAc,EAAE,sBAAsB,CAAC,EACxC,MAAM,CACP,CAAC;QACF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtD,IAAI,MAAM,KAAK,cAAc;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,UAAU,EACV,0CAA0C,EAC1C,MAAM,CACP,CAAC;QACF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;QACjC,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE;YACnD,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACrC,OAAO,qBAAqB,CAC1B,OAAO,EACP,OAAO,EACP,EAAE,EACF,MAAM,EACN,MAAM,EACN,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClD,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAC5B,kBAAkB,CAAC,OAAO,CAAC,EAC3B,aAAa,EACb,MAAM,CACP,CAAC;QACF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CACzB,QAAQ,EACR,sBAAsB,EACtB,MAAM,CACP,CAAC;YACF,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO,OAAO;gBACZ,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;gBACvC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,KAAK,IAAI,MAAM;SAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5E,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QACvC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAuB,EACvB,OAAwB,EACxB,EAAsB,EACtB,MAAgC,EAChC,MAA+B,EAC/B,eAAwB;IAExB,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,kBAAkB,CAAC,OAAO,CAAC,EAC3B,OAAO,EACP,EAAE,EACF,MAAM,CACP,CAAC;QACF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACrE,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,YAAY,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;oBAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC3B,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;aACtD,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAuB,EACvB,OAAwB,EACxB,EAAsB,EACtB,MAAgC,EAChC,MAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CACzB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAC5E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7E,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAEtD,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;gBAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACrE,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,YAAY,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gBAAgB,CAAC;oBACxB,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACrC,YAAY;iBACb,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM;YAAE,SAAS;QAC/D,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,OAAwB,EACxB,QAA6B;IAE7B,OAAO;QACL,GAAG,IAAI,GAAG,CACR,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAClE,CACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAuB;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAErC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE9E,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;QACjD,IAAI,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,OAAO;gBACpB,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC/C,CAAC,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,QAAQ;gBACrB,CAAC,CAAC,uBAAuB,OAAO,CAAC,QAAQ,EAAE;gBAC3C,CAAC,CAAC,WAAW,CAAC;QAClB,KAAK,oBAAoB;YACvB,OAAO,OAAO,CAAC,QAAQ;gBACrB,CAAC,CAAC,iCAAiC,OAAO,CAAC,QAAQ,EAAE;gBACrD,CAAC,CAAC,qBAAqB,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,sBAAsB,CAAC;QAChC,KAAK,aAAa;YAChB,OAAO,oBAAoB,CAAC;IAChC,CAAC;AACH,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAmC;IAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,wBAAwB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO;QAChB,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QACpC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9B,CAAC,CAAE,QAAQ,CAAC,OAAmC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GACV,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,wBAAwB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,wBAAwB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,OAAO,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,wBAAwB,CAC7B,OAAO,CAAC,QAAQ;YACd,CAAC,CAAC;gBACE,IAAI,EAAE,UAAU;gBAChB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC,CACN,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM;QACpB,CAAC,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE;QAC1C,CAAC,CAAC,8BAA8B,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO;QACL,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,CAAC,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAwD;IAExD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL;gBACE,KAAK;gBACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAuB,EACvB,OAAuB;IAEvB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,SAAS,EAAE;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAuB,EACvB,OAAuB;IAEvB,OAAO;QACL,OAAO;QACP,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAuB,EACvB,WAAmB;IAEnB,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC1D,OAAO;QACL,OAAO;QACP,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;KAC5C,CAAC;AACJ,CAAC"}
@@ -26,6 +26,7 @@ export default function (pi: ExtensionAPI) {
26
26
  parameters: Type.Object({
27
27
  question: Type.String(),
28
28
  options: Type.Optional(Type.Array(Type.String())),
29
+ multiple: Type.Optional(Type.Boolean()),
29
30
  }),
30
31
  // Required: interaction tools must not run concurrently with other tools,
31
32
  // otherwise a host pause can strand half-finished parallel tool calls.
@@ -35,6 +36,7 @@ export default function (pi: ExtensionAPI) {
35
36
  {
36
37
  question: params.question,
37
38
  options: params.options,
39
+ selection: params.multiple ? "multiple" : "single",
38
40
  },
39
41
  { toolCallId, ctx, signal }
40
42
  );
@@ -55,7 +57,9 @@ The interaction helpers pick the best available channel, in order:
55
57
  resolve `approved`, everything else resolves `declined`. Deterministic and
56
58
  never blocks.
57
59
  2. **Interactive UI** (`ctx.hasUI`, TUI and RPC modes) — the built-in dialog
58
- walk: a select for fixed options and approvals, a text input otherwise.
60
+ walk: a themed toggle list for TUI multi-select questions, a portable
61
+ selector loop for RPC multi-select questions, a select for single fixed
62
+ options and approvals, and a text input otherwise.
59
63
  A caller-provided `interactive` walk replaces the dialogs (return
60
64
  `undefined` to fall through). In RPC mode dialogs get a default timeout
61
65
  (`DEFAULT_RPC_DIALOG_TIMEOUT_MS`, 120s) so a client that never renders
@@ -84,16 +88,20 @@ Hosts generate their own pause state from this record.
84
88
  | `reason` | Open string; well-known: `input_required`, `confirmation`, `tool_call` |
85
89
  | `message` | Concise human-readable prompt |
86
90
  | `options` | Optional structured answer suggestions: `{ label, value?, description? }[]` |
91
+ | `selection` | Optional answer cardinality: `single` (default) or `multiple` |
87
92
  | `metadata` | Renderer or tool hints (`kind`, `header`, source tool parameters, …) |
88
93
  | `display` | Optional structured display copy for richer local or remote UI |
89
94
  | `expiresAt` | Optional ISO-8601 instant after which the host may auto-decline |
90
95
  | `outcome` | Local result, or `{ type: "awaiting_user" }` when the host must pause |
91
96
 
92
97
  Question options are suggestions, not a closed enum. Local Pi shows them in a
93
- selector plus an `Other` input path, and hosts should preserve that
94
- same custom-answer path unless a specific tool explicitly does something else.
98
+ selector plus an `Other` input path. Multi-select TUI questions use Space or
99
+ number keys to toggle choices and a `Done` action to submit. Hosts should
100
+ preserve the same custom-answer path unless a specific tool explicitly does
101
+ something else.
95
102
 
96
- Resume payloads are single-question: `{ answer }` for questions,
103
+ Resume payloads are `{ answer }` for single-answer questions,
104
+ `{ answers: string[] }` for multi-select questions, and
97
105
  `{ approved, feedback? }` for confirmations. A decline is a resume with
98
106
  status `cancelled` and **no payload**. Any host-specific pause/resume state
99
107
  should be generated by the host from this request, not authored inside a
@@ -106,8 +114,25 @@ frontends, while remaining Pi-native Recipe metadata. A host that deploys a
106
114
  Recipe behind the Agent User Interaction Protocol can map an awaiting
107
115
  `details.interrupt` request into `RUN_FINISHED` with
108
116
  `outcome: { type: "interrupt", interrupts: [...] }`, then resume with the
109
- same `{ answer }`, `{ approved, feedback? }`, or cancelled payloads described
110
- above.
117
+ same `{ answer }`, `{ answers }`, `{ approved, feedback? }`, or cancelled
118
+ payloads described above.
119
+
120
+ For a multi-select question, the host should use an array response schema:
121
+
122
+ ```json
123
+ {
124
+ "type": "object",
125
+ "properties": {
126
+ "answers": {
127
+ "type": "array",
128
+ "items": { "type": "string" },
129
+ "minItems": 1,
130
+ "uniqueItems": true
131
+ }
132
+ },
133
+ "required": ["answers"]
134
+ }
135
+ ```
111
136
 
112
137
  Recipes should still emit only `details.interrupt`. The host owns ids,
113
138
  tool-call binding, response schemas, transport events, persistence, and any
@@ -163,6 +188,7 @@ without a coordinated protocol change across all hosts.
163
188
  | Outcome | Envelope |
164
189
  | --- | --- |
165
190
  | Answered | `Answer: <answer>` |
191
+ | Multiple answers | `Answers: ["<answer>","<answer>"]` |
166
192
  | Approved | `Approved.` |
167
193
  | Approved with feedback | `Approved. Feedback: <feedback>` |
168
194
  | Revision requested | `Revision requested.` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@introspection-ai/recipes",
3
- "version": "0.17.1",
3
+ "version": "0.18.0",
4
4
  "description": "The open format for vertical agents, built on Pi.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",