takt 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +307 -0
  3. package/bin/takt +27 -0
  4. package/dist/agents/index.d.ts +5 -0
  5. package/dist/agents/index.d.ts.map +1 -0
  6. package/dist/agents/index.js +5 -0
  7. package/dist/agents/index.js.map +1 -0
  8. package/dist/agents/runner.d.ts +26 -0
  9. package/dist/agents/runner.d.ts.map +1 -0
  10. package/dist/agents/runner.js +144 -0
  11. package/dist/agents/runner.js.map +1 -0
  12. package/dist/claude/client.d.ts +43 -0
  13. package/dist/claude/client.d.ts.map +1 -0
  14. package/dist/claude/client.js +143 -0
  15. package/dist/claude/client.js.map +1 -0
  16. package/dist/claude/executor.d.ts +29 -0
  17. package/dist/claude/executor.d.ts.map +1 -0
  18. package/dist/claude/executor.js +169 -0
  19. package/dist/claude/executor.js.map +1 -0
  20. package/dist/claude/index.d.ts +14 -0
  21. package/dist/claude/index.d.ts.map +1 -0
  22. package/dist/claude/index.js +18 -0
  23. package/dist/claude/index.js.map +1 -0
  24. package/dist/claude/options-builder.d.ts +40 -0
  25. package/dist/claude/options-builder.d.ts.map +1 -0
  26. package/dist/claude/options-builder.js +90 -0
  27. package/dist/claude/options-builder.js.map +1 -0
  28. package/dist/claude/process.d.ts +57 -0
  29. package/dist/claude/process.d.ts.map +1 -0
  30. package/dist/claude/process.js +57 -0
  31. package/dist/claude/process.js.map +1 -0
  32. package/dist/claude/query-manager.d.ts +35 -0
  33. package/dist/claude/query-manager.d.ts.map +1 -0
  34. package/dist/claude/query-manager.js +74 -0
  35. package/dist/claude/query-manager.js.map +1 -0
  36. package/dist/claude/stream-converter.d.ts +19 -0
  37. package/dist/claude/stream-converter.d.ts.map +1 -0
  38. package/dist/claude/stream-converter.js +166 -0
  39. package/dist/claude/stream-converter.js.map +1 -0
  40. package/dist/claude/types.d.ts +99 -0
  41. package/dist/claude/types.d.ts.map +1 -0
  42. package/dist/claude/types.js +8 -0
  43. package/dist/claude/types.js.map +1 -0
  44. package/dist/cli/agentExecution.d.ts +16 -0
  45. package/dist/cli/agentExecution.d.ts.map +1 -0
  46. package/dist/cli/agentExecution.js +40 -0
  47. package/dist/cli/agentExecution.js.map +1 -0
  48. package/dist/cli/help.d.ts +8 -0
  49. package/dist/cli/help.d.ts.map +1 -0
  50. package/dist/cli/help.js +46 -0
  51. package/dist/cli/help.js.map +1 -0
  52. package/dist/cli/index.d.ts +8 -0
  53. package/dist/cli/index.d.ts.map +1 -0
  54. package/dist/cli/index.js +8 -0
  55. package/dist/cli/index.js.map +1 -0
  56. package/dist/cli/taskBatch.d.ts +8 -0
  57. package/dist/cli/taskBatch.d.ts.map +1 -0
  58. package/dist/cli/taskBatch.js +69 -0
  59. package/dist/cli/taskBatch.js.map +1 -0
  60. package/dist/cli/workflowExecution.d.ts +18 -0
  61. package/dist/cli/workflowExecution.d.ts.map +1 -0
  62. package/dist/cli/workflowExecution.js +112 -0
  63. package/dist/cli/workflowExecution.js.map +1 -0
  64. package/dist/cli.d.ts +14 -0
  65. package/dist/cli.d.ts.map +1 -0
  66. package/dist/cli.js +122 -0
  67. package/dist/cli.js.map +1 -0
  68. package/dist/commands/agentExecution.d.ts +8 -0
  69. package/dist/commands/agentExecution.d.ts.map +1 -0
  70. package/dist/commands/agentExecution.js +44 -0
  71. package/dist/commands/agentExecution.js.map +1 -0
  72. package/dist/commands/help.d.ts +8 -0
  73. package/dist/commands/help.d.ts.map +1 -0
  74. package/dist/commands/help.js +39 -0
  75. package/dist/commands/help.js.map +1 -0
  76. package/dist/commands/index.d.ts +9 -0
  77. package/dist/commands/index.d.ts.map +1 -0
  78. package/dist/commands/index.js +9 -0
  79. package/dist/commands/index.js.map +1 -0
  80. package/dist/commands/session.d.ts +10 -0
  81. package/dist/commands/session.d.ts.map +1 -0
  82. package/dist/commands/session.js +18 -0
  83. package/dist/commands/session.js.map +1 -0
  84. package/dist/commands/taskExecution.d.ts +20 -0
  85. package/dist/commands/taskExecution.d.ts.map +1 -0
  86. package/dist/commands/taskExecution.js +103 -0
  87. package/dist/commands/taskExecution.js.map +1 -0
  88. package/dist/commands/workflow.d.ts +9 -0
  89. package/dist/commands/workflow.d.ts.map +1 -0
  90. package/dist/commands/workflow.js +51 -0
  91. package/dist/commands/workflow.js.map +1 -0
  92. package/dist/commands/workflowExecution.d.ts +21 -0
  93. package/dist/commands/workflowExecution.d.ts.map +1 -0
  94. package/dist/commands/workflowExecution.js +95 -0
  95. package/dist/commands/workflowExecution.js.map +1 -0
  96. package/dist/config/agentLoader.d.ts +25 -0
  97. package/dist/config/agentLoader.d.ts.map +1 -0
  98. package/dist/config/agentLoader.js +96 -0
  99. package/dist/config/agentLoader.js.map +1 -0
  100. package/dist/config/globalConfig.d.ts +23 -0
  101. package/dist/config/globalConfig.d.ts.map +1 -0
  102. package/dist/config/globalConfig.js +117 -0
  103. package/dist/config/globalConfig.js.map +1 -0
  104. package/dist/config/index.d.ts +7 -0
  105. package/dist/config/index.d.ts.map +1 -0
  106. package/dist/config/index.js +7 -0
  107. package/dist/config/index.js.map +1 -0
  108. package/dist/config/initialization.d.ts +23 -0
  109. package/dist/config/initialization.d.ts.map +1 -0
  110. package/dist/config/initialization.js +55 -0
  111. package/dist/config/initialization.js.map +1 -0
  112. package/dist/config/loader.d.ts +9 -0
  113. package/dist/config/loader.d.ts.map +1 -0
  114. package/dist/config/loader.js +12 -0
  115. package/dist/config/loader.js.map +1 -0
  116. package/dist/config/paths.d.ts +33 -0
  117. package/dist/config/paths.d.ts.map +1 -0
  118. package/dist/config/paths.js +66 -0
  119. package/dist/config/paths.js.map +1 -0
  120. package/dist/config/projectConfig.d.ts +41 -0
  121. package/dist/config/projectConfig.d.ts.map +1 -0
  122. package/dist/config/projectConfig.js +85 -0
  123. package/dist/config/projectConfig.js.map +1 -0
  124. package/dist/config/sessionStore.d.ts +44 -0
  125. package/dist/config/sessionStore.d.ts.map +1 -0
  126. package/dist/config/sessionStore.js +194 -0
  127. package/dist/config/sessionStore.js.map +1 -0
  128. package/dist/config/workflowLoader.d.ts +23 -0
  129. package/dist/config/workflowLoader.d.ts.map +1 -0
  130. package/dist/config/workflowLoader.js +142 -0
  131. package/dist/config/workflowLoader.js.map +1 -0
  132. package/dist/constants.d.ts +9 -0
  133. package/dist/constants.d.ts.map +1 -0
  134. package/dist/constants.js +8 -0
  135. package/dist/constants.js.map +1 -0
  136. package/dist/index.d.ts +13 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +20 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/interactive/commands/agent.d.ts +7 -0
  141. package/dist/interactive/commands/agent.d.ts.map +1 -0
  142. package/dist/interactive/commands/agent.js +65 -0
  143. package/dist/interactive/commands/agent.js.map +1 -0
  144. package/dist/interactive/commands/basic.d.ts +7 -0
  145. package/dist/interactive/commands/basic.d.ts.map +1 -0
  146. package/dist/interactive/commands/basic.js +81 -0
  147. package/dist/interactive/commands/basic.js.map +1 -0
  148. package/dist/interactive/commands/index.d.ts +12 -0
  149. package/dist/interactive/commands/index.d.ts.map +1 -0
  150. package/dist/interactive/commands/index.js +14 -0
  151. package/dist/interactive/commands/index.js.map +1 -0
  152. package/dist/interactive/commands/registry.d.ts +41 -0
  153. package/dist/interactive/commands/registry.d.ts.map +1 -0
  154. package/dist/interactive/commands/registry.js +37 -0
  155. package/dist/interactive/commands/registry.js.map +1 -0
  156. package/dist/interactive/commands/session.d.ts +7 -0
  157. package/dist/interactive/commands/session.d.ts.map +1 -0
  158. package/dist/interactive/commands/session.js +75 -0
  159. package/dist/interactive/commands/session.js.map +1 -0
  160. package/dist/interactive/commands/task.d.ts +7 -0
  161. package/dist/interactive/commands/task.d.ts.map +1 -0
  162. package/dist/interactive/commands/task.js +156 -0
  163. package/dist/interactive/commands/task.js.map +1 -0
  164. package/dist/interactive/commands/workflow.d.ts +7 -0
  165. package/dist/interactive/commands/workflow.d.ts.map +1 -0
  166. package/dist/interactive/commands/workflow.js +56 -0
  167. package/dist/interactive/commands/workflow.js.map +1 -0
  168. package/dist/interactive/escape-tracker.d.ts +37 -0
  169. package/dist/interactive/escape-tracker.d.ts.map +1 -0
  170. package/dist/interactive/escape-tracker.js +52 -0
  171. package/dist/interactive/escape-tracker.js.map +1 -0
  172. package/dist/interactive/handlers.d.ts +24 -0
  173. package/dist/interactive/handlers.d.ts.map +1 -0
  174. package/dist/interactive/handlers.js +191 -0
  175. package/dist/interactive/handlers.js.map +1 -0
  176. package/dist/interactive/history-manager.d.ts +45 -0
  177. package/dist/interactive/history-manager.d.ts.map +1 -0
  178. package/dist/interactive/history-manager.js +91 -0
  179. package/dist/interactive/history-manager.js.map +1 -0
  180. package/dist/interactive/index.d.ts +8 -0
  181. package/dist/interactive/index.d.ts.map +1 -0
  182. package/dist/interactive/index.js +8 -0
  183. package/dist/interactive/index.js.map +1 -0
  184. package/dist/interactive/ink/components/App.d.ts +16 -0
  185. package/dist/interactive/ink/components/App.d.ts.map +1 -0
  186. package/dist/interactive/ink/components/App.js +123 -0
  187. package/dist/interactive/ink/components/App.js.map +1 -0
  188. package/dist/interactive/ink/components/AskUserQuestion.d.ts +16 -0
  189. package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +1 -0
  190. package/dist/interactive/ink/components/AskUserQuestion.js +139 -0
  191. package/dist/interactive/ink/components/AskUserQuestion.js.map +1 -0
  192. package/dist/interactive/ink/components/Header.d.ts +20 -0
  193. package/dist/interactive/ink/components/Header.d.ts.map +1 -0
  194. package/dist/interactive/ink/components/Header.js +7 -0
  195. package/dist/interactive/ink/components/Header.js.map +1 -0
  196. package/dist/interactive/ink/components/HelpView.d.ts +13 -0
  197. package/dist/interactive/ink/components/HelpView.d.ts.map +1 -0
  198. package/dist/interactive/ink/components/HelpView.js +45 -0
  199. package/dist/interactive/ink/components/HelpView.js.map +1 -0
  200. package/dist/interactive/ink/components/IterationLimit.d.ts +19 -0
  201. package/dist/interactive/ink/components/IterationLimit.d.ts.map +1 -0
  202. package/dist/interactive/ink/components/IterationLimit.js +59 -0
  203. package/dist/interactive/ink/components/IterationLimit.js.map +1 -0
  204. package/dist/interactive/ink/components/ModalRouter.d.ts +11 -0
  205. package/dist/interactive/ink/components/ModalRouter.d.ts.map +1 -0
  206. package/dist/interactive/ink/components/ModalRouter.js +71 -0
  207. package/dist/interactive/ink/components/ModalRouter.js.map +1 -0
  208. package/dist/interactive/ink/components/PermissionPrompt.d.ts +17 -0
  209. package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +1 -0
  210. package/dist/interactive/ink/components/PermissionPrompt.js +102 -0
  211. package/dist/interactive/ink/components/PermissionPrompt.js.map +1 -0
  212. package/dist/interactive/ink/components/PromptInput.d.ts +26 -0
  213. package/dist/interactive/ink/components/PromptInput.d.ts.map +1 -0
  214. package/dist/interactive/ink/components/PromptInput.js +70 -0
  215. package/dist/interactive/ink/components/PromptInput.js.map +1 -0
  216. package/dist/interactive/ink/components/Spinner.d.ts +14 -0
  217. package/dist/interactive/ink/components/Spinner.d.ts.map +1 -0
  218. package/dist/interactive/ink/components/Spinner.js +8 -0
  219. package/dist/interactive/ink/components/Spinner.js.map +1 -0
  220. package/dist/interactive/ink/components/StreamingOutput.d.ts +25 -0
  221. package/dist/interactive/ink/components/StreamingOutput.d.ts.map +1 -0
  222. package/dist/interactive/ink/components/StreamingOutput.js +8 -0
  223. package/dist/interactive/ink/components/StreamingOutput.js.map +1 -0
  224. package/dist/interactive/ink/components/UserInputPrompt.d.ts +18 -0
  225. package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +1 -0
  226. package/dist/interactive/ink/components/UserInputPrompt.js +30 -0
  227. package/dist/interactive/ink/components/UserInputPrompt.js.map +1 -0
  228. package/dist/interactive/ink/components/WorkflowSelector.d.ts +18 -0
  229. package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +1 -0
  230. package/dist/interactive/ink/components/WorkflowSelector.js +65 -0
  231. package/dist/interactive/ink/components/WorkflowSelector.js.map +1 -0
  232. package/dist/interactive/ink/constants.d.ts +8 -0
  233. package/dist/interactive/ink/constants.d.ts.map +1 -0
  234. package/dist/interactive/ink/constants.js +8 -0
  235. package/dist/interactive/ink/constants.js.map +1 -0
  236. package/dist/interactive/ink/context/AppContext.d.ts +26 -0
  237. package/dist/interactive/ink/context/AppContext.d.ts.map +1 -0
  238. package/dist/interactive/ink/context/AppContext.js +30 -0
  239. package/dist/interactive/ink/context/AppContext.js.map +1 -0
  240. package/dist/interactive/ink/context/appReducer.d.ts +13 -0
  241. package/dist/interactive/ink/context/appReducer.d.ts.map +1 -0
  242. package/dist/interactive/ink/context/appReducer.js +183 -0
  243. package/dist/interactive/ink/context/appReducer.js.map +1 -0
  244. package/dist/interactive/ink/context/types.d.ts +144 -0
  245. package/dist/interactive/ink/context/types.d.ts.map +1 -0
  246. package/dist/interactive/ink/context/types.js +5 -0
  247. package/dist/interactive/ink/context/types.js.map +1 -0
  248. package/dist/interactive/ink/hooks/keyDetection.d.ts +116 -0
  249. package/dist/interactive/ink/hooks/keyDetection.d.ts.map +1 -0
  250. package/dist/interactive/ink/hooks/keyDetection.js +183 -0
  251. package/dist/interactive/ink/hooks/keyDetection.js.map +1 -0
  252. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +50 -0
  253. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +1 -0
  254. package/dist/interactive/ink/hooks/multilineInputLogic.js +150 -0
  255. package/dist/interactive/ink/hooks/multilineInputLogic.js.map +1 -0
  256. package/dist/interactive/ink/hooks/useCommands.d.ts +20 -0
  257. package/dist/interactive/ink/hooks/useCommands.d.ts.map +1 -0
  258. package/dist/interactive/ink/hooks/useCommands.js +129 -0
  259. package/dist/interactive/ink/hooks/useCommands.js.map +1 -0
  260. package/dist/interactive/ink/hooks/useHistory.d.ts +28 -0
  261. package/dist/interactive/ink/hooks/useHistory.d.ts.map +1 -0
  262. package/dist/interactive/ink/hooks/useHistory.js +59 -0
  263. package/dist/interactive/ink/hooks/useHistory.js.map +1 -0
  264. package/dist/interactive/ink/hooks/useMultilineInput.d.ts +49 -0
  265. package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +1 -0
  266. package/dist/interactive/ink/hooks/useMultilineInput.js +106 -0
  267. package/dist/interactive/ink/hooks/useMultilineInput.js.map +1 -0
  268. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +16 -0
  269. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +1 -0
  270. package/dist/interactive/ink/hooks/usePermissionHandlers.js +172 -0
  271. package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +1 -0
  272. package/dist/interactive/ink/hooks/useRawKeypress.d.ts +41 -0
  273. package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +1 -0
  274. package/dist/interactive/ink/hooks/useRawKeypress.js +79 -0
  275. package/dist/interactive/ink/hooks/useRawKeypress.js.map +1 -0
  276. package/dist/interactive/ink/hooks/useTaskQueue.d.ts +32 -0
  277. package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +1 -0
  278. package/dist/interactive/ink/hooks/useTaskQueue.js +68 -0
  279. package/dist/interactive/ink/hooks/useTaskQueue.js.map +1 -0
  280. package/dist/interactive/ink/hooks/useWorkflow.d.ts +45 -0
  281. package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +1 -0
  282. package/dist/interactive/ink/hooks/useWorkflow.js +93 -0
  283. package/dist/interactive/ink/hooks/useWorkflow.js.map +1 -0
  284. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +14 -0
  285. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +1 -0
  286. package/dist/interactive/ink/hooks/useWorkflowExecution.js +144 -0
  287. package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +1 -0
  288. package/dist/interactive/ink/index.d.ts +30 -0
  289. package/dist/interactive/ink/index.d.ts.map +1 -0
  290. package/dist/interactive/ink/index.js +33 -0
  291. package/dist/interactive/ink/index.js.map +1 -0
  292. package/dist/interactive/ink/utils/workflow.d.ts +11 -0
  293. package/dist/interactive/ink/utils/workflow.d.ts.map +1 -0
  294. package/dist/interactive/ink/utils/workflow.js +19 -0
  295. package/dist/interactive/ink/utils/workflow.js.map +1 -0
  296. package/dist/interactive/input-buffer.d.ts +67 -0
  297. package/dist/interactive/input-buffer.d.ts.map +1 -0
  298. package/dist/interactive/input-buffer.js +162 -0
  299. package/dist/interactive/input-buffer.js.map +1 -0
  300. package/dist/interactive/input-handlers.d.ts +50 -0
  301. package/dist/interactive/input-handlers.d.ts.map +1 -0
  302. package/dist/interactive/input-handlers.js +170 -0
  303. package/dist/interactive/input-handlers.js.map +1 -0
  304. package/dist/interactive/input.d.ts +43 -0
  305. package/dist/interactive/input.d.ts.map +1 -0
  306. package/dist/interactive/input.js +74 -0
  307. package/dist/interactive/input.js.map +1 -0
  308. package/dist/interactive/keyDetection.d.ts +85 -0
  309. package/dist/interactive/keyDetection.d.ts.map +1 -0
  310. package/dist/interactive/keyDetection.js +167 -0
  311. package/dist/interactive/keyDetection.js.map +1 -0
  312. package/dist/interactive/multilineInputLogic.d.ts +30 -0
  313. package/dist/interactive/multilineInputLogic.d.ts.map +1 -0
  314. package/dist/interactive/multilineInputLogic.js +143 -0
  315. package/dist/interactive/multilineInputLogic.js.map +1 -0
  316. package/dist/interactive/passthrough.d.ts +30 -0
  317. package/dist/interactive/passthrough.d.ts.map +1 -0
  318. package/dist/interactive/passthrough.js +94 -0
  319. package/dist/interactive/passthrough.js.map +1 -0
  320. package/dist/interactive/permission.d.ts +33 -0
  321. package/dist/interactive/permission.d.ts.map +1 -0
  322. package/dist/interactive/permission.js +231 -0
  323. package/dist/interactive/permission.js.map +1 -0
  324. package/dist/interactive/prompt.d.ts +33 -0
  325. package/dist/interactive/prompt.d.ts.map +1 -0
  326. package/dist/interactive/prompt.js +132 -0
  327. package/dist/interactive/prompt.js.map +1 -0
  328. package/dist/interactive/repl.d.ts +13 -0
  329. package/dist/interactive/repl.d.ts.map +1 -0
  330. package/dist/interactive/repl.js +202 -0
  331. package/dist/interactive/repl.js.map +1 -0
  332. package/dist/interactive/types.d.ts +35 -0
  333. package/dist/interactive/types.d.ts.map +1 -0
  334. package/dist/interactive/types.js +5 -0
  335. package/dist/interactive/types.js.map +1 -0
  336. package/dist/interactive/ui.d.ts +16 -0
  337. package/dist/interactive/ui.d.ts.map +1 -0
  338. package/dist/interactive/ui.js +122 -0
  339. package/dist/interactive/ui.js.map +1 -0
  340. package/dist/interactive/user-input.d.ts +26 -0
  341. package/dist/interactive/user-input.d.ts.map +1 -0
  342. package/dist/interactive/user-input.js +115 -0
  343. package/dist/interactive/user-input.js.map +1 -0
  344. package/dist/interactive/workflow-executor.d.ts +20 -0
  345. package/dist/interactive/workflow-executor.d.ts.map +1 -0
  346. package/dist/interactive/workflow-executor.js +200 -0
  347. package/dist/interactive/workflow-executor.js.map +1 -0
  348. package/dist/models/agent.d.ts +37 -0
  349. package/dist/models/agent.d.ts.map +1 -0
  350. package/dist/models/agent.js +11 -0
  351. package/dist/models/agent.js.map +1 -0
  352. package/dist/models/config.d.ts +19 -0
  353. package/dist/models/config.d.ts.map +1 -0
  354. package/dist/models/config.js +25 -0
  355. package/dist/models/config.js.map +1 -0
  356. package/dist/models/index.d.ts +7 -0
  357. package/dist/models/index.d.ts.map +1 -0
  358. package/dist/models/index.js +11 -0
  359. package/dist/models/index.js.map +1 -0
  360. package/dist/models/schemas.d.ts +161 -0
  361. package/dist/models/schemas.d.ts.map +1 -0
  362. package/dist/models/schemas.js +137 -0
  363. package/dist/models/schemas.js.map +1 -0
  364. package/dist/models/session.d.ts +50 -0
  365. package/dist/models/session.d.ts.map +1 -0
  366. package/dist/models/session.js +45 -0
  367. package/dist/models/session.js.map +1 -0
  368. package/dist/models/types.d.ts +117 -0
  369. package/dist/models/types.d.ts.map +1 -0
  370. package/dist/models/types.js +5 -0
  371. package/dist/models/types.js.map +1 -0
  372. package/dist/models/workflow.d.ts +58 -0
  373. package/dist/models/workflow.d.ts.map +1 -0
  374. package/dist/models/workflow.js +19 -0
  375. package/dist/models/workflow.js.map +1 -0
  376. package/dist/resources/index.d.ts +38 -0
  377. package/dist/resources/index.d.ts.map +1 -0
  378. package/dist/resources/index.js +108 -0
  379. package/dist/resources/index.js.map +1 -0
  380. package/dist/task/display.d.ts +11 -0
  381. package/dist/task/display.d.ts.map +1 -0
  382. package/dist/task/display.js +41 -0
  383. package/dist/task/display.js.map +1 -0
  384. package/dist/task/index.d.ts +6 -0
  385. package/dist/task/index.d.ts.map +1 -0
  386. package/dist/task/index.js +6 -0
  387. package/dist/task/index.js.map +1 -0
  388. package/dist/task/runner.d.ts +68 -0
  389. package/dist/task/runner.d.ts.map +1 -0
  390. package/dist/task/runner.js +172 -0
  391. package/dist/task/runner.js.map +1 -0
  392. package/dist/utils/debug.d.ts +32 -0
  393. package/dist/utils/debug.d.ts.map +1 -0
  394. package/dist/utils/debug.js +135 -0
  395. package/dist/utils/debug.js.map +1 -0
  396. package/dist/utils/error.d.ts +8 -0
  397. package/dist/utils/error.d.ts.map +1 -0
  398. package/dist/utils/error.js +10 -0
  399. package/dist/utils/error.js.map +1 -0
  400. package/dist/utils/index.d.ts +7 -0
  401. package/dist/utils/index.d.ts.map +1 -0
  402. package/dist/utils/index.js +7 -0
  403. package/dist/utils/index.js.map +1 -0
  404. package/dist/utils/notification.d.ts +63 -0
  405. package/dist/utils/notification.d.ts.map +1 -0
  406. package/dist/utils/notification.js +170 -0
  407. package/dist/utils/notification.js.map +1 -0
  408. package/dist/utils/session.d.ts +38 -0
  409. package/dist/utils/session.d.ts.map +1 -0
  410. package/dist/utils/session.js +97 -0
  411. package/dist/utils/session.js.map +1 -0
  412. package/dist/utils/ui.d.ts +91 -0
  413. package/dist/utils/ui.d.ts.map +1 -0
  414. package/dist/utils/ui.js +330 -0
  415. package/dist/utils/ui.js.map +1 -0
  416. package/dist/workflow/blocked-handler.d.ts +27 -0
  417. package/dist/workflow/blocked-handler.d.ts.map +1 -0
  418. package/dist/workflow/blocked-handler.js +40 -0
  419. package/dist/workflow/blocked-handler.js.map +1 -0
  420. package/dist/workflow/constants.d.ts +20 -0
  421. package/dist/workflow/constants.d.ts.map +1 -0
  422. package/dist/workflow/constants.js +20 -0
  423. package/dist/workflow/constants.js.map +1 -0
  424. package/dist/workflow/engine.d.ts +42 -0
  425. package/dist/workflow/engine.d.ts.map +1 -0
  426. package/dist/workflow/engine.js +207 -0
  427. package/dist/workflow/engine.js.map +1 -0
  428. package/dist/workflow/index.d.ts +15 -0
  429. package/dist/workflow/index.d.ts.map +1 -0
  430. package/dist/workflow/index.js +21 -0
  431. package/dist/workflow/index.js.map +1 -0
  432. package/dist/workflow/instruction-builder.d.ts +37 -0
  433. package/dist/workflow/instruction-builder.d.ts.map +1 -0
  434. package/dist/workflow/instruction-builder.js +49 -0
  435. package/dist/workflow/instruction-builder.js.map +1 -0
  436. package/dist/workflow/loop-detector.d.ts +31 -0
  437. package/dist/workflow/loop-detector.d.ts.map +1 -0
  438. package/dist/workflow/loop-detector.js +61 -0
  439. package/dist/workflow/loop-detector.js.map +1 -0
  440. package/dist/workflow/state-manager.d.ts +25 -0
  441. package/dist/workflow/state-manager.d.ts.map +1 -0
  442. package/dist/workflow/state-manager.js +59 -0
  443. package/dist/workflow/state-manager.js.map +1 -0
  444. package/dist/workflow/transitions.d.ts +25 -0
  445. package/dist/workflow/transitions.d.ts.map +1 -0
  446. package/dist/workflow/transitions.js +106 -0
  447. package/dist/workflow/transitions.js.map +1 -0
  448. package/dist/workflow/types.d.ts +74 -0
  449. package/dist/workflow/types.d.ts.map +1 -0
  450. package/dist/workflow/types.js +8 -0
  451. package/dist/workflow/types.js.map +1 -0
  452. package/package.json +67 -0
  453. package/resources/global/en/agents/default/architect.md +292 -0
  454. package/resources/global/en/agents/default/coder.md +169 -0
  455. package/resources/global/en/agents/default/security.md +206 -0
  456. package/resources/global/en/agents/default/supervisor.md +153 -0
  457. package/resources/global/en/agents/magi/balthasar.md +75 -0
  458. package/resources/global/en/agents/magi/casper.md +100 -0
  459. package/resources/global/en/agents/magi/melchior.md +74 -0
  460. package/resources/global/en/agents/research/digger.md +134 -0
  461. package/resources/global/en/agents/research/planner.md +125 -0
  462. package/resources/global/en/agents/research/supervisor.md +86 -0
  463. package/resources/global/en/config.yaml +19 -0
  464. package/resources/global/en/workflows/default.yaml +177 -0
  465. package/resources/global/en/workflows/magi.yaml +96 -0
  466. package/resources/global/en/workflows/research.yaml +112 -0
  467. package/resources/global/ja/agents/default/architect.md +292 -0
  468. package/resources/global/ja/agents/default/coder.md +170 -0
  469. package/resources/global/ja/agents/default/security.md +206 -0
  470. package/resources/global/ja/agents/default/supervisor.md +153 -0
  471. package/resources/global/ja/agents/magi/balthasar.md +75 -0
  472. package/resources/global/ja/agents/magi/casper.md +100 -0
  473. package/resources/global/ja/agents/magi/melchior.md +74 -0
  474. package/resources/global/ja/agents/research/digger.md +134 -0
  475. package/resources/global/ja/agents/research/planner.md +125 -0
  476. package/resources/global/ja/agents/research/supervisor.md +86 -0
  477. package/resources/global/ja/config.yaml +19 -0
  478. package/resources/global/ja/workflows/default.yaml +177 -0
  479. package/resources/global/ja/workflows/magi.yaml +96 -0
  480. package/resources/global/ja/workflows/research.yaml +112 -0
