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,135 @@
1
+ /**
2
+ * Debug logging utilities for takt
3
+ * Writes debug logs to file when enabled in config
4
+ */
5
+ import { existsSync, appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
6
+ import { dirname, join } from 'node:path';
7
+ import { homedir } from 'node:os';
8
+ /** Debug logger state */
9
+ let debugEnabled = false;
10
+ let debugLogFile = null;
11
+ let initialized = false;
12
+ /** Get default debug log file path */
13
+ function getDefaultLogFile() {
14
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
15
+ return join(homedir(), '.takt', 'logs', `debug-${timestamp}.log`);
16
+ }
17
+ /** Initialize debug logger from config */
18
+ export function initDebugLogger(config, projectDir) {
19
+ if (initialized) {
20
+ return;
21
+ }
22
+ debugEnabled = config?.enabled ?? false;
23
+ if (debugEnabled) {
24
+ if (config?.logFile) {
25
+ debugLogFile = config.logFile;
26
+ }
27
+ else {
28
+ debugLogFile = getDefaultLogFile();
29
+ }
30
+ // Ensure log directory exists
31
+ const logDir = dirname(debugLogFile);
32
+ if (!existsSync(logDir)) {
33
+ mkdirSync(logDir, { recursive: true });
34
+ }
35
+ // Write initial log header
36
+ const header = [
37
+ '='.repeat(60),
38
+ `TAKT Debug Log`,
39
+ `Started: ${new Date().toISOString()}`,
40
+ `Project: ${projectDir || 'N/A'}`,
41
+ '='.repeat(60),
42
+ '',
43
+ ].join('\n');
44
+ writeFileSync(debugLogFile, header, 'utf-8');
45
+ }
46
+ initialized = true;
47
+ }
48
+ /** Reset debug logger (for testing) */
49
+ export function resetDebugLogger() {
50
+ debugEnabled = false;
51
+ debugLogFile = null;
52
+ initialized = false;
53
+ }
54
+ /** Check if debug is enabled */
55
+ export function isDebugEnabled() {
56
+ return debugEnabled;
57
+ }
58
+ /** Get current debug log file path */
59
+ export function getDebugLogFile() {
60
+ return debugLogFile;
61
+ }
62
+ /** Format log message with timestamp and level */
63
+ function formatLogMessage(level, component, message, data) {
64
+ const timestamp = new Date().toISOString();
65
+ const prefix = `[${timestamp}] [${level.toUpperCase()}] [${component}]`;
66
+ let logLine = `${prefix} ${message}`;
67
+ if (data !== undefined) {
68
+ try {
69
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
70
+ logLine += `\n${dataStr}`;
71
+ }
72
+ catch {
73
+ logLine += `\n[Unable to serialize data]`;
74
+ }
75
+ }
76
+ return logLine;
77
+ }
78
+ /** Write a debug log entry */
79
+ export function debugLog(component, message, data) {
80
+ if (!debugEnabled || !debugLogFile) {
81
+ return;
82
+ }
83
+ const logLine = formatLogMessage('DEBUG', component, message, data);
84
+ try {
85
+ appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
86
+ }
87
+ catch {
88
+ // Silently fail - logging errors should not interrupt main flow
89
+ }
90
+ }
91
+ /** Write an info log entry */
92
+ export function infoLog(component, message, data) {
93
+ if (!debugEnabled || !debugLogFile) {
94
+ return;
95
+ }
96
+ const logLine = formatLogMessage('INFO', component, message, data);
97
+ try {
98
+ appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
99
+ }
100
+ catch {
101
+ // Silently fail
102
+ }
103
+ }
104
+ /** Write an error log entry */
105
+ export function errorLog(component, message, data) {
106
+ if (!debugEnabled || !debugLogFile) {
107
+ return;
108
+ }
109
+ const logLine = formatLogMessage('ERROR', component, message, data);
110
+ try {
111
+ appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
112
+ }
113
+ catch {
114
+ // Silently fail
115
+ }
116
+ }
117
+ /** Log function entry with arguments */
118
+ export function traceEnter(component, funcName, args) {
119
+ debugLog(component, `>> ${funcName}()`, args);
120
+ }
121
+ /** Log function exit with result */
122
+ export function traceExit(component, funcName, result) {
123
+ debugLog(component, `<< ${funcName}()`, result);
124
+ }
125
+ /** Create a scoped logger for a component */
126
+ export function createLogger(component) {
127
+ return {
128
+ debug: (message, data) => debugLog(component, message, data),
129
+ info: (message, data) => infoLog(component, message, data),
130
+ error: (message, data) => errorLog(component, message, data),
131
+ enter: (funcName, args) => traceEnter(component, funcName, args),
132
+ exit: (funcName, result) => traceExit(component, funcName, result),
133
+ };
134
+ }
135
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Error handling utilities
3
+ */
4
+ /**
5
+ * Extract error message from unknown error type
6
+ */
7
+ export declare function getErrorMessage(err: unknown): string;
8
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Error handling utilities
3
+ */
4
+ /**
5
+ * Extract error message from unknown error type
6
+ */
7
+ export function getErrorMessage(err) {
8
+ return err instanceof Error ? err.message : String(err);
9
+ }
10
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utils module - exports utility functions
3
+ */
4
+ export * from './ui.js';
5
+ export * from './session.js';
6
+ export * from './debug.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utils module - exports utility functions
3
+ */
4
+ export * from './ui.js';
5
+ export * from './session.js';
6
+ export * from './debug.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Notification utilities for takt
3
+ *
4
+ * Provides audio and visual notifications for workflow events.
5
+ */
6
+ /** Notification sound types */
7
+ export type NotificationSound = 'success' | 'error' | 'warning' | 'info';
8
+ /**
9
+ * Play a notification sound
10
+ *
11
+ * @param type - The type of notification sound to play
12
+ */
13
+ export declare function playSound(type?: NotificationSound): void;
14
+ /**
15
+ * Play success notification sound
16
+ */
17
+ export declare function playSuccessSound(): void;
18
+ /**
19
+ * Play error notification sound
20
+ */
21
+ export declare function playErrorSound(): void;
22
+ /**
23
+ * Play warning notification sound
24
+ */
25
+ export declare function playWarningSound(): void;
26
+ /**
27
+ * Play info notification sound
28
+ */
29
+ export declare function playInfoSound(): void;
30
+ /** Options for system notification */
31
+ export interface NotifyOptions {
32
+ /** Notification title */
33
+ title: string;
34
+ /** Notification message/body */
35
+ message: string;
36
+ /** Optional subtitle (macOS only) */
37
+ subtitle?: string;
38
+ /** Sound type to play with notification */
39
+ sound?: NotificationSound;
40
+ }
41
+ /**
42
+ * Send a system notification
43
+ *
44
+ * @param options - Notification options
45
+ */
46
+ export declare function sendNotification(options: NotifyOptions): void;
47
+ /**
48
+ * Send success notification with sound
49
+ */
50
+ export declare function notifySuccess(title: string, message: string): void;
51
+ /**
52
+ * Send error notification with sound
53
+ */
54
+ export declare function notifyError(title: string, message: string): void;
55
+ /**
56
+ * Send warning notification with sound
57
+ */
58
+ export declare function notifyWarning(title: string, message: string): void;
59
+ /**
60
+ * Send info notification with sound
61
+ */
62
+ export declare function notifyInfo(title: string, message: string): void;
63
+ //# sourceMappingURL=notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,+BAA+B;AAC/B,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAkBzE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,iBAA0B,GAAG,IAAI,CAiChE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAkC7D;AAgBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/D"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Notification utilities for takt
3
+ *
4
+ * Provides audio and visual notifications for workflow events.
5
+ */
6
+ import { exec } from 'node:child_process';
7
+ import { platform } from 'node:os';
8
+ /** Sound configuration */
9
+ const SOUND_CONFIG = {
10
+ darwin: {
11
+ success: 'Glass',
12
+ error: 'Basso',
13
+ warning: 'Sosumi',
14
+ info: 'Pop',
15
+ },
16
+ linux: {
17
+ success: '/usr/share/sounds/freedesktop/stereo/complete.oga',
18
+ error: '/usr/share/sounds/freedesktop/stereo/dialog-error.oga',
19
+ warning: '/usr/share/sounds/freedesktop/stereo/dialog-warning.oga',
20
+ info: '/usr/share/sounds/freedesktop/stereo/message.oga',
21
+ },
22
+ };
23
+ /**
24
+ * Play a notification sound
25
+ *
26
+ * @param type - The type of notification sound to play
27
+ */
28
+ export function playSound(type = 'info') {
29
+ const os = platform();
30
+ try {
31
+ if (os === 'darwin') {
32
+ // macOS - use afplay with system sounds
33
+ const darwinConfig = SOUND_CONFIG.darwin;
34
+ const sound = darwinConfig ? darwinConfig[type] : 'Pop';
35
+ exec(`afplay /System/Library/Sounds/${sound}.aiff 2>/dev/null`, (err) => {
36
+ // Silently ignore errors (sound not found, etc.)
37
+ if (err) {
38
+ // Try terminal bell as fallback
39
+ process.stdout.write('\x07');
40
+ }
41
+ });
42
+ }
43
+ else if (os === 'linux') {
44
+ // Linux - try paplay (PulseAudio) or aplay (ALSA)
45
+ const linuxConfig = SOUND_CONFIG.linux;
46
+ const sound = linuxConfig ? linuxConfig[type] : '/usr/share/sounds/freedesktop/stereo/message.oga';
47
+ exec(`paplay ${sound} 2>/dev/null || aplay ${sound} 2>/dev/null`, (err) => {
48
+ // Fallback to terminal bell
49
+ if (err) {
50
+ process.stdout.write('\x07');
51
+ }
52
+ });
53
+ }
54
+ else {
55
+ // Windows or other - use terminal bell
56
+ process.stdout.write('\x07');
57
+ }
58
+ }
59
+ catch {
60
+ // Fallback to terminal bell
61
+ process.stdout.write('\x07');
62
+ }
63
+ }
64
+ /**
65
+ * Play success notification sound
66
+ */
67
+ export function playSuccessSound() {
68
+ playSound('success');
69
+ }
70
+ /**
71
+ * Play error notification sound
72
+ */
73
+ export function playErrorSound() {
74
+ playSound('error');
75
+ }
76
+ /**
77
+ * Play warning notification sound
78
+ */
79
+ export function playWarningSound() {
80
+ playSound('warning');
81
+ }
82
+ /**
83
+ * Play info notification sound
84
+ */
85
+ export function playInfoSound() {
86
+ playSound('info');
87
+ }
88
+ /**
89
+ * Send a system notification
90
+ *
91
+ * @param options - Notification options
92
+ */
93
+ export function sendNotification(options) {
94
+ const os = platform();
95
+ const { title, message, subtitle, sound } = options;
96
+ try {
97
+ if (os === 'darwin') {
98
+ // macOS - use osascript for native notifications
99
+ const subtitlePart = subtitle ? `subtitle "${escapeAppleScript(subtitle)}"` : '';
100
+ const soundPart = sound ? `sound name "${SOUND_CONFIG.darwin?.[sound] || 'Pop'}"` : '';
101
+ const script = `display notification "${escapeAppleScript(message)}" with title "${escapeAppleScript(title)}" ${subtitlePart} ${soundPart}`;
102
+ exec(`osascript -e '${script}'`, (err) => {
103
+ if (err) {
104
+ // Fallback: just play sound if notification fails
105
+ if (sound)
106
+ playSound(sound);
107
+ }
108
+ });
109
+ }
110
+ else if (os === 'linux') {
111
+ // Linux - use notify-send
112
+ const urgency = sound === 'error' ? 'critical' : sound === 'warning' ? 'normal' : 'low';
113
+ exec(`notify-send -u ${urgency} "${escapeShell(title)}" "${escapeShell(message)}"`, (err) => {
114
+ // Play sound separately on Linux
115
+ if (sound)
116
+ playSound(sound);
117
+ if (err) {
118
+ // Notification daemon not available, sound already played
119
+ }
120
+ });
121
+ }
122
+ else {
123
+ // Windows or other - just play sound
124
+ if (sound)
125
+ playSound(sound);
126
+ }
127
+ }
128
+ catch {
129
+ // Fallback to just sound
130
+ if (sound)
131
+ playSound(sound);
132
+ }
133
+ }
134
+ /**
135
+ * Escape string for AppleScript
136
+ */
137
+ function escapeAppleScript(str) {
138
+ return str.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
139
+ }
140
+ /**
141
+ * Escape string for shell
142
+ */
143
+ function escapeShell(str) {
144
+ return str.replace(/"/g, '\\"').replace(/\$/g, '\\$').replace(/`/g, '\\`');
145
+ }
146
+ /**
147
+ * Send success notification with sound
148
+ */
149
+ export function notifySuccess(title, message) {
150
+ sendNotification({ title, message, sound: 'success' });
151
+ }
152
+ /**
153
+ * Send error notification with sound
154
+ */
155
+ export function notifyError(title, message) {
156
+ sendNotification({ title, message, sound: 'error' });
157
+ }
158
+ /**
159
+ * Send warning notification with sound
160
+ */
161
+ export function notifyWarning(title, message) {
162
+ sendNotification({ title, message, sound: 'warning' });
163
+ }
164
+ /**
165
+ * Send info notification with sound
166
+ */
167
+ export function notifyInfo(title, message) {
168
+ sendNotification({ title, message, sound: 'info' });
169
+ }
170
+ //# sourceMappingURL=notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Session management utilities
3
+ */
4
+ import type { AgentResponse, WorkflowState } from '../models/types.js';
5
+ /** Session log entry */
6
+ export interface SessionLog {
7
+ task: string;
8
+ projectDir: string;
9
+ workflowName: string;
10
+ iterations: number;
11
+ startTime: string;
12
+ endTime?: string;
13
+ status: 'running' | 'completed' | 'aborted';
14
+ history: Array<{
15
+ step: string;
16
+ agent: string;
17
+ status: string;
18
+ timestamp: string;
19
+ content: string;
20
+ }>;
21
+ }
22
+ /** Generate a session ID */
23
+ export declare function generateSessionId(): string;
24
+ /** Create a new session log */
25
+ export declare function createSessionLog(task: string, projectDir: string, workflowName: string): SessionLog;
26
+ /** Add agent response to session log */
27
+ export declare function addToSessionLog(log: SessionLog, stepName: string, response: AgentResponse): void;
28
+ /** Finalize session log */
29
+ export declare function finalizeSessionLog(log: SessionLog, status: 'completed' | 'aborted'): void;
30
+ /** Save session log to file */
31
+ export declare function saveSessionLog(log: SessionLog, sessionId: string, projectDir?: string): string;
32
+ /** Load session log from file */
33
+ export declare function loadSessionLog(filepath: string): SessionLog | null;
34
+ /** Load project context (CLAUDE.md files) */
35
+ export declare function loadProjectContext(projectDir: string): string;
36
+ /** Convert workflow state to session log */
37
+ export declare function workflowStateToSessionLog(state: WorkflowState, task: string, projectDir: string): SessionLog;
38
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGvE,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,+BAA+B;AAC/B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,UAAU,CAUZ;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,GACtB,IAAI,CASN;AAED,2BAA2B;AAC3B,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,IAAI,CAGN;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AAED,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMlE;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB7D;AAED,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,UAAU,CAsBZ"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Session management utilities
3
+ */
4
+ import { writeFileSync, existsSync, readFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { getProjectLogsDir, getGlobalLogsDir, ensureDir } from '../config/paths.js';
7
+ /** Generate a session ID */
8
+ export function generateSessionId() {
9
+ const timestamp = Date.now().toString(36);
10
+ const random = Math.random().toString(36).slice(2, 8);
11
+ return `${timestamp}-${random}`;
12
+ }
13
+ /** Create a new session log */
14
+ export function createSessionLog(task, projectDir, workflowName) {
15
+ return {
16
+ task,
17
+ projectDir,
18
+ workflowName,
19
+ iterations: 0,
20
+ startTime: new Date().toISOString(),
21
+ status: 'running',
22
+ history: [],
23
+ };
24
+ }
25
+ /** Add agent response to session log */
26
+ export function addToSessionLog(log, stepName, response) {
27
+ log.history.push({
28
+ step: stepName,
29
+ agent: response.agent,
30
+ status: response.status,
31
+ timestamp: response.timestamp.toISOString(),
32
+ content: response.content,
33
+ });
34
+ log.iterations++;
35
+ }
36
+ /** Finalize session log */
37
+ export function finalizeSessionLog(log, status) {
38
+ log.status = status;
39
+ log.endTime = new Date().toISOString();
40
+ }
41
+ /** Save session log to file */
42
+ export function saveSessionLog(log, sessionId, projectDir) {
43
+ const logsDir = projectDir
44
+ ? getProjectLogsDir(projectDir)
45
+ : getGlobalLogsDir();
46
+ ensureDir(logsDir);
47
+ const filename = `${sessionId}.json`;
48
+ const filepath = join(logsDir, filename);
49
+ writeFileSync(filepath, JSON.stringify(log, null, 2), 'utf-8');
50
+ return filepath;
51
+ }
52
+ /** Load session log from file */
53
+ export function loadSessionLog(filepath) {
54
+ if (!existsSync(filepath)) {
55
+ return null;
56
+ }
57
+ const content = readFileSync(filepath, 'utf-8');
58
+ return JSON.parse(content);
59
+ }
60
+ /** Load project context (CLAUDE.md files) */
61
+ export function loadProjectContext(projectDir) {
62
+ const contextParts = [];
63
+ // Check project root CLAUDE.md
64
+ const rootClaudeMd = join(projectDir, 'CLAUDE.md');
65
+ if (existsSync(rootClaudeMd)) {
66
+ contextParts.push(readFileSync(rootClaudeMd, 'utf-8'));
67
+ }
68
+ // Check .claude/CLAUDE.md
69
+ const dotClaudeMd = join(projectDir, '.claude', 'CLAUDE.md');
70
+ if (existsSync(dotClaudeMd)) {
71
+ contextParts.push(readFileSync(dotClaudeMd, 'utf-8'));
72
+ }
73
+ return contextParts.join('\n\n---\n\n');
74
+ }
75
+ /** Convert workflow state to session log */
76
+ export function workflowStateToSessionLog(state, task, projectDir) {
77
+ const log = {
78
+ task,
79
+ projectDir,
80
+ workflowName: state.workflowName,
81
+ iterations: state.iteration,
82
+ startTime: new Date().toISOString(),
83
+ status: state.status === 'running' ? 'running' : state.status === 'completed' ? 'completed' : 'aborted',
84
+ history: [],
85
+ };
86
+ for (const [stepName, response] of state.stepOutputs) {
87
+ log.history.push({
88
+ step: stepName,
89
+ agent: response.agent,
90
+ status: response.status,
91
+ timestamp: response.timestamp.toISOString(),
92
+ content: response.content,
93
+ });
94
+ }
95
+ return log;
96
+ }
97
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}