@ranker/raxflow 0.2.2 → 0.2.4

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 (378) hide show
  1. package/dist/benchmark.d.ts +10 -0
  2. package/dist/benchmark.d.ts.map +1 -0
  3. package/dist/benchmark.js +123 -0
  4. package/dist/benchmark.js.map +1 -0
  5. package/dist/bin.d.ts +3 -0
  6. package/dist/bin.d.ts.map +1 -0
  7. package/dist/bin.js +141 -0
  8. package/dist/bin.js.map +1 -0
  9. package/dist/bootstrap.d.ts +8 -0
  10. package/dist/bootstrap.d.ts.map +1 -0
  11. package/dist/bootstrap.js +22 -0
  12. package/dist/bootstrap.js.map +1 -0
  13. package/dist/bridge-adapter-templates.d.ts +4 -0
  14. package/dist/bridge-adapter-templates.d.ts.map +1 -0
  15. package/dist/bridge-adapter-templates.js +185 -0
  16. package/dist/bridge-adapter-templates.js.map +1 -0
  17. package/dist/bridge-test.d.ts +7 -0
  18. package/dist/bridge-test.d.ts.map +1 -0
  19. package/dist/bridge-test.js +89 -0
  20. package/dist/bridge-test.js.map +1 -0
  21. package/dist/dashboard.d.ts +4 -0
  22. package/dist/dashboard.d.ts.map +1 -0
  23. package/{src/dashboard.ts → dist/dashboard.js} +8 -10
  24. package/dist/dashboard.js.map +1 -0
  25. package/dist/doctor.d.ts +6 -0
  26. package/dist/doctor.d.ts.map +1 -0
  27. package/dist/doctor.js +70 -0
  28. package/dist/doctor.js.map +1 -0
  29. package/dist/evolve.d.ts +7 -0
  30. package/dist/evolve.d.ts.map +1 -0
  31. package/{src/evolve.ts → dist/evolve.js} +7 -33
  32. package/dist/evolve.js.map +1 -0
  33. package/dist/host-init-templates.d.ts +16 -0
  34. package/dist/host-init-templates.d.ts.map +1 -0
  35. package/dist/host-init-templates.js +119 -0
  36. package/dist/host-init-templates.js.map +1 -0
  37. package/dist/hub/__tests__/commands.test.d.ts +2 -0
  38. package/dist/hub/__tests__/commands.test.d.ts.map +1 -0
  39. package/dist/hub/__tests__/commands.test.js +72 -0
  40. package/dist/hub/__tests__/commands.test.js.map +1 -0
  41. package/dist/hub/__tests__/history.test.d.ts +2 -0
  42. package/dist/hub/__tests__/history.test.d.ts.map +1 -0
  43. package/dist/hub/__tests__/history.test.js +119 -0
  44. package/dist/hub/__tests__/history.test.js.map +1 -0
  45. package/dist/hub/__tests__/parser.test.d.ts +2 -0
  46. package/dist/hub/__tests__/parser.test.d.ts.map +1 -0
  47. package/dist/hub/__tests__/parser.test.js +92 -0
  48. package/dist/hub/__tests__/parser.test.js.map +1 -0
  49. package/dist/hub/commands/agents.d.ts +3 -0
  50. package/dist/hub/commands/agents.d.ts.map +1 -0
  51. package/dist/hub/commands/agents.js +36 -0
  52. package/dist/hub/commands/agents.js.map +1 -0
  53. package/dist/hub/commands/index.d.ts +4 -0
  54. package/dist/hub/commands/index.d.ts.map +1 -0
  55. package/dist/hub/commands/index.js +123 -0
  56. package/dist/hub/commands/index.js.map +1 -0
  57. package/dist/hub/commands/logs.d.ts +3 -0
  58. package/dist/hub/commands/logs.d.ts.map +1 -0
  59. package/dist/hub/commands/logs.js +53 -0
  60. package/dist/hub/commands/logs.js.map +1 -0
  61. package/dist/hub/commands/memory.d.ts +3 -0
  62. package/dist/hub/commands/memory.d.ts.map +1 -0
  63. package/dist/hub/commands/memory.js +40 -0
  64. package/dist/hub/commands/memory.js.map +1 -0
  65. package/dist/hub/commands/metrics.d.ts +3 -0
  66. package/dist/hub/commands/metrics.d.ts.map +1 -0
  67. package/dist/hub/commands/metrics.js +35 -0
  68. package/dist/hub/commands/metrics.js.map +1 -0
  69. package/dist/hub/commands/providers.d.ts +3 -0
  70. package/dist/hub/commands/providers.d.ts.map +1 -0
  71. package/dist/hub/commands/providers.js +26 -0
  72. package/dist/hub/commands/providers.js.map +1 -0
  73. package/dist/hub/commands/run.d.ts +3 -0
  74. package/dist/hub/commands/run.d.ts.map +1 -0
  75. package/dist/hub/commands/run.js +31 -0
  76. package/dist/hub/commands/run.js.map +1 -0
  77. package/dist/hub/commands/status.d.ts +3 -0
  78. package/dist/hub/commands/status.d.ts.map +1 -0
  79. package/dist/hub/commands/status.js +61 -0
  80. package/dist/hub/commands/status.js.map +1 -0
  81. package/dist/hub/commands/workflows.d.ts +3 -0
  82. package/dist/hub/commands/workflows.d.ts.map +1 -0
  83. package/dist/hub/commands/workflows.js +45 -0
  84. package/dist/hub/commands/workflows.js.map +1 -0
  85. package/dist/hub/config-loader.d.ts +4 -0
  86. package/dist/hub/config-loader.d.ts.map +1 -0
  87. package/dist/hub/config-loader.js +27 -0
  88. package/dist/hub/config-loader.js.map +1 -0
  89. package/dist/hub/event-listener.d.ts +6 -0
  90. package/dist/hub/event-listener.d.ts.map +1 -0
  91. package/dist/hub/event-listener.js +12 -0
  92. package/dist/hub/event-listener.js.map +1 -0
  93. package/dist/hub/history.d.ts +13 -0
  94. package/dist/hub/history.d.ts.map +1 -0
  95. package/dist/hub/history.js +59 -0
  96. package/dist/hub/history.js.map +1 -0
  97. package/dist/hub/index.d.ts +4 -0
  98. package/dist/hub/index.d.ts.map +1 -0
  99. package/dist/hub/index.js +114 -0
  100. package/dist/hub/index.js.map +1 -0
  101. package/dist/hub/parser.d.ts +4 -0
  102. package/dist/hub/parser.d.ts.map +1 -0
  103. package/dist/hub/parser.js +98 -0
  104. package/dist/hub/parser.js.map +1 -0
  105. package/dist/hub/styles/borders.d.ts +23 -0
  106. package/dist/hub/styles/borders.d.ts.map +1 -0
  107. package/dist/hub/styles/borders.js +64 -0
  108. package/dist/hub/styles/borders.js.map +1 -0
  109. package/dist/hub/styles/colors.d.ts +63 -0
  110. package/dist/hub/styles/colors.d.ts.map +1 -0
  111. package/dist/hub/styles/colors.js +115 -0
  112. package/dist/hub/styles/colors.js.map +1 -0
  113. package/dist/hub/styles/typography.d.ts +34 -0
  114. package/dist/hub/styles/typography.d.ts.map +1 -0
  115. package/dist/hub/styles/typography.js +60 -0
  116. package/dist/hub/styles/typography.js.map +1 -0
  117. package/dist/hub/types.d.ts +27 -0
  118. package/dist/hub/types.d.ts.map +1 -0
  119. package/dist/hub/types.js +2 -0
  120. package/dist/hub/types.js.map +1 -0
  121. package/dist/index.d.ts +11 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/{src/index.ts → dist/index.js} +1 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/init-host.d.ts +10 -0
  126. package/dist/init-host.d.ts.map +1 -0
  127. package/dist/init-host.js +232 -0
  128. package/dist/init-host.js.map +1 -0
  129. package/dist/install.d.ts +8 -0
  130. package/dist/install.d.ts.map +1 -0
  131. package/dist/install.js +99 -0
  132. package/dist/install.js.map +1 -0
  133. package/dist/run.d.ts +16 -0
  134. package/dist/run.d.ts.map +1 -0
  135. package/dist/run.js +238 -0
  136. package/dist/run.js.map +1 -0
  137. package/dist/setup/components/ApiKeyInput.d.ts +25 -0
  138. package/dist/setup/components/ApiKeyInput.d.ts.map +1 -0
  139. package/dist/setup/components/ApiKeyInput.js +54 -0
  140. package/dist/setup/components/ApiKeyInput.js.map +1 -0
  141. package/dist/setup/components/AsciiBanner.d.ts +22 -0
  142. package/dist/setup/components/AsciiBanner.d.ts.map +1 -0
  143. package/{src/setup/components/AsciiBanner.tsx → dist/setup/components/AsciiBanner.js} +24 -94
  144. package/dist/setup/components/AsciiBanner.js.map +1 -0
  145. package/dist/setup/components/CliDetector.d.ts +17 -0
  146. package/dist/setup/components/CliDetector.d.ts.map +1 -0
  147. package/dist/setup/components/CliDetector.js +81 -0
  148. package/dist/setup/components/CliDetector.js.map +1 -0
  149. package/dist/setup/components/ModeSelector.d.ts +8 -0
  150. package/dist/setup/components/ModeSelector.d.ts.map +1 -0
  151. package/dist/setup/components/ModeSelector.js +76 -0
  152. package/dist/setup/components/ModeSelector.js.map +1 -0
  153. package/dist/setup/components/ProviderSelector.d.ts +18 -0
  154. package/dist/setup/components/ProviderSelector.d.ts.map +1 -0
  155. package/dist/setup/components/ProviderSelector.js +98 -0
  156. package/dist/setup/components/ProviderSelector.js.map +1 -0
  157. package/dist/setup/components/SetupWizard.d.ts +2 -0
  158. package/dist/setup/components/SetupWizard.d.ts.map +1 -0
  159. package/dist/setup/components/SetupWizard.js +212 -0
  160. package/dist/setup/components/SetupWizard.js.map +1 -0
  161. package/dist/setup/components/StepIndicator.d.ts +13 -0
  162. package/dist/setup/components/StepIndicator.d.ts.map +1 -0
  163. package/dist/setup/components/StepIndicator.js +18 -0
  164. package/dist/setup/components/StepIndicator.js.map +1 -0
  165. package/dist/setup/components/SuccessScreen.d.ts +18 -0
  166. package/dist/setup/components/SuccessScreen.d.ts.map +1 -0
  167. package/dist/setup/components/SuccessScreen.js +38 -0
  168. package/dist/setup/components/SuccessScreen.js.map +1 -0
  169. package/dist/setup/index.d.ts +12 -0
  170. package/dist/setup/index.d.ts.map +1 -0
  171. package/{src/setup/index.ts → dist/setup/index.js} +14 -19
  172. package/dist/setup/index.js.map +1 -0
  173. package/dist/setup/utils/cli-detection.d.ts +12 -0
  174. package/dist/setup/utils/cli-detection.d.ts.map +1 -0
  175. package/dist/setup/utils/cli-detection.js +83 -0
  176. package/dist/setup/utils/cli-detection.js.map +1 -0
  177. package/dist/setup/utils/config-writer.d.ts +43 -0
  178. package/dist/setup/utils/config-writer.d.ts.map +1 -0
  179. package/dist/setup/utils/config-writer.js +180 -0
  180. package/dist/setup/utils/config-writer.js.map +1 -0
  181. package/dist/styles.d.ts +12 -0
  182. package/dist/styles.d.ts.map +1 -0
  183. package/dist/styles.js +12 -0
  184. package/dist/styles.js.map +1 -0
  185. package/dist/tui/App.d.ts +3 -0
  186. package/dist/tui/App.d.ts.map +1 -0
  187. package/dist/tui/App.js +136 -0
  188. package/dist/tui/App.js.map +1 -0
  189. package/dist/tui/components/AgentStateIcon.d.ts +18 -0
  190. package/dist/tui/components/AgentStateIcon.d.ts.map +1 -0
  191. package/dist/tui/components/AgentStateIcon.js +57 -0
  192. package/dist/tui/components/AgentStateIcon.js.map +1 -0
  193. package/dist/tui/components/AnimatedBranch.d.ts +39 -0
  194. package/dist/tui/components/AnimatedBranch.d.ts.map +1 -0
  195. package/dist/tui/components/AnimatedBranch.js +64 -0
  196. package/dist/tui/components/AnimatedBranch.js.map +1 -0
  197. package/dist/tui/components/ChatPanel.d.ts +17 -0
  198. package/dist/tui/components/ChatPanel.d.ts.map +1 -0
  199. package/dist/tui/components/ChatPanel.js +51 -0
  200. package/dist/tui/components/ChatPanel.js.map +1 -0
  201. package/dist/tui/components/DAGPanel.d.ts +37 -0
  202. package/dist/tui/components/DAGPanel.d.ts.map +1 -0
  203. package/dist/tui/components/DAGPanel.js +52 -0
  204. package/dist/tui/components/DAGPanel.js.map +1 -0
  205. package/dist/tui/components/ExecutionTimeline.d.ts +34 -0
  206. package/dist/tui/components/ExecutionTimeline.d.ts.map +1 -0
  207. package/dist/tui/components/ExecutionTimeline.js +67 -0
  208. package/dist/tui/components/ExecutionTimeline.js.map +1 -0
  209. package/dist/tui/components/Header.d.ts +12 -0
  210. package/dist/tui/components/Header.d.ts.map +1 -0
  211. package/dist/tui/components/Header.js +32 -0
  212. package/dist/tui/components/Header.js.map +1 -0
  213. package/dist/tui/components/HelpOverlay.d.ts +7 -0
  214. package/dist/tui/components/HelpOverlay.d.ts.map +1 -0
  215. package/dist/tui/components/HelpOverlay.js +60 -0
  216. package/dist/tui/components/HelpOverlay.js.map +1 -0
  217. package/dist/tui/components/InputBar.d.ts +10 -0
  218. package/dist/tui/components/InputBar.d.ts.map +1 -0
  219. package/dist/tui/components/InputBar.js +21 -0
  220. package/dist/tui/components/InputBar.js.map +1 -0
  221. package/dist/tui/components/LogsPanel.d.ts +10 -0
  222. package/dist/tui/components/MemoryPanel.d.ts +22 -0
  223. package/dist/tui/components/MetricsPanel.d.ts +19 -0
  224. package/dist/tui/components/StatusPanel.d.ts +24 -0
  225. package/dist/tui/components/TaskTree.d.ts +28 -0
  226. package/dist/tui/components/TaskTree.d.ts.map +1 -0
  227. package/dist/tui/components/TaskTree.js +29 -0
  228. package/dist/tui/components/TaskTree.js.map +1 -0
  229. package/dist/tui/components/animations/ProgressBar.d.ts +39 -0
  230. package/dist/tui/components/animations/ProgressBar.d.ts.map +1 -0
  231. package/dist/tui/components/animations/ProgressBar.js +39 -0
  232. package/dist/tui/components/animations/ProgressBar.js.map +1 -0
  233. package/dist/tui/components/animations/Pulse.d.ts +17 -0
  234. package/dist/tui/components/animations/Pulse.d.ts.map +1 -0
  235. package/dist/tui/components/animations/Pulse.js +47 -0
  236. package/dist/tui/components/animations/Pulse.js.map +1 -0
  237. package/dist/tui/components/animations/Spinner.d.ts +13 -0
  238. package/dist/tui/components/animations/Spinner.d.ts.map +1 -0
  239. package/dist/tui/components/animations/Spinner.js +36 -0
  240. package/dist/tui/components/animations/Spinner.js.map +1 -0
  241. package/dist/tui/components/animations/StatusAnimator.d.ts +27 -0
  242. package/dist/tui/components/animations/StatusAnimator.d.ts.map +1 -0
  243. package/dist/tui/components/animations/StatusAnimator.js +85 -0
  244. package/dist/tui/components/animations/StatusAnimator.js.map +1 -0
  245. package/dist/tui/components/animations/TypingEffect.d.ts +26 -0
  246. package/dist/tui/components/animations/TypingEffect.d.ts.map +1 -0
  247. package/dist/tui/components/animations/TypingEffect.js +59 -0
  248. package/dist/tui/components/animations/TypingEffect.js.map +1 -0
  249. package/{src/tui/components/animations/index.ts → dist/tui/components/animations/index.d.ts} +2 -10
  250. package/dist/tui/components/animations/index.d.ts.map +1 -0
  251. package/dist/tui/components/animations/index.js +6 -0
  252. package/dist/tui/components/animations/index.js.map +1 -0
  253. package/dist/tui/hooks/useAnimation.d.ts +42 -0
  254. package/dist/tui/hooks/useAnimation.d.ts.map +1 -0
  255. package/dist/tui/hooks/useAnimation.js +212 -0
  256. package/dist/tui/hooks/useAnimation.js.map +1 -0
  257. package/dist/tui/hooks/useAppState.d.ts +65 -0
  258. package/dist/tui/hooks/useAppState.d.ts.map +1 -0
  259. package/dist/tui/hooks/useAppState.js +293 -0
  260. package/dist/tui/hooks/useAppState.js.map +1 -0
  261. package/dist/tui/index.d.ts +3 -0
  262. package/dist/tui/index.d.ts.map +1 -0
  263. package/{src/tui/index.ts → dist/tui/index.js} +2 -3
  264. package/dist/tui/index.js.map +1 -0
  265. package/dist/tui/services/orchestrator.d.ts +16 -0
  266. package/dist/tui/services/orchestrator.d.ts.map +1 -0
  267. package/dist/tui/services/orchestrator.js +152 -0
  268. package/dist/tui/services/orchestrator.js.map +1 -0
  269. package/dist/tui/styles/borders.d.ts +31 -0
  270. package/dist/tui/styles/borders.d.ts.map +1 -0
  271. package/dist/tui/styles/borders.js +47 -0
  272. package/dist/tui/styles/borders.js.map +1 -0
  273. package/dist/tui/styles/colors.d.ts +18 -0
  274. package/dist/tui/styles/colors.d.ts.map +1 -0
  275. package/dist/tui/styles/colors.js +18 -0
  276. package/dist/tui/styles/colors.js.map +1 -0
  277. package/dist/tui/styles/index.d.ts +6 -0
  278. package/dist/tui/styles/index.d.ts.map +1 -0
  279. package/dist/tui/styles/index.js +6 -0
  280. package/dist/tui/styles/index.js.map +1 -0
  281. package/dist/tui/styles/indicators.d.ts +67 -0
  282. package/dist/tui/styles/indicators.d.ts.map +1 -0
  283. package/dist/tui/styles/indicators.js +42 -0
  284. package/dist/tui/styles/indicators.js.map +1 -0
  285. package/dist/tui/styles/layout.d.ts +21 -0
  286. package/dist/tui/styles/layout.d.ts.map +1 -0
  287. package/dist/tui/styles/layout.js +42 -0
  288. package/dist/tui/styles/layout.js.map +1 -0
  289. package/dist/tui/styles/providers.d.ts +77 -0
  290. package/dist/tui/styles/providers.d.ts.map +1 -0
  291. package/dist/tui/styles/providers.js +31 -0
  292. package/dist/tui/styles/providers.js.map +1 -0
  293. package/dist/tui/utils/animation.d.ts +44 -0
  294. package/dist/tui/utils/animation.d.ts.map +1 -0
  295. package/dist/tui/utils/animation.js +107 -0
  296. package/dist/tui/utils/animation.js.map +1 -0
  297. package/dist/vendor-manifests.d.ts +22 -0
  298. package/dist/vendor-manifests.d.ts.map +1 -0
  299. package/dist/vendor-manifests.js +94 -0
  300. package/dist/vendor-manifests.js.map +1 -0
  301. package/dist/ws-relay.d.ts +12 -0
  302. package/dist/ws-relay.d.ts.map +1 -0
  303. package/{src/ws-relay.ts → dist/ws-relay.js} +39 -47
  304. package/dist/ws-relay.js.map +1 -0
  305. package/package.json +5 -1
  306. package/dashboard/index.html +0 -420
  307. package/src/benchmark.ts +0 -156
  308. package/src/bin.ts +0 -156
  309. package/src/bootstrap.ts +0 -36
  310. package/src/bridge-adapter-templates.ts +0 -181
  311. package/src/bridge-test.ts +0 -107
  312. package/src/doctor.ts +0 -92
  313. package/src/host-init-templates.ts +0 -134
  314. package/src/hub/__tests__/commands.test.ts +0 -84
  315. package/src/hub/__tests__/history.test.ts +0 -137
  316. package/src/hub/__tests__/parser.test.ts +0 -105
  317. package/src/hub/commands/agents.ts +0 -53
  318. package/src/hub/commands/index.ts +0 -140
  319. package/src/hub/commands/logs.ts +0 -70
  320. package/src/hub/commands/memory.ts +0 -47
  321. package/src/hub/commands/metrics.ts +0 -49
  322. package/src/hub/commands/providers.ts +0 -39
  323. package/src/hub/commands/run.ts +0 -37
  324. package/src/hub/commands/status.ts +0 -69
  325. package/src/hub/commands/workflows.ts +0 -64
  326. package/src/hub/config-loader.ts +0 -37
  327. package/src/hub/event-listener.ts +0 -17
  328. package/src/hub/history.ts +0 -66
  329. package/src/hub/index.ts +0 -132
  330. package/src/hub/parser.ts +0 -107
  331. package/src/hub/styles/borders.ts +0 -74
  332. package/src/hub/styles/colors.ts +0 -129
  333. package/src/hub/styles/typography.ts +0 -68
  334. package/src/hub/types.ts +0 -31
  335. package/src/init-host.ts +0 -285
  336. package/src/install.ts +0 -118
  337. package/src/run.ts +0 -317
  338. package/src/setup/components/ApiKeyInput.tsx +0 -158
  339. package/src/setup/components/CliDetector.tsx +0 -230
  340. package/src/setup/components/ModeSelector.tsx +0 -137
  341. package/src/setup/components/ProviderSelector.tsx +0 -175
  342. package/src/setup/components/SetupWizard.tsx +0 -368
  343. package/src/setup/components/StepIndicator.tsx +0 -74
  344. package/src/setup/components/SuccessScreen.tsx +0 -229
  345. package/src/setup/utils/cli-detection.ts +0 -99
  346. package/src/setup/utils/config-writer.ts +0 -249
  347. package/src/styles.ts +0 -12
  348. package/src/tui/App.tsx +0 -183
  349. package/src/tui/components/AgentStateIcon.tsx +0 -84
  350. package/src/tui/components/AnimatedBranch.tsx +0 -134
  351. package/src/tui/components/ChatPanel.tsx +0 -128
  352. package/src/tui/components/DAGPanel.tsx +0 -212
  353. package/src/tui/components/ExecutionTimeline.tsx +0 -225
  354. package/src/tui/components/Header.tsx +0 -109
  355. package/src/tui/components/HelpOverlay.tsx +0 -140
  356. package/src/tui/components/InputBar.tsx +0 -69
  357. package/src/tui/components/LogsPanel.tsx +0 -132
  358. package/src/tui/components/MemoryPanel.tsx +0 -166
  359. package/src/tui/components/MetricsPanel.tsx +0 -152
  360. package/src/tui/components/StatusPanel.tsx +0 -140
  361. package/src/tui/components/TaskTree.tsx +0 -159
  362. package/src/tui/components/animations/ProgressBar.tsx +0 -160
  363. package/src/tui/components/animations/Pulse.tsx +0 -73
  364. package/src/tui/components/animations/Spinner.tsx +0 -54
  365. package/src/tui/components/animations/StatusAnimator.tsx +0 -153
  366. package/src/tui/components/animations/TypingEffect.tsx +0 -119
  367. package/src/tui/hooks/useAnimation.ts +0 -290
  368. package/src/tui/hooks/useAppState.ts +0 -403
  369. package/src/tui/services/orchestrator.ts +0 -195
  370. package/src/tui/styles/borders.ts +0 -51
  371. package/src/tui/styles/colors.ts +0 -19
  372. package/src/tui/styles/index.ts +0 -20
  373. package/src/tui/styles/indicators.ts +0 -54
  374. package/src/tui/styles/layout.ts +0 -44
  375. package/src/tui/styles/providers.ts +0 -32
  376. package/src/tui/utils/animation.ts +0 -124
  377. package/src/vendor-manifests.ts +0 -113
  378. package/tsconfig.json +0 -28
