@aigne/cli 1.60.0-beta → 1.74.0-beta

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 (360) hide show
  1. package/README.md +12 -12
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  3. package/dist/bunwrapper.cjs +22 -0
  4. package/dist/bunwrapper.d.cts +1 -0
  5. package/dist/bunwrapper.d.mts +1 -0
  6. package/dist/bunwrapper.mjs +23 -0
  7. package/dist/bunwrapper.mjs.map +1 -0
  8. package/dist/cli.cjs +42 -0
  9. package/dist/cli.d.cts +9 -0
  10. package/dist/cli.d.cts.map +1 -0
  11. package/dist/cli.d.mts +10 -0
  12. package/dist/cli.d.mts.map +1 -0
  13. package/dist/cli.mjs +41 -0
  14. package/dist/cli.mjs.map +1 -0
  15. package/dist/commands/aigne.cjs +23 -0
  16. package/dist/commands/aigne.mjs +22 -0
  17. package/dist/commands/aigne.mjs.map +1 -0
  18. package/dist/commands/app/agent.cjs +117 -0
  19. package/dist/commands/app/agent.mjs +113 -0
  20. package/dist/commands/app/agent.mjs.map +1 -0
  21. package/dist/commands/app/app.cjs +92 -0
  22. package/dist/commands/app/app.mjs +90 -0
  23. package/dist/commands/app/app.mjs.map +1 -0
  24. package/dist/commands/app/cli.cjs +6 -0
  25. package/dist/commands/app/cli.d.cts +1 -0
  26. package/dist/commands/app/cli.d.mts +1 -0
  27. package/dist/commands/app/cli.mjs +8 -0
  28. package/dist/commands/app/cli.mjs.map +1 -0
  29. package/dist/commands/app/upgrade.cjs +243 -0
  30. package/dist/commands/app/upgrade.mjs +240 -0
  31. package/dist/commands/app/upgrade.mjs.map +1 -0
  32. package/dist/commands/app.cjs +53 -0
  33. package/dist/commands/app.mjs +53 -0
  34. package/dist/commands/app.mjs.map +1 -0
  35. package/dist/commands/create.cjs +66 -0
  36. package/dist/commands/create.mjs +65 -0
  37. package/dist/commands/create.mjs.map +1 -0
  38. package/dist/commands/deploy.cjs +237 -0
  39. package/dist/commands/deploy.mjs +237 -0
  40. package/dist/commands/deploy.mjs.map +1 -0
  41. package/dist/commands/eval.cjs +88 -0
  42. package/dist/commands/eval.mjs +88 -0
  43. package/dist/commands/eval.mjs.map +1 -0
  44. package/dist/commands/hub.cjs +297 -0
  45. package/dist/commands/hub.mjs +294 -0
  46. package/dist/commands/hub.mjs.map +1 -0
  47. package/dist/commands/observe.cjs +49 -0
  48. package/dist/commands/observe.mjs +46 -0
  49. package/dist/commands/observe.mjs.map +1 -0
  50. package/dist/commands/run-skill.cjs +84 -0
  51. package/dist/commands/run-skill.mjs +81 -0
  52. package/dist/commands/run-skill.mjs.map +1 -0
  53. package/dist/commands/run.cjs +172 -0
  54. package/dist/commands/run.mjs +171 -0
  55. package/dist/commands/run.mjs.map +1 -0
  56. package/dist/commands/serve-mcp.cjs +68 -0
  57. package/dist/commands/serve-mcp.mjs +67 -0
  58. package/dist/commands/serve-mcp.mjs.map +1 -0
  59. package/dist/commands/test.cjs +40 -0
  60. package/dist/commands/test.mjs +39 -0
  61. package/dist/commands/test.mjs.map +1 -0
  62. package/dist/constants.cjs +28 -0
  63. package/dist/constants.d.cts +9 -0
  64. package/dist/constants.d.cts.map +1 -0
  65. package/dist/constants.d.mts +9 -0
  66. package/dist/constants.d.mts.map +1 -0
  67. package/dist/constants.mjs +24 -0
  68. package/dist/constants.mjs.map +1 -0
  69. package/dist/global.d.cjs +0 -0
  70. package/dist/global.d.cts +6 -0
  71. package/dist/global.d.cts.map +1 -0
  72. package/dist/global.d.mts +6 -0
  73. package/dist/global.d.mts.map +1 -0
  74. package/dist/index.cjs +0 -0
  75. package/dist/index.d.cts +2 -0
  76. package/dist/index.d.mts +2 -0
  77. package/dist/index.mjs +1 -0
  78. package/dist/tracer/terminal.cjs +336 -0
  79. package/dist/tracer/terminal.mjs +332 -0
  80. package/dist/tracer/terminal.mjs.map +1 -0
  81. package/dist/type.cjs +0 -0
  82. package/dist/type.d.cts +10 -0
  83. package/dist/type.d.cts.map +1 -0
  84. package/dist/type.d.mts +10 -0
  85. package/dist/type.d.mts.map +1 -0
  86. package/dist/type.mjs +1 -0
  87. package/dist/ui/utils/terminal-input.cjs +145 -0
  88. package/dist/ui/utils/terminal-input.mjs +144 -0
  89. package/dist/ui/utils/terminal-input.mjs.map +1 -0
  90. package/dist/ui/utils/text-buffer.cjs +865 -0
  91. package/dist/ui/utils/text-buffer.mjs +865 -0
  92. package/dist/ui/utils/text-buffer.mjs.map +1 -0
  93. package/dist/ui/utils/text-utils.cjs +85 -0
  94. package/dist/ui/utils/text-utils.mjs +78 -0
  95. package/dist/ui/utils/text-utils.mjs.map +1 -0
  96. package/dist/utils/agent-v1.cjs +180 -0
  97. package/dist/utils/agent-v1.d.cts +138 -0
  98. package/dist/utils/agent-v1.d.cts.map +1 -0
  99. package/dist/utils/agent-v1.d.mts +138 -0
  100. package/dist/utils/agent-v1.d.mts.map +1 -0
  101. package/dist/utils/agent-v1.mjs +179 -0
  102. package/dist/utils/agent-v1.mjs.map +1 -0
  103. package/dist/utils/aigne-hub/constants.cjs +22 -0
  104. package/dist/utils/aigne-hub/constants.mjs +18 -0
  105. package/dist/utils/aigne-hub/constants.mjs.map +1 -0
  106. package/dist/utils/aigne-hub/credential.cjs +179 -0
  107. package/dist/utils/aigne-hub/credential.mjs +175 -0
  108. package/dist/utils/aigne-hub/credential.mjs.map +1 -0
  109. package/dist/utils/aigne-hub/crypto.cjs +41 -0
  110. package/dist/utils/aigne-hub/crypto.mjs +33 -0
  111. package/dist/utils/aigne-hub/crypto.mjs.map +1 -0
  112. package/dist/utils/aigne-hub/model.cjs +112 -0
  113. package/dist/utils/aigne-hub/model.d.cts +19 -0
  114. package/dist/utils/aigne-hub/model.d.cts.map +1 -0
  115. package/dist/utils/aigne-hub/model.d.mts +19 -0
  116. package/dist/utils/aigne-hub/model.d.mts.map +1 -0
  117. package/dist/utils/aigne-hub/model.mjs +106 -0
  118. package/dist/utils/aigne-hub/model.mjs.map +1 -0
  119. package/dist/utils/aigne-hub/store/file.cjs +64 -0
  120. package/dist/utils/aigne-hub/store/file.mjs +64 -0
  121. package/dist/utils/aigne-hub/store/file.mjs.map +1 -0
  122. package/dist/utils/aigne-hub/store/index.cjs +37 -0
  123. package/dist/utils/aigne-hub/store/index.mjs +37 -0
  124. package/dist/utils/aigne-hub/store/index.mjs.map +1 -0
  125. package/dist/utils/aigne-hub/store/keytar.cjs +61 -0
  126. package/dist/utils/aigne-hub/store/keytar.mjs +61 -0
  127. package/dist/utils/aigne-hub/store/keytar.mjs.map +1 -0
  128. package/dist/utils/aigne-hub/store/migrate.cjs +46 -0
  129. package/dist/utils/aigne-hub/store/migrate.mjs +45 -0
  130. package/dist/utils/aigne-hub/store/migrate.mjs.map +1 -0
  131. package/dist/utils/aigne-hub/type.d.cts +18 -0
  132. package/dist/utils/aigne-hub/type.d.cts.map +1 -0
  133. package/dist/utils/aigne-hub/type.d.mts +18 -0
  134. package/dist/utils/aigne-hub/type.d.mts.map +1 -0
  135. package/dist/utils/aigne-hub-user.cjs +11 -0
  136. package/dist/utils/aigne-hub-user.d.cts +23 -0
  137. package/dist/utils/aigne-hub-user.d.cts.map +1 -0
  138. package/dist/utils/aigne-hub-user.d.mts +23 -0
  139. package/dist/utils/aigne-hub-user.d.mts.map +1 -0
  140. package/dist/utils/aigne-hub-user.mjs +11 -0
  141. package/dist/utils/aigne-hub-user.mjs.map +1 -0
  142. package/dist/utils/ascii-logo.cjs +30 -0
  143. package/dist/utils/ascii-logo.d.cts +5 -0
  144. package/dist/utils/ascii-logo.d.cts.map +1 -0
  145. package/dist/utils/ascii-logo.d.mts +5 -0
  146. package/dist/utils/ascii-logo.d.mts.map +1 -0
  147. package/dist/utils/{ascii-logo.js → ascii-logo.mjs} +13 -3
  148. package/dist/utils/ascii-logo.mjs.map +1 -0
  149. package/dist/utils/download.cjs +25 -0
  150. package/dist/utils/download.d.cts +7 -0
  151. package/dist/utils/download.d.cts.map +1 -0
  152. package/dist/utils/download.d.mts +7 -0
  153. package/dist/utils/download.d.mts.map +1 -0
  154. package/dist/utils/download.mjs +25 -0
  155. package/dist/utils/download.mjs.map +1 -0
  156. package/dist/utils/evaluation/core.cjs +84 -0
  157. package/dist/utils/evaluation/core.mjs +84 -0
  158. package/dist/utils/evaluation/core.mjs.map +1 -0
  159. package/dist/utils/evaluation/dataset.cjs +47 -0
  160. package/dist/utils/evaluation/dataset.mjs +46 -0
  161. package/dist/utils/evaluation/dataset.mjs.map +1 -0
  162. package/dist/utils/evaluation/evaluator.cjs +109 -0
  163. package/dist/utils/evaluation/{evaluator.js → evaluator.mjs} +48 -45
  164. package/dist/utils/evaluation/evaluator.mjs.map +1 -0
  165. package/dist/utils/evaluation/reporter.cjs +225 -0
  166. package/dist/utils/evaluation/reporter.mjs +220 -0
  167. package/dist/utils/evaluation/reporter.mjs.map +1 -0
  168. package/dist/utils/evaluation/runner.cjs +85 -0
  169. package/dist/utils/evaluation/runner.mjs +85 -0
  170. package/dist/utils/evaluation/runner.mjs.map +1 -0
  171. package/dist/utils/get-url-origin.cjs +12 -0
  172. package/dist/utils/get-url-origin.d.cts +5 -0
  173. package/dist/utils/get-url-origin.d.cts.map +1 -0
  174. package/dist/utils/get-url-origin.d.mts +5 -0
  175. package/dist/utils/get-url-origin.d.mts.map +1 -0
  176. package/dist/utils/get-url-origin.mjs +12 -0
  177. package/dist/utils/get-url-origin.mjs.map +1 -0
  178. package/dist/utils/inquirer/checkbox.cjs +265 -0
  179. package/dist/utils/inquirer/checkbox.mjs +262 -0
  180. package/dist/utils/inquirer/checkbox.mjs.map +1 -0
  181. package/dist/utils/listr.cjs +226 -0
  182. package/dist/utils/listr.d.cts +71 -0
  183. package/dist/utils/listr.d.cts.map +1 -0
  184. package/dist/utils/listr.d.mts +71 -0
  185. package/dist/utils/listr.d.mts.map +1 -0
  186. package/dist/utils/listr.mjs +222 -0
  187. package/dist/utils/listr.mjs.map +1 -0
  188. package/dist/utils/load-aigne.cjs +77 -0
  189. package/dist/utils/load-aigne.d.cts +29 -0
  190. package/dist/utils/load-aigne.d.cts.map +1 -0
  191. package/dist/utils/load-aigne.d.mts +29 -0
  192. package/dist/utils/load-aigne.d.mts.map +1 -0
  193. package/dist/utils/load-aigne.mjs +74 -0
  194. package/dist/utils/load-aigne.mjs.map +1 -0
  195. package/dist/utils/run-chat-loop.cjs +90 -0
  196. package/dist/utils/run-chat-loop.d.cts +20 -0
  197. package/dist/utils/run-chat-loop.d.cts.map +1 -0
  198. package/dist/utils/run-chat-loop.d.mts +20 -0
  199. package/dist/utils/run-chat-loop.d.mts.map +1 -0
  200. package/dist/utils/run-chat-loop.mjs +89 -0
  201. package/dist/utils/run-chat-loop.mjs.map +1 -0
  202. package/dist/utils/run-with-aigne.cjs +131 -0
  203. package/dist/utils/run-with-aigne.d.cts +46 -0
  204. package/dist/utils/run-with-aigne.d.cts.map +1 -0
  205. package/dist/utils/run-with-aigne.d.mts +46 -0
  206. package/dist/utils/run-with-aigne.d.mts.map +1 -0
  207. package/dist/utils/run-with-aigne.mjs +126 -0
  208. package/dist/utils/run-with-aigne.mjs.map +1 -0
  209. package/dist/utils/serve-mcp.cjs +91 -0
  210. package/dist/utils/serve-mcp.d.cts +20 -0
  211. package/dist/utils/serve-mcp.d.cts.map +1 -0
  212. package/dist/utils/serve-mcp.d.mts +20 -0
  213. package/dist/utils/serve-mcp.d.mts.map +1 -0
  214. package/dist/utils/serve-mcp.mjs +89 -0
  215. package/dist/utils/serve-mcp.mjs.map +1 -0
  216. package/dist/utils/spinner.cjs +19 -0
  217. package/dist/utils/spinner.d.cts +5 -0
  218. package/dist/utils/spinner.d.cts.map +1 -0
  219. package/dist/utils/spinner.d.mts +5 -0
  220. package/dist/utils/spinner.d.mts.map +1 -0
  221. package/dist/utils/spinner.mjs +19 -0
  222. package/dist/utils/spinner.mjs.map +1 -0
  223. package/dist/utils/string-utils.cjs +11 -0
  224. package/dist/utils/string-utils.d.cts +5 -0
  225. package/dist/utils/string-utils.d.cts.map +1 -0
  226. package/dist/utils/string-utils.d.mts +5 -0
  227. package/dist/utils/string-utils.d.mts.map +1 -0
  228. package/dist/utils/string-utils.mjs +10 -0
  229. package/dist/utils/string-utils.mjs.map +1 -0
  230. package/dist/utils/time.cjs +14 -0
  231. package/dist/utils/time.d.cts +5 -0
  232. package/dist/utils/time.d.cts.map +1 -0
  233. package/dist/utils/time.d.mts +5 -0
  234. package/dist/utils/time.d.mts.map +1 -0
  235. package/dist/utils/time.mjs +14 -0
  236. package/dist/utils/time.mjs.map +1 -0
  237. package/dist/utils/url.cjs +8 -0
  238. package/dist/utils/url.d.cts +5 -0
  239. package/dist/utils/url.d.cts.map +1 -0
  240. package/dist/utils/url.d.mts +5 -0
  241. package/dist/utils/url.d.mts.map +1 -0
  242. package/dist/utils/url.mjs +8 -0
  243. package/dist/utils/url.mjs.map +1 -0
  244. package/dist/utils/yargs.cjs +191 -0
  245. package/dist/utils/yargs.d.cts +96 -0
  246. package/dist/utils/yargs.d.cts.map +1 -0
  247. package/dist/utils/yargs.d.mts +96 -0
  248. package/dist/utils/yargs.d.mts.map +1 -0
  249. package/dist/utils/yargs.mjs +186 -0
  250. package/dist/utils/yargs.mjs.map +1 -0
  251. package/package.json +122 -45
  252. package/CHANGELOG.md +0 -5019
  253. package/dist/bunwrapper.d.ts +0 -2
  254. package/dist/bunwrapper.js +0 -18
  255. package/dist/cli.d.ts +0 -7
  256. package/dist/cli.js +0 -42
  257. package/dist/commands/aigne.d.ts +0 -4
  258. package/dist/commands/aigne.js +0 -35
  259. package/dist/commands/app/agent.d.ts +0 -26
  260. package/dist/commands/app/agent.js +0 -122
  261. package/dist/commands/app/app.d.ts +0 -7
  262. package/dist/commands/app/app.js +0 -92
  263. package/dist/commands/app/cli.d.ts +0 -1
  264. package/dist/commands/app/cli.js +0 -2
  265. package/dist/commands/app/upgrade.d.ts +0 -54
  266. package/dist/commands/app/upgrade.js +0 -236
  267. package/dist/commands/app.d.ts +0 -4
  268. package/dist/commands/app.js +0 -54
  269. package/dist/commands/create.d.ts +0 -6
  270. package/dist/commands/create.js +0 -74
  271. package/dist/commands/deploy.d.ts +0 -11
  272. package/dist/commands/deploy.js +0 -255
  273. package/dist/commands/eval.d.ts +0 -11
  274. package/dist/commands/eval.js +0 -110
  275. package/dist/commands/hub.d.ts +0 -3
  276. package/dist/commands/hub.js +0 -323
  277. package/dist/commands/observe.d.ts +0 -7
  278. package/dist/commands/observe.js +0 -41
  279. package/dist/commands/run-skill.d.ts +0 -6
  280. package/dist/commands/run-skill.js +0 -102
  281. package/dist/commands/run.d.ts +0 -9
  282. package/dist/commands/run.js +0 -187
  283. package/dist/commands/serve-mcp.d.ts +0 -20
  284. package/dist/commands/serve-mcp.js +0 -67
  285. package/dist/commands/test.d.ts +0 -9
  286. package/dist/commands/test.js +0 -33
  287. package/dist/constants.d.ts +0 -7
  288. package/dist/constants.js +0 -21
  289. package/dist/index.d.ts +0 -1
  290. package/dist/index.js +0 -1
  291. package/dist/tracer/terminal.d.ts +0 -62
  292. package/dist/tracer/terminal.js +0 -404
  293. package/dist/type.d.ts +0 -5
  294. package/dist/type.js +0 -1
  295. package/dist/ui/utils/terminal-input.d.ts +0 -19
  296. package/dist/ui/utils/terminal-input.js +0 -123
  297. package/dist/ui/utils/text-buffer.d.ts +0 -87
  298. package/dist/ui/utils/text-buffer.js +0 -1059
  299. package/dist/ui/utils/text-utils.d.ts +0 -37
  300. package/dist/ui/utils/text-utils.js +0 -185
  301. package/dist/utils/agent-v1.d.ts +0 -134
  302. package/dist/utils/agent-v1.js +0 -213
  303. package/dist/utils/aigne-hub/constants.d.ts +0 -6
  304. package/dist/utils/aigne-hub/constants.js +0 -12
  305. package/dist/utils/aigne-hub/credential.d.ts +0 -20
  306. package/dist/utils/aigne-hub/credential.js +0 -182
  307. package/dist/utils/aigne-hub/crypto.d.ts +0 -4
  308. package/dist/utils/aigne-hub/crypto.js +0 -30
  309. package/dist/utils/aigne-hub/model.d.ts +0 -13
  310. package/dist/utils/aigne-hub/model.js +0 -122
  311. package/dist/utils/aigne-hub/store/file.d.ts +0 -15
  312. package/dist/utils/aigne-hub/store/file.js +0 -69
  313. package/dist/utils/aigne-hub/store/index.d.ts +0 -5
  314. package/dist/utils/aigne-hub/store/index.js +0 -43
  315. package/dist/utils/aigne-hub/store/keytar.d.ts +0 -15
  316. package/dist/utils/aigne-hub/store/keytar.js +0 -67
  317. package/dist/utils/aigne-hub/store/migrate.d.ts +0 -2
  318. package/dist/utils/aigne-hub/store/migrate.js +0 -57
  319. package/dist/utils/aigne-hub/type.d.ts +0 -38
  320. package/dist/utils/aigne-hub/type.js +0 -1
  321. package/dist/utils/aigne-hub-user.d.ts +0 -16
  322. package/dist/utils/aigne-hub-user.js +0 -10
  323. package/dist/utils/ascii-logo.d.ts +0 -1
  324. package/dist/utils/download.d.ts +0 -3
  325. package/dist/utils/download.js +0 -19
  326. package/dist/utils/evaluation/core.d.ts +0 -8
  327. package/dist/utils/evaluation/core.js +0 -83
  328. package/dist/utils/evaluation/dataset.d.ts +0 -15
  329. package/dist/utils/evaluation/dataset.js +0 -61
  330. package/dist/utils/evaluation/evaluator.d.ts +0 -9
  331. package/dist/utils/evaluation/reporter.d.ts +0 -28
  332. package/dist/utils/evaluation/reporter.js +0 -221
  333. package/dist/utils/evaluation/runner.d.ts +0 -16
  334. package/dist/utils/evaluation/runner.js +0 -129
  335. package/dist/utils/evaluation/type.d.ts +0 -69
  336. package/dist/utils/evaluation/type.js +0 -1
  337. package/dist/utils/get-url-origin.d.ts +0 -1
  338. package/dist/utils/get-url-origin.js +0 -8
  339. package/dist/utils/inquirer/checkbox.d.ts +0 -55
  340. package/dist/utils/inquirer/checkbox.js +0 -319
  341. package/dist/utils/listr.d.ts +0 -64
  342. package/dist/utils/listr.js +0 -265
  343. package/dist/utils/load-aigne.d.ts +0 -18
  344. package/dist/utils/load-aigne.js +0 -80
  345. package/dist/utils/run-chat-loop.d.ts +0 -15
  346. package/dist/utils/run-chat-loop.js +0 -87
  347. package/dist/utils/run-with-aigne.d.ts +0 -27
  348. package/dist/utils/run-with-aigne.js +0 -157
  349. package/dist/utils/serve-mcp.d.ts +0 -9
  350. package/dist/utils/serve-mcp.js +0 -93
  351. package/dist/utils/spinner.d.ts +0 -1
  352. package/dist/utils/spinner.js +0 -14
  353. package/dist/utils/string-utils.d.ts +0 -1
  354. package/dist/utils/string-utils.js +0 -4
  355. package/dist/utils/time.d.ts +0 -1
  356. package/dist/utils/time.js +0 -12
  357. package/dist/utils/url.d.ts +0 -1
  358. package/dist/utils/url.js +0 -3
  359. package/dist/utils/yargs.d.ts +0 -94
  360. package/dist/utils/yargs.js +0 -210
