inquirer-ai 0.2.1

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.
Files changed (81) hide show
  1. package/dist/agent.d.ts +7 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +143 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/choice.d.ts +18 -0
  6. package/dist/choice.d.ts.map +1 -0
  7. package/dist/choice.js +29 -0
  8. package/dist/choice.js.map +1 -0
  9. package/dist/errors.d.ts +16 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +31 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/index.d.ts +43 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +66 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/mode.d.ts +2 -0
  18. package/dist/mode.d.ts.map +1 -0
  19. package/dist/mode.js +10 -0
  20. package/dist/mode.js.map +1 -0
  21. package/dist/prompts/autocomplete.d.ts +13 -0
  22. package/dist/prompts/autocomplete.d.ts.map +1 -0
  23. package/dist/prompts/autocomplete.js +29 -0
  24. package/dist/prompts/autocomplete.js.map +1 -0
  25. package/dist/prompts/base.d.ts +27 -0
  26. package/dist/prompts/base.d.ts.map +1 -0
  27. package/dist/prompts/base.js +107 -0
  28. package/dist/prompts/base.js.map +1 -0
  29. package/dist/prompts/checkbox.d.ts +22 -0
  30. package/dist/prompts/checkbox.d.ts.map +1 -0
  31. package/dist/prompts/checkbox.js +168 -0
  32. package/dist/prompts/checkbox.js.map +1 -0
  33. package/dist/prompts/confirm.d.ts +12 -0
  34. package/dist/prompts/confirm.d.ts.map +1 -0
  35. package/dist/prompts/confirm.js +40 -0
  36. package/dist/prompts/confirm.js.map +1 -0
  37. package/dist/prompts/editor.d.ts +13 -0
  38. package/dist/prompts/editor.d.ts.map +1 -0
  39. package/dist/prompts/editor.js +54 -0
  40. package/dist/prompts/editor.js.map +1 -0
  41. package/dist/prompts/expand.d.ts +19 -0
  42. package/dist/prompts/expand.d.ts.map +1 -0
  43. package/dist/prompts/expand.js +72 -0
  44. package/dist/prompts/expand.js.map +1 -0
  45. package/dist/prompts/number.d.ts +17 -0
  46. package/dist/prompts/number.d.ts.map +1 -0
  47. package/dist/prompts/number.js +73 -0
  48. package/dist/prompts/number.js.map +1 -0
  49. package/dist/prompts/password.d.ts +14 -0
  50. package/dist/prompts/password.d.ts.map +1 -0
  51. package/dist/prompts/password.js +30 -0
  52. package/dist/prompts/password.js.map +1 -0
  53. package/dist/prompts/path.d.ts +13 -0
  54. package/dist/prompts/path.d.ts.map +1 -0
  55. package/dist/prompts/path.js +29 -0
  56. package/dist/prompts/path.js.map +1 -0
  57. package/dist/prompts/rawlist.d.ts +15 -0
  58. package/dist/prompts/rawlist.d.ts.map +1 -0
  59. package/dist/prompts/rawlist.js +55 -0
  60. package/dist/prompts/rawlist.js.map +1 -0
  61. package/dist/prompts/search.d.ts +17 -0
  62. package/dist/prompts/search.d.ts.map +1 -0
  63. package/dist/prompts/search.js +85 -0
  64. package/dist/prompts/search.js.map +1 -0
  65. package/dist/prompts/select.d.ts +22 -0
  66. package/dist/prompts/select.d.ts.map +1 -0
  67. package/dist/prompts/select.js +137 -0
  68. package/dist/prompts/select.js.map +1 -0
  69. package/dist/prompts/text.d.ts +10 -0
  70. package/dist/prompts/text.d.ts.map +1 -0
  71. package/dist/prompts/text.js +21 -0
  72. package/dist/prompts/text.js.map +1 -0
  73. package/dist/terminal.d.ts +21 -0
  74. package/dist/terminal.d.ts.map +1 -0
  75. package/dist/terminal.js +155 -0
  76. package/dist/terminal.js.map +1 -0
  77. package/dist/theme.d.ts +22 -0
  78. package/dist/theme.d.ts.map +1 -0
  79. package/dist/theme.js +32 -0
  80. package/dist/theme.js.map +1 -0
  81. package/package.json +54 -0