@@ -1,230 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import { Box, Text, useInput } from "ink";
3
- import Spinner from "ink-spinner";
4
- import { detectInstalledClis, DetectedCli } from "../utils/cli-detection.js";
5
-
6
- export type { DetectedCli };
7
-
8
- interface CliDetectorProps {
9
- onDetected: (clis: DetectedCli[]) => void;
10
- onContinue: () => void;
11
- onBack: () => void;
12
- }
13
-
14
- export function CliDetector({ onDetected, onContinue, onBack }: CliDetectorProps) {
15
- const [detecting, setDetecting] = useState(true);
16
- const [detectedClis, setDetectedClis] = useState<DetectedCli[]>([]);
17
- const [error, setError] = useState<string | null>(null);
18
- const PRIMARY = "#f97316";
19
-
20
- useEffect(() => {
21
- detectInstalledClis()
22
- .then((clis) => {
23
- setDetectedClis(clis);
24
- onDetected(clis);
25
- setDetecting(false);
26
- })
27
- .catch((err) => {
28
- setError(err.message);
29
- setDetecting(false);
30
- });
31
- }, [onDetected]);
32
-
33
- useInput((input, key) => {
34
- if (!detecting) {
35
- if (key.return || input === "c") {
36
- onContinue();
37
- } else if (input === "b") {
38
- onBack();
39
- }
40
- }
41
- });
42
-
43
- if (detecting) {
44
- return (
45
- <Box flexDirection="column">
46
- <Box marginBottom={1}>
47
- <Text color={PRIMARY} bold>
48
- DETECTING INSTALLED TOOLS
49
- </Text>
50
- </Box>
51
- <Box>
52
- <Text color="#f59e0b">
53
- <Spinner type="dots" />
54
- </Text>
55
- <Text color="#a1a1aa"> Scanning for compatible CLI tools...</Text>
56
- </Box>
57
- </Box>
58
- );
59
- }
60
-
61
- if (error) {
62
- return (
63
- <Box flexDirection="column">
64
- <Text color="#ef4444">Error detecting CLIs: {error}</Text>
65
- <Box marginTop={1}>
66
- <Text color="#71717a">[B] Back</Text>
67
- </Box>
68
- </Box>
69
- );
70
- }
71
-
72
- const availableClis = detectedClis.filter((c) => c.detected);
73
-
74
- return (
75
- <Box flexDirection="column">
76
- <Box marginBottom={1}>
77
- <Text color={PRIMARY} bold>
78
- DETECTED TOOLS
79
- </Text>
80
- </Box>
81
-
82
- <Box flexDirection="column" marginBottom={1}>
83
- {detectedClis.map((cli) => (
84
- <Box key={cli.id}>
85
- <Text color={cli.detected ? "#22c55e" : "#71717a"}>
86
- {cli.detected ? "●" : "○"}
87
- </Text>
88
- <Text> </Text>
89
- <Text color={cli.detected ? "#ffffff" : "#71717a"}>
90
- {cli.name}
91
- </Text>
92
- {cli.version && (
93
- <Text color="#a1a1aa"> v{cli.version.split(" ")[0]}</Text>
94
- )}
95
- {cli.configPath && (
96
- <Text color="#71717a" dimColor>
97
- {" "}
98
- ({cli.configPath})
99
- </Text>
100
- )}
101
- </Box>
102
- ))}
103
- </Box>
104
-
105
- {availableClis.length === 0 && (
106
- <Box marginBottom={1}>
107
- <Text color="#f59e0b">
108
- ⚠ No compatible CLI tools detected. You can still use cloud providers.
109
- </Text>
110
- </Box>
111
- )}
112
-
113
- <Box>
114
- <Text color="#27272a">{"─".repeat(50)}</Text>
115
- </Box>
116
-
117
- <Box marginTop={1}>
118
- <Text color="#22c55e">[C] Continue</Text>
119
- <Text color="#71717a"> [B] Back</Text>
120
- </Box>
121
- </Box>
122
- );
123
- }
124
-
125
- interface CliSelectorProps {
126
- detectedClis: DetectedCli[];
127
- selectedClis: string[];
128
- onToggle: (cliId: string) => void;
129
- onContinue: () => void;
130
- onBack: () => void;
131
- }
132
-
133
- export function CliSelector({
134
- detectedClis,
135
- selectedClis,
136
- onToggle,
137
- onContinue,
138
- onBack,
139
- }: CliSelectorProps) {
140
- const [focusedIndex, setFocusedIndex] = useState(0);
141
- const availableClis = detectedClis.filter((c) => c.detected);
142
- const PRIMARY = "#f97316";
143
-
144
- useInput((input, key) => {
145
- if (key.upArrow) {
146
- setFocusedIndex((prev) =>
147
- prev === 0 ? availableClis.length : prev - 1
148
- );
149
- } else if (key.downArrow) {
150
- setFocusedIndex((prev) =>
151
- prev === availableClis.length ? 0 : prev + 1
152
- );
153
- } else if (key.return) {
154
- if (focusedIndex === availableClis.length) {
155
- onContinue();
156
- } else {
157
- onToggle(availableClis[focusedIndex].id);
158
- }
159
- } else if (input === " ") {
160
- if (focusedIndex < availableClis.length) {
161
- onToggle(availableClis[focusedIndex].id);
162
- }
163
- } else if (input === "b") {
164
- onBack();
165
- }
166
- });
167
-
168
- if (availableClis.length === 0) {
169
- return (
170
- <Box flexDirection="column">
171
- <Text color="#f59e0b">No CLI tools detected. Skipping hub setup...</Text>
172
- <Box marginTop={1}>
173
- <Text color="#22c55e">[C] Continue</Text>
174
- </Box>
175
- </Box>
176
- );
177
- }
178
-
179
- return (
180
- <Box flexDirection="column">
181
- <Box marginBottom={1}>
182
- <Text color={PRIMARY} bold>
183
- SELECT TOOLS TO INTEGRATE
184
- </Text>
185
- </Box>
186
-
187
- <Box marginBottom={1}>
188
- <Text color="#a1a1aa" dimColor>
189
- Use ↑/↓ to navigate, SPACE to toggle, ENTER to continue
190
- </Text>
191
- </Box>
192
-
193
- <Box flexDirection="column">
194
- {availableClis.map((cli, index) => {
195
- const isSelected = selectedClis.includes(cli.id);
196
- const isFocused = index === focusedIndex;
197
-
198
- return (
199
- <Box key={cli.id}>
200
- <Text color={isFocused ? PRIMARY : "#27272a"}>
201
- {isFocused ? "▶ " : " "}
202
- </Text>
203
- <Text color={isSelected ? "#22c55e" : "#a1a1aa"}>
204
- [{isSelected ? "■" : " "}]
205
- </Text>
206
- <Text> </Text>
207
- <Text color={isFocused ? "#ffffff" : "#a1a1aa"} bold={isFocused}>
208
- {cli.name}
209
- </Text>
210
- {cli.version && (
211
- <Text color="#71717a"> {cli.version.split(" ")[0]}</Text>
212
- )}
213
- </Box>
214
- );
215
- })}
216
- </Box>
217
-
218
- <Box marginTop={1}>
219
- <Text color={focusedIndex === availableClis.length ? PRIMARY : "#a1a1aa"}>
220
- {focusedIndex === availableClis.length ? "▶ " : " "}
221
- </Text>
222
- <Text color="#22c55e">[CONTINUE]</Text>
223
- </Box>
224
-
225
- <Box marginTop={1}>
226
- <Text color="#71717a">[B] Back</Text>
227
- </Box>
228
- </Box>
229
- );
230
- }
@@ -1,137 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import { Box, Text, useInput } from "ink";
3
-
4
- interface ModeSelectorProps {
5
- selectedMode: "hub" | "standalone" | "both" | null;
6
- onSelect: (mode: "hub" | "standalone" | "both") => void;
7
- onContinue: () => void;
8
- }
9
-
10
- const MODES = [
11
- {
12
- id: "hub" as const,
13
- key: "1",
14
- name: "HUB MODE",
15
- description: "Use raxflow within your existing CLI",
16
- features: [
17
- "Integrates with claude-code, codex, opencode, kilo",
18
- "Orchestrates agents inside your preferred tool",
19
- "Minimal setup, maximum compatibility",
20
- ],
21
- },
22
- {
23
- id: "standalone" as const,
24
- key: "2",
25
- name: "STANDALONE MODE",
26
- description: "Use raxflow as your main CLI",
27
- features: [
28
- "Full interactive TUI with panels and visualization",
29
- "Complete orchestration from terminal",
30
- "Advanced workflow management",
31
- ],
32
- },
33
- {
34
- id: "both" as const,
35
- key: "3",
36
- name: "BOTH",
37
- description: "Setup both modes for maximum flexibility",
38
- features: [
39
- "Full hub integration with your CLIs",
40
- "Standalone TUI when you need it",
41
- "Best of both worlds",
42
- ],
43
- },
44
- ];
45
-
46
- export function ModeSelector({ selectedMode, onSelect, onContinue }: ModeSelectorProps) {
47
- const [focusedIndex, setFocusedIndex] = useState(0);
48
- const PRIMARY = "#f97316";
49
-
50
- useInput((input, key) => {
51
- if (key.upArrow) {
52
- setFocusedIndex((prev) => (prev === 0 ? MODES.length : prev - 1));
53
- } else if (key.downArrow) {
54
- setFocusedIndex((prev) => (prev === MODES.length ? 0 : prev + 1));
55
- } else if (key.return) {
56
- if (focusedIndex === MODES.length && selectedMode) {
57
- onContinue();
58
- } else if (focusedIndex < MODES.length) {
59
- onSelect(MODES[focusedIndex].id);
60
- }
61
- } else if (input === "1" || input === "2" || input === "3") {
62
- const index = parseInt(input) - 1;
63
- if (index < MODES.length) {
64
- onSelect(MODES[index].id);
65
- setFocusedIndex(index);
66
- }
67
- } else if (input === " ") {
68
- if (focusedIndex < MODES.length) {
69
- onSelect(MODES[focusedIndex].id);
70
- }
71
- }
72
- });
73
-
74
- return (
75
- <Box flexDirection="column">
76
- <Box marginBottom={1}>
77
- <Text color={PRIMARY} bold>
78
- SELECT USAGE MODE
79
- </Text>
80
- </Box>
81
-
82
- <Box marginBottom={1}>
83
- <Text color="#a1a1aa" dimColor>
84
- Press 1, 2, or 3 to select, ENTER to continue
85
- </Text>
86
- </Box>
87
-
88
- <Box flexDirection="column">
89
- {MODES.map((mode, index) => {
90
- const isSelected = selectedMode === mode.id;
91
- const isFocused = index === focusedIndex;
92
-
93
- return (
94
- <Box
95
- key={mode.id}
96
- flexDirection="column"
97
- marginBottom={1}
98
- borderStyle={isSelected ? "bold" : "single"}
99
- borderColor={isSelected ? PRIMARY : "#27272a"}
100
- paddingX={1}
101
- >
102
- <Box>
103
- <Text color={isFocused ? PRIMARY : "#27272a"}>
104
- {isFocused ? "▶ " : " "}
105
- </Text>
106
- <Text color="#f59e0b">[{mode.key}]</Text>
107
- <Text> </Text>
108
- <Text color={isSelected ? PRIMARY : "#ffffff"} bold>
109
- {mode.name}
110
- </Text>
111
- <Text color="#a1a1aa"> - {mode.description}</Text>
112
- </Box>
113
-
114
- {isSelected && (
115
- <Box flexDirection="column" marginLeft={4} marginTop={0}>
116
- {mode.features.map((feature, i) => (
117
- <Box key={i}>
118
- <Text color="#71717a">◆</Text>
119
- <Text color="#a1a1aa"> {feature}</Text>
120
- </Box>
121
- ))}
122
- </Box>
123
- )}
124
- </Box>
125
- );
126
- })}
127
- </Box>
128
-
129
- <Box marginTop={1}>
130
- <Text color={focusedIndex === MODES.length ? PRIMARY : "#a1a1aa"}>
131
- {focusedIndex === MODES.length ? "▶ " : " "}
132
- </Text>
133
- <Text color={selectedMode ? "#22c55e" : "#71717a"}>[CONTINUE]</Text>
134
- </Box>
135
- </Box>
136
- );
137
- }
@@ -1,175 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import { Box, Text, useInput } from "ink";
3
-
4
- interface Provider {
5
- id: string;
6
- name: string;
7
- description: string;
8
- key: string;
9
- requiresApiKey: boolean;
10
- }
11
-
12
- const PROVIDERS: Provider[] = [
13
- {
14
- id: "host",
15
- name: "Host-Native",
16
- description: "Use your local AI CLI tool (Claude Code, Codex, etc.)",
17
- key: "H",
18
- requiresApiKey: false,
19
- },
20
- {
21
- id: "anthropic",
22
- name: "Anthropic API",
23
- description: "Direct Claude API access",
24
- key: "A",
25
- requiresApiKey: true,
26
- },
27
- {
28
- id: "openai",
29
- name: "OpenAI",
30
- description: "GPT-4 and other OpenAI models",
31
- key: "O",
32
- requiresApiKey: true,
33
- },
34
- {
35
- id: "gemini",
36
- name: "Gemini",
37
- description: "Google's Gemini models",
38
- key: "G",
39
- requiresApiKey: true,
40
- },
41
- {
42
- id: "mistral",
43
- name: "Mistral",
44
- description: "Mistral AI models",
45
- key: "M",
46
- requiresApiKey: true,
47
- },
48
- {
49
- id: "groq",
50
- name: "Groq",
51
- description: "Fast inference with Groq",
52
- key: "Q",
53
- requiresApiKey: true,
54
- },
55
- ];
56
-
57
- interface ProviderSelectorProps {
58
- selectedProviders: string[];
59
- onToggle: (providerId: string) => void;
60
- onContinue: () => void;
61
- onBack: () => void;
62
- }
63
-
64
- export function ProviderSelector({
65
- selectedProviders,
66
- onToggle,
67
- onContinue,
68
- onBack,
69
- }: ProviderSelectorProps) {
70
- const [focusedIndex, setFocusedIndex] = useState(0);
71
- const PRIMARY = "#f97316";
72
-
73
- useInput((input, key) => {
74
- if (key.upArrow) {
75
- setFocusedIndex((prev) => (prev === 0 ? PROVIDERS.length - 1 : prev - 1));
76
- } else if (key.downArrow) {
77
- setFocusedIndex((prev) => (prev === PROVIDERS.length - 1 ? 0 : prev + 1));
78
- } else if (key.return) {
79
- // If BACK is focused, go back
80
- if (focusedIndex === PROVIDERS.length + 1) {
81
- onBack();
82
- } else if (selectedProviders.length > 0) {
83
- // If at least one provider is selected, ENTER should continue
84
- onContinue();
85
- } else if (focusedIndex < PROVIDERS.length) {
86
- // No providers selected yet: toggle the focused provider
87
- onToggle(PROVIDERS[focusedIndex].id);
88
- }
89
- } else if (input === " ") {
90
- if (focusedIndex < PROVIDERS.length) {
91
- onToggle(PROVIDERS[focusedIndex].id);
92
- }
93
- } else if (key.leftArrow || input === "b") {
94
- onBack();
95
- } else {
96
- // Check for key shortcuts
97
- const provider = PROVIDERS.find((p) => p.key.toLowerCase() === input.toLowerCase());
98
- if (provider) {
99
- onToggle(provider.id);
100
- }
101
- }
102
- });
103
-
104
- useEffect(() => {
105
- // Add extra navigation items
106
- }, []);
107
-
108
- return (
109
- <Box flexDirection="column">
110
- <Box marginBottom={1}>
111
- <Text color="#f97316" bold>
112
- SELECT PROVIDERS
113
- </Text>
114
- </Box>
115
-
116
- <Box marginBottom={1}>
117
- <Text color="#a1a1aa" dimColor>
118
- Use ↑/↓ to navigate, SPACE to toggle, ENTER to continue
119
- </Text>
120
- </Box>
121
-
122
- <Box flexDirection="column">
123
- {PROVIDERS.map((provider, index) => {
124
- const isSelected = selectedProviders.includes(provider.id);
125
- const isFocused = index === focusedIndex;
126
-
127
- return (
128
- <Box key={provider.id} marginBottom={0}>
129
- <Text color={isFocused ? PRIMARY : "#27272a"}>
130
- {isFocused ? "▶ " : " "}
131
- </Text>
132
- <Text color={isSelected ? "#22c55e" : "#a1a1aa"}>
133
- [{isSelected ? "■" : " "}]
134
- </Text>
135
- <Text> </Text>
136
- <Text color="#f59e0b">[{provider.key}]</Text>
137
- <Text> </Text>
138
- <Text color={isFocused ? "#ffffff" : "#a1a1aa"} bold={isFocused}>
139
- {provider.name}
140
- </Text>
141
- <Text color="#71717a"> - {provider.description}</Text>
142
- </Box>
143
- );
144
- })}
145
- </Box>
146
-
147
- <Box marginTop={1}>
148
- <Text color="#27272a">{"─".repeat(50)}</Text>
149
- </Box>
150
-
151
- <Box marginTop={1}>
152
- <Text color={focusedIndex === PROVIDERS.length ? PRIMARY : "#a1a1aa"}>
153
- {focusedIndex === PROVIDERS.length ? "▶ " : " "}
154
- </Text>
155
- <Text color={selectedProviders.length > 0 ? "#22c55e" : "#71717a"}>
156
- [CONTINUE]
157
- </Text>
158
- <Text> </Text>
159
- <Text color={focusedIndex === PROVIDERS.length + 1 ? PRIMARY : "#a1a1aa"}>
160
- {focusedIndex === PROVIDERS.length + 1 ? "▶ " : " "}
161
- </Text>
162
- <Text color="#a1a1aa">[BACK]</Text>
163
- </Box>
164
-
165
- {selectedProviders.length === 0 && (
166
- <Box marginTop={1}>
167
- <Text color="#f59e0b">⚠ Select at least one provider to continue</Text>
168
- </Box>
169
- )}
170
- </Box>
171
- );
172
- }
173
-
174
- export { PROVIDERS };
175
- export type { Provider };