@@ -0,0 +1,144 @@
1
+ import { useTextBuffer } from "./text-buffer.mjs";
2
+ import chalk from "chalk";
3
+ import { ExitPromptError } from "@inquirer/core";
4
+ import { Box, Text, render, useInput } from "ink";
5
+ import { useRef as useRef$1, useState as useState$1 } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region src/ui/utils/terminal-input.tsx
9
+ async function terminalInput({ render: r = render, ...options } = {}) {
10
+ return new Promise((resolve, reject) => {
11
+ const handleSigInt = () => {
12
+ reject(/* @__PURE__ */ new Error("Input aborted"));
13
+ };
14
+ process.addListener("SIGINT", handleSigInt);
15
+ const clean = () => process.removeListener("SIGINT", handleSigInt);
16
+ const app = r(/* @__PURE__ */ jsx(TerminalInput, {
17
+ ...options,
18
+ onSubmit: (value) => {
19
+ if (options.clear) app.clear();
20
+ app.unmount();
21
+ resolve(value);
22
+ clean();
23
+ },
24
+ onError: (error) => {
25
+ if (options.clear) app.clear();
26
+ app.unmount();
27
+ reject(error);
28
+ clean();
29
+ }
30
+ }), { exitOnCtrlC: false });
31
+ });
32
+ }
33
+ function TerminalInput(props) {
34
+ const buffer = useTextBuffer({
35
+ initialText: props.default || "",
36
+ initialCursorOffset: props.default?.length || 0,
37
+ isValidPath: () => false,
38
+ viewport: {
39
+ width: 80,
40
+ height: 1
41
+ }
42
+ });
43
+ const textRef = useRef$1(buffer.text);
44
+ textRef.current = buffer.text;
45
+ const [status, setStatus] = useState$1("input");
46
+ const [errorMessage, setErrorMessage] = useState$1();
47
+ useInput((character, key) => {
48
+ if (character === "c" && key.ctrl) {
49
+ setStatus("error");
50
+ setTimeout(() => {
51
+ props.onError(new ExitPromptError("Input aborted by user"));
52
+ });
53
+ return;
54
+ }
55
+ if (key.return) {
56
+ const input = textRef.current || props.default || "";
57
+ setStatus("validating");
58
+ setErrorMessage(void 0);
59
+ const validateInput = async () => {
60
+ try {
61
+ if (props.required && !input.trim()) {
62
+ setErrorMessage("You must provide a value");
63
+ setStatus("input");
64
+ return;
65
+ }
66
+ if (props.validate) {
67
+ const result = await props.validate(input);
68
+ if (result !== true) {
69
+ setErrorMessage(typeof result === "string" ? result : "You must provide a valid value");
70
+ setStatus("input");
71
+ return;
72
+ }
73
+ }
74
+ setStatus("success");
75
+ setTimeout(() => {
76
+ props.onSubmit(input);
77
+ });
78
+ } catch (error) {
79
+ setErrorMessage(error instanceof Error ? error.message : "Validation error");
80
+ setStatus("input");
81
+ }
82
+ };
83
+ validateInput();
84
+ return;
85
+ } else if (key.backspace) buffer.backspace();
86
+ else if (key.delete) buffer.backspace();
87
+ else if (key.downArrow) buffer.move("down");
88
+ else if (key.upArrow) buffer.move("up");
89
+ else if (key.leftArrow) buffer.move("left");
90
+ else if (key.rightArrow) buffer.move("right");
91
+ else if (character === "a" && key.ctrl) buffer.move("home");
92
+ else if (character === "e" && key.ctrl) buffer.move("end");
93
+ else {
94
+ buffer.handleInput({
95
+ ...key,
96
+ name: character,
97
+ sequence: character,
98
+ paste: false
99
+ });
100
+ setErrorMessage(void 0);
101
+ }
102
+ });
103
+ const lines = [...buffer.lines];
104
+ if (status === "input") {
105
+ const [row, col] = buffer.cursor;
106
+ const currentLine = lines[row] || "";
107
+ lines[row] = currentLine.slice(0, col) + chalk.inverse(currentLine[col] || " ") + currentLine.slice(col + 1);
108
+ }
109
+ const label = props.message && chalk.bold(props.message);
110
+ const inline = props.inline !== false;
111
+ return /* @__PURE__ */ jsxs(Box, {
112
+ flexDirection: "column",
113
+ children: [/* @__PURE__ */ jsxs(Box, {
114
+ flexDirection: inline ? "row" : "column",
115
+ children: [/* @__PURE__ */ jsxs(Text, { children: [
116
+ PREFIX[status],
117
+ " ",
118
+ !inline && label
119
+ ] }), /* @__PURE__ */ jsx(Box, {
120
+ flexShrink: 1,
121
+ flexGrow: 1,
122
+ marginLeft: inline ? 0 : 2,
123
+ marginRight: 1,
124
+ children: /* @__PURE__ */ jsxs(Text, { children: [!!label && inline && `${label} `, lines.join("\n")] })
125
+ })]
126
+ }), errorMessage && /* @__PURE__ */ jsx(Box, {
127
+ marginLeft: 2,
128
+ children: /* @__PURE__ */ jsx(Text, {
129
+ color: "red",
130
+ children: errorMessage
131
+ })
132
+ })]
133
+ });
134
+ }
135
+ const PREFIX = {
136
+ input: chalk.blue("?"),
137
+ validating: chalk.yellow("⋯"),
138
+ success: chalk.green("✔"),
139
+ error: chalk.red("✘")
140
+ };
141
+
142
+ //#endregion
143
+ export { terminalInput };
144
+ //# sourceMappingURL=terminal-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-input.mjs","names":["useRef","useState"],"sources":["../../../src/ui/utils/terminal-input.tsx"],"sourcesContent":["import { ExitPromptError } from \"@inquirer/core\";\nimport chalk from \"chalk\";\nimport { Box, render, Text, useInput } from \"ink\";\nimport { useRef, useState } from \"react\";\nimport { useTextBuffer } from \"./text-buffer.js\";\n\nexport async function terminalInput({\n render: r = render,\n ...options\n}: {\n message?: string;\n default?: string;\n inline?: boolean;\n required?: boolean;\n validate?: (input: string) => string | boolean | Promise<string | boolean>;\n render?: typeof render;\n clear?: boolean;\n} = {}): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const handleSigInt = () => {\n reject(new Error(\"Input aborted\"));\n };\n process.addListener(\"SIGINT\", handleSigInt);\n const clean = () => process.removeListener(\"SIGINT\", handleSigInt);\n\n const app = r(\n <TerminalInput\n {...options}\n onSubmit={(value) => {\n if (options.clear) app.clear();\n app.unmount();\n resolve(value);\n clean();\n }}\n onError={(error) => {\n if (options.clear) app.clear();\n app.unmount();\n reject(error);\n clean();\n }}\n />,\n { exitOnCtrlC: false },\n );\n });\n}\n\nexport function TerminalInput(props: {\n message?: string;\n default?: string;\n inline?: boolean;\n required?: boolean;\n validate?: (input: string) => string | boolean | Promise<string | boolean>;\n onSubmit: (input: string) => void;\n onError: (error: Error) => void;\n}) {\n const buffer = useTextBuffer({\n initialText: props.default || \"\",\n initialCursorOffset: props.default?.length || 0,\n isValidPath: () => false,\n viewport: { width: 80, height: 1 },\n });\n\n const textRef = useRef(buffer.text);\n\n textRef.current = buffer.text;\n\n const [status, setStatus] = useState<\"input\" | \"success\" | \"error\" | \"validating\">(\"input\");\n const [errorMessage, setErrorMessage] = useState<string | undefined>();\n\n useInput((character, key) => {\n if (character === \"c\" && key.ctrl) {\n setStatus(\"error\");\n setTimeout(() => {\n props.onError(new ExitPromptError(\"Input aborted by user\"));\n });\n return;\n }\n if (key.return) {\n const input = textRef.current || props.default || \"\";\n setStatus(\"validating\");\n setErrorMessage(undefined);\n\n // Handle validation\n const validateInput = async () => {\n try {\n // Check required validation first\n if (props.required && !input.trim()) {\n setErrorMessage(\"You must provide a value\");\n setStatus(\"input\");\n return;\n }\n\n // Run custom validation if provided\n if (props.validate) {\n const result = await props.validate(input);\n if (result !== true) {\n setErrorMessage(\n typeof result === \"string\" ? result : \"You must provide a valid value\",\n );\n setStatus(\"input\");\n return;\n }\n }\n\n // Validation passed\n setStatus(\"success\");\n setTimeout(() => {\n props.onSubmit(input);\n });\n } catch (error) {\n setErrorMessage(error instanceof Error ? error.message : \"Validation error\");\n setStatus(\"input\");\n }\n };\n\n validateInput();\n return;\n } else if (key.backspace) buffer.backspace();\n else if (key.delete) buffer.backspace();\n else if (key.downArrow) buffer.move(\"down\");\n else if (key.upArrow) buffer.move(\"up\");\n else if (key.leftArrow) buffer.move(\"left\");\n else if (key.rightArrow) buffer.move(\"right\");\n else if (character === \"a\" && key.ctrl) buffer.move(\"home\");\n else if (character === \"e\" && key.ctrl) buffer.move(\"end\");\n else {\n buffer.handleInput({ ...key, name: character, sequence: character, paste: false });\n setErrorMessage(undefined);\n }\n });\n\n const lines = [...buffer.lines];\n if (status === \"input\") {\n const [row, col] = buffer.cursor;\n const currentLine = lines[row] || \"\";\n lines[row] =\n currentLine.slice(0, col) +\n chalk.inverse(currentLine[col] || \" \") +\n currentLine.slice(col + 1);\n }\n\n const label = props.message && chalk.bold(props.message);\n\n const inline = props.inline !== false;\n\n return (\n <Box flexDirection=\"column\">\n <Box flexDirection={inline ? \"row\" : \"column\"}>\n <Text>\n {PREFIX[status]} {!inline && label}\n </Text>\n <Box flexShrink={1} flexGrow={1} marginLeft={inline ? 0 : 2} marginRight={1}>\n <Text>\n {!!label && inline && `${label} `}\n {lines.join(\"\\n\")}\n </Text>\n </Box>\n </Box>\n {errorMessage && (\n <Box marginLeft={2}>\n <Text color=\"red\">{errorMessage}</Text>\n </Box>\n )}\n </Box>\n );\n}\n\nconst PREFIX = {\n input: chalk.blue(\"?\"),\n validating: chalk.yellow(\"⋯\"),\n success: chalk.green(\"✔\"),\n error: chalk.red(\"✘\"),\n};\n"],"mappings":"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"}