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,167 +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
- /**
8
- * Tracks escape sequences for iTerm2-style Option+Enter detection.
9
- *
10
- * In iTerm2, Option+Enter sends Escape followed by Enter as separate events.
11
- * This tracker detects that pattern within a time threshold.
12
- */
13
- export class EscapeSequenceTracker {
14
- lastEscapeTime = null;
15
- thresholdMs;
16
- constructor(thresholdMs = 50) {
17
- this.thresholdMs = thresholdMs;
18
- }
19
- /** Record that an Escape key was pressed */
20
- trackEscape() {
21
- this.lastEscapeTime = Date.now();
22
- }
23
- /**
24
- * Check if Enter was pressed shortly after Escape.
25
- * Consumes the escape state (returns true only once per escape).
26
- */
27
- isEscapeThenEnter() {
28
- if (this.lastEscapeTime === null) {
29
- return false;
30
- }
31
- const elapsed = Date.now() - this.lastEscapeTime;
32
- const isWithinThreshold = elapsed < this.thresholdMs;
33
- // Consume the escape state
34
- this.lastEscapeTime = null;
35
- return isWithinThreshold;
36
- }
37
- /** Reset the tracker state */
38
- reset() {
39
- this.lastEscapeTime = null;
40
- }
41
- }
42
- /**
43
- * Check if key triggers a newline insertion (not submit).
44
- *
45
- * Supports:
46
- * - Ctrl+O (traditional newline)
47
- * - Shift+Enter, Meta+Enter (Option+Enter), Ctrl+Enter
48
- * - Escape sequences for Option+Enter (\x1b\r, \x1bOM)
49
- * - iTerm2-style Escape then Enter pattern
50
- */
51
- export function isNewLineTrigger(key, escapeTracker) {
52
- // Ctrl+O is the traditional newline in many terminals
53
- if (key.ctrl && key.name === 'o') {
54
- return true;
55
- }
56
- // Check for enter/return with modifiers
57
- const isEnterKey = key.name === 'return' || key.name === 'enter';
58
- if (isEnterKey) {
59
- // Modifier + Enter = newline
60
- if (key.shift || key.meta || key.ctrl) {
61
- return true;
62
- }
63
- // iTerm2-style: Escape followed by Enter
64
- if (escapeTracker.isEscapeThenEnter()) {
65
- return true;
66
- }
67
- }
68
- // Check escape sequences for Option+Enter
69
- const seq = key.sequence;
70
- if (seq) {
71
- // Option+Enter in various terminal emulators
72
- if (seq === '\x1b\r' || seq === '\u001b\r') {
73
- return true;
74
- }
75
- // Some terminals send ESC O M for Option+Enter
76
- if (seq === '\x1bOM' || seq === '\u001bOM') {
77
- return true;
78
- }
79
- }
80
- return false;
81
- }
82
- /**
83
- * Check if key triggers submission (plain Enter or Ctrl+J).
84
- */
85
- export function isSubmitTrigger(key) {
86
- const isEnterKey = key.name === 'return' || key.name === 'enter';
87
- // Plain Enter without modifiers
88
- if (isEnterKey && !key.shift && !key.meta && !key.ctrl) {
89
- return true;
90
- }
91
- // Ctrl+J (alternative Enter)
92
- if (key.ctrl && key.name === 'j') {
93
- return true;
94
- }
95
- return false;
96
- }
97
- /**
98
- * Check if key is Ctrl+C (cancel).
99
- */
100
- export function isCancelTrigger(key) {
101
- return key.ctrl && key.name === 'c';
102
- }
103
- /**
104
- * Check if key is a navigation arrow key.
105
- */
106
- export function isNavigationKey(key) {
107
- switch (key.name) {
108
- case 'up':
109
- return 'up';
110
- case 'down':
111
- return 'down';
112
- case 'left':
113
- return 'left';
114
- case 'right':
115
- return 'right';
116
- default:
117
- return null;
118
- }
119
- }
120
- /**
121
- * Check if key is backspace or delete.
122
- */
123
- export function isBackspaceKey(key) {
124
- return key.name === 'backspace' || key.name === 'delete';
125
- }
126
- /**
127
- * Classify a key event into an action type.
128
- */
129
- export function classifyKeyEvent(input, key, escapeTracker) {
130
- // Escape key (track for iTerm2 pattern)
131
- if (key.name === 'escape' || key.sequence === '\x1b') {
132
- escapeTracker.trackEscape();
133
- return { type: 'escape' };
134
- }
135
- // Cancel (Ctrl+C)
136
- if (isCancelTrigger(key)) {
137
- return { type: 'cancel' };
138
- }
139
- // Newline insertion
140
- if (isNewLineTrigger(key, escapeTracker)) {
141
- return { type: 'newline' };
142
- }
143
- // Submit
144
- if (isSubmitTrigger(key)) {
145
- return { type: 'submit' };
146
- }
147
- // Navigation
148
- const nav = isNavigationKey(key);
149
- if (nav) {
150
- return { type: 'navigation', direction: nav };
151
- }
152
- // Backspace
153
- if (isBackspaceKey(key)) {
154
- return { type: 'backspace' };
155
- }
156
- // Character input
157
- if (input && !key.ctrl && !key.meta) {
158
- // Filter out control characters (intentional use of control char regex)
159
- // eslint-disable-next-line no-control-regex
160
- const printable = input.replace(/[\x00-\x1f\x7f]/g, '');
161
- if (printable) {
162
- return { type: 'character', char: printable };
163
- }
164
- }
165
- return { type: 'ignored' };
166
- }
167
- //# sourceMappingURL=keyDetection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyDetection.js","sourceRoot":"","sources":["../../src/interactive/keyDetection.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Multiline input state handling logic
3
- *
4
- * Pure functions for handling state transformations in multiline text editing.
5
- */
6
- /** State for multiline input */
7
- export interface MultilineInputState {
8
- lines: string[];
9
- currentLine: number;
10
- cursor: number;
11
- }
12
- /** Create initial state */
13
- export declare function createInitialState(): MultilineInputState;
14
- /** Get full input as single string (trimmed) */
15
- export declare function getFullInput(state: MultilineInputState): string;
16
- /** Handle character input */
17
- export declare function handleCharacterInput(state: MultilineInputState, char: string): MultilineInputState;
18
- /** Handle newline insertion */
19
- export declare function handleNewLine(state: MultilineInputState): MultilineInputState;
20
- /** Handle backspace */
21
- export declare function handleBackspace(state: MultilineInputState): MultilineInputState;
22
- /** Handle left arrow */
23
- export declare function handleLeftArrow(state: MultilineInputState): MultilineInputState;
24
- /** Handle right arrow */
25
- export declare function handleRightArrow(state: MultilineInputState): MultilineInputState;
26
- /** Handle up arrow */
27
- export declare function handleUpArrow(state: MultilineInputState): MultilineInputState;
28
- /** Handle down arrow */
29
- export declare function handleDownArrow(state: MultilineInputState): MultilineInputState;
30
- //# sourceMappingURL=multilineInputLogic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multilineInputLogic.d.ts","sourceRoot":"","sources":["../../src/interactive/multilineInputLogic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2BAA2B;AAC3B,wBAAgB,kBAAkB,IAAI,mBAAmB,CAMxD;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAE/D;AAED,6BAA6B;AAC7B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,MAAM,GACX,mBAAmB,CAarB;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAoB7E;AAED,uBAAuB;AACvB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAmC/E;AAED,wBAAwB;AACxB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAgB/E;AAED,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAgBhF;AAED,sBAAsB;AACtB,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAa7E;AAED,wBAAwB;AACxB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAa/E"}
@@ -1,143 +0,0 @@
1
- /**
2
- * Multiline input state handling logic
3
- *
4
- * Pure functions for handling state transformations in multiline text editing.
5
- */
6
- /** Create initial state */
7
- export function createInitialState() {
8
- return {
9
- lines: [''],
10
- currentLine: 0,
11
- cursor: 0,
12
- };
13
- }
14
- /** Get full input as single string (trimmed) */
15
- export function getFullInput(state) {
16
- return state.lines.join('\n').trim();
17
- }
18
- /** Handle character input */
19
- export function handleCharacterInput(state, char) {
20
- const { lines, currentLine, cursor } = state;
21
- const line = lines[currentLine] || '';
22
- const newLine = line.slice(0, cursor) + char + line.slice(cursor);
23
- const newLines = [...lines];
24
- newLines[currentLine] = newLine;
25
- return {
26
- lines: newLines,
27
- currentLine,
28
- cursor: cursor + char.length,
29
- };
30
- }
31
- /** Handle newline insertion */
32
- export function handleNewLine(state) {
33
- const { lines, currentLine, cursor } = state;
34
- const line = lines[currentLine] || '';
35
- // Split current line at cursor
36
- const before = line.slice(0, cursor);
37
- const after = line.slice(cursor);
38
- const newLines = [
39
- ...lines.slice(0, currentLine),
40
- before,
41
- after,
42
- ...lines.slice(currentLine + 1),
43
- ];
44
- return {
45
- lines: newLines,
46
- currentLine: currentLine + 1,
47
- cursor: 0,
48
- };
49
- }
50
- /** Handle backspace */
51
- export function handleBackspace(state) {
52
- const { lines, currentLine, cursor } = state;
53
- const line = lines[currentLine] || '';
54
- if (cursor > 0) {
55
- // Delete character before cursor
56
- const newLine = line.slice(0, cursor - 1) + line.slice(cursor);
57
- const newLines = [...lines];
58
- newLines[currentLine] = newLine;
59
- return {
60
- lines: newLines,
61
- currentLine,
62
- cursor: cursor - 1,
63
- };
64
- }
65
- else if (currentLine > 0) {
66
- // At start of line, merge with previous line
67
- const prevLine = lines[currentLine - 1] || '';
68
- const mergedLine = prevLine + line;
69
- const newLines = [
70
- ...lines.slice(0, currentLine - 1),
71
- mergedLine,
72
- ...lines.slice(currentLine + 1),
73
- ];
74
- return {
75
- lines: newLines,
76
- currentLine: currentLine - 1,
77
- cursor: prevLine.length,
78
- };
79
- }
80
- // At start of first line, nothing to do
81
- return state;
82
- }
83
- /** Handle left arrow */
84
- export function handleLeftArrow(state) {
85
- const { lines, currentLine, cursor } = state;
86
- if (cursor > 0) {
87
- return { ...state, cursor: cursor - 1 };
88
- }
89
- else if (currentLine > 0) {
90
- // Move to end of previous line
91
- const prevLineLength = (lines[currentLine - 1] || '').length;
92
- return {
93
- ...state,
94
- currentLine: currentLine - 1,
95
- cursor: prevLineLength,
96
- };
97
- }
98
- return state;
99
- }
100
- /** Handle right arrow */
101
- export function handleRightArrow(state) {
102
- const { lines, currentLine, cursor } = state;
103
- const lineLength = (lines[currentLine] || '').length;
104
- if (cursor < lineLength) {
105
- return { ...state, cursor: cursor + 1 };
106
- }
107
- else if (currentLine < lines.length - 1) {
108
- // Move to start of next line
109
- return {
110
- ...state,
111
- currentLine: currentLine + 1,
112
- cursor: 0,
113
- };
114
- }
115
- return state;
116
- }
117
- /** Handle up arrow */
118
- export function handleUpArrow(state) {
119
- const { lines, currentLine, cursor } = state;
120
- if (currentLine > 0) {
121
- const prevLineLength = (lines[currentLine - 1] || '').length;
122
- return {
123
- ...state,
124
- currentLine: currentLine - 1,
125
- cursor: Math.min(cursor, prevLineLength),
126
- };
127
- }
128
- return state;
129
- }
130
- /** Handle down arrow */
131
- export function handleDownArrow(state) {
132
- const { lines, currentLine, cursor } = state;
133
- if (currentLine < lines.length - 1) {
134
- const nextLineLength = (lines[currentLine + 1] || '').length;
135
- return {
136
- ...state,
137
- currentLine: currentLine + 1,
138
- cursor: Math.min(cursor, nextLineLength),
139
- };
140
- }
141
- return state;
142
- }
143
- //# sourceMappingURL=multilineInputLogic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multilineInputLogic.js","sourceRoot":"","sources":["../../src/interactive/multilineInputLogic.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Passthrough execution (direct Claude CLI)
3
- *
4
- * Executes messages directly through Claude CLI with streaming support.
5
- */
6
- import { type PermissionHandler, type StreamEvent } from '../claude/process.js';
7
- /** Stream handler type */
8
- export type StreamHandler = (event: StreamEvent) => void;
9
- /** Result of passthrough execution */
10
- export interface PassthroughResult {
11
- success: boolean;
12
- content: string;
13
- error?: string;
14
- sessionId?: string;
15
- }
16
- /** Minimal state required for passthrough execution */
17
- export interface PassthroughState {
18
- cwd: string;
19
- claudeSessionId?: string;
20
- }
21
- /** Options for passthrough execution */
22
- export interface PassthroughOptions {
23
- /** Custom stream handler (for Ink UI) */
24
- onStream?: StreamHandler;
25
- /** Permission handler */
26
- onPermissionRequest?: PermissionHandler;
27
- }
28
- /** Execute passthrough mode (direct Claude CLI) with streaming */
29
- export declare function executePassthrough(message: string, state: PassthroughState, optionsOrPermissionHandler?: PassthroughOptions | PermissionHandler): Promise<PassthroughResult>;
30
- //# sourceMappingURL=passthrough.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"passthrough.d.ts","sourceRoot":"","sources":["../../src/interactive/passthrough.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIlG,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAKzD,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,yBAAyB;IACzB,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED,kEAAkE;AAClE,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EACvB,0BAA0B,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,GAClE,OAAO,CAAC,iBAAiB,CAAC,CAyF5B"}
@@ -1,94 +0,0 @@
1
- /**
2
- * Passthrough execution (direct Claude CLI)
3
- *
4
- * Executes messages directly through Claude CLI with streaming support.
5
- */
6
- import { executeClaudeCli } from '../claude/process.js';
7
- import { StreamDisplay } from '../utils/ui.js';
8
- import { loadAgentSessions, updateAgentSession } from '../config/paths.js';
9
- /** Passthrough agent name for session storage */
10
- const PASSTHROUGH_AGENT = 'passthrough';
11
- /** Execute passthrough mode (direct Claude CLI) with streaming */
12
- export async function executePassthrough(message, state, optionsOrPermissionHandler) {
13
- // Support both old API (just permissionHandler) and new API (options object)
14
- let options;
15
- if (optionsOrPermissionHandler === undefined) {
16
- options = {};
17
- }
18
- else if (typeof optionsOrPermissionHandler === 'function') {
19
- options = { onPermissionRequest: optionsOrPermissionHandler };
20
- }
21
- else {
22
- options = optionsOrPermissionHandler;
23
- }
24
- // Determine stream handler: either custom handler or console display
25
- // These are mutually exclusive - if onStream is provided, display is not needed
26
- let baseHandler;
27
- let display = null;
28
- if (options.onStream) {
29
- baseHandler = options.onStream;
30
- }
31
- else {
32
- display = new StreamDisplay('Claude');
33
- baseHandler = display.createHandler();
34
- }
35
- let finalResult = '';
36
- let streamSessionId = '';
37
- // Wrap base handler to capture session ID and result
38
- const handleStreamEvent = (event) => {
39
- // Capture session ID from init event
40
- if (event.type === 'init' && event.data.sessionId) {
41
- streamSessionId = event.data.sessionId;
42
- }
43
- // Capture result and session ID from result event
44
- if (event.type === 'result') {
45
- finalResult = event.data.result;
46
- if (event.data.sessionId) {
47
- streamSessionId = event.data.sessionId;
48
- }
49
- }
50
- // Delegate to base handler
51
- baseHandler(event);
52
- };
53
- // Load saved session for passthrough mode
54
- const savedSessions = loadAgentSessions(state.cwd);
55
- const savedSessionId = state.claudeSessionId || savedSessions[PASSTHROUGH_AGENT];
56
- try {
57
- const result = await executeClaudeCli(message, {
58
- cwd: state.cwd,
59
- sessionId: savedSessionId,
60
- allowedTools: ['Read', 'Glob', 'Grep', 'Edit', 'Write', 'Bash', 'WebSearch', 'WebFetch'],
61
- onStream: handleStreamEvent,
62
- onPermissionRequest: options.onPermissionRequest,
63
- });
64
- // Session ID: prefer stream event, fallback to result object
65
- const newSessionId = streamSessionId || result.sessionId;
66
- if (newSessionId) {
67
- // Persist session ID
68
- updateAgentSession(state.cwd, PASSTHROUGH_AGENT, newSessionId);
69
- }
70
- if (!result.success) {
71
- display?.showResult(false);
72
- return {
73
- success: false,
74
- content: '',
75
- error: result.error || 'Unknown error',
76
- };
77
- }
78
- // Return the final result (already displayed via streaming)
79
- return {
80
- success: true,
81
- content: finalResult || result.content,
82
- sessionId: newSessionId,
83
- };
84
- }
85
- catch (err) {
86
- display?.showResult(false);
87
- return {
88
- success: false,
89
- content: '',
90
- error: err instanceof Error ? err.message : String(err),
91
- };
92
- }
93
- }
94
- //# sourceMappingURL=passthrough.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"passthrough.js","sourceRoot":"","sources":["../../src/interactive/passthrough.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Interactive permission handler for takt
3
- *
4
- * Prompts user for permission when Claude requests access to tools
5
- * that are not pre-approved.
6
- */
7
- import * as readline from 'node:readline';
8
- import type { PermissionHandler } from '../claude/process.js';
9
- /** Permission state for the current session */
10
- export interface PermissionState {
11
- /** Temporarily allowed command patterns (for this iteration) */
12
- iterationAllowedPatterns: Set<string>;
13
- /** Sacrifice mode for current iteration */
14
- iterationSacrificeMode: boolean;
15
- }
16
- /** Create initial permission state */
17
- export declare function createPermissionState(): PermissionState;
18
- /** Reset permission state for new iteration */
19
- export declare function resetPermissionStateForIteration(state: PermissionState): void;
20
- /**
21
- * Create an interactive permission handler with enhanced options
22
- *
23
- * @param rl - Readline interface for user input
24
- * @param permissionState - Shared permission state for iteration-scoped permissions
25
- * @returns Permission handler function
26
- */
27
- export declare function createInteractivePermissionHandler(rl: readline.Interface, permissionState?: PermissionState): PermissionHandler;
28
- /**
29
- * Create a non-interactive permission handler that auto-allows safe tools
30
- * and denies others without prompting.
31
- */
32
- export declare function createAutoPermissionHandler(): PermissionHandler;
33
- //# sourceMappingURL=permission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/interactive/permission.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIjF,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,2CAA2C;IAC3C,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,sCAAsC;AACtC,wBAAgB,qBAAqB,IAAI,eAAe,CAKvD;AAED,+CAA+C;AAC/C,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAG7E;AAkFD;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,iBAAiB,CA4GnB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,iBAAiB,CA0C/D"}