takt 0.1.0 → 0.1.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 (258) hide show
  1. package/dist/agents/runner.d.ts.map +1 -1
  2. package/dist/agents/runner.js +2 -1
  3. package/dist/agents/runner.js.map +1 -1
  4. package/dist/cli.d.ts +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +7 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/config.d.ts +33 -0
  9. package/dist/commands/config.d.ts.map +1 -0
  10. package/dist/commands/config.js +110 -0
  11. package/dist/commands/config.js.map +1 -0
  12. package/dist/commands/index.d.ts +1 -0
  13. package/dist/commands/index.d.ts.map +1 -1
  14. package/dist/commands/index.js +1 -0
  15. package/dist/commands/index.js.map +1 -1
  16. package/dist/commands/workflow.js +1 -1
  17. package/dist/commands/workflow.js.map +1 -1
  18. package/dist/config/initialization.js +1 -1
  19. package/dist/config/initialization.js.map +1 -1
  20. package/dist/config/projectConfig.d.ts +12 -1
  21. package/dist/config/projectConfig.d.ts.map +1 -1
  22. package/dist/config/projectConfig.js +1 -0
  23. package/dist/config/projectConfig.js.map +1 -1
  24. package/dist/{interactive/prompt.d.ts → prompt/index.d.ts} +3 -1
  25. package/dist/prompt/index.d.ts.map +1 -0
  26. package/dist/{interactive/prompt.js → prompt/index.js} +11 -1
  27. package/dist/prompt/index.js.map +1 -0
  28. package/package.json +1 -1
  29. package/dist/cli/agentExecution.d.ts +0 -16
  30. package/dist/cli/agentExecution.d.ts.map +0 -1
  31. package/dist/cli/agentExecution.js +0 -40
  32. package/dist/cli/agentExecution.js.map +0 -1
  33. package/dist/cli/help.d.ts +0 -8
  34. package/dist/cli/help.d.ts.map +0 -1
  35. package/dist/cli/help.js +0 -46
  36. package/dist/cli/help.js.map +0 -1
  37. package/dist/cli/index.d.ts +0 -8
  38. package/dist/cli/index.d.ts.map +0 -1
  39. package/dist/cli/index.js +0 -8
  40. package/dist/cli/index.js.map +0 -1
  41. package/dist/cli/taskBatch.d.ts +0 -8
  42. package/dist/cli/taskBatch.d.ts.map +0 -1
  43. package/dist/cli/taskBatch.js +0 -69
  44. package/dist/cli/taskBatch.js.map +0 -1
  45. package/dist/cli/workflowExecution.d.ts +0 -18
  46. package/dist/cli/workflowExecution.d.ts.map +0 -1
  47. package/dist/cli/workflowExecution.js +0 -112
  48. package/dist/cli/workflowExecution.js.map +0 -1
  49. package/dist/commands/agentExecution.d.ts +0 -8
  50. package/dist/commands/agentExecution.d.ts.map +0 -1
  51. package/dist/commands/agentExecution.js +0 -44
  52. package/dist/commands/agentExecution.js.map +0 -1
  53. package/dist/interactive/commands/agent.d.ts +0 -7
  54. package/dist/interactive/commands/agent.d.ts.map +0 -1
  55. package/dist/interactive/commands/agent.js +0 -65
  56. package/dist/interactive/commands/agent.js.map +0 -1
  57. package/dist/interactive/commands/basic.d.ts +0 -7
  58. package/dist/interactive/commands/basic.d.ts.map +0 -1
  59. package/dist/interactive/commands/basic.js +0 -81
  60. package/dist/interactive/commands/basic.js.map +0 -1
  61. package/dist/interactive/commands/index.d.ts +0 -12
  62. package/dist/interactive/commands/index.d.ts.map +0 -1
  63. package/dist/interactive/commands/index.js +0 -14
  64. package/dist/interactive/commands/index.js.map +0 -1
  65. package/dist/interactive/commands/registry.d.ts +0 -41
  66. package/dist/interactive/commands/registry.d.ts.map +0 -1
  67. package/dist/interactive/commands/registry.js +0 -37
  68. package/dist/interactive/commands/registry.js.map +0 -1
  69. package/dist/interactive/commands/session.d.ts +0 -7
  70. package/dist/interactive/commands/session.d.ts.map +0 -1
  71. package/dist/interactive/commands/session.js +0 -75
  72. package/dist/interactive/commands/session.js.map +0 -1
  73. package/dist/interactive/commands/task.d.ts +0 -7
  74. package/dist/interactive/commands/task.d.ts.map +0 -1
  75. package/dist/interactive/commands/task.js +0 -156
  76. package/dist/interactive/commands/task.js.map +0 -1
  77. package/dist/interactive/commands/workflow.d.ts +0 -7
  78. package/dist/interactive/commands/workflow.d.ts.map +0 -1
  79. package/dist/interactive/commands/workflow.js +0 -56
  80. package/dist/interactive/commands/workflow.js.map +0 -1
  81. package/dist/interactive/escape-tracker.d.ts +0 -37
  82. package/dist/interactive/escape-tracker.d.ts.map +0 -1
  83. package/dist/interactive/escape-tracker.js +0 -52
  84. package/dist/interactive/escape-tracker.js.map +0 -1
  85. package/dist/interactive/handlers.d.ts +0 -24
  86. package/dist/interactive/handlers.d.ts.map +0 -1
  87. package/dist/interactive/handlers.js +0 -191
  88. package/dist/interactive/handlers.js.map +0 -1
  89. package/dist/interactive/history-manager.d.ts +0 -45
  90. package/dist/interactive/history-manager.d.ts.map +0 -1
  91. package/dist/interactive/history-manager.js +0 -91
  92. package/dist/interactive/history-manager.js.map +0 -1
  93. package/dist/interactive/index.d.ts +0 -8
  94. package/dist/interactive/index.d.ts.map +0 -1
  95. package/dist/interactive/index.js +0 -8
  96. package/dist/interactive/index.js.map +0 -1
  97. package/dist/interactive/ink/components/App.d.ts +0 -16
  98. package/dist/interactive/ink/components/App.d.ts.map +0 -1
  99. package/dist/interactive/ink/components/App.js +0 -123
  100. package/dist/interactive/ink/components/App.js.map +0 -1
  101. package/dist/interactive/ink/components/AskUserQuestion.d.ts +0 -16
  102. package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +0 -1
  103. package/dist/interactive/ink/components/AskUserQuestion.js +0 -139
  104. package/dist/interactive/ink/components/AskUserQuestion.js.map +0 -1
  105. package/dist/interactive/ink/components/Header.d.ts +0 -20
  106. package/dist/interactive/ink/components/Header.d.ts.map +0 -1
  107. package/dist/interactive/ink/components/Header.js +0 -7
  108. package/dist/interactive/ink/components/Header.js.map +0 -1
  109. package/dist/interactive/ink/components/HelpView.d.ts +0 -13
  110. package/dist/interactive/ink/components/HelpView.d.ts.map +0 -1
  111. package/dist/interactive/ink/components/HelpView.js +0 -45
  112. package/dist/interactive/ink/components/HelpView.js.map +0 -1
  113. package/dist/interactive/ink/components/IterationLimit.d.ts +0 -19
  114. package/dist/interactive/ink/components/IterationLimit.d.ts.map +0 -1
  115. package/dist/interactive/ink/components/IterationLimit.js +0 -59
  116. package/dist/interactive/ink/components/IterationLimit.js.map +0 -1
  117. package/dist/interactive/ink/components/ModalRouter.d.ts +0 -11
  118. package/dist/interactive/ink/components/ModalRouter.d.ts.map +0 -1
  119. package/dist/interactive/ink/components/ModalRouter.js +0 -71
  120. package/dist/interactive/ink/components/ModalRouter.js.map +0 -1
  121. package/dist/interactive/ink/components/PermissionPrompt.d.ts +0 -17
  122. package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +0 -1
  123. package/dist/interactive/ink/components/PermissionPrompt.js +0 -102
  124. package/dist/interactive/ink/components/PermissionPrompt.js.map +0 -1
  125. package/dist/interactive/ink/components/PromptInput.d.ts +0 -26
  126. package/dist/interactive/ink/components/PromptInput.d.ts.map +0 -1
  127. package/dist/interactive/ink/components/PromptInput.js +0 -70
  128. package/dist/interactive/ink/components/PromptInput.js.map +0 -1
  129. package/dist/interactive/ink/components/Spinner.d.ts +0 -14
  130. package/dist/interactive/ink/components/Spinner.d.ts.map +0 -1
  131. package/dist/interactive/ink/components/Spinner.js +0 -8
  132. package/dist/interactive/ink/components/Spinner.js.map +0 -1
  133. package/dist/interactive/ink/components/StreamingOutput.d.ts +0 -25
  134. package/dist/interactive/ink/components/StreamingOutput.d.ts.map +0 -1
  135. package/dist/interactive/ink/components/StreamingOutput.js +0 -8
  136. package/dist/interactive/ink/components/StreamingOutput.js.map +0 -1
  137. package/dist/interactive/ink/components/UserInputPrompt.d.ts +0 -18
  138. package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +0 -1
  139. package/dist/interactive/ink/components/UserInputPrompt.js +0 -30
  140. package/dist/interactive/ink/components/UserInputPrompt.js.map +0 -1
  141. package/dist/interactive/ink/components/WorkflowSelector.d.ts +0 -18
  142. package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +0 -1
  143. package/dist/interactive/ink/components/WorkflowSelector.js +0 -65
  144. package/dist/interactive/ink/components/WorkflowSelector.js.map +0 -1
  145. package/dist/interactive/ink/constants.d.ts +0 -8
  146. package/dist/interactive/ink/constants.d.ts.map +0 -1
  147. package/dist/interactive/ink/constants.js +0 -8
  148. package/dist/interactive/ink/constants.js.map +0 -1
  149. package/dist/interactive/ink/context/AppContext.d.ts +0 -26
  150. package/dist/interactive/ink/context/AppContext.d.ts.map +0 -1
  151. package/dist/interactive/ink/context/AppContext.js +0 -30
  152. package/dist/interactive/ink/context/AppContext.js.map +0 -1
  153. package/dist/interactive/ink/context/appReducer.d.ts +0 -13
  154. package/dist/interactive/ink/context/appReducer.d.ts.map +0 -1
  155. package/dist/interactive/ink/context/appReducer.js +0 -183
  156. package/dist/interactive/ink/context/appReducer.js.map +0 -1
  157. package/dist/interactive/ink/context/types.d.ts +0 -144
  158. package/dist/interactive/ink/context/types.d.ts.map +0 -1
  159. package/dist/interactive/ink/context/types.js +0 -5
  160. package/dist/interactive/ink/context/types.js.map +0 -1
  161. package/dist/interactive/ink/hooks/keyDetection.d.ts +0 -116
  162. package/dist/interactive/ink/hooks/keyDetection.d.ts.map +0 -1
  163. package/dist/interactive/ink/hooks/keyDetection.js +0 -183
  164. package/dist/interactive/ink/hooks/keyDetection.js.map +0 -1
  165. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +0 -50
  166. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +0 -1
  167. package/dist/interactive/ink/hooks/multilineInputLogic.js +0 -150
  168. package/dist/interactive/ink/hooks/multilineInputLogic.js.map +0 -1
  169. package/dist/interactive/ink/hooks/useCommands.d.ts +0 -20
  170. package/dist/interactive/ink/hooks/useCommands.d.ts.map +0 -1
  171. package/dist/interactive/ink/hooks/useCommands.js +0 -129
  172. package/dist/interactive/ink/hooks/useCommands.js.map +0 -1
  173. package/dist/interactive/ink/hooks/useHistory.d.ts +0 -28
  174. package/dist/interactive/ink/hooks/useHistory.d.ts.map +0 -1
  175. package/dist/interactive/ink/hooks/useHistory.js +0 -59
  176. package/dist/interactive/ink/hooks/useHistory.js.map +0 -1
  177. package/dist/interactive/ink/hooks/useMultilineInput.d.ts +0 -49
  178. package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +0 -1
  179. package/dist/interactive/ink/hooks/useMultilineInput.js +0 -106
  180. package/dist/interactive/ink/hooks/useMultilineInput.js.map +0 -1
  181. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +0 -16
  182. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +0 -1
  183. package/dist/interactive/ink/hooks/usePermissionHandlers.js +0 -172
  184. package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +0 -1
  185. package/dist/interactive/ink/hooks/useRawKeypress.d.ts +0 -41
  186. package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +0 -1
  187. package/dist/interactive/ink/hooks/useRawKeypress.js +0 -79
  188. package/dist/interactive/ink/hooks/useRawKeypress.js.map +0 -1
  189. package/dist/interactive/ink/hooks/useTaskQueue.d.ts +0 -32
  190. package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +0 -1
  191. package/dist/interactive/ink/hooks/useTaskQueue.js +0 -68
  192. package/dist/interactive/ink/hooks/useTaskQueue.js.map +0 -1
  193. package/dist/interactive/ink/hooks/useWorkflow.d.ts +0 -45
  194. package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +0 -1
  195. package/dist/interactive/ink/hooks/useWorkflow.js +0 -93
  196. package/dist/interactive/ink/hooks/useWorkflow.js.map +0 -1
  197. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +0 -14
  198. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +0 -1
  199. package/dist/interactive/ink/hooks/useWorkflowExecution.js +0 -144
  200. package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +0 -1
  201. package/dist/interactive/ink/index.d.ts +0 -30
  202. package/dist/interactive/ink/index.d.ts.map +0 -1
  203. package/dist/interactive/ink/index.js +0 -33
  204. package/dist/interactive/ink/index.js.map +0 -1
  205. package/dist/interactive/ink/utils/workflow.d.ts +0 -11
  206. package/dist/interactive/ink/utils/workflow.d.ts.map +0 -1
  207. package/dist/interactive/ink/utils/workflow.js +0 -19
  208. package/dist/interactive/ink/utils/workflow.js.map +0 -1
  209. package/dist/interactive/input-buffer.d.ts +0 -67
  210. package/dist/interactive/input-buffer.d.ts.map +0 -1
  211. package/dist/interactive/input-buffer.js +0 -162
  212. package/dist/interactive/input-buffer.js.map +0 -1
  213. package/dist/interactive/input-handlers.d.ts +0 -50
  214. package/dist/interactive/input-handlers.d.ts.map +0 -1
  215. package/dist/interactive/input-handlers.js +0 -170
  216. package/dist/interactive/input-handlers.js.map +0 -1
  217. package/dist/interactive/input.d.ts +0 -43
  218. package/dist/interactive/input.d.ts.map +0 -1
  219. package/dist/interactive/input.js +0 -74
  220. package/dist/interactive/input.js.map +0 -1
  221. package/dist/interactive/keyDetection.d.ts +0 -85
  222. package/dist/interactive/keyDetection.d.ts.map +0 -1
  223. package/dist/interactive/keyDetection.js +0 -167
  224. package/dist/interactive/keyDetection.js.map +0 -1
  225. package/dist/interactive/multilineInputLogic.d.ts +0 -30
  226. package/dist/interactive/multilineInputLogic.d.ts.map +0 -1
  227. package/dist/interactive/multilineInputLogic.js +0 -143
  228. package/dist/interactive/multilineInputLogic.js.map +0 -1
  229. package/dist/interactive/passthrough.d.ts +0 -30
  230. package/dist/interactive/passthrough.d.ts.map +0 -1
  231. package/dist/interactive/passthrough.js +0 -94
  232. package/dist/interactive/passthrough.js.map +0 -1
  233. package/dist/interactive/permission.d.ts +0 -33
  234. package/dist/interactive/permission.d.ts.map +0 -1
  235. package/dist/interactive/permission.js +0 -231
  236. package/dist/interactive/permission.js.map +0 -1
  237. package/dist/interactive/prompt.d.ts.map +0 -1
  238. package/dist/interactive/prompt.js.map +0 -1
  239. package/dist/interactive/repl.d.ts +0 -13
  240. package/dist/interactive/repl.d.ts.map +0 -1
  241. package/dist/interactive/repl.js +0 -202
  242. package/dist/interactive/repl.js.map +0 -1
  243. package/dist/interactive/types.d.ts +0 -35
  244. package/dist/interactive/types.d.ts.map +0 -1
  245. package/dist/interactive/types.js +0 -5
  246. package/dist/interactive/types.js.map +0 -1
  247. package/dist/interactive/ui.d.ts +0 -16
  248. package/dist/interactive/ui.d.ts.map +0 -1
  249. package/dist/interactive/ui.js +0 -122
  250. package/dist/interactive/ui.js.map +0 -1
  251. package/dist/interactive/user-input.d.ts +0 -26
  252. package/dist/interactive/user-input.d.ts.map +0 -1
  253. package/dist/interactive/user-input.js +0 -115
  254. package/dist/interactive/user-input.js.map +0 -1
  255. package/dist/interactive/workflow-executor.d.ts +0 -20
  256. package/dist/interactive/workflow-executor.d.ts.map +0 -1
  257. package/dist/interactive/workflow-executor.js +0 -200
  258. package/dist/interactive/workflow-executor.js.map +0 -1