@@ -0,0 +1,22 @@
1
+ import { type RawChoice } from "../choice.js";
2
+ import { type BaseConfig, BasePrompt } from "./base.js";
3
+ export interface CheckboxConfig<V = unknown> extends BaseConfig<V[]> {
4
+ choices: RawChoice<V>[];
5
+ pageSize?: number;
6
+ loop?: boolean;
7
+ }
8
+ export declare class CheckboxPrompt<V = unknown> extends BasePrompt<V[]> {
9
+ private items;
10
+ private choices;
11
+ private pageSize;
12
+ private loop;
13
+ constructor(config: CheckboxConfig<V>);
14
+ get promptType(): string;
15
+ protected validateAnswer(value: unknown): V[];
16
+ protected formatAnswer(value: V[]): string;
17
+ protected toAgentDict(): Record<string, unknown>;
18
+ private selectableIndices;
19
+ private moveCursor;
20
+ protected executeTerminal(): Promise<V[]>;
21
+ }
22
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/prompts/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpH,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,CAAC;IAClE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,cAAc,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAU;gBAEV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAYrC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE;IAmB7C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM;cAKvB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzD,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;cAaF,eAAe,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;CAoFhD"}
@@ -0,0 +1,168 @@
1
+ import { choiceToDict, isSeparator, parseChoice } from "../choice.js";
2
+ import { InvalidChoiceError, PromptAbortedError, ValidationError } from "../errors.js";
3
+ import { runListPrompt } from "../terminal.js";
4
+ import { ansi, getTheme, RESET } from "../theme.js";
5
+ import { BasePrompt } from "./base.js";
6
+ export class CheckboxPrompt extends BasePrompt {
7
+ items;
8
+ choices;
9
+ pageSize;
10
+ loop;
11
+ constructor(config) {
12
+ super({ ...config, default: config.default ?? [] });
13
+ if (!config.choices.length)
14
+ throw new InvalidChoiceError("choices cannot be empty");
15
+ this.items = config.choices.map(parseChoice);
16
+ this.choices = this.items.filter((c) => !isSeparator(c));
17
+ if (!this.choices.some((c) => !c.disabled)) {
18
+ throw new InvalidChoiceError("choices must contain at least one selectable item");
19
+ }
20
+ this.pageSize = config.pageSize ?? 10;
21
+ this.loop = config.loop ?? true;
22
+ }
23
+ get promptType() {
24
+ return "checkbox";
25
+ }
26
+ validateAnswer(value) {
27
+ if (!Array.isArray(value))
28
+ throw new ValidationError(`Expected an array, got ${typeof value}`);
29
+ const enabled = this.choices.filter((c) => !c.disabled);
30
+ const validValues = new Set(enabled.map((c) => c.value));
31
+ const validNames = new Set(enabled.map((c) => c.name));
32
+ const result = [];
33
+ for (const v of value) {
34
+ if (validValues.has(v)) {
35
+ result.push(v);
36
+ }
37
+ else if (validNames.has(String(v))) {
38
+ const match = enabled.find((c) => c.name === v);
39
+ if (match)
40
+ result.push(match.value);
41
+ }
42
+ else {
43
+ throw new ValidationError(`Invalid choice: ${JSON.stringify(v)}. Valid: ${JSON.stringify([...validValues])}`);
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ formatAnswer(value) {
49
+ const names = this.choices.filter((c) => value.includes(c.value)).map((c) => c.short ?? c.name);
50
+ return names.length ? names.join(", ") : "none";
51
+ }
52
+ toAgentDict() {
53
+ return { ...super.toAgentDict(), choices: this.items.map(choiceToDict) };
54
+ }
55
+ selectableIndices() {
56
+ return this.items.reduce((acc, item, i) => {
57
+ if (!isSeparator(item) && !item.disabled)
58
+ acc.push(i);
59
+ return acc;
60
+ }, []);
61
+ }
62
+ moveCursor(current, direction) {
63
+ const indices = this.selectableIndices();
64
+ let pos = indices.indexOf(current);
65
+ if (pos === -1)
66
+ return indices[0];
67
+ pos += direction;
68
+ if (this.loop) {
69
+ pos = ((pos % indices.length) + indices.length) % indices.length;
70
+ }
71
+ else {
72
+ pos = Math.max(0, Math.min(pos, indices.length - 1));
73
+ }
74
+ return indices[pos];
75
+ }
76
+ async executeTerminal() {
77
+ const t = getTheme();
78
+ const indices = this.selectableIndices();
79
+ let cursor = indices[0];
80
+ const checked = new Set();
81
+ const defaults = this.defaultValue ?? [];
82
+ for (let i = 0; i < this.items.length; i++) {
83
+ const item = this.items[i];
84
+ if (!isSeparator(item) && !item.disabled) {
85
+ if (defaults.includes(item.value) || defaults.includes(item.name)) {
86
+ checked.add(i);
87
+ }
88
+ }
89
+ }
90
+ const getItems = () => {
91
+ const total = this.items.length;
92
+ const ps = Math.min(this.pageSize, total);
93
+ const start = Math.max(0, Math.min(cursor - Math.floor(ps / 2), total - ps));
94
+ const end = start + ps;
95
+ const result = [];
96
+ if (start > 0)
97
+ result.push({ text: ` ${ansi(t.muted)}(more above)${RESET}`, style: "" });
98
+ for (let i = start; i < end; i++) {
99
+ const item = this.items[i];
100
+ if (isSeparator(item)) {
101
+ result.push({ text: ` ${item.text}`, style: ansi(t.muted) });
102
+ }
103
+ else if (item.disabled) {
104
+ const reason = typeof item.disabled === "string" ? ` (${item.disabled})` : "";
105
+ result.push({ text: ` ${t.symUnchecked} ${item.name}${reason} (disabled)`, style: ansi(t.muted) });
106
+ }
107
+ else {
108
+ const arrow = i === cursor ? t.symPointer : " ";
109
+ const mark = checked.has(i) ? t.symChecked : t.symUnchecked;
110
+ let style = "";
111
+ if (i === cursor)
112
+ style = ansi(t.highlight);
113
+ else if (checked.has(i))
114
+ style = ansi(t.selected);
115
+ result.push({ text: `${arrow} ${mark} ${item.name}`, style });
116
+ }
117
+ }
118
+ if (end < total)
119
+ result.push({ text: ` ${ansi(t.muted)}(more below)${RESET}`, style: "" });
120
+ return result;
121
+ };
122
+ const raw = await runListPrompt({
123
+ message: this.message,
124
+ getItems,
125
+ onKey: (key) => {
126
+ if (key === "up" || key === "k") {
127
+ cursor = this.moveCursor(cursor, -1);
128
+ return { done: false };
129
+ }
130
+ if (key === "down" || key === "j") {
131
+ cursor = this.moveCursor(cursor, 1);
132
+ return { done: false };
133
+ }
134
+ if (key === "space") {
135
+ if (checked.has(cursor))
136
+ checked.delete(cursor);
137
+ else
138
+ checked.add(cursor);
139
+ return { done: false };
140
+ }
141
+ if (key === "a") {
142
+ if (checked.size === indices.length)
143
+ checked.clear();
144
+ else
145
+ for (const i of indices)
146
+ checked.add(i);
147
+ return { done: false };
148
+ }
149
+ if (key === "enter") {
150
+ const result = [];
151
+ for (const i of [...checked].sort((a, b) => a - b)) {
152
+ const item = this.items[i];
153
+ if (!isSeparator(item))
154
+ result.push(item.value);
155
+ }
156
+ return { done: true, result };
157
+ }
158
+ if (key === "ctrl-c")
159
+ return { done: true, result: null };
160
+ return { done: false };
161
+ },
162
+ });
163
+ if (raw === null)
164
+ throw new PromptAbortedError("Prompt aborted by user");
165
+ return raw;
166
+ }
167
+ }
168
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/prompts/checkbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface ConfirmConfig extends BaseConfig<boolean> {
3
+ default?: boolean | null;
4
+ }
5
+ export declare class ConfirmPrompt extends BasePrompt<boolean> {
6
+ constructor(config: ConfirmConfig);
7
+ get promptType(): string;
8
+ protected validateAnswer(value: unknown): boolean;
9
+ protected formatAnswer(value: boolean): string;
10
+ protected executeTerminal(): Promise<boolean>;
11
+ }
12
+ //# sourceMappingURL=confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/prompts/confirm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,aAAc,SAAQ,UAAU,CAAC,OAAO,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,aAAc,SAAQ,UAAU,CAAC,OAAO,CAAC;gBACxC,MAAM,EAAE,aAAa;IAIjC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWjD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;cAI9B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAYpD"}
@@ -0,0 +1,40 @@
1
+ import { formatError, formatQuestion, readLine } from "../terminal.js";
2
+ import { BasePrompt } from "./base.js";
3
+ export class ConfirmPrompt extends BasePrompt {
4
+ constructor(config) {
5
+ super({ ...config, default: config.default ?? false });
6
+ }
7
+ get promptType() {
8
+ return "confirm";
9
+ }
10
+ validateAnswer(value) {
11
+ if (typeof value === "boolean")
12
+ return value;
13
+ if (typeof value === "string") {
14
+ return ["y", "yes", "true", "1"].includes(value.toLowerCase());
15
+ }
16
+ if (typeof value === "number") {
17
+ return Number.isFinite(value) && value !== 0;
18
+ }
19
+ return Boolean(value);
20
+ }
21
+ formatAnswer(value) {
22
+ return value ? "Yes" : "No";
23
+ }
24
+ async executeTerminal() {
25
+ const hint = this.defaultValue ? "Y/n" : "y/N";
26
+ const prompt = formatQuestion(this.message, ` (${hint})`);
27
+ while (true) {
28
+ const result = await readLine(prompt);
29
+ if (!result)
30
+ return this.defaultValue ?? false;
31
+ const lower = result.trim().toLowerCase();
32
+ if (lower === "y" || lower === "yes")
33
+ return true;
34
+ if (lower === "n" || lower === "no")
35
+ return false;
36
+ process.stderr.write(`${formatError("Invalid input. Please enter y or n.")}\n`);
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/prompts/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAmB,UAAU,EAAE,MAAM,WAAW,CAAC;AAMxD,MAAM,OAAO,aAAc,SAAQ,UAAmB;IACpD,YAAY,MAAqB;QAC/B,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,cAAc,CAAC,KAAc;QACrC,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAES,YAAY,CAAC,KAAc;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;QAC1D,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAClD,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface EditorConfig extends BaseConfig<string> {
3
+ postfix?: string;
4
+ }
5
+ export declare class EditorPrompt extends BasePrompt<string> {
6
+ private postfix;
7
+ constructor(config: EditorConfig);
8
+ get promptType(): string;
9
+ protected validateAnswer(value: unknown): string;
10
+ protected toAgentDict(): Record<string, unknown>;
11
+ protected executeTerminal(): Promise<string>;
12
+ }
13
+ //# sourceMappingURL=editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/prompts/editor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,YAAa,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAa,SAAQ,UAAU,CAAC,MAAM,CAAC;IAClD,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAKhC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;cAK7B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAIzC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CA8BnD"}
@@ -0,0 +1,54 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { mkdtempSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { EditorError } from "../errors.js";
6
+ import { BasePrompt } from "./base.js";
7
+ export class EditorPrompt extends BasePrompt {
8
+ postfix;
9
+ constructor(config) {
10
+ super(config);
11
+ this.postfix = config.postfix ?? ".txt";
12
+ }
13
+ get promptType() {
14
+ return "editor";
15
+ }
16
+ validateAnswer(value) {
17
+ if (value == null)
18
+ return this.defaultValue ?? "";
19
+ return String(value);
20
+ }
21
+ toAgentDict() {
22
+ return { ...super.toAgentDict(), postfix: this.postfix };
23
+ }
24
+ async executeTerminal() {
25
+ const editor = process.env.VISUAL || process.env.EDITOR || "vi";
26
+ const dir = mkdtempSync(join(tmpdir(), "inquirer-"));
27
+ const tmpPath = join(dir, `edit${this.postfix}`);
28
+ try {
29
+ writeFileSync(tmpPath, this.defaultValue ?? "");
30
+ const parts = editor.split(/\s+/);
31
+ const cmd = parts[0];
32
+ const args = [...parts.slice(1), tmpPath];
33
+ const result = spawnSync(cmd, args, {
34
+ stdio: "inherit",
35
+ });
36
+ if (result.error) {
37
+ throw new EditorError(`Editor not found: ${JSON.stringify(editor)}. Set $VISUAL or $EDITOR.`);
38
+ }
39
+ if (result.status !== 0) {
40
+ throw new EditorError(`Editor exited with code ${result.status}`);
41
+ }
42
+ return readFileSync(tmpPath, "utf8");
43
+ }
44
+ finally {
45
+ try {
46
+ unlinkSync(tmpPath);
47
+ }
48
+ catch {
49
+ // ignore cleanup errors
50
+ }
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/prompts/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmB,UAAU,EAAE,MAAM,WAAW,CAAC;AAMxD,MAAM,OAAO,YAAa,SAAQ,UAAkB;IAC1C,OAAO,CAAS;IAExB,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,cAAc,CAAC,KAAc;QACrC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEkB,WAAW;QAC5B,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;QAChE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;gBAClC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,WAAW,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,WAAW,CAAC,2BAA2B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface ExpandChoice {
3
+ key: string;
4
+ name: string;
5
+ value: unknown;
6
+ }
7
+ export interface ExpandConfig extends BaseConfig<unknown> {
8
+ choices: (ExpandChoice | Record<string, unknown>)[];
9
+ }
10
+ export declare class ExpandPrompt extends BasePrompt<unknown> {
11
+ private expandChoices;
12
+ constructor(config: ExpandConfig);
13
+ get promptType(): string;
14
+ protected validateAnswer(value: unknown): unknown;
15
+ protected formatAnswer(value: unknown): string;
16
+ protected toAgentDict(): Record<string, unknown>;
17
+ protected executeTerminal(): Promise<unknown>;
18
+ }
19
+ //# sourceMappingURL=expand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../src/prompts/expand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU,CAAC,OAAO,CAAC;IACvD,OAAO,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CACrD;AAaD,qBAAa,YAAa,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,OAAO,CAAC,aAAa,CAAiB;gBAE1B,MAAM,EAAE,YAAY;IAShC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAUjD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;cAO3B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAOzC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAkBpD"}
@@ -0,0 +1,72 @@
1
+ import { InvalidChoiceError, ValidationError } from "../errors.js";
2
+ import { formatError, formatQuestion, readLine } from "../terminal.js";
3
+ import { BasePrompt } from "./base.js";
4
+ function parseExpandChoice(raw) {
5
+ if ("key" in raw && typeof raw.key === "string") {
6
+ return {
7
+ key: raw.key.toLowerCase(),
8
+ name: raw.name ?? raw.key,
9
+ value: raw.value ?? raw.key,
10
+ };
11
+ }
12
+ throw new InvalidChoiceError("ExpandChoice must have a 'key' field");
13
+ }
14
+ export class ExpandPrompt extends BasePrompt {
15
+ expandChoices;
16
+ constructor(config) {
17
+ super(config);
18
+ if (!config.choices.length)
19
+ throw new InvalidChoiceError("choices cannot be empty");
20
+ this.expandChoices = config.choices.map(parseExpandChoice);
21
+ const keys = this.expandChoices.map((c) => c.key);
22
+ const dupes = keys.filter((k, i) => keys.indexOf(k) !== i);
23
+ if (dupes.length)
24
+ throw new InvalidChoiceError(`Duplicate expand keys: ${[...new Set(dupes)]}`);
25
+ }
26
+ get promptType() {
27
+ return "expand";
28
+ }
29
+ validateAnswer(value) {
30
+ if (typeof value === "string") {
31
+ const lower = value.toLowerCase();
32
+ for (const c of this.expandChoices) {
33
+ if (lower === c.key || value === c.value || value === c.name)
34
+ return c.value;
35
+ }
36
+ }
37
+ throw new ValidationError(`Invalid choice: ${JSON.stringify(value)}`);
38
+ }
39
+ formatAnswer(value) {
40
+ for (const c of this.expandChoices) {
41
+ if (c.value === value)
42
+ return c.name;
43
+ }
44
+ return String(value);
45
+ }
46
+ toAgentDict() {
47
+ return {
48
+ ...super.toAgentDict(),
49
+ choices: this.expandChoices.map((c) => ({ key: c.key, name: c.name, value: c.value })),
50
+ };
51
+ }
52
+ async executeTerminal() {
53
+ const keys = this.expandChoices.map((c) => c.key).join("/");
54
+ const prompt = formatQuestion(this.message, ` (${keys})`);
55
+ while (true) {
56
+ const raw = await readLine(prompt);
57
+ const lower = raw.trim().toLowerCase();
58
+ if (lower === "h" || lower === "help") {
59
+ for (const c of this.expandChoices) {
60
+ process.stderr.write(` ${c.key}) ${c.name}\n`);
61
+ }
62
+ continue;
63
+ }
64
+ for (const c of this.expandChoices) {
65
+ if (lower === c.key)
66
+ return c.value;
67
+ }
68
+ process.stderr.write(`${formatError("Invalid key. Press h for help.")}\n`);
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=expand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/prompts/expand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface NumberConfig extends BaseConfig<number> {
3
+ min?: number | null;
4
+ max?: number | null;
5
+ floatAllowed?: boolean;
6
+ }
7
+ export declare class NumberPrompt extends BasePrompt<number> {
8
+ private min;
9
+ private max;
10
+ private floatAllowed;
11
+ constructor(config: NumberConfig);
12
+ get promptType(): string;
13
+ protected validateAnswer(value: unknown): number;
14
+ protected toAgentDict(): Record<string, unknown>;
15
+ protected executeTerminal(): Promise<number>;
16
+ }
17
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/prompts/number.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,YAAa,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,UAAU,CAAC,MAAM,CAAC;IAClD,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,YAAY,CAAU;gBAElB,MAAM,EAAE,YAAY;IAOhC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;cAqB7B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cASzC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAiBnD"}
@@ -0,0 +1,73 @@
1
+ import { ValidationError } from "../errors.js";
2
+ import { formatError, formatQuestion, readLine } from "../terminal.js";
3
+ import { BasePrompt } from "./base.js";
4
+ export class NumberPrompt extends BasePrompt {
5
+ min;
6
+ max;
7
+ floatAllowed;
8
+ constructor(config) {
9
+ super(config);
10
+ this.min = config.min ?? null;
11
+ this.max = config.max ?? null;
12
+ this.floatAllowed = config.floatAllowed ?? true;
13
+ }
14
+ get promptType() {
15
+ return "number";
16
+ }
17
+ validateAnswer(value) {
18
+ if (value == null && this.defaultValue != null)
19
+ return this.defaultValue;
20
+ let num;
21
+ if (typeof value === "number" && typeof value !== "boolean") {
22
+ num = value;
23
+ }
24
+ else if (typeof value === "string") {
25
+ num = value.includes(".") ? parseFloat(value) : parseInt(value, 10);
26
+ if (Number.isNaN(num))
27
+ throw new ValidationError(`Not a valid number: ${JSON.stringify(value)}`);
28
+ }
29
+ else {
30
+ throw new ValidationError(`Expected a number, got ${typeof value}`);
31
+ }
32
+ if (!Number.isFinite(num))
33
+ throw new ValidationError(`Not a valid number: ${JSON.stringify(value)}`);
34
+ if (!this.floatAllowed && num !== Math.trunc(num)) {
35
+ throw new ValidationError("Decimal numbers are not allowed");
36
+ }
37
+ if (!this.floatAllowed)
38
+ num = Math.trunc(num);
39
+ if (this.min != null && num < this.min)
40
+ throw new ValidationError(`Must be at least ${this.min}`);
41
+ if (this.max != null && num > this.max)
42
+ throw new ValidationError(`Must be at most ${this.max}`);
43
+ return num;
44
+ }
45
+ toAgentDict() {
46
+ return {
47
+ ...super.toAgentDict(),
48
+ min: this.min,
49
+ max: this.max,
50
+ float_allowed: this.floatAllowed,
51
+ };
52
+ }
53
+ async executeTerminal() {
54
+ const suffix = this.defaultValue != null ? ` (${this.defaultValue})` : "";
55
+ const prompt = formatQuestion(this.message, suffix);
56
+ while (true) {
57
+ const raw = await readLine(prompt);
58
+ if (!raw && this.defaultValue != null)
59
+ return this.defaultValue;
60
+ try {
61
+ return this.validateAnswer(raw);
62
+ }
63
+ catch (e) {
64
+ if (e instanceof ValidationError) {
65
+ process.stderr.write(`${formatError(e.message)}\n`);
66
+ continue;
67
+ }
68
+ throw e;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/prompts/number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface PasswordConfig extends BaseConfig<string> {
3
+ mask?: string | null;
4
+ }
5
+ export declare class PasswordPrompt extends BasePrompt<string> {
6
+ private mask;
7
+ constructor(config: PasswordConfig);
8
+ get promptType(): string;
9
+ protected validateAnswer(value: unknown): string;
10
+ protected formatAnswer(value: string): string;
11
+ protected toAgentDict(): Record<string, unknown>;
12
+ protected executeTerminal(): Promise<string>;
13
+ }
14
+ //# sourceMappingURL=password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/prompts/password.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,cAAe,SAAQ,UAAU,CAAC,MAAM,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAAa,cAAe,SAAQ,UAAU,CAAC,MAAM,CAAC;IACpD,OAAO,CAAC,IAAI,CAAgB;gBAEhB,MAAM,EAAE,cAAc;IAKlC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAKhD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;cAK1B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAIzC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAInD"}
@@ -0,0 +1,30 @@
1
+ import { formatQuestion, readPassword } from "../terminal.js";
2
+ import { BasePrompt } from "./base.js";
3
+ export class PasswordPrompt extends BasePrompt {
4
+ mask;
5
+ constructor(config) {
6
+ super(config);
7
+ this.mask = config.mask === undefined ? "*" : config.mask;
8
+ }
9
+ get promptType() {
10
+ return "password";
11
+ }
12
+ validateAnswer(value) {
13
+ if (value == null)
14
+ return this.defaultValue ?? "";
15
+ return String(value);
16
+ }
17
+ formatAnswer(value) {
18
+ if (this.mask)
19
+ return this.mask.repeat(value.length);
20
+ return "****";
21
+ }
22
+ toAgentDict() {
23
+ return { ...super.toAgentDict(), mask: this.mask };
24
+ }
25
+ async executeTerminal() {
26
+ const prompt = formatQuestion(this.message);
27
+ return readPassword(prompt, this.mask);
28
+ }
29
+ }
30
+ //# sourceMappingURL=password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/prompts/password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAmB,UAAU,EAAE,MAAM,WAAW,CAAC;AAMxD,MAAM,OAAO,cAAe,SAAQ,UAAkB;IAC5C,IAAI,CAAgB;IAE5B,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,cAAc,CAAC,KAAc;QACrC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAES,YAAY,CAAC,KAAa;QAClC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEkB,WAAW;QAC5B,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { type BaseConfig, BasePrompt } from "./base.js";
2
+ export interface PathConfig extends BaseConfig<string> {
3
+ onlyDirectories?: boolean;
4
+ }
5
+ export declare class PathPrompt extends BasePrompt<string> {
6
+ private onlyDirectories;
7
+ constructor(config: PathConfig);
8
+ get promptType(): string;
9
+ protected validateAnswer(value: unknown): string;
10
+ protected toAgentDict(): Record<string, unknown>;
11
+ protected executeTerminal(): Promise<string>;
12
+ }
13
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/prompts/path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,UAAW,SAAQ,UAAU,CAAC,MAAM,CAAC;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,UAAW,SAAQ,UAAU,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,UAAU;IAK9B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;cAK7B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAIzC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAOnD"}