@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.
- package/README.md +12 -12
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/bunwrapper.cjs +22 -0
- package/dist/bunwrapper.d.cts +1 -0
- package/dist/bunwrapper.d.mts +1 -0
- package/dist/bunwrapper.mjs +23 -0
- package/dist/bunwrapper.mjs.map +1 -0
- package/dist/cli.cjs +42 -0
- package/dist/cli.d.cts +9 -0
- package/dist/cli.d.cts.map +1 -0
- package/dist/cli.d.mts +10 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/cli.mjs +41 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/commands/aigne.cjs +23 -0
- package/dist/commands/aigne.mjs +22 -0
- package/dist/commands/aigne.mjs.map +1 -0
- package/dist/commands/app/agent.cjs +117 -0
- package/dist/commands/app/agent.mjs +113 -0
- package/dist/commands/app/agent.mjs.map +1 -0
- package/dist/commands/app/app.cjs +92 -0
- package/dist/commands/app/app.mjs +90 -0
- package/dist/commands/app/app.mjs.map +1 -0
- package/dist/commands/app/cli.cjs +6 -0
- package/dist/commands/app/cli.d.cts +1 -0
- package/dist/commands/app/cli.d.mts +1 -0
- package/dist/commands/app/cli.mjs +8 -0
- package/dist/commands/app/cli.mjs.map +1 -0
- package/dist/commands/app/upgrade.cjs +243 -0
- package/dist/commands/app/upgrade.mjs +240 -0
- package/dist/commands/app/upgrade.mjs.map +1 -0
- package/dist/commands/app.cjs +53 -0
- package/dist/commands/app.mjs +53 -0
- package/dist/commands/app.mjs.map +1 -0
- package/dist/commands/create.cjs +66 -0
- package/dist/commands/create.mjs +65 -0
- package/dist/commands/create.mjs.map +1 -0
- package/dist/commands/deploy.cjs +237 -0
- package/dist/commands/deploy.mjs +237 -0
- package/dist/commands/deploy.mjs.map +1 -0
- package/dist/commands/eval.cjs +88 -0
- package/dist/commands/eval.mjs +88 -0
- package/dist/commands/eval.mjs.map +1 -0
- package/dist/commands/hub.cjs +297 -0
- package/dist/commands/hub.mjs +294 -0
- package/dist/commands/hub.mjs.map +1 -0
- package/dist/commands/observe.cjs +49 -0
- package/dist/commands/observe.mjs +46 -0
- package/dist/commands/observe.mjs.map +1 -0
- package/dist/commands/run-skill.cjs +84 -0
- package/dist/commands/run-skill.mjs +81 -0
- package/dist/commands/run-skill.mjs.map +1 -0
- package/dist/commands/run.cjs +172 -0
- package/dist/commands/run.mjs +171 -0
- package/dist/commands/run.mjs.map +1 -0
- package/dist/commands/serve-mcp.cjs +68 -0
- package/dist/commands/serve-mcp.mjs +67 -0
- package/dist/commands/serve-mcp.mjs.map +1 -0
- package/dist/commands/test.cjs +40 -0
- package/dist/commands/test.mjs +39 -0
- package/dist/commands/test.mjs.map +1 -0
- package/dist/constants.cjs +28 -0
- package/dist/constants.d.cts +9 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.mts +9 -0
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.mjs +24 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/global.d.cjs +0 -0
- package/dist/global.d.cts +6 -0
- package/dist/global.d.cts.map +1 -0
- package/dist/global.d.mts +6 -0
- package/dist/global.d.mts.map +1 -0
- package/dist/index.cjs +0 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +1 -0
- package/dist/tracer/terminal.cjs +336 -0
- package/dist/tracer/terminal.mjs +332 -0
- package/dist/tracer/terminal.mjs.map +1 -0
- package/dist/type.cjs +0 -0
- package/dist/type.d.cts +10 -0
- package/dist/type.d.cts.map +1 -0
- package/dist/type.d.mts +10 -0
- package/dist/type.d.mts.map +1 -0
- package/dist/type.mjs +1 -0
- package/dist/ui/utils/terminal-input.cjs +145 -0
- package/dist/ui/utils/terminal-input.mjs +144 -0
- package/dist/ui/utils/terminal-input.mjs.map +1 -0
- package/dist/ui/utils/text-buffer.cjs +865 -0
- package/dist/ui/utils/text-buffer.mjs +865 -0
- package/dist/ui/utils/text-buffer.mjs.map +1 -0
- package/dist/ui/utils/text-utils.cjs +85 -0
- package/dist/ui/utils/text-utils.mjs +78 -0
- package/dist/ui/utils/text-utils.mjs.map +1 -0
- package/dist/utils/agent-v1.cjs +180 -0
- package/dist/utils/agent-v1.d.cts +138 -0
- package/dist/utils/agent-v1.d.cts.map +1 -0
- package/dist/utils/agent-v1.d.mts +138 -0
- package/dist/utils/agent-v1.d.mts.map +1 -0
- package/dist/utils/agent-v1.mjs +179 -0
- package/dist/utils/agent-v1.mjs.map +1 -0
- package/dist/utils/aigne-hub/constants.cjs +22 -0
- package/dist/utils/aigne-hub/constants.mjs +18 -0
- package/dist/utils/aigne-hub/constants.mjs.map +1 -0
- package/dist/utils/aigne-hub/credential.cjs +179 -0
- package/dist/utils/aigne-hub/credential.mjs +175 -0
- package/dist/utils/aigne-hub/credential.mjs.map +1 -0
- package/dist/utils/aigne-hub/crypto.cjs +41 -0
- package/dist/utils/aigne-hub/crypto.mjs +33 -0
- package/dist/utils/aigne-hub/crypto.mjs.map +1 -0
- package/dist/utils/aigne-hub/model.cjs +112 -0
- package/dist/utils/aigne-hub/model.d.cts +19 -0
- package/dist/utils/aigne-hub/model.d.cts.map +1 -0
- package/dist/utils/aigne-hub/model.d.mts +19 -0
- package/dist/utils/aigne-hub/model.d.mts.map +1 -0
- package/dist/utils/aigne-hub/model.mjs +106 -0
- package/dist/utils/aigne-hub/model.mjs.map +1 -0
- package/dist/utils/aigne-hub/store/file.cjs +64 -0
- package/dist/utils/aigne-hub/store/file.mjs +64 -0
- package/dist/utils/aigne-hub/store/file.mjs.map +1 -0
- package/dist/utils/aigne-hub/store/index.cjs +37 -0
- package/dist/utils/aigne-hub/store/index.mjs +37 -0
- package/dist/utils/aigne-hub/store/index.mjs.map +1 -0
- package/dist/utils/aigne-hub/store/keytar.cjs +61 -0
- package/dist/utils/aigne-hub/store/keytar.mjs +61 -0
- package/dist/utils/aigne-hub/store/keytar.mjs.map +1 -0
- package/dist/utils/aigne-hub/store/migrate.cjs +46 -0
- package/dist/utils/aigne-hub/store/migrate.mjs +45 -0
- package/dist/utils/aigne-hub/store/migrate.mjs.map +1 -0
- package/dist/utils/aigne-hub/type.d.cts +18 -0
- package/dist/utils/aigne-hub/type.d.cts.map +1 -0
- package/dist/utils/aigne-hub/type.d.mts +18 -0
- package/dist/utils/aigne-hub/type.d.mts.map +1 -0
- package/dist/utils/aigne-hub-user.cjs +11 -0
- package/dist/utils/aigne-hub-user.d.cts +23 -0
- package/dist/utils/aigne-hub-user.d.cts.map +1 -0
- package/dist/utils/aigne-hub-user.d.mts +23 -0
- package/dist/utils/aigne-hub-user.d.mts.map +1 -0
- package/dist/utils/aigne-hub-user.mjs +11 -0
- package/dist/utils/aigne-hub-user.mjs.map +1 -0
- package/dist/utils/ascii-logo.cjs +30 -0
- package/dist/utils/ascii-logo.d.cts +5 -0
- package/dist/utils/ascii-logo.d.cts.map +1 -0
- package/dist/utils/ascii-logo.d.mts +5 -0
- package/dist/utils/ascii-logo.d.mts.map +1 -0
- package/dist/utils/{ascii-logo.js → ascii-logo.mjs} +13 -3
- package/dist/utils/ascii-logo.mjs.map +1 -0
- package/dist/utils/download.cjs +25 -0
- package/dist/utils/download.d.cts +7 -0
- package/dist/utils/download.d.cts.map +1 -0
- package/dist/utils/download.d.mts +7 -0
- package/dist/utils/download.d.mts.map +1 -0
- package/dist/utils/download.mjs +25 -0
- package/dist/utils/download.mjs.map +1 -0
- package/dist/utils/evaluation/core.cjs +84 -0
- package/dist/utils/evaluation/core.mjs +84 -0
- package/dist/utils/evaluation/core.mjs.map +1 -0
- package/dist/utils/evaluation/dataset.cjs +47 -0
- package/dist/utils/evaluation/dataset.mjs +46 -0
- package/dist/utils/evaluation/dataset.mjs.map +1 -0
- package/dist/utils/evaluation/evaluator.cjs +109 -0
- package/dist/utils/evaluation/{evaluator.js → evaluator.mjs} +48 -45
- package/dist/utils/evaluation/evaluator.mjs.map +1 -0
- package/dist/utils/evaluation/reporter.cjs +225 -0
- package/dist/utils/evaluation/reporter.mjs +220 -0
- package/dist/utils/evaluation/reporter.mjs.map +1 -0
- package/dist/utils/evaluation/runner.cjs +85 -0
- package/dist/utils/evaluation/runner.mjs +85 -0
- package/dist/utils/evaluation/runner.mjs.map +1 -0
- package/dist/utils/get-url-origin.cjs +12 -0
- package/dist/utils/get-url-origin.d.cts +5 -0
- package/dist/utils/get-url-origin.d.cts.map +1 -0
- package/dist/utils/get-url-origin.d.mts +5 -0
- package/dist/utils/get-url-origin.d.mts.map +1 -0
- package/dist/utils/get-url-origin.mjs +12 -0
- package/dist/utils/get-url-origin.mjs.map +1 -0
- package/dist/utils/inquirer/checkbox.cjs +265 -0
- package/dist/utils/inquirer/checkbox.mjs +262 -0
- package/dist/utils/inquirer/checkbox.mjs.map +1 -0
- package/dist/utils/listr.cjs +226 -0
- package/dist/utils/listr.d.cts +71 -0
- package/dist/utils/listr.d.cts.map +1 -0
- package/dist/utils/listr.d.mts +71 -0
- package/dist/utils/listr.d.mts.map +1 -0
- package/dist/utils/listr.mjs +222 -0
- package/dist/utils/listr.mjs.map +1 -0
- package/dist/utils/load-aigne.cjs +77 -0
- package/dist/utils/load-aigne.d.cts +29 -0
- package/dist/utils/load-aigne.d.cts.map +1 -0
- package/dist/utils/load-aigne.d.mts +29 -0
- package/dist/utils/load-aigne.d.mts.map +1 -0
- package/dist/utils/load-aigne.mjs +74 -0
- package/dist/utils/load-aigne.mjs.map +1 -0
- package/dist/utils/run-chat-loop.cjs +90 -0
- package/dist/utils/run-chat-loop.d.cts +20 -0
- package/dist/utils/run-chat-loop.d.cts.map +1 -0
- package/dist/utils/run-chat-loop.d.mts +20 -0
- package/dist/utils/run-chat-loop.d.mts.map +1 -0
- package/dist/utils/run-chat-loop.mjs +89 -0
- package/dist/utils/run-chat-loop.mjs.map +1 -0
- package/dist/utils/run-with-aigne.cjs +131 -0
- package/dist/utils/run-with-aigne.d.cts +46 -0
- package/dist/utils/run-with-aigne.d.cts.map +1 -0
- package/dist/utils/run-with-aigne.d.mts +46 -0
- package/dist/utils/run-with-aigne.d.mts.map +1 -0
- package/dist/utils/run-with-aigne.mjs +126 -0
- package/dist/utils/run-with-aigne.mjs.map +1 -0
- package/dist/utils/serve-mcp.cjs +91 -0
- package/dist/utils/serve-mcp.d.cts +20 -0
- package/dist/utils/serve-mcp.d.cts.map +1 -0
- package/dist/utils/serve-mcp.d.mts +20 -0
- package/dist/utils/serve-mcp.d.mts.map +1 -0
- package/dist/utils/serve-mcp.mjs +89 -0
- package/dist/utils/serve-mcp.mjs.map +1 -0
- package/dist/utils/spinner.cjs +19 -0
- package/dist/utils/spinner.d.cts +5 -0
- package/dist/utils/spinner.d.cts.map +1 -0
- package/dist/utils/spinner.d.mts +5 -0
- package/dist/utils/spinner.d.mts.map +1 -0
- package/dist/utils/spinner.mjs +19 -0
- package/dist/utils/spinner.mjs.map +1 -0
- package/dist/utils/string-utils.cjs +11 -0
- package/dist/utils/string-utils.d.cts +5 -0
- package/dist/utils/string-utils.d.cts.map +1 -0
- package/dist/utils/string-utils.d.mts +5 -0
- package/dist/utils/string-utils.d.mts.map +1 -0
- package/dist/utils/string-utils.mjs +10 -0
- package/dist/utils/string-utils.mjs.map +1 -0
- package/dist/utils/time.cjs +14 -0
- package/dist/utils/time.d.cts +5 -0
- package/dist/utils/time.d.cts.map +1 -0
- package/dist/utils/time.d.mts +5 -0
- package/dist/utils/time.d.mts.map +1 -0
- package/dist/utils/time.mjs +14 -0
- package/dist/utils/time.mjs.map +1 -0
- package/dist/utils/url.cjs +8 -0
- package/dist/utils/url.d.cts +5 -0
- package/dist/utils/url.d.cts.map +1 -0
- package/dist/utils/url.d.mts +5 -0
- package/dist/utils/url.d.mts.map +1 -0
- package/dist/utils/url.mjs +8 -0
- package/dist/utils/url.mjs.map +1 -0
- package/dist/utils/yargs.cjs +191 -0
- package/dist/utils/yargs.d.cts +96 -0
- package/dist/utils/yargs.d.cts.map +1 -0
- package/dist/utils/yargs.d.mts +96 -0
- package/dist/utils/yargs.d.mts.map +1 -0
- package/dist/utils/yargs.mjs +186 -0
- package/dist/utils/yargs.mjs.map +1 -0
- package/package.json +122 -45
- package/CHANGELOG.md +0 -5019
- package/dist/bunwrapper.d.ts +0 -2
- package/dist/bunwrapper.js +0 -18
- package/dist/cli.d.ts +0 -7
- package/dist/cli.js +0 -42
- package/dist/commands/aigne.d.ts +0 -4
- package/dist/commands/aigne.js +0 -35
- package/dist/commands/app/agent.d.ts +0 -26
- package/dist/commands/app/agent.js +0 -122
- package/dist/commands/app/app.d.ts +0 -7
- package/dist/commands/app/app.js +0 -92
- package/dist/commands/app/cli.d.ts +0 -1
- package/dist/commands/app/cli.js +0 -2
- package/dist/commands/app/upgrade.d.ts +0 -54
- package/dist/commands/app/upgrade.js +0 -236
- package/dist/commands/app.d.ts +0 -4
- package/dist/commands/app.js +0 -54
- package/dist/commands/create.d.ts +0 -6
- package/dist/commands/create.js +0 -74
- package/dist/commands/deploy.d.ts +0 -11
- package/dist/commands/deploy.js +0 -255
- package/dist/commands/eval.d.ts +0 -11
- package/dist/commands/eval.js +0 -110
- package/dist/commands/hub.d.ts +0 -3
- package/dist/commands/hub.js +0 -323
- package/dist/commands/observe.d.ts +0 -7
- package/dist/commands/observe.js +0 -41
- package/dist/commands/run-skill.d.ts +0 -6
- package/dist/commands/run-skill.js +0 -102
- package/dist/commands/run.d.ts +0 -9
- package/dist/commands/run.js +0 -187
- package/dist/commands/serve-mcp.d.ts +0 -20
- package/dist/commands/serve-mcp.js +0 -67
- package/dist/commands/test.d.ts +0 -9
- package/dist/commands/test.js +0 -33
- package/dist/constants.d.ts +0 -7
- package/dist/constants.js +0 -21
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/tracer/terminal.d.ts +0 -62
- package/dist/tracer/terminal.js +0 -404
- package/dist/type.d.ts +0 -5
- package/dist/type.js +0 -1
- package/dist/ui/utils/terminal-input.d.ts +0 -19
- package/dist/ui/utils/terminal-input.js +0 -123
- package/dist/ui/utils/text-buffer.d.ts +0 -87
- package/dist/ui/utils/text-buffer.js +0 -1059
- package/dist/ui/utils/text-utils.d.ts +0 -37
- package/dist/ui/utils/text-utils.js +0 -185
- package/dist/utils/agent-v1.d.ts +0 -134
- package/dist/utils/agent-v1.js +0 -213
- package/dist/utils/aigne-hub/constants.d.ts +0 -6
- package/dist/utils/aigne-hub/constants.js +0 -12
- package/dist/utils/aigne-hub/credential.d.ts +0 -20
- package/dist/utils/aigne-hub/credential.js +0 -182
- package/dist/utils/aigne-hub/crypto.d.ts +0 -4
- package/dist/utils/aigne-hub/crypto.js +0 -30
- package/dist/utils/aigne-hub/model.d.ts +0 -13
- package/dist/utils/aigne-hub/model.js +0 -122
- package/dist/utils/aigne-hub/store/file.d.ts +0 -15
- package/dist/utils/aigne-hub/store/file.js +0 -69
- package/dist/utils/aigne-hub/store/index.d.ts +0 -5
- package/dist/utils/aigne-hub/store/index.js +0 -43
- package/dist/utils/aigne-hub/store/keytar.d.ts +0 -15
- package/dist/utils/aigne-hub/store/keytar.js +0 -67
- package/dist/utils/aigne-hub/store/migrate.d.ts +0 -2
- package/dist/utils/aigne-hub/store/migrate.js +0 -57
- package/dist/utils/aigne-hub/type.d.ts +0 -38
- package/dist/utils/aigne-hub/type.js +0 -1
- package/dist/utils/aigne-hub-user.d.ts +0 -16
- package/dist/utils/aigne-hub-user.js +0 -10
- package/dist/utils/ascii-logo.d.ts +0 -1
- package/dist/utils/download.d.ts +0 -3
- package/dist/utils/download.js +0 -19
- package/dist/utils/evaluation/core.d.ts +0 -8
- package/dist/utils/evaluation/core.js +0 -83
- package/dist/utils/evaluation/dataset.d.ts +0 -15
- package/dist/utils/evaluation/dataset.js +0 -61
- package/dist/utils/evaluation/evaluator.d.ts +0 -9
- package/dist/utils/evaluation/reporter.d.ts +0 -28
- package/dist/utils/evaluation/reporter.js +0 -221
- package/dist/utils/evaluation/runner.d.ts +0 -16
- package/dist/utils/evaluation/runner.js +0 -129
- package/dist/utils/evaluation/type.d.ts +0 -69
- package/dist/utils/evaluation/type.js +0 -1
- package/dist/utils/get-url-origin.d.ts +0 -1
- package/dist/utils/get-url-origin.js +0 -8
- package/dist/utils/inquirer/checkbox.d.ts +0 -55
- package/dist/utils/inquirer/checkbox.js +0 -319
- package/dist/utils/listr.d.ts +0 -64
- package/dist/utils/listr.js +0 -265
- package/dist/utils/load-aigne.d.ts +0 -18
- package/dist/utils/load-aigne.js +0 -80
- package/dist/utils/run-chat-loop.d.ts +0 -15
- package/dist/utils/run-chat-loop.js +0 -87
- package/dist/utils/run-with-aigne.d.ts +0 -27
- package/dist/utils/run-with-aigne.js +0 -157
- package/dist/utils/serve-mcp.d.ts +0 -9
- package/dist/utils/serve-mcp.js +0 -93
- package/dist/utils/spinner.d.ts +0 -1
- package/dist/utils/spinner.js +0 -14
- package/dist/utils/string-utils.d.ts +0 -1
- package/dist/utils/string-utils.js +0 -4
- package/dist/utils/time.d.ts +0 -1
- package/dist/utils/time.js +0 -12
- package/dist/utils/url.d.ts +0 -1
- package/dist/utils/url.js +0 -3
- package/dist/utils/yargs.d.ts +0 -94
- 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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"}
|