@@ -1,162 +0,0 @@
1
- /**
2
- * Asynchronous input buffer for takt
3
- *
4
- * Allows collecting user hints during workflow execution.
5
- * The workflow can retrieve these hints at any time without blocking.
6
- */
7
- import { EventEmitter } from 'node:events';
8
- import chalk from 'chalk';
9
- import { createLogger } from '../utils/debug.js';
10
- const log = createLogger('input-buffer');
11
- /**
12
- * Asynchronous input buffer that collects user hints during workflow execution.
13
- *
14
- * This enables Claude Code-like behavior where users can provide hints
15
- * while the agent is processing, without interrupting the workflow.
16
- */
17
- export class InputBuffer extends EventEmitter {
18
- buffer = [];
19
- isActive = false;
20
- keyHandler = null;
21
- currentLine = '';
22
- constructor() {
23
- super();
24
- }
25
- /**
26
- * Start collecting input in the background.
27
- * User can type hints that will be buffered for later retrieval.
28
- */
29
- start() {
30
- if (this.isActive)
31
- return;
32
- this.isActive = true;
33
- this.buffer = [];
34
- this.currentLine = '';
35
- // Set stdin to raw mode if TTY
36
- if (process.stdin.isTTY) {
37
- process.stdin.setRawMode(true);
38
- }
39
- process.stdin.resume();
40
- // Create key handler
41
- this.keyHandler = (chunk) => {
42
- const key = chunk.toString();
43
- // Handle special keys
44
- if (key === '\r' || key === '\n') {
45
- // Enter key - submit the hint
46
- if (this.currentLine.trim()) {
47
- log.debug('Hint submitted', { hint: this.currentLine });
48
- this.buffer.push(this.currentLine);
49
- this.emit('hint', this.currentLine);
50
- // Show confirmation
51
- process.stdout.write(chalk.gray(`\n[Hint queued: ${this.currentLine.slice(0, 50)}${this.currentLine.length > 50 ? '...' : ''}]\n`));
52
- }
53
- this.currentLine = '';
54
- }
55
- else if (key === '\u0003') {
56
- // Ctrl+C - interrupt (let the main handler deal with it)
57
- // Don't add to buffer
58
- this.currentLine = '';
59
- }
60
- else if (key === '\u007F' || key === '\b') {
61
- // Backspace
62
- if (this.currentLine.length > 0) {
63
- this.currentLine = this.currentLine.slice(0, -1);
64
- // Visual feedback for backspace
65
- process.stdout.write('\b \b');
66
- }
67
- }
68
- else if (key === '\u001b') {
69
- // Escape - clear current input
70
- this.currentLine = '';
71
- }
72
- else if (key.charCodeAt(0) >= 32) {
73
- // Regular printable character
74
- this.currentLine += key;
75
- // Echo the character in gray (hint mode)
76
- process.stdout.write(chalk.gray(key));
77
- }
78
- };
79
- process.stdin.on('data', this.keyHandler);
80
- log.debug('Input buffer started');
81
- }
82
- /**
83
- * Stop collecting input.
84
- */
85
- stop() {
86
- if (!this.isActive)
87
- return;
88
- this.isActive = false;
89
- if (this.keyHandler) {
90
- process.stdin.removeListener('data', this.keyHandler);
91
- this.keyHandler = null;
92
- }
93
- // Restore stdin state
94
- if (process.stdin.isTTY) {
95
- process.stdin.setRawMode(false);
96
- }
97
- process.stdin.pause();
98
- this.emit('close');
99
- log.debug('Input buffer stopped');
100
- }
101
- /**
102
- * Get all buffered hints and clear the buffer.
103
- */
104
- flush() {
105
- const hints = [...this.buffer];
106
- this.buffer = [];
107
- log.debug('Buffer flushed', { hintCount: hints.length });
108
- return hints;
109
- }
110
- /**
111
- * Get all buffered hints without clearing.
112
- */
113
- peek() {
114
- return this.buffer;
115
- }
116
- /**
117
- * Check if there are any buffered hints.
118
- */
119
- hasHints() {
120
- return this.buffer.length > 0;
121
- }
122
- /**
123
- * Get the count of buffered hints.
124
- */
125
- get hintCount() {
126
- return this.buffer.length;
127
- }
128
- /**
129
- * Check if the buffer is active.
130
- */
131
- get active() {
132
- return this.isActive;
133
- }
134
- /**
135
- * Add a hint programmatically (useful for testing).
136
- */
137
- addHint(hint) {
138
- this.buffer.push(hint);
139
- this.emit('hint', hint);
140
- }
141
- }
142
- /** Singleton instance for global access */
143
- let globalInputBuffer = null;
144
- /**
145
- * Get or create the global input buffer instance.
146
- */
147
- export function getInputBuffer() {
148
- if (!globalInputBuffer) {
149
- globalInputBuffer = new InputBuffer();
150
- }
151
- return globalInputBuffer;
152
- }
153
- /**
154
- * Reset the global input buffer (for testing).
155
- */
156
- export function resetInputBuffer() {
157
- if (globalInputBuffer) {
158
- globalInputBuffer.stop();
159
- globalInputBuffer = null;
160
- }
161
- }
162
- //# sourceMappingURL=input-buffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-buffer.js","sourceRoot":"","sources":["../../src/interactive/input-buffer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAQzC;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,YAAY;IACnC,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,GAAY,KAAK,CAAC;IAC1B,UAAU,GAAqC,IAAI,CAAC;IACpD,WAAW,GAAW,EAAE,CAAC;IAEjC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,+BAA+B;QAC/B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAEvB,qBAAqB;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAE7B,sBAAsB;YACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjC,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5B,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpC,oBAAoB;oBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtI,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,yDAAyD;gBACzD,sBAAsB;gBACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,YAAY;gBACZ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjD,gCAAgC;oBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,+BAA+B;gBAC/B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnC,8BAA8B;gBAC9B,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;gBACxB,yCAAyC;gBACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,2CAA2C;AAC3C,IAAI,iBAAiB,GAAuB,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,iBAAiB,EAAE,CAAC;QACtB,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACzB,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1,50 +0,0 @@
1
- /**
2
- * Input event handlers for multiline input
3
- *
4
- * Contains keypress and line handlers used by multiLineQuestion.
5
- */
6
- import * as readline from 'node:readline';
7
- import { EscapeSequenceTracker } from './escape-tracker.js';
8
- import { InputHistoryManager } from './history-manager.js';
9
- /** Key event interface for keypress handling */
10
- export interface KeyEvent {
11
- name?: string;
12
- ctrl?: boolean;
13
- meta?: boolean;
14
- shift?: boolean;
15
- sequence?: string;
16
- }
17
- /** State for multiline input session */
18
- export interface MultilineInputState {
19
- lines: string[];
20
- insertNewlineOnNextLine: boolean;
21
- isFirstLine: boolean;
22
- promptStr: string;
23
- }
24
- /** Get readline's internal line state */
25
- export declare function getReadlineLine(rl: readline.Interface): string;
26
- /** Set readline's internal line and cursor state */
27
- export declare function setReadlineState(rl: readline.Interface, line: string, cursor: number): void;
28
- /** Format a history entry for display (truncate multi-line entries) */
29
- export declare function formatHistoryEntry(entry: string): string;
30
- /**
31
- * Determines if a key event should trigger multi-line input mode.
32
- */
33
- export declare function isMultilineInputTrigger(key: KeyEvent, escapeTracker: EscapeSequenceTracker): boolean;
34
- /** Check if a line ends with backslash for line continuation */
35
- export declare function hasBackslashContinuation(line: string): boolean;
36
- /** Remove trailing backslash used for line continuation */
37
- export declare function removeBackslashContinuation(line: string): string;
38
- /**
39
- * Create keypress handler for multiline input.
40
- */
41
- export declare function createKeypressHandler(rl: readline.Interface, state: MultilineInputState, escapeTracker: EscapeSequenceTracker, historyManager: InputHistoryManager): (str: string | undefined, key: KeyEvent) => void;
42
- /**
43
- * Create line handler for multiline input.
44
- */
45
- export declare function createLineHandler(rl: readline.Interface, state: MultilineInputState, historyManager: InputHistoryManager, cleanup: () => void, resolve: (value: string) => void): (line: string) => void;
46
- /**
47
- * Create SIGINT handler for multiline input.
48
- */
49
- export declare function createSigintHandler(rl: readline.Interface, state: MultilineInputState, historyManager: InputHistoryManager, onCtrlC: () => boolean | void, cleanup: () => void, resolve: (value: string) => void): () => void;
50
- //# sourceMappingURL=input-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-handlers.d.ts","sourceRoot":"","sources":["../../src/interactive/input-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D,gDAAgD;AAChD,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB,EAAE,OAAO,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,yCAAyC;AACzC,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAG9D;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ3F;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,qBAAqB,GACnC,OAAO,CAoBT;AAED,gEAAgE;AAChE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED,2DAA2D;AAC3D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,qBAAqB,EACpC,cAAc,EAAE,mBAAmB,GAClC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CA+ClD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,KAAK,EAAE,mBAAmB,EAC1B,cAAc,EAAE,mBAAmB,EACnC,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAgCxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,KAAK,EAAE,mBAAmB,EAC1B,cAAc,EAAE,mBAAmB,EACnC,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,EAC7B,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,MAAM,IAAI,CAwBZ"}
@@ -1,170 +0,0 @@
1
- /**
2
- * Input event handlers for multiline input
3
- *
4
- * Contains keypress and line handlers used by multiLineQuestion.
5
- */
6
- import chalk from 'chalk';
7
- import { createLogger } from '../utils/debug.js';
8
- const log = createLogger('input');
9
- /** Get readline's internal line state */
10
- export function getReadlineLine(rl) {
11
- const internal = rl;
12
- return internal.line ?? '';
13
- }
14
- /** Set readline's internal line and cursor state */
15
- export function setReadlineState(rl, line, cursor) {
16
- const internal = rl;
17
- if ('line' in rl) {
18
- internal.line = line;
19
- }
20
- if ('cursor' in rl) {
21
- internal.cursor = cursor;
22
- }
23
- }
24
- /** Format a history entry for display (truncate multi-line entries) */
25
- export function formatHistoryEntry(entry) {
26
- const firstLine = entry.split('\n')[0] ?? '';
27
- const hasMoreLines = entry.includes('\n');
28
- return hasMoreLines ? firstLine + ' ...' : firstLine;
29
- }
30
- /**
31
- * Determines if a key event should trigger multi-line input mode.
32
- */
33
- export function isMultilineInputTrigger(key, escapeTracker) {
34
- const isEnterKey = key.name === 'return' || key.name === 'enter';
35
- const modifiedEnter = isEnterKey && (key.ctrl || key.meta || key.shift);
36
- const isCtrlJ = key.ctrl && (key.name === 'j' || key.sequence === '\n');
37
- const escapeSequences = key.sequence === '\x1b\r' ||
38
- key.sequence === '\u001b\r' ||
39
- key.sequence === '\x1bOM' ||
40
- key.sequence === '\u001bOM';
41
- const iterm2Style = isEnterKey && escapeTracker.isEscapeThenEnter();
42
- const result = modifiedEnter || isCtrlJ || escapeSequences || iterm2Style;
43
- if (isEnterKey || escapeSequences) {
44
- log.debug('isMultilineInputTrigger', {
45
- isEnterKey, modifiedEnter, isCtrlJ, escapeSequences, iterm2Style, result,
46
- });
47
- }
48
- return result;
49
- }
50
- /** Check if a line ends with backslash for line continuation */
51
- export function hasBackslashContinuation(line) {
52
- let backslashCount = 0;
53
- for (let i = line.length - 1; i >= 0 && line[i] === '\\'; i--) {
54
- backslashCount++;
55
- }
56
- return backslashCount % 2 === 1;
57
- }
58
- /** Remove trailing backslash used for line continuation */
59
- export function removeBackslashContinuation(line) {
60
- if (hasBackslashContinuation(line)) {
61
- return line.slice(0, -1);
62
- }
63
- return line;
64
- }
65
- /**
66
- * Create keypress handler for multiline input.
67
- */
68
- export function createKeypressHandler(rl, state, escapeTracker, historyManager) {
69
- const replaceCurrentLine = (newContent) => {
70
- const currentLine = getReadlineLine(rl);
71
- process.stdout.write('\r' + state.promptStr);
72
- process.stdout.write(' '.repeat(currentLine.length));
73
- process.stdout.write('\r' + state.promptStr + newContent);
74
- setReadlineState(rl, newContent, newContent.length);
75
- };
76
- return (_str, key) => {
77
- if (!key)
78
- return;
79
- const seqHex = key.sequence
80
- ? [...key.sequence].map(c => '0x' + c.charCodeAt(0).toString(16).padStart(2, '0')).join(' ')
81
- : '(none)';
82
- log.debug('keypress', {
83
- name: key.name, sequence: seqHex, ctrl: key.ctrl, meta: key.meta, shift: key.shift,
84
- });
85
- if (key.name === 'escape' || key.sequence === '\x1b') {
86
- escapeTracker.trackEscape();
87
- }
88
- if (isMultilineInputTrigger(key, escapeTracker)) {
89
- state.insertNewlineOnNextLine = true;
90
- return;
91
- }
92
- if (!state.isFirstLine)
93
- return;
94
- if (key.name === 'up' && historyManager.length > 0) {
95
- historyManager.saveCurrentInput(getReadlineLine(rl));
96
- const entry = historyManager.navigatePrevious();
97
- if (entry !== undefined) {
98
- replaceCurrentLine(formatHistoryEntry(entry));
99
- }
100
- return;
101
- }
102
- if (key.name === 'down') {
103
- const result = historyManager.navigateNext();
104
- if (result !== undefined) {
105
- const displayText = result.isCurrentInput ? result.entry : formatHistoryEntry(result.entry);
106
- replaceCurrentLine(displayText);
107
- }
108
- }
109
- };
110
- }
111
- /**
112
- * Create line handler for multiline input.
113
- */
114
- export function createLineHandler(rl, state, historyManager, cleanup, resolve) {
115
- const showPrompt = () => {
116
- const prefix = state.isFirstLine ? state.promptStr : chalk.gray('... ');
117
- rl.setPrompt(prefix);
118
- rl.prompt();
119
- };
120
- return (line) => {
121
- const hasBackslash = hasBackslashContinuation(line);
122
- log.debug('handleLine', { line, insertNewlineOnNextLine: state.insertNewlineOnNextLine, hasBackslash });
123
- if (state.insertNewlineOnNextLine || hasBackslash) {
124
- const cleanLine = hasBackslash ? removeBackslashContinuation(line) : line;
125
- state.lines.push(cleanLine);
126
- state.isFirstLine = false;
127
- state.insertNewlineOnNextLine = false;
128
- showPrompt();
129
- }
130
- else {
131
- cleanup();
132
- if (historyManager.isAtHistoryEntry() && state.isFirstLine) {
133
- const historyEntry = historyManager.getCurrentEntry();
134
- if (historyEntry !== undefined) {
135
- resolve(historyEntry);
136
- return;
137
- }
138
- }
139
- state.lines.push(line);
140
- resolve(state.lines.join('\n'));
141
- }
142
- };
143
- }
144
- /**
145
- * Create SIGINT handler for multiline input.
146
- */
147
- export function createSigintHandler(rl, state, historyManager, onCtrlC, cleanup, resolve) {
148
- const showPrompt = () => {
149
- const prefix = state.isFirstLine ? state.promptStr : chalk.gray('... ');
150
- rl.setPrompt(prefix);
151
- rl.prompt();
152
- };
153
- return () => {
154
- if (state.lines.length > 0) {
155
- state.lines.length = 0;
156
- state.isFirstLine = true;
157
- state.insertNewlineOnNextLine = false;
158
- historyManager.resetIndex();
159
- console.log();
160
- showPrompt();
161
- return;
162
- }
163
- const shouldCancel = onCtrlC();
164
- if (shouldCancel === true) {
165
- cleanup();
166
- resolve('');
167
- }
168
- };
169
- }
170
- //# sourceMappingURL=input-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-handlers.js","sourceRoot":"","sources":["../../src/interactive/input-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Input handling module for takt interactive mode
3
- *
4
- * Handles readline interface, multi-line input, and input history management.
5
- *
6
- * Multi-line input methods:
7
- * - Ctrl+J: Works on all terminals (recommended for mac Terminal.app)
8
- * - Ctrl+Enter: Works on terminals that support it
9
- * - Option+Enter: Works on iTerm2 and some other Mac terminals
10
- * - Backslash continuation: End line with \ to continue on next line
11
- */
12
- import * as readline from 'node:readline';
13
- import { InputHistoryManager } from './history-manager.js';
14
- export { EscapeSequenceTracker } from './escape-tracker.js';
15
- export { InputHistoryManager } from './history-manager.js';
16
- export { isMultilineInputTrigger, hasBackslashContinuation, removeBackslashContinuation, type KeyEvent, } from './input-handlers.js';
17
- /** Create readline interface with keypress support */
18
- export declare function createReadlineInterface(): readline.Interface;
19
- /** Options for multiLineQuestion */
20
- export interface MultiLineQuestionOptions {
21
- promptStr: string;
22
- /**
23
- * Callback when Ctrl+C is pressed on the first line (no accumulated input).
24
- * Return `true` to cancel and resolve with empty string.
25
- * Return `void` or `false` to continue input (REPL behavior).
26
- */
27
- onCtrlC: () => boolean | void;
28
- historyManager: InputHistoryManager;
29
- }
30
- /**
31
- * Multi-line input using standard readline with Option+Return support and input history.
32
- *
33
- * This approach preserves all readline features (arrow keys, history, etc.)
34
- * while adding multi-line support via keypress event interception.
35
- *
36
- * - Enter: submit input (execute)
37
- * - Option+Enter (Mac) / Ctrl+Enter: insert newline (multi-line input)
38
- * - Up Arrow: navigate to previous input in history
39
- * - Down Arrow: navigate to next input in history
40
- * - Ctrl+C: interrupt / cancel
41
- */
42
- export declare function multiLineQuestion(rl: readline.Interface, options: MultiLineQuestionOptions): Promise<string>;
43
- //# sourceMappingURL=input.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/interactive/input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,QAAQ,GACd,MAAM,qBAAqB,CAAC;AAE7B,sDAAsD;AACtD,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC,SAAS,CAS5D;AAED,oCAAoC;AACpC,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Input handling module for takt interactive mode
3
- *
4
- * Handles readline interface, multi-line input, and input history management.
5
- *
6
- * Multi-line input methods:
7
- * - Ctrl+J: Works on all terminals (recommended for mac Terminal.app)
8
- * - Ctrl+Enter: Works on terminals that support it
9
- * - Option+Enter: Works on iTerm2 and some other Mac terminals
10
- * - Backslash continuation: End line with \ to continue on next line
11
- */
12
- import * as readline from 'node:readline';
13
- import { emitKeypressEvents } from 'node:readline';
14
- import { EscapeSequenceTracker } from './escape-tracker.js';
15
- import { createKeypressHandler, createLineHandler, createSigintHandler, } from './input-handlers.js';
16
- // Re-export for backward compatibility
17
- export { EscapeSequenceTracker } from './escape-tracker.js';
18
- export { InputHistoryManager } from './history-manager.js';
19
- export { isMultilineInputTrigger, hasBackslashContinuation, removeBackslashContinuation, } from './input-handlers.js';
20
- /** Create readline interface with keypress support */
21
- export function createReadlineInterface() {
22
- if (process.stdin.isTTY) {
23
- emitKeypressEvents(process.stdin);
24
- }
25
- return readline.createInterface({
26
- input: process.stdin,
27
- output: process.stdout,
28
- });
29
- }
30
- /**
31
- * Multi-line input using standard readline with Option+Return support and input history.
32
- *
33
- * This approach preserves all readline features (arrow keys, history, etc.)
34
- * while adding multi-line support via keypress event interception.
35
- *
36
- * - Enter: submit input (execute)
37
- * - Option+Enter (Mac) / Ctrl+Enter: insert newline (multi-line input)
38
- * - Up Arrow: navigate to previous input in history
39
- * - Down Arrow: navigate to next input in history
40
- * - Ctrl+C: interrupt / cancel
41
- */
42
- export function multiLineQuestion(rl, options) {
43
- const { promptStr, onCtrlC, historyManager } = options;
44
- return new Promise((resolve) => {
45
- const state = {
46
- lines: [],
47
- insertNewlineOnNextLine: false,
48
- isFirstLine: true,
49
- promptStr,
50
- };
51
- const escapeTracker = new EscapeSequenceTracker();
52
- historyManager.resetIndex();
53
- const cleanup = () => {
54
- process.stdin.removeListener('keypress', handleKeypress);
55
- rl.removeListener('line', handleLine);
56
- rl.removeListener('close', handleClose);
57
- rl.removeListener('SIGINT', handleSigint);
58
- };
59
- const handleKeypress = createKeypressHandler(rl, state, escapeTracker, historyManager);
60
- const handleLine = createLineHandler(rl, state, historyManager, cleanup, resolve);
61
- const handleSigint = createSigintHandler(rl, state, historyManager, onCtrlC, cleanup, resolve);
62
- const handleClose = () => {
63
- cleanup();
64
- resolve(state.lines.length > 0 ? state.lines.join('\n') : '');
65
- };
66
- process.stdin.on('keypress', handleKeypress);
67
- rl.on('line', handleLine);
68
- rl.on('close', handleClose);
69
- rl.on('SIGINT', handleSigint);
70
- rl.setPrompt(promptStr);
71
- rl.prompt();
72
- });
73
- }
74
- //# sourceMappingURL=input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/interactive/input.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- /**
2
- * Key detection utilities for interactive input
3
- *
4
- * Handles escape sequences, modifier keys, and special key combinations
5
- * for terminal input processing.
6
- */
7
- /** Raw key event from terminal */
8
- export interface RawKeyEvent {
9
- name?: string;
10
- ctrl: boolean;
11
- meta: boolean;
12
- shift: boolean;
13
- sequence?: string;
14
- }
15
- /** Types of key actions */
16
- export type KeyAction = {
17
- type: 'escape';
18
- } | {
19
- type: 'cancel';
20
- } | {
21
- type: 'newline';
22
- } | {
23
- type: 'submit';
24
- } | {
25
- type: 'navigation';
26
- direction: 'up' | 'down' | 'left' | 'right';
27
- } | {
28
- type: 'backspace';
29
- } | {
30
- type: 'character';
31
- char: string;
32
- } | {
33
- type: 'ignored';
34
- };
35
- /**
36
- * Tracks escape sequences for iTerm2-style Option+Enter detection.
37
- *
38
- * In iTerm2, Option+Enter sends Escape followed by Enter as separate events.
39
- * This tracker detects that pattern within a time threshold.
40
- */
41
- export declare class EscapeSequenceTracker {
42
- private lastEscapeTime;
43
- private readonly thresholdMs;
44
- constructor(thresholdMs?: number);
45
- /** Record that an Escape key was pressed */
46
- trackEscape(): void;
47
- /**
48
- * Check if Enter was pressed shortly after Escape.
49
- * Consumes the escape state (returns true only once per escape).
50
- */
51
- isEscapeThenEnter(): boolean;
52
- /** Reset the tracker state */
53
- reset(): void;
54
- }
55
- /**
56
- * Check if key triggers a newline insertion (not submit).
57
- *
58
- * Supports:
59
- * - Ctrl+O (traditional newline)
60
- * - Shift+Enter, Meta+Enter (Option+Enter), Ctrl+Enter
61
- * - Escape sequences for Option+Enter (\x1b\r, \x1bOM)
62
- * - iTerm2-style Escape then Enter pattern
63
- */
64
- export declare function isNewLineTrigger(key: RawKeyEvent, escapeTracker: EscapeSequenceTracker): boolean;
65
- /**
66
- * Check if key triggers submission (plain Enter or Ctrl+J).
67
- */
68
- export declare function isSubmitTrigger(key: RawKeyEvent): boolean;
69
- /**
70
- * Check if key is Ctrl+C (cancel).
71
- */
72
- export declare function isCancelTrigger(key: RawKeyEvent): boolean;
73
- /**
74
- * Check if key is a navigation arrow key.
75
- */
76
- export declare function isNavigationKey(key: RawKeyEvent): 'up' | 'down' | 'left' | 'right' | null;
77
- /**
78
- * Check if key is backspace or delete.
79
- */
80
- export declare function isBackspaceKey(key: RawKeyEvent): boolean;
81
- /**
82
- * Classify a key event into an action type.
83
- */
84
- export declare function classifyKeyEvent(input: string | undefined, key: RawKeyEvent, escapeTracker: EscapeSequenceTracker): KeyAction;
85
- //# sourceMappingURL=keyDetection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyDetection.d.ts","sourceRoot":"","sources":["../../src/interactive/keyDetection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,WAAW,GAAE,MAAW;IAIpC,4CAA4C;IAC5C,WAAW,IAAI,IAAI;IAInB;;;OAGG;IACH,iBAAiB,IAAI,OAAO;IAc5B,8BAA8B;IAC9B,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAkChG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAczD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAazF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,qBAAqB,GACnC,SAAS,CA4CX"}