@redonvn/cli 0.1.15 → 0.1.16
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/dist/build-info.d.ts +2 -2
- package/dist/build-info.js +2 -2
- package/dist/config.d.ts +1 -1
- package/dist/tools/bash.d.ts +2 -0
- package/dist/tools/bash.js +11 -12
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.js +1 -3
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/grep.d.ts +1 -1
- package/dist/tools/grep.js +8 -4
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/run-cli.d.ts +1 -0
- package/dist/tools/run-cli.js +6 -11
- package/dist/tools/run-cli.js.map +1 -1
- package/dist/tools/webfetch.js +2 -1
- package/dist/tools/webfetch.js.map +1 -1
- package/package.json +1 -1
package/dist/build-info.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Env baked at build time. Runtime flag `--env` / `REDAI_ENV` vẫn override được. */
|
|
2
2
|
export declare const BUILD_ENV: 'dev' | 'prod';
|
|
3
3
|
/** Package version đọc từ package.json lúc build. Đồng bộ với npm version. */
|
|
4
|
-
export declare const PKG_VERSION = "0.1.
|
|
4
|
+
export declare const PKG_VERSION = "0.1.16";
|
|
5
5
|
/** ISO timestamp lúc build (informational). */
|
|
6
|
-
export declare const BUILD_TIME = "2026-05-19T03:
|
|
6
|
+
export declare const BUILD_TIME = "2026-05-19T03:35:57.499Z";
|
package/dist/build-info.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.BUILD_TIME = exports.PKG_VERSION = exports.BUILD_ENV = void 0;
|
|
|
6
6
|
/** Env baked at build time. Runtime flag `--env` / `REDAI_ENV` vẫn override được. */
|
|
7
7
|
exports.BUILD_ENV = 'prod';
|
|
8
8
|
/** Package version đọc từ package.json lúc build. Đồng bộ với npm version. */
|
|
9
|
-
exports.PKG_VERSION = '0.1.
|
|
9
|
+
exports.PKG_VERSION = '0.1.16';
|
|
10
10
|
/** ISO timestamp lúc build (informational). */
|
|
11
|
-
exports.BUILD_TIME = '2026-05-19T03:
|
|
11
|
+
exports.BUILD_TIME = '2026-05-19T03:35:57.499Z';
|
|
12
12
|
//# sourceMappingURL=build-info.js.map
|
package/dist/config.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BUILD_ENV, BUILD_TIME, PKG_VERSION } from './build-info';
|
|
2
2
|
export declare const CLI_PACKAGE_NAME = "@redonvn/cli";
|
|
3
3
|
/** Version đồng bộ với `package.json` lúc build — KHÔNG hardcode. */
|
|
4
|
-
export declare const CLI_VERSION = "0.1.
|
|
4
|
+
export declare const CLI_VERSION = "0.1.16";
|
|
5
5
|
/** Re-export build metadata cho status command. */
|
|
6
6
|
export { BUILD_ENV, BUILD_TIME, PKG_VERSION };
|
|
7
7
|
export declare const REDAI_CONFIG_DIR: string;
|
package/dist/tools/bash.d.ts
CHANGED
package/dist/tools/bash.js
CHANGED
|
@@ -18,6 +18,9 @@ async function bashTool(input) {
|
|
|
18
18
|
let stdout = '';
|
|
19
19
|
let stderr = '';
|
|
20
20
|
let timedOut = false;
|
|
21
|
+
// Cap trước khi gửi qua WS để tránh frame quá lớn — AI agent bên BE đọc được full
|
|
22
|
+
const STDOUT_CAP = 4000000;
|
|
23
|
+
const STDERR_CAP = 500000;
|
|
21
24
|
return new Promise((resolve, reject) => {
|
|
22
25
|
const child = (0, child_process_1.spawn)(shell.cmd, shell.args, {
|
|
23
26
|
cwd: params.cwd || os_1.default.homedir(),
|
|
@@ -32,26 +35,22 @@ async function bashTool(input) {
|
|
|
32
35
|
child.kill('SIGKILL');
|
|
33
36
|
}, 2000);
|
|
34
37
|
}, timeoutMs);
|
|
35
|
-
child.stdout.on('data', (chunk) => {
|
|
36
|
-
|
|
37
|
-
if (stdout.length > 200000)
|
|
38
|
-
stdout = stdout.slice(-200000);
|
|
39
|
-
});
|
|
40
|
-
child.stderr.on('data', (chunk) => {
|
|
41
|
-
stderr += chunk.toString('utf8');
|
|
42
|
-
if (stderr.length > 50000)
|
|
43
|
-
stderr = stderr.slice(-50000);
|
|
44
|
-
});
|
|
38
|
+
child.stdout.on('data', (chunk) => { stdout += chunk.toString('utf8'); });
|
|
39
|
+
child.stderr.on('data', (chunk) => { stderr += chunk.toString('utf8'); });
|
|
45
40
|
child.on('error', (err) => {
|
|
46
41
|
clearTimeout(timer);
|
|
47
42
|
reject(err);
|
|
48
43
|
});
|
|
49
44
|
child.on('close', (code) => {
|
|
50
45
|
clearTimeout(timer);
|
|
46
|
+
const stdoutTruncated = stdout.length > STDOUT_CAP;
|
|
47
|
+
const stderrTruncated = stderr.length > STDERR_CAP;
|
|
51
48
|
resolve({
|
|
52
49
|
exitCode: code ?? -1,
|
|
53
|
-
stdout,
|
|
54
|
-
stderr,
|
|
50
|
+
stdout: stdoutTruncated ? stdout.slice(0, STDOUT_CAP) : stdout,
|
|
51
|
+
stderr: stderrTruncated ? stderr.slice(0, STDERR_CAP) : stderr,
|
|
52
|
+
stdoutTruncated,
|
|
53
|
+
stderrTruncated,
|
|
55
54
|
timedOut,
|
|
56
55
|
durationMs: Date.now() - startedAt,
|
|
57
56
|
});
|
package/dist/tools/bash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/edit.js
CHANGED
|
@@ -13,11 +13,9 @@ async function editTool(input) {
|
|
|
13
13
|
if (!original.includes(params.old_string)) {
|
|
14
14
|
throw new Error(`old_string not found in ${params.file_path}`);
|
|
15
15
|
}
|
|
16
|
+
const count = original.split(params.old_string).length - 1;
|
|
16
17
|
const next = original.split(params.old_string).join(params.new_string);
|
|
17
|
-
const replacements = (original.length - next.length) / Math.max(1, params.old_string.length - params.new_string.length);
|
|
18
18
|
await promises_1.default.writeFile(params.file_path, next, 'utf8');
|
|
19
|
-
// simpler counter via split
|
|
20
|
-
const count = original.split(params.old_string).length - 1;
|
|
21
19
|
return { file_path: params.file_path, replacements: count };
|
|
22
20
|
}
|
|
23
21
|
const idx = original.indexOf(params.old_string);
|
package/dist/tools/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":";;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":";;;;;AAGA,4BA8BC;AAjCD,2DAA6B;AAC7B,wDAAqE;AAE9D,KAAK,UAAU,QAAQ,CAAC,KAAc;IAI3C,MAAM,MAAM,GAAe,+BAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,yEAAyE;IACzE,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,SAAS,kDAAkD,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzG,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC1D,CAAC"}
|
package/dist/tools/grep.d.ts
CHANGED
package/dist/tools/grep.js
CHANGED
|
@@ -9,7 +9,7 @@ async function grepTool(input) {
|
|
|
9
9
|
const args = [];
|
|
10
10
|
switch (params.output_mode ?? 'files_with_matches') {
|
|
11
11
|
case 'content':
|
|
12
|
-
|
|
12
|
+
// -n added below via params['-n'] default true
|
|
13
13
|
break;
|
|
14
14
|
case 'count':
|
|
15
15
|
args.push('-c');
|
|
@@ -20,7 +20,11 @@ async function grepTool(input) {
|
|
|
20
20
|
}
|
|
21
21
|
if (params['-i'])
|
|
22
22
|
args.push('-i');
|
|
23
|
-
|
|
23
|
+
// content mode: default -n true (show line numbers), override via params['-n']=false
|
|
24
|
+
const showLineNumbers = (params.output_mode ?? 'files_with_matches') === 'content'
|
|
25
|
+
? (params['-n'] !== false)
|
|
26
|
+
: !!params['-n'];
|
|
27
|
+
if (showLineNumbers)
|
|
24
28
|
args.push('-n');
|
|
25
29
|
if (typeof params['-C'] === 'number') {
|
|
26
30
|
args.push('-C', String(params['-C']));
|
|
@@ -34,7 +38,7 @@ async function grepTool(input) {
|
|
|
34
38
|
args.push(params.pattern);
|
|
35
39
|
if (params.path)
|
|
36
40
|
args.push(params.path);
|
|
37
|
-
const headLimit = params.head_limit ??
|
|
41
|
+
const headLimit = params.head_limit ?? 250;
|
|
38
42
|
return new Promise((resolve, reject) => {
|
|
39
43
|
(0, child_process_1.execFile)(ripgrep_1.rgPath, args, {
|
|
40
44
|
cwd: process.cwd(),
|
|
@@ -55,7 +59,7 @@ async function grepTool(input) {
|
|
|
55
59
|
resolve({
|
|
56
60
|
output: limited,
|
|
57
61
|
truncated,
|
|
58
|
-
|
|
62
|
+
totalLines: lines.length,
|
|
59
63
|
});
|
|
60
64
|
});
|
|
61
65
|
});
|
package/dist/tools/grep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/run-cli.d.ts
CHANGED
package/dist/tools/run-cli.js
CHANGED
|
@@ -47,6 +47,7 @@ async function runCliTool(cli, input) {
|
|
|
47
47
|
});
|
|
48
48
|
let stdout = '';
|
|
49
49
|
let stderr = '';
|
|
50
|
+
const STDOUT_CAP = 4000000;
|
|
50
51
|
const timer = setTimeout(() => {
|
|
51
52
|
child.kill('SIGTERM');
|
|
52
53
|
setTimeout(() => {
|
|
@@ -54,27 +55,21 @@ async function runCliTool(cli, input) {
|
|
|
54
55
|
child.kill('SIGKILL');
|
|
55
56
|
}, 2000);
|
|
56
57
|
}, DEFAULT_TIMEOUT_MS);
|
|
57
|
-
child.stdout.on('data', (c) => {
|
|
58
|
-
|
|
59
|
-
if (stdout.length > 500000)
|
|
60
|
-
stdout = stdout.slice(-500000);
|
|
61
|
-
});
|
|
62
|
-
child.stderr.on('data', (c) => {
|
|
63
|
-
stderr += c.toString('utf8');
|
|
64
|
-
if (stderr.length > 50000)
|
|
65
|
-
stderr = stderr.slice(-50000);
|
|
66
|
-
});
|
|
58
|
+
child.stdout.on('data', (c) => { stdout += c.toString('utf8'); });
|
|
59
|
+
child.stderr.on('data', (c) => { stderr += c.toString('utf8'); });
|
|
67
60
|
child.on('error', (err) => {
|
|
68
61
|
clearTimeout(timer);
|
|
69
62
|
reject(err);
|
|
70
63
|
});
|
|
71
64
|
child.on('close', (code) => {
|
|
72
65
|
clearTimeout(timer);
|
|
66
|
+
const stdoutTruncated = stdout.length > STDOUT_CAP;
|
|
73
67
|
resolve({
|
|
74
68
|
cli,
|
|
75
69
|
exitCode: code ?? -1,
|
|
76
|
-
stdout,
|
|
70
|
+
stdout: stdoutTruncated ? stdout.slice(0, STDOUT_CAP) : stdout,
|
|
77
71
|
stderr,
|
|
72
|
+
stdoutTruncated,
|
|
78
73
|
durationMs: Date.now() - startedAt,
|
|
79
74
|
});
|
|
80
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/tools/run-cli.ts"],"names":[],"mappings":";;;;;AAkCA,
|
|
1
|
+
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/tools/run-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/webfetch.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.webFetchTool = webFetchTool;
|
|
4
4
|
const undici_1 = require("undici");
|
|
5
5
|
const cli_protocol_1 = require("@redonvn/cli-protocol");
|
|
6
|
+
const config_1 = require("../config");
|
|
6
7
|
async function webFetchTool(input) {
|
|
7
8
|
const params = cli_protocol_1.WebFetchParamsSchema.parse(input);
|
|
8
9
|
const res = await (0, undici_1.request)(params.url, {
|
|
@@ -10,7 +11,7 @@ async function webFetchTool(input) {
|
|
|
10
11
|
headersTimeout: 10000,
|
|
11
12
|
bodyTimeout: 20000,
|
|
12
13
|
maxRedirections: 3,
|
|
13
|
-
headers: { 'user-agent':
|
|
14
|
+
headers: { 'user-agent': `redai-cli/${config_1.CLI_VERSION}` },
|
|
14
15
|
});
|
|
15
16
|
const ct = res.headers['content-type'] ?? null;
|
|
16
17
|
const text = await res.body.text();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tools/webfetch.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tools/webfetch.ts"],"names":[],"mappings":";;AAIA,oCAyBC;AA7BD,mCAAiC;AACjC,wDAA6E;AAC7E,sCAAwC;AAEjC,KAAK,UAAU,YAAY,CAAC,KAAc;IAO/C,MAAM,MAAM,GAAmB,mCAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,IAAA,gBAAO,EAAC,MAAM,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,KAAM;QACtB,WAAW,EAAE,KAAM;QACnB,eAAe,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,oBAAW,EAAE,EAAE;KACtD,CAAC,CAAC;IACH,MAAM,EAAE,GAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAY,IAAI,IAAI,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAO,CAAC;IACtB,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,GAAG,CAAC,UAAU;QACtB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK;KAC/B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redonvn/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "RedAI CLI — kết nối máy bạn với RedAI agent runtime. AI cloud agent có thể run tools (Read/Write/Edit/Bash/Grep/Glob/WebFetch), spawn code-CLI (Claude/Codex/Gemini), và proxy LLM request qua OAuth của bạn (Claude Code / ChatGPT / Gemini / Antigravity / Qwen / Kimi / iFlow / xAI).",
|
|
5
5
|
"bin": {
|
|
6
6
|
"redai": "./bin/redai.js"
|