@@ -0,0 +1,91 @@
1
+ /**
2
+ * UI utilities for terminal output
3
+ */
4
+ import type { StreamCallback } from '../claude/process.js';
5
+ /** Log levels */
6
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
7
+ /** Set log level */
8
+ export declare function setLogLevel(level: LogLevel): void;
9
+ /** Log a debug message */
10
+ export declare function debug(message: string): void;
11
+ /** Log an info message */
12
+ export declare function info(message: string): void;
13
+ /** Log a warning message */
14
+ export declare function warn(message: string): void;
15
+ /** Log an error message */
16
+ export declare function error(message: string): void;
17
+ /** Log a success message */
18
+ export declare function success(message: string): void;
19
+ /** Print a header */
20
+ export declare function header(title: string): void;
21
+ /** Print a section title */
22
+ export declare function section(title: string): void;
23
+ /** Print status */
24
+ export declare function status(label: string, value: string, color?: 'green' | 'yellow' | 'red'): void;
25
+ /** Spinner for async operations */
26
+ export declare class Spinner {
27
+ private intervalId?;
28
+ private frames;
29
+ private currentFrame;
30
+ private message;
31
+ constructor(message: string);
32
+ /** Start the spinner */
33
+ start(): void;
34
+ /** Stop the spinner */
35
+ stop(finalMessage?: string): void;
36
+ /** Update spinner message */
37
+ update(message: string): void;
38
+ }
39
+ /** Create a progress bar */
40
+ export declare function progressBar(current: number, total: number, width?: number): string;
41
+ /** Format a list of items */
42
+ export declare function list(items: string[], bullet?: string): void;
43
+ /** Print a divider */
44
+ export declare function divider(char?: string, length?: number): void;
45
+ /** Truncate text with ellipsis */
46
+ export declare function truncate(text: string, maxLength: number): string;
47
+ /** Stream display manager for real-time Claude output */
48
+ export declare class StreamDisplay {
49
+ private agentName;
50
+ private lastToolUse;
51
+ private textBuffer;
52
+ private thinkingBuffer;
53
+ private isFirstText;
54
+ private isFirstThinking;
55
+ private toolSpinner;
56
+ private spinnerFrames;
57
+ private spinnerFrame;
58
+ constructor(agentName?: string);
59
+ /** Display initialization event */
60
+ showInit(model: string): void;
61
+ /** Start spinner for tool execution */
62
+ private startToolSpinner;
63
+ /** Stop the tool spinner */
64
+ private stopToolSpinner;
65
+ /** Display tool use event */
66
+ showToolUse(tool: string, input: Record<string, unknown>): void;
67
+ /** Display tool result event */
68
+ showToolResult(content: string, isError: boolean): void;
69
+ /** Display streaming thinking (Claude's internal reasoning) */
70
+ showThinking(thinking: string): void;
71
+ /** Flush any remaining thinking */
72
+ flushThinking(): void;
73
+ /** Display streaming text (accumulated) */
74
+ showText(text: string): void;
75
+ /** Flush any remaining text */
76
+ flushText(): void;
77
+ /** Flush both thinking and text buffers */
78
+ flush(): void;
79
+ /** Display final result */
80
+ showResult(success: boolean): void;
81
+ /** Reset state for new interaction */
82
+ reset(): void;
83
+ /**
84
+ * Create a stream event handler for this display.
85
+ * This centralizes the event handling logic to avoid code duplication.
86
+ */
87
+ createHandler(): StreamCallback;
88
+ /** Format tool input for display */
89
+ private formatToolInput;
90
+ }
91
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,330 @@
1
+ /**
2
+ * UI utilities for terminal output
3
+ */
4
+ import chalk from 'chalk';
5
+ /** Current log level */
6
+ let currentLogLevel = 'info';
7
+ /** Log level priorities */
8
+ const LOG_PRIORITIES = {
9
+ debug: 0,
10
+ info: 1,
11
+ warn: 2,
12
+ error: 3,
13
+ };
14
+ /** Set log level */
15
+ export function setLogLevel(level) {
16
+ currentLogLevel = level;
17
+ }
18
+ /** Check if a log level should be shown */
19
+ function shouldLog(level) {
20
+ return LOG_PRIORITIES[level] >= LOG_PRIORITIES[currentLogLevel];
21
+ }
22
+ /** Log a debug message */
23
+ export function debug(message) {
24
+ if (shouldLog('debug')) {
25
+ console.log(chalk.gray(`[DEBUG] ${message}`));
26
+ }
27
+ }
28
+ /** Log an info message */
29
+ export function info(message) {
30
+ if (shouldLog('info')) {
31
+ console.log(chalk.blue(`[INFO] ${message}`));
32
+ }
33
+ }
34
+ /** Log a warning message */
35
+ export function warn(message) {
36
+ if (shouldLog('warn')) {
37
+ console.log(chalk.yellow(`[WARN] ${message}`));
38
+ }
39
+ }
40
+ /** Log an error message */
41
+ export function error(message) {
42
+ if (shouldLog('error')) {
43
+ console.log(chalk.red(`[ERROR] ${message}`));
44
+ }
45
+ }
46
+ /** Log a success message */
47
+ export function success(message) {
48
+ console.log(chalk.green(message));
49
+ }
50
+ /** Print a header */
51
+ export function header(title) {
52
+ console.log();
53
+ console.log(chalk.bold.cyan(`=== ${title} ===`));
54
+ console.log();
55
+ }
56
+ /** Print a section title */
57
+ export function section(title) {
58
+ console.log(chalk.bold(`\n${title}`));
59
+ }
60
+ /** Print status */
61
+ export function status(label, value, color) {
62
+ const colorFn = color ? chalk[color] : chalk.white;
63
+ console.log(`${chalk.gray(label)}: ${colorFn(value)}`);
64
+ }
65
+ /** Spinner for async operations */
66
+ export class Spinner {
67
+ intervalId;
68
+ frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
69
+ currentFrame = 0;
70
+ message;
71
+ constructor(message) {
72
+ this.message = message;
73
+ }
74
+ /** Start the spinner */
75
+ start() {
76
+ this.intervalId = setInterval(() => {
77
+ process.stdout.write(`\r${chalk.cyan(this.frames[this.currentFrame])} ${this.message}`);
78
+ this.currentFrame = (this.currentFrame + 1) % this.frames.length;
79
+ }, 80);
80
+ }
81
+ /** Stop the spinner */
82
+ stop(finalMessage) {
83
+ if (this.intervalId) {
84
+ clearInterval(this.intervalId);
85
+ this.intervalId = undefined;
86
+ }
87
+ process.stdout.write('\r' + ' '.repeat(this.message.length + 10) + '\r');
88
+ if (finalMessage) {
89
+ console.log(finalMessage);
90
+ }
91
+ }
92
+ /** Update spinner message */
93
+ update(message) {
94
+ this.message = message;
95
+ }
96
+ }
97
+ /** Create a progress bar */
98
+ export function progressBar(current, total, width = 30) {
99
+ const percentage = Math.floor((current / total) * 100);
100
+ const filled = Math.floor((current / total) * width);
101
+ const empty = width - filled;
102
+ const bar = chalk.green('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
103
+ return `[${bar}] ${percentage}%`;
104
+ }
105
+ /** Format a list of items */
106
+ export function list(items, bullet = '•') {
107
+ for (const item of items) {
108
+ console.log(chalk.gray(bullet) + ' ' + item);
109
+ }
110
+ }
111
+ /** Print a divider */
112
+ export function divider(char = '─', length = 40) {
113
+ console.log(chalk.gray(char.repeat(length)));
114
+ }
115
+ /** Truncate text with ellipsis */
116
+ export function truncate(text, maxLength) {
117
+ if (text.length <= maxLength) {
118
+ return text;
119
+ }
120
+ return text.slice(0, maxLength - 3) + '...';
121
+ }
122
+ /** Stream display manager for real-time Claude output */
123
+ export class StreamDisplay {
124
+ agentName;
125
+ lastToolUse = null;
126
+ textBuffer = '';
127
+ thinkingBuffer = '';
128
+ isFirstText = true;
129
+ isFirstThinking = true;
130
+ toolSpinner = null;
131
+ spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
132
+ spinnerFrame = 0;
133
+ constructor(agentName = 'Claude') {
134
+ this.agentName = agentName;
135
+ }
136
+ /** Display initialization event */
137
+ showInit(model) {
138
+ console.log(chalk.gray(`[${this.agentName}] Model: ${model}`));
139
+ }
140
+ /** Start spinner for tool execution */
141
+ startToolSpinner(tool, inputPreview) {
142
+ this.stopToolSpinner();
143
+ const message = `${chalk.yellow(tool)} ${chalk.gray(inputPreview)}`;
144
+ this.toolSpinner = {
145
+ intervalId: setInterval(() => {
146
+ const frame = this.spinnerFrames[this.spinnerFrame];
147
+ this.spinnerFrame = (this.spinnerFrame + 1) % this.spinnerFrames.length;
148
+ process.stdout.write(`\r ${chalk.cyan(frame)} ${message}`);
149
+ }, 80),
150
+ toolName: tool,
151
+ message,
152
+ };
153
+ }
154
+ /** Stop the tool spinner */
155
+ stopToolSpinner() {
156
+ if (this.toolSpinner) {
157
+ clearInterval(this.toolSpinner.intervalId);
158
+ // Clear the entire line to avoid artifacts from ANSI color codes
159
+ process.stdout.write('\r' + ' '.repeat(120) + '\r');
160
+ this.toolSpinner = null;
161
+ this.spinnerFrame = 0;
162
+ }
163
+ }
164
+ /** Display tool use event */
165
+ showToolUse(tool, input) {
166
+ // Clear any buffered text first
167
+ this.flushText();
168
+ const inputPreview = this.formatToolInput(tool, input);
169
+ // Start spinner to show tool is executing
170
+ this.startToolSpinner(tool, inputPreview);
171
+ this.lastToolUse = tool;
172
+ }
173
+ /** Display tool result event */
174
+ showToolResult(content, isError) {
175
+ // Stop the spinner first
176
+ this.stopToolSpinner();
177
+ const toolName = this.lastToolUse || 'Tool';
178
+ if (isError) {
179
+ const errorContent = content || 'Unknown error';
180
+ console.log(chalk.red(` ✗ ${toolName}:`), chalk.red(truncate(errorContent, 70)));
181
+ }
182
+ else if (content && content.length > 0) {
183
+ // Show a brief preview of the result
184
+ const preview = content.split('\n')[0] || content;
185
+ console.log(chalk.green(` ✓ ${toolName}`), chalk.gray(truncate(preview, 60)));
186
+ }
187
+ else {
188
+ console.log(chalk.green(` ✓ ${toolName}`));
189
+ }
190
+ this.lastToolUse = null;
191
+ }
192
+ /** Display streaming thinking (Claude's internal reasoning) */
193
+ showThinking(thinking) {
194
+ // Stop spinner if running
195
+ this.stopToolSpinner();
196
+ // Flush any regular text first
197
+ this.flushText();
198
+ if (this.isFirstThinking) {
199
+ console.log();
200
+ console.log(chalk.magenta(`💭 [${this.agentName} thinking]:`));
201
+ this.isFirstThinking = false;
202
+ }
203
+ // Write thinking in a dimmed/italic style
204
+ process.stdout.write(chalk.gray.italic(thinking));
205
+ this.thinkingBuffer += thinking;
206
+ }
207
+ /** Flush any remaining thinking */
208
+ flushThinking() {
209
+ if (this.thinkingBuffer) {
210
+ if (!this.thinkingBuffer.endsWith('\n')) {
211
+ console.log();
212
+ }
213
+ this.thinkingBuffer = '';
214
+ this.isFirstThinking = true;
215
+ }
216
+ }
217
+ /** Display streaming text (accumulated) */
218
+ showText(text) {
219
+ // Stop spinner if running
220
+ this.stopToolSpinner();
221
+ // Flush any thinking first
222
+ this.flushThinking();
223
+ if (this.isFirstText) {
224
+ console.log();
225
+ console.log(chalk.cyan(`[${this.agentName}]:`));
226
+ this.isFirstText = false;
227
+ }
228
+ // Write directly to stdout without newline for smooth streaming
229
+ process.stdout.write(text);
230
+ this.textBuffer += text;
231
+ }
232
+ /** Flush any remaining text */
233
+ flushText() {
234
+ if (this.textBuffer) {
235
+ // Ensure we end with a newline
236
+ if (!this.textBuffer.endsWith('\n')) {
237
+ console.log();
238
+ }
239
+ this.textBuffer = '';
240
+ this.isFirstText = true;
241
+ }
242
+ }
243
+ /** Flush both thinking and text buffers */
244
+ flush() {
245
+ this.stopToolSpinner();
246
+ this.flushThinking();
247
+ this.flushText();
248
+ }
249
+ /** Display final result */
250
+ showResult(success) {
251
+ this.stopToolSpinner();
252
+ this.flushThinking();
253
+ this.flushText();
254
+ console.log();
255
+ if (success) {
256
+ console.log(chalk.green('✓ Complete'));
257
+ }
258
+ else {
259
+ console.log(chalk.red('✗ Failed'));
260
+ }
261
+ }
262
+ /** Reset state for new interaction */
263
+ reset() {
264
+ this.stopToolSpinner();
265
+ this.lastToolUse = null;
266
+ this.textBuffer = '';
267
+ this.thinkingBuffer = '';
268
+ this.isFirstText = true;
269
+ this.isFirstThinking = true;
270
+ }
271
+ /**
272
+ * Create a stream event handler for this display.
273
+ * This centralizes the event handling logic to avoid code duplication.
274
+ */
275
+ createHandler() {
276
+ return (event) => {
277
+ switch (event.type) {
278
+ case 'init':
279
+ this.showInit(event.data.model);
280
+ break;
281
+ case 'tool_use':
282
+ this.showToolUse(event.data.tool, event.data.input);
283
+ break;
284
+ case 'tool_result':
285
+ this.showToolResult(event.data.content, event.data.isError);
286
+ break;
287
+ case 'text':
288
+ this.showText(event.data.text);
289
+ break;
290
+ case 'thinking':
291
+ this.showThinking(event.data.thinking);
292
+ break;
293
+ case 'result':
294
+ this.showResult(event.data.success);
295
+ break;
296
+ case 'error':
297
+ // Parse errors are logged but not displayed to user
298
+ break;
299
+ }
300
+ };
301
+ }
302
+ /** Format tool input for display */
303
+ formatToolInput(tool, input) {
304
+ switch (tool) {
305
+ case 'Bash':
306
+ return truncate(String(input.command || ''), 60);
307
+ case 'Read':
308
+ return truncate(String(input.file_path || ''), 60);
309
+ case 'Write':
310
+ case 'Edit':
311
+ return truncate(String(input.file_path || ''), 60);
312
+ case 'Glob':
313
+ return truncate(String(input.pattern || ''), 60);
314
+ case 'Grep':
315
+ return truncate(String(input.pattern || ''), 60);
316
+ default: {
317
+ const keys = Object.keys(input);
318
+ if (keys.length === 0)
319
+ return '';
320
+ const firstKey = keys[0];
321
+ if (firstKey) {
322
+ const value = input[firstKey];
323
+ return truncate(String(value || ''), 50);
324
+ }
325
+ return '';
326
+ }
327
+ }
328
+ }
329
+ }
330
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,wBAAwB;AACxB,IAAI,eAAe,GAAa,MAAM,CAAC;AAEvC,2BAA2B;AAC3B,MAAM,cAAc,GAA6B;IAC/C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,oBAAoB;AACpB,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC3C,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;AAClE,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,mBAAmB;AACnB,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,KAAkC;IACrF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,mCAAmC;AACnC,MAAM,OAAO,OAAO;IACV,UAAU,CAAkC;IAC5C,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5D,YAAY,GAAG,CAAC,CAAC;IACjB,OAAO,CAAS;IAExB,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,wBAAwB;IACxB,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAClE,CAAC;YACF,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,YAAqB;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,CAAC;AACnC,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,IAAI,CAAC,KAAe,EAAE,MAAM,GAAG,GAAG;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAiB;IACtD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9C,CAAC;AAED,yDAAyD;AACzD,MAAM,OAAO,aAAa;IAcJ;IAbZ,WAAW,GAAkB,IAAI,CAAC;IAClC,UAAU,GAAG,EAAE,CAAC;IAChB,cAAc,GAAG,EAAE,CAAC;IACpB,WAAW,GAAG,IAAI,CAAC;IACnB,eAAe,GAAG,IAAI,CAAC;IACvB,WAAW,GAIR,IAAI,CAAC;IACR,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAoB,YAAY,QAAQ;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,mCAAmC;IACnC,QAAQ,CAAC,KAAa;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,uCAAuC;IAC/B,gBAAgB,CAAC,IAAY,EAAE,YAAoB;QACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,WAAW,GAAG;YACjB,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC,EAAE,EAAE,CAAC;YACN,QAAQ,EAAE,IAAI;YACd,OAAO;SACR,CAAC;IACJ,CAAC;IAED,4BAA4B;IACpB,eAAe;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC3C,iEAAiE;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,WAAW,CAAC,IAAY,EAAE,KAA8B;QACtD,gCAAgC;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvD,0CAA0C;QAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,gCAAgC;IAChC,cAAc,CAAC,OAAe,EAAE,OAAgB;QAC9C,yBAAyB;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,OAAO,IAAI,eAAe,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,qCAAqC;YACrC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,+DAA+D;IAC/D,YAAY,CAAC,QAAgB;QAC3B,0BAA0B;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,0CAA0C;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC;IAClC,CAAC;IAED,mCAAmC;IACnC,aAAa;QACX,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,IAAY;QACnB,0BAA0B;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,2BAA2B;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,gEAAgE;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,SAAS;QACP,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,2BAA2B;IAC3B,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,CAAC,KAAkB,EAAQ,EAAE;YAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,aAAa;oBAChB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5D,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpC,MAAM;gBACR,KAAK,OAAO;oBACV,oDAAoD;oBACpD,MAAM;YACV,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,oCAAoC;IAC5B,eAAe,CAAC,IAAY,EAAE,KAA8B;QAClE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Blocked state handler for workflow execution
3
+ *
4
+ * Handles the case when an agent returns a blocked status,
5
+ * requesting user input to continue.
6
+ */
7
+ import type { WorkflowStep, AgentResponse } from '../models/types.js';
8
+ import type { WorkflowEngineOptions } from './types.js';
9
+ /**
10
+ * Result of handling a blocked state.
11
+ */
12
+ export interface BlockedHandlerResult {
13
+ /** Whether the workflow should continue */
14
+ shouldContinue: boolean;
15
+ /** The user input provided (if any) */
16
+ userInput?: string;
17
+ }
18
+ /**
19
+ * Handle blocked status by requesting user input.
20
+ *
21
+ * @param step - The step that is blocked
22
+ * @param response - The blocked response from the agent
23
+ * @param options - Workflow engine options containing callbacks
24
+ * @returns Result indicating whether to continue and any user input
25
+ */
26
+ export declare function handleBlocked(step: WorkflowStep, response: AgentResponse, options: WorkflowEngineOptions): Promise<BlockedHandlerResult>;
27
+ //# sourceMappingURL=blocked-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocked-handler.d.ts","sourceRoot":"","sources":["../../src/workflow/blocked-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA4B/B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Blocked state handler for workflow execution
3
+ *
4
+ * Handles the case when an agent returns a blocked status,
5
+ * requesting user input to continue.
6
+ */
7
+ import { extractBlockedPrompt } from './transitions.js';
8
+ /**
9
+ * Handle blocked status by requesting user input.
10
+ *
11
+ * @param step - The step that is blocked
12
+ * @param response - The blocked response from the agent
13
+ * @param options - Workflow engine options containing callbacks
14
+ * @returns Result indicating whether to continue and any user input
15
+ */
16
+ export async function handleBlocked(step, response, options) {
17
+ // If no user input callback is provided, cannot continue
18
+ if (!options.onUserInput) {
19
+ return { shouldContinue: false };
20
+ }
21
+ // Extract prompt from blocked message
22
+ const prompt = extractBlockedPrompt(response.content);
23
+ // Build the request
24
+ const request = {
25
+ step,
26
+ response,
27
+ prompt,
28
+ };
29
+ // Request user input
30
+ const userInput = await options.onUserInput(request);
31
+ // If user cancels (returns null), abort
32
+ if (userInput === null) {
33
+ return { shouldContinue: false };
34
+ }
35
+ return {
36
+ shouldContinue: true,
37
+ userInput,
38
+ };
39
+ }
40
+ //# sourceMappingURL=blocked-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocked-handler.js","sourceRoot":"","sources":["../../src/workflow/blocked-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAYxD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAkB,EAClB,QAAuB,EACvB,OAA8B;IAE9B,yDAAyD;IACzD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtD,oBAAoB;IACpB,MAAM,OAAO,GAAqB;QAChC,IAAI;QACJ,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,qBAAqB;IACrB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAErD,wCAAwC;IACxC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI;QACpB,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Workflow engine constants
3
+ *
4
+ * Contains all constants used by the workflow engine including
5
+ * special step names, limits, and error messages.
6
+ */
7
+ /** Special step names for workflow termination */
8
+ export declare const COMPLETE_STEP = "COMPLETE";
9
+ export declare const ABORT_STEP = "ABORT";
10
+ /** Maximum user inputs to store */
11
+ export declare const MAX_USER_INPUTS = 100;
12
+ export declare const MAX_INPUT_LENGTH = 10000;
13
+ /** Error messages */
14
+ export declare const ERROR_MESSAGES: {
15
+ LOOP_DETECTED: (stepName: string, count: number) => string;
16
+ UNKNOWN_STEP: (stepName: string) => string;
17
+ STEP_EXECUTION_FAILED: (message: string) => string;
18
+ MAX_ITERATIONS_REACHED: string;
19
+ };
20
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/workflow/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC,mCAAmC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,cAAc;8BACC,MAAM,SAAS,MAAM;6BAEtB,MAAM;qCACE,MAAM;;CAExC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Workflow engine constants
3
+ *
4
+ * Contains all constants used by the workflow engine including
5
+ * special step names, limits, and error messages.
6
+ */
7
+ /** Special step names for workflow termination */
8
+ export const COMPLETE_STEP = 'COMPLETE';
9
+ export const ABORT_STEP = 'ABORT';
10
+ /** Maximum user inputs to store */
11
+ export const MAX_USER_INPUTS = 100;
12
+ export const MAX_INPUT_LENGTH = 10000;
13
+ /** Error messages */
14
+ export const ERROR_MESSAGES = {
15
+ LOOP_DETECTED: (stepName, count) => `Loop detected: step "${stepName}" ran ${count} times consecutively without progress.`,
16
+ UNKNOWN_STEP: (stepName) => `Unknown step: ${stepName}`,
17
+ STEP_EXECUTION_FAILED: (message) => `Step execution failed: ${message}`,
18
+ MAX_ITERATIONS_REACHED: 'Max iterations reached',
19
+ };
20
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/workflow/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAElC,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa,EAAE,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE,CACjD,wBAAwB,QAAQ,SAAS,KAAK,wCAAwC;IACxF,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,iBAAiB,QAAQ,EAAE;IAC/D,qBAAqB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,0BAA0B,OAAO,EAAE;IAC/E,sBAAsB,EAAE,wBAAwB;CACjD,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Workflow execution engine
3
+ */
4
+ import { EventEmitter } from 'node:events';
5
+ import type { WorkflowConfig, WorkflowState, AgentResponse } from '../models/types.js';
6
+ import type { WorkflowEngineOptions } from './types.js';
7
+ export type { WorkflowEvents, UserInputRequest, IterationLimitRequest, SessionUpdateCallback, IterationLimitCallback, WorkflowEngineOptions, } from './types.js';
8
+ export { COMPLETE_STEP, ABORT_STEP } from './constants.js';
9
+ /** Workflow engine for orchestrating agent execution */
10
+ export declare class WorkflowEngine extends EventEmitter {
11
+ private state;
12
+ private config;
13
+ private cwd;
14
+ private task;
15
+ private options;
16
+ private loopDetector;
17
+ constructor(config: WorkflowConfig, cwd: string, task: string, options?: WorkflowEngineOptions);
18
+ /** Validate workflow configuration at construction time */
19
+ private validateConfig;
20
+ /** Get current workflow state */
21
+ getState(): WorkflowState;
22
+ /** Add user input */
23
+ addUserInput(input: string): void;
24
+ /** Build instruction from template */
25
+ private buildInstruction;
26
+ /** Get step by name */
27
+ private getStep;
28
+ /** Run a single step */
29
+ private runStep;
30
+ /** Run the workflow to completion */
31
+ run(): Promise<WorkflowState>;
32
+ /** Run a single iteration (for interactive mode) */
33
+ runSingleIteration(): Promise<{
34
+ response: AgentResponse;
35
+ nextStep: string;
36
+ isComplete: boolean;
37
+ loopDetected?: boolean;
38
+ }>;
39
+ }
40
+ /** Create and run a workflow */
41
+ export declare function executeWorkflow(config: WorkflowConfig, cwd: string, task: string): Promise<WorkflowState>;
42
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAWlG,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAqBtB,iCAAiC;IACjC,QAAQ,IAAI,aAAa;IAIzB,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,sCAAsC;IACtC,OAAO,CAAC,gBAAgB;IAWxB,uBAAuB;IACvB,OAAO,CAAC,OAAO;IAQf,wBAAwB;YACV,OAAO;IA6BrB,qCAAqC;IAC/B,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAuFnC,oDAAoD;IAC9C,kBAAkB,IAAI,OAAO,CAAC;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CAgCH;AAED,gCAAgC;AAChC,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAGxB"}