@agentuity/cli 0.0.69 → 0.0.70

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 (153) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
  4. package/dist/cmd/ai/capabilities/show.js +0 -13
  5. package/dist/cmd/ai/capabilities/show.js.map +1 -1
  6. package/dist/cmd/ai/prompt/agent.js +1 -1
  7. package/dist/cmd/ai/prompt/api.js +1 -1
  8. package/dist/cmd/build/ast.d.ts +1 -2
  9. package/dist/cmd/build/ast.d.ts.map +1 -1
  10. package/dist/cmd/build/ast.js +261 -260
  11. package/dist/cmd/build/ast.js.map +1 -1
  12. package/dist/cmd/build/bundler.d.ts +2 -1
  13. package/dist/cmd/build/bundler.d.ts.map +1 -1
  14. package/dist/cmd/build/bundler.js +11 -2
  15. package/dist/cmd/build/bundler.js.map +1 -1
  16. package/dist/cmd/build/index.js +1 -1
  17. package/dist/cmd/build/index.js.map +1 -1
  18. package/dist/cmd/build/plugin.d.ts.map +1 -1
  19. package/dist/cmd/build/plugin.js +152 -414
  20. package/dist/cmd/build/plugin.js.map +1 -1
  21. package/dist/cmd/build/route-registry.d.ts +36 -0
  22. package/dist/cmd/build/route-registry.d.ts.map +1 -0
  23. package/dist/cmd/build/route-registry.js +151 -0
  24. package/dist/cmd/build/route-registry.js.map +1 -0
  25. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  26. package/dist/cmd/cloud/deploy.js +1 -0
  27. package/dist/cmd/cloud/deploy.js.map +1 -1
  28. package/dist/cmd/cloud/index.d.ts.map +1 -1
  29. package/dist/cmd/cloud/index.js +0 -2
  30. package/dist/cmd/cloud/index.js.map +1 -1
  31. package/dist/cmd/dev/index.js +3 -3
  32. package/dist/cmd/dev/index.js.map +1 -1
  33. package/dist/cmd/dev/sync.d.ts.map +1 -1
  34. package/dist/cmd/dev/sync.js +0 -15
  35. package/dist/cmd/dev/sync.js.map +1 -1
  36. package/dist/cmd/dev/templates.d.ts.map +1 -1
  37. package/dist/cmd/dev/templates.js +11 -35
  38. package/dist/cmd/dev/templates.js.map +1 -1
  39. package/dist/cmd/profile/create.d.ts.map +1 -1
  40. package/dist/cmd/profile/create.js +0 -1
  41. package/dist/cmd/profile/create.js.map +1 -1
  42. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  43. package/dist/cmd/project/template-flow.js +64 -53
  44. package/dist/cmd/project/template-flow.js.map +1 -1
  45. package/dist/config.d.ts.map +1 -1
  46. package/dist/config.js +0 -3
  47. package/dist/config.js.map +1 -1
  48. package/dist/tui/box.d.ts +19 -0
  49. package/dist/tui/box.d.ts.map +1 -0
  50. package/dist/tui/box.js +160 -0
  51. package/dist/tui/box.js.map +1 -0
  52. package/dist/tui/colors.d.ts +20 -0
  53. package/dist/tui/colors.d.ts.map +1 -0
  54. package/dist/tui/colors.js +52 -0
  55. package/dist/tui/colors.js.map +1 -0
  56. package/dist/tui/group.d.ts +25 -0
  57. package/dist/tui/group.d.ts.map +1 -0
  58. package/dist/tui/group.js +32 -0
  59. package/dist/tui/group.js.map +1 -0
  60. package/dist/tui/prompt.d.ts +65 -0
  61. package/dist/tui/prompt.d.ts.map +1 -0
  62. package/dist/tui/prompt.js +377 -0
  63. package/dist/tui/prompt.js.map +1 -0
  64. package/dist/tui/symbols.d.ts +32 -0
  65. package/dist/tui/symbols.d.ts.map +1 -0
  66. package/dist/tui/symbols.js +52 -0
  67. package/dist/tui/symbols.js.map +1 -0
  68. package/dist/tui.d.ts +6 -0
  69. package/dist/tui.d.ts.map +1 -1
  70. package/dist/tui.js +6 -0
  71. package/dist/tui.js.map +1 -1
  72. package/dist/types.d.ts +0 -24
  73. package/dist/types.d.ts.map +1 -1
  74. package/dist/types.js +0 -1
  75. package/dist/types.js.map +1 -1
  76. package/package.json +3 -3
  77. package/src/cmd/ai/capabilities/show.ts +0 -13
  78. package/src/cmd/ai/prompt/agent.ts +1 -1
  79. package/src/cmd/ai/prompt/api.ts +1 -1
  80. package/src/cmd/build/ast.ts +364 -334
  81. package/src/cmd/build/bundler.ts +16 -1
  82. package/src/cmd/build/index.ts +1 -1
  83. package/src/cmd/build/plugin.ts +171 -493
  84. package/src/cmd/build/route-registry.ts +198 -0
  85. package/src/cmd/cloud/deploy.ts +1 -0
  86. package/src/cmd/cloud/index.ts +0 -2
  87. package/src/cmd/dev/index.ts +3 -3
  88. package/src/cmd/dev/sync.ts +0 -28
  89. package/src/cmd/dev/templates.ts +11 -35
  90. package/src/cmd/profile/create.ts +0 -1
  91. package/src/cmd/project/template-flow.ts +77 -57
  92. package/src/config.ts +0 -3
  93. package/src/tui/box.ts +202 -0
  94. package/src/tui/colors.ts +55 -0
  95. package/src/tui/group.ts +56 -0
  96. package/src/tui/prompt.ts +506 -0
  97. package/src/tui/symbols.ts +64 -0
  98. package/src/tui.ts +14 -0
  99. package/src/types.ts +0 -1
  100. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts +0 -3
  101. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +0 -1
  102. package/dist/cmd/cloud/objectstore/delete-bucket.js +0 -72
  103. package/dist/cmd/cloud/objectstore/delete-bucket.js.map +0 -1
  104. package/dist/cmd/cloud/objectstore/delete.d.ts +0 -3
  105. package/dist/cmd/cloud/objectstore/delete.d.ts.map +0 -1
  106. package/dist/cmd/cloud/objectstore/delete.js +0 -65
  107. package/dist/cmd/cloud/objectstore/delete.js.map +0 -1
  108. package/dist/cmd/cloud/objectstore/get.d.ts +0 -3
  109. package/dist/cmd/cloud/objectstore/get.d.ts.map +0 -1
  110. package/dist/cmd/cloud/objectstore/get.js +0 -75
  111. package/dist/cmd/cloud/objectstore/get.js.map +0 -1
  112. package/dist/cmd/cloud/objectstore/index.d.ts +0 -3
  113. package/dist/cmd/cloud/objectstore/index.d.ts.map +0 -1
  114. package/dist/cmd/cloud/objectstore/index.js +0 -36
  115. package/dist/cmd/cloud/objectstore/index.js.map +0 -1
  116. package/dist/cmd/cloud/objectstore/list-buckets.d.ts +0 -3
  117. package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +0 -1
  118. package/dist/cmd/cloud/objectstore/list-buckets.js +0 -46
  119. package/dist/cmd/cloud/objectstore/list-buckets.js.map +0 -1
  120. package/dist/cmd/cloud/objectstore/list-keys.d.ts +0 -3
  121. package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +0 -1
  122. package/dist/cmd/cloud/objectstore/list-keys.js +0 -58
  123. package/dist/cmd/cloud/objectstore/list-keys.js.map +0 -1
  124. package/dist/cmd/cloud/objectstore/put.d.ts +0 -3
  125. package/dist/cmd/cloud/objectstore/put.d.ts.map +0 -1
  126. package/dist/cmd/cloud/objectstore/put.js +0 -66
  127. package/dist/cmd/cloud/objectstore/put.js.map +0 -1
  128. package/dist/cmd/cloud/objectstore/repl.d.ts +0 -3
  129. package/dist/cmd/cloud/objectstore/repl.d.ts.map +0 -1
  130. package/dist/cmd/cloud/objectstore/repl.js +0 -224
  131. package/dist/cmd/cloud/objectstore/repl.js.map +0 -1
  132. package/dist/cmd/cloud/objectstore/url.d.ts +0 -3
  133. package/dist/cmd/cloud/objectstore/url.d.ts.map +0 -1
  134. package/dist/cmd/cloud/objectstore/url.js +0 -64
  135. package/dist/cmd/cloud/objectstore/url.js.map +0 -1
  136. package/dist/cmd/cloud/objectstore/util.d.ts +0 -11
  137. package/dist/cmd/cloud/objectstore/util.d.ts.map +0 -1
  138. package/dist/cmd/cloud/objectstore/util.js +0 -18
  139. package/dist/cmd/cloud/objectstore/util.js.map +0 -1
  140. package/src/cmd/build/ast.test.ts +0 -418
  141. package/src/cmd/build/fix-duplicate-exports.test.ts +0 -387
  142. package/src/cmd/cloud/objectstore/delete-bucket.ts +0 -77
  143. package/src/cmd/cloud/objectstore/delete.ts +0 -67
  144. package/src/cmd/cloud/objectstore/get.ts +0 -77
  145. package/src/cmd/cloud/objectstore/index.ts +0 -36
  146. package/src/cmd/cloud/objectstore/list-buckets.ts +0 -51
  147. package/src/cmd/cloud/objectstore/list-keys.ts +0 -63
  148. package/src/cmd/cloud/objectstore/put.ts +0 -74
  149. package/src/cmd/cloud/objectstore/repl.ts +0 -239
  150. package/src/cmd/cloud/objectstore/url.ts +0 -67
  151. package/src/cmd/cloud/objectstore/util.ts +0 -29
  152. package/src/crypto/box.test.ts +0 -431
  153. package/src/env-util.test.ts +0 -194
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Box and note rendering utilities for TUI
3
+ */
4
+ import { symbols } from './symbols';
5
+ import { colors } from './colors';
6
+ /**
7
+ * Get terminal width
8
+ */
9
+ function getTerminalWidth() {
10
+ return process.stdout.columns || 80;
11
+ }
12
+ /**
13
+ * Get string width (accounting for ANSI codes)
14
+ */
15
+ function stringWidth(str) {
16
+ // Remove ANSI escape codes
17
+ // eslint-disable-next-line no-control-regex
18
+ const cleaned = str.replace(/\x1b\[[0-9;]*m/g, '');
19
+ return cleaned.length;
20
+ }
21
+ /**
22
+ * Wrap text to fit within width
23
+ */
24
+ function wrapText(text, width) {
25
+ const words = text.split(' ');
26
+ const lines = [];
27
+ let currentLine = '';
28
+ for (const word of words) {
29
+ // Handle words longer than width
30
+ if (stringWidth(word) > width) {
31
+ if (currentLine)
32
+ lines.push(currentLine);
33
+ // Truncate long words with ellipsis if width allows, otherwise just slice
34
+ if (width >= 4) {
35
+ lines.push(word.slice(0, width - 3) + '...');
36
+ }
37
+ else {
38
+ lines.push(word.slice(0, Math.max(0, width)));
39
+ }
40
+ currentLine = '';
41
+ continue;
42
+ }
43
+ const testLine = currentLine ? `${currentLine} ${word}` : word;
44
+ if (stringWidth(testLine) <= width) {
45
+ currentLine = testLine;
46
+ }
47
+ else {
48
+ if (currentLine)
49
+ lines.push(currentLine);
50
+ currentLine = word;
51
+ }
52
+ }
53
+ if (currentLine)
54
+ lines.push(currentLine);
55
+ return lines;
56
+ }
57
+ /**
58
+ * Draw a boxed message (like clack's note)
59
+ */
60
+ export function drawBox(options) {
61
+ const { title = '', content, titleAlign = 'left', contentAlign = 'left', withGuide = true, } = options;
62
+ const termWidth = getTerminalWidth();
63
+ // Calculate box width (no guide prefix inside the box)
64
+ const maxWidth = termWidth - 3; // Account for guide prefix space
65
+ const boxWidth = options.width || Math.min(60, maxWidth);
66
+ // Ensure we never end up with negative inner/content widths
67
+ const innerWidth = Math.max(boxWidth - 2, 1); // Subtract left/right borders safely
68
+ // Clamp padding to non-negative
69
+ const padding = Math.max(0, options.padding ?? 2);
70
+ // Prepare title line
71
+ // Title format: ◇ [title] ───────╮
72
+ // The title line should match the width of content lines: │[innerWidth]│
73
+ let titleLine = '';
74
+ if (title) {
75
+ const symbol = `${colors.success(symbols.completed)}`;
76
+ const titleText = colors.reset(title);
77
+ const titleTextWidth = stringWidth(symbols.completed) + stringWidth(title);
78
+ const barsNeeded = Math.max(innerWidth - titleTextWidth - 3, 1); // -3 for symbol, 2 spaces, and 1 space before bars
79
+ // Apply title alignment
80
+ if (titleAlign === 'center') {
81
+ const leftBars = Math.floor(barsNeeded / 2);
82
+ const rightBars = barsNeeded - leftBars;
83
+ titleLine = `${colors.secondary(symbols.barH.repeat(leftBars))} ${symbol} ${titleText} ${colors.secondary(symbols.barH.repeat(rightBars) + symbols.cornerTR)}`;
84
+ }
85
+ else if (titleAlign === 'right') {
86
+ titleLine = `${colors.secondary(symbols.barH.repeat(barsNeeded))} ${symbol} ${titleText} ${colors.secondary(symbols.cornerTR)}`;
87
+ }
88
+ else {
89
+ // left (default)
90
+ titleLine = `${symbol} ${titleText} ${colors.secondary(symbols.barH.repeat(barsNeeded) + symbols.cornerTR)}`;
91
+ }
92
+ }
93
+ // Prepare content lines
94
+ const contentLines = content.split('\n');
95
+ const wrappedLines = [];
96
+ // Ensure content width is non-negative
97
+ const wrapWidth = Math.max(innerWidth - padding * 2, 0);
98
+ for (const line of contentLines) {
99
+ if (stringWidth(line) > wrapWidth) {
100
+ wrappedLines.push(...wrapText(line, wrapWidth));
101
+ }
102
+ else {
103
+ wrappedLines.push(line);
104
+ }
105
+ }
106
+ // Build box (without guide prefix on each line)
107
+ const boxLines = [];
108
+ // Title line
109
+ if (title) {
110
+ boxLines.push(titleLine);
111
+ }
112
+ // Content lines with borders
113
+ // The title line is innerWidth + 1 wide, so content should be innerWidth - 1 between bars
114
+ const contentWidth = Math.max(innerWidth - 1, 0);
115
+ const emptyLine = `${colors.secondary(symbols.bar)}${' '.repeat(contentWidth)}${colors.secondary(symbols.bar)}`;
116
+ boxLines.push(emptyLine);
117
+ for (const line of wrappedLines) {
118
+ const lineLen = stringWidth(line);
119
+ let leftPad = contentAlign === 'right'
120
+ ? contentWidth - lineLen - padding
121
+ : contentAlign === 'center'
122
+ ? Math.floor((contentWidth - lineLen) / 2)
123
+ : padding;
124
+ // Clamp to non-negative
125
+ leftPad = Math.max(leftPad, 0);
126
+ const rightPad = Math.max(contentWidth - lineLen - leftPad, 0);
127
+ boxLines.push(`${colors.secondary(symbols.bar)}${' '.repeat(leftPad)}${line}${' '.repeat(rightPad)}${colors.secondary(symbols.bar)}`);
128
+ }
129
+ boxLines.push(emptyLine);
130
+ // Now add guide bar before/after if needed
131
+ const lines = [];
132
+ if (withGuide) {
133
+ lines.push(colors.secondary(symbols.bar));
134
+ }
135
+ // Add all box lines (no prefix - flush left)
136
+ lines.push(...boxLines);
137
+ // Bottom border - should match content line width (│ + contentWidth + │)
138
+ // contentWidth = innerWidth - 1, so total is innerWidth + 1
139
+ // Bottom border: ├ + (innerWidth - 1) bars + ╯ = innerWidth + 1
140
+ if (withGuide) {
141
+ lines.push(colors.secondary(symbols.connect + symbols.barH.repeat(innerWidth - 1) + symbols.cornerBR));
142
+ }
143
+ else {
144
+ lines.push(colors.secondary(symbols.cornerBL + symbols.barH.repeat(innerWidth - 1) + symbols.cornerBR));
145
+ }
146
+ return lines.join('\n');
147
+ }
148
+ /**
149
+ * Render a note box (matches clack style)
150
+ */
151
+ export function note(message, title = '') {
152
+ const output = drawBox({
153
+ title,
154
+ content: message,
155
+ contentAlign: 'left',
156
+ withGuide: true,
157
+ });
158
+ console.log(output);
159
+ }
160
+ //# sourceMappingURL=box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/tui/box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Color utilities for TUI components using existing tui.ts color system
3
+ */
4
+ export declare const colors: {
5
+ active: (text: string) => string;
6
+ completed: (text: string) => string;
7
+ error: (text: string) => string;
8
+ warning: (text: string) => string;
9
+ success: (text: string) => string;
10
+ info: (text: string) => string;
11
+ muted: (text: string) => string;
12
+ bold: (text: string) => string;
13
+ underline: (text: string) => string;
14
+ reset: (text: string) => string;
15
+ primary: (text: string) => string;
16
+ secondary: (text: string) => string;
17
+ link: (text: string) => string;
18
+ inverseCyan: (text: string) => string;
19
+ };
20
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tui/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,eAAO,MAAM,MAAM;mBAEH,MAAM;sBACH,MAAM;kBACV,MAAM;oBACJ,MAAM;oBACN,MAAM;iBACT,MAAM;kBAGL,MAAM;iBACP,MAAM;sBACD,MAAM;kBACV,MAAM;oBAGJ,MAAM;sBACJ,MAAM;iBACX,MAAM;wBAGC,MAAM;CAI1B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Color utilities for TUI components using existing tui.ts color system
3
+ */
4
+ // ANSI escape codes for additional colors not in main tui.ts
5
+ const RESET = '\x1b[0m';
6
+ const CYAN = '\x1b[36m';
7
+ const GRAY = '\x1b[90m';
8
+ const RED = '\x1b[31m';
9
+ const YELLOW = '\x1b[33m';
10
+ const GREEN = '\x1b[32m';
11
+ const BLUE = '\x1b[34m';
12
+ const DIM = '\x1b[2m';
13
+ const BOLD = '\x1b[1m';
14
+ const UNDERLINE = '\x1b[4m';
15
+ const BG_CYAN = '\x1b[46m';
16
+ const BLACK = '\x1b[30m';
17
+ const WHITE = '\x1b[37m';
18
+ /**
19
+ * Detect if terminal is in dark mode
20
+ */
21
+ function isDarkMode() {
22
+ const scheme = process.env.COLOR_SCHEME;
23
+ if (scheme === 'light')
24
+ return false;
25
+ if (scheme === 'dark')
26
+ return true;
27
+ return true;
28
+ }
29
+ export const colors = {
30
+ // State colors - using simple ANSI codes (consistent with tui.ts approach)
31
+ active: (text) => `${CYAN}${text}${RESET}`,
32
+ completed: (text) => `${GRAY}${text}${RESET}`,
33
+ error: (text) => `${RED}${text}${RESET}`,
34
+ warning: (text) => `${YELLOW}${text}${RESET}`,
35
+ success: (text) => `${GREEN}${text}${RESET}`,
36
+ info: (text) => `${BLUE}${text}${RESET}`,
37
+ // Text formatting
38
+ muted: (text) => `${DIM}${text}${RESET}`,
39
+ bold: (text) => `${BOLD}${text}${RESET}`,
40
+ underline: (text) => `${UNDERLINE}${text}${RESET}`,
41
+ reset: (text) => `${RESET}${text}`,
42
+ // Semantic colors
43
+ primary: (text) => `${CYAN}${text}${RESET}`,
44
+ secondary: (text) => `${GRAY}${text}${RESET}`,
45
+ link: (text) => `${CYAN}${UNDERLINE}${text}${RESET}`,
46
+ // Inversed colors (adapt to light/dark mode)
47
+ inverseCyan: (text) => {
48
+ const dark = isDarkMode();
49
+ return dark ? `${BG_CYAN}${BLACK}${text}${RESET}` : `${BG_CYAN}${WHITE}${text}${RESET}`;
50
+ },
51
+ };
52
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/tui/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6DAA6D;AAC7D,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,OAAO,GAAG,UAAU,CAAC;AAC3B,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,KAAK,GAAG,UAAU,CAAC;AAEzB;;GAEG;AACH,SAAS,UAAU;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,2EAA2E;IAC3E,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IAClD,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IACrD,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE;IAChD,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,EAAE;IACrD,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE;IACpD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IAEhD,kBAAkB;IAClB,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE;IAChD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IAChD,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE;IAC1D,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE;IAE1C,kBAAkB;IAClB,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IACnD,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;IACrD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE;IAE5D,6CAA6C;IAC7C,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;IACzF,CAAC;CACD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Grouped prompts orchestration
3
+ */
4
+ type Prettify<T> = {
5
+ [P in keyof T]: T[P];
6
+ } & {};
7
+ export type PromptGroupAwaitedReturn<T> = {
8
+ [P in keyof T]: Exclude<Awaited<T[P]>, symbol>;
9
+ };
10
+ export type PromptGroup<T> = {
11
+ [P in keyof T]: (opts: {
12
+ results: Prettify<Partial<PromptGroupAwaitedReturn<Omit<T, P>>>>;
13
+ }) => undefined | Promise<T[P] | undefined>;
14
+ };
15
+ export interface PromptGroupOptions<T> {
16
+ onCancel?: (opts: {
17
+ results: Prettify<Partial<PromptGroupAwaitedReturn<T>>>;
18
+ }) => void;
19
+ }
20
+ /**
21
+ * Execute a group of prompts sequentially
22
+ */
23
+ export declare function group<T>(prompts: PromptGroup<T>, opts?: PromptGroupOptions<T>): Promise<Prettify<PromptGroupAwaitedReturn<T>>>;
24
+ export {};
25
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../src/tui/group.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,QAAQ,CAAC,CAAC,IAAI;KACjB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;KACxC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjE,KAAK,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CACvF;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC5B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CA2BhD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Grouped prompts orchestration
3
+ */
4
+ /**
5
+ * Execute a group of prompts sequentially
6
+ */
7
+ export async function group(prompts, opts) {
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ const results = {};
10
+ const promptNames = Object.keys(prompts);
11
+ for (const name of promptNames) {
12
+ const prompt = prompts[name];
13
+ try {
14
+ const result = await prompt({ results });
15
+ // Skip if undefined (conditional prompt)
16
+ if (result === undefined) {
17
+ continue;
18
+ }
19
+ results[name] = result;
20
+ }
21
+ catch (error) {
22
+ // Handle cancellation
23
+ if (opts?.onCancel) {
24
+ results[name] = 'canceled';
25
+ opts.onCancel({ results });
26
+ }
27
+ throw error;
28
+ }
29
+ }
30
+ return results;
31
+ }
32
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/tui/group.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAC1B,OAAuB,EACvB,IAA4B;IAE5B,8DAA8D;IAC9D,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAe,CAAC,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAEzC,yCAAyC;YACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS;YACV,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,sBAAsB;YACtB,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,OAAgD,CAAC;AACzD,CAAC"}
@@ -0,0 +1,65 @@
1
+ export interface TextOptions {
2
+ message: string;
3
+ initial?: string;
4
+ placeholder?: string;
5
+ validate?: (value: string) => boolean | string | Promise<boolean | string>;
6
+ }
7
+ export interface ConfirmOptions {
8
+ message: string;
9
+ initial?: boolean;
10
+ }
11
+ export interface SelectOption<T = string> {
12
+ value: T;
13
+ label: string;
14
+ hint?: string;
15
+ }
16
+ export interface SelectOptions<T = string> {
17
+ message: string;
18
+ options: SelectOption<T>[];
19
+ initial?: T;
20
+ }
21
+ export interface MultiSelectOptions<T = string> {
22
+ message: string;
23
+ options: SelectOption<T>[];
24
+ initial?: T[];
25
+ }
26
+ /**
27
+ * Main prompt flow class
28
+ */
29
+ export declare class PromptFlow {
30
+ private states;
31
+ private hasIntro;
32
+ /**
33
+ * Display intro banner
34
+ */
35
+ intro(title: string): void;
36
+ /**
37
+ * Display outro message
38
+ */
39
+ outro(...messages: string[]): void;
40
+ /**
41
+ * Text input prompt
42
+ */
43
+ text(options: TextOptions): Promise<string>;
44
+ /**
45
+ * Confirm (yes/no) prompt
46
+ */
47
+ confirm(options: ConfirmOptions): Promise<boolean>;
48
+ /**
49
+ * Select (single choice) prompt
50
+ */
51
+ select<T = string>(options: SelectOptions<T>): Promise<T>;
52
+ /**
53
+ * Multi-select (multiple choices) prompt
54
+ */
55
+ multiselect<T = string>(options: MultiSelectOptions<T>): Promise<T[]>;
56
+ /**
57
+ * Cancel the flow
58
+ */
59
+ cancel(message: string): void;
60
+ }
61
+ /**
62
+ * Create a new prompt flow instance
63
+ */
64
+ export declare function createPrompt(): PromptFlow;
65
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/tui/prompt.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,MAAM;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;CACd;AAWD;;GAEG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B;;OAEG;IACH,KAAK,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAclC;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqGjD;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiFxD;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAkG/D;;OAEG;IACG,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAmH3E;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAI7B;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,UAAU,CAEzC"}