@redonvn/cli 0.1.1 → 0.1.2
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 +17 -5
- package/dist/build-info.d.ts +4 -0
- package/dist/build-info.js +10 -0
- package/dist/build-info.js.map +1 -0
- package/dist/config.d.ts +4 -1
- package/dist/config.js +6 -3
- package/dist/config.js.map +1 -1
- package/package.json +16 -3
package/README.md
CHANGED
|
@@ -21,8 +21,9 @@ Yêu cầu Node.js ≥ 18.17.
|
|
|
21
21
|
Tạo API key trên dashboard RedAI với permission `cli:connect`, sau đó:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
redai login #
|
|
25
|
-
redai login --env prod # PROD
|
|
24
|
+
redai login # Mặc định = env baked vào build (xem dưới)
|
|
25
|
+
redai login --env prod # Force PROD
|
|
26
|
+
redai login --env dev # Force DEV
|
|
26
27
|
# Paste API key khi prompt
|
|
27
28
|
```
|
|
28
29
|
|
|
@@ -30,11 +31,22 @@ redai login --env prod # PROD (https://app.redai.vn + wss://socket.redai.vn)
|
|
|
30
31
|
|
|
31
32
|
| Env | API base | WebSocket |
|
|
32
33
|
|---|---|---|
|
|
33
|
-
| `dev`
|
|
34
|
+
| `dev` | `https://v2.redai.vn` | `wss://v2.redai.vn` |
|
|
34
35
|
| `prod` | `https://app.redai.vn` | `wss://socket.redai.vn` |
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
**Mặc định khi cài:**
|
|
38
|
+
|
|
39
|
+
| Bản | Default env | Lệnh cài |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `latest` (prod release) | **prod** | `npm i -g @redonvn/cli` |
|
|
42
|
+
| `dev` tag | **dev** | `npm i -g @redonvn/cli@dev` |
|
|
43
|
+
|
|
44
|
+
→ User chỉ cần `redai login`, không cần truyền `--env`. Cần switch tạm: dùng `--env dev` hoặc `REDAI_ENV=dev`.
|
|
45
|
+
|
|
46
|
+
Override URL custom (cho dev backend local):
|
|
47
|
+
```bash
|
|
48
|
+
redai login --api-url http://localhost:3000 --ws-url ws://localhost:3000
|
|
49
|
+
```
|
|
38
50
|
|
|
39
51
|
### 2. (Tuỳ chọn) Đăng nhập OAuth provider để dùng quota của bạn
|
|
40
52
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// AUTO-GENERATED by scripts/write-build-info.cjs — DO NOT EDIT.
|
|
3
|
+
// Regenerated every build. Run `npm run build:prod` or `npm run build:dev` to switch.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.BUILD_TIME = exports.BUILD_ENV = void 0;
|
|
6
|
+
/** Env baked at build time. Runtime flag `--env` / `REDAI_ENV` vẫn override được. */
|
|
7
|
+
exports.BUILD_ENV = 'dev';
|
|
8
|
+
/** ISO timestamp lúc build (informational). */
|
|
9
|
+
exports.BUILD_TIME = '2026-05-18T04:35:20.866Z';
|
|
10
|
+
//# sourceMappingURL=build-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,sFAAsF;;;AAEtF,qFAAqF;AACxE,QAAA,SAAS,GAAmB,KAAK,CAAC;AAE/C,+CAA+C;AAClC,QAAA,UAAU,GAAG,0BAA0B,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { BUILD_ENV, BUILD_TIME } from './build-info';
|
|
1
2
|
export declare const CLI_PACKAGE_NAME = "@redonvn/cli";
|
|
2
3
|
export declare const CLI_VERSION = "0.1.0";
|
|
4
|
+
/** Re-export build metadata cho status command. */
|
|
5
|
+
export { BUILD_ENV, BUILD_TIME };
|
|
3
6
|
export declare const REDAI_CONFIG_DIR: string;
|
|
4
7
|
export declare const REDAI_CONFIG_FILE: string;
|
|
5
8
|
export declare const REDAI_CLIENT_ID_FILE: string;
|
|
@@ -18,7 +21,7 @@ export declare const REDAI_ENV_PRESETS: Record<RedaiEnv, RedaiEnvConfig>;
|
|
|
18
21
|
* Resolve môi trường theo độ ưu tiên:
|
|
19
22
|
* 1. arg flag `--env dev|prod` (caller truyền vào)
|
|
20
23
|
* 2. ENV var REDAI_ENV
|
|
21
|
-
* 3.
|
|
24
|
+
* 3. BUILD_ENV — bake vào lúc build (`npm run build:prod` set 'prod', mặc định 'dev')
|
|
22
25
|
*/
|
|
23
26
|
export declare function resolveEnv(envFlag?: string): RedaiEnv;
|
|
24
27
|
/**
|
package/dist/config.js
CHANGED
|
@@ -3,12 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RECONNECT_MAX_DELAY_MS = exports.RECONNECT_BASE_DELAY_MS = exports.HEARTBEAT_INTERVAL_MS = exports.REDAI_ENV_PRESETS = exports.REDAI_LOG_FILE = exports.REDAI_CLIENT_ID_FILE = exports.REDAI_CONFIG_FILE = exports.REDAI_CONFIG_DIR = exports.CLI_VERSION = exports.CLI_PACKAGE_NAME = void 0;
|
|
6
|
+
exports.RECONNECT_MAX_DELAY_MS = exports.RECONNECT_BASE_DELAY_MS = exports.HEARTBEAT_INTERVAL_MS = exports.REDAI_ENV_PRESETS = exports.REDAI_LOG_FILE = exports.REDAI_CLIENT_ID_FILE = exports.REDAI_CONFIG_FILE = exports.REDAI_CONFIG_DIR = exports.BUILD_TIME = exports.BUILD_ENV = exports.CLI_VERSION = exports.CLI_PACKAGE_NAME = void 0;
|
|
7
7
|
exports.resolveEnv = resolveEnv;
|
|
8
8
|
exports.resolveApiBaseUrl = resolveApiBaseUrl;
|
|
9
9
|
exports.resolveWsBaseUrl = resolveWsBaseUrl;
|
|
10
10
|
const os_1 = __importDefault(require("os"));
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const build_info_1 = require("./build-info");
|
|
13
|
+
Object.defineProperty(exports, "BUILD_ENV", { enumerable: true, get: function () { return build_info_1.BUILD_ENV; } });
|
|
14
|
+
Object.defineProperty(exports, "BUILD_TIME", { enumerable: true, get: function () { return build_info_1.BUILD_TIME; } });
|
|
12
15
|
exports.CLI_PACKAGE_NAME = '@redonvn/cli';
|
|
13
16
|
exports.CLI_VERSION = '0.1.0';
|
|
14
17
|
exports.REDAI_CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.redai');
|
|
@@ -29,7 +32,7 @@ exports.REDAI_ENV_PRESETS = {
|
|
|
29
32
|
* Resolve môi trường theo độ ưu tiên:
|
|
30
33
|
* 1. arg flag `--env dev|prod` (caller truyền vào)
|
|
31
34
|
* 2. ENV var REDAI_ENV
|
|
32
|
-
* 3.
|
|
35
|
+
* 3. BUILD_ENV — bake vào lúc build (`npm run build:prod` set 'prod', mặc định 'dev')
|
|
33
36
|
*/
|
|
34
37
|
function resolveEnv(envFlag) {
|
|
35
38
|
const v = (envFlag || process.env.REDAI_ENV || '').toLowerCase().trim();
|
|
@@ -37,7 +40,7 @@ function resolveEnv(envFlag) {
|
|
|
37
40
|
return 'prod';
|
|
38
41
|
if (v === 'dev' || v === 'development')
|
|
39
42
|
return 'dev';
|
|
40
|
-
return
|
|
43
|
+
return build_info_1.BUILD_ENV;
|
|
41
44
|
}
|
|
42
45
|
/**
|
|
43
46
|
* Resolve API base URL theo độ ưu tiên:
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AA2CA,gCAKC;AAQD,8CAIC;AAQD,4CAIC;AAxED,4CAAoB;AACpB,gDAAwB;AACxB,6CAAqD;AAM5C,0FANA,sBAAS,OAMA;AAAE,2FANA,uBAAU,OAMA;AAJjB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,WAAW,GAAG,OAAO,CAAC;AAKtB,QAAA,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,QAAA,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,aAAa,CAAC,CAAC;AAC/D,QAAA,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,WAAW,CAAC,CAAC;AAChE,QAAA,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,YAAY,CAAC,CAAC;AAa3D,QAAA,iBAAiB,GAAqC;IACjE,GAAG,EAAE;QACH,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,mBAAmB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,sBAAsB;QAClC,SAAS,EAAE,uBAAuB;KACnC;CACF,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAAgB;IACzC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,sBAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,IAAgD;IAChF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACzF,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,OAAO,yBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAA+C;IAC9E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACtF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC9D,OAAO,yBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAEY,QAAA,qBAAqB,GAAG,KAAM,CAAC;AAC/B,QAAA,uBAAuB,GAAG,IAAK,CAAC;AAChC,QAAA,sBAAsB,GAAG,KAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redonvn/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
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"
|
|
@@ -16,11 +16,23 @@
|
|
|
16
16
|
"node": ">=18.17.0"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
|
+
"prebuild": "node scripts/write-build-info.cjs",
|
|
19
20
|
"build": "tsc -p tsconfig.json",
|
|
21
|
+
"build:dev": "cross-env BUILD_ENV=dev npm run -s clean && cross-env BUILD_ENV=dev node scripts/write-build-info.cjs && tsc -p tsconfig.json",
|
|
22
|
+
"build:prod": "cross-env BUILD_ENV=prod npm run -s clean && cross-env BUILD_ENV=prod node scripts/write-build-info.cjs && tsc -p tsconfig.json",
|
|
23
|
+
"build:watch": "tsc -p tsconfig.json --watch",
|
|
20
24
|
"dev": "ts-node --transpile-only src/cli/index.ts",
|
|
25
|
+
"dev:login": "ts-node --transpile-only src/cli/index.ts login --env dev",
|
|
26
|
+
"dev:start": "ts-node --transpile-only src/cli/index.ts start",
|
|
27
|
+
"dev:serve": "ts-node --transpile-only src/cli/index.ts serve --port 8317",
|
|
28
|
+
"prod:login": "node ./bin/redai.js login --env prod",
|
|
29
|
+
"prod:start": "node ./bin/redai.js start",
|
|
30
|
+
"prod:serve": "node ./bin/redai.js serve --port 8317",
|
|
21
31
|
"start": "node ./bin/redai.js",
|
|
22
32
|
"clean": "rimraf dist",
|
|
23
|
-
"
|
|
33
|
+
"publish:dev": "npm run build:dev && cross-env SKIP_PREPUBLISH_GUARD=1 npm publish --access public --tag dev",
|
|
34
|
+
"publish:prod": "npm run build:prod && cross-env SKIP_PREPUBLISH_GUARD=1 npm publish --access public",
|
|
35
|
+
"prepublishOnly": "node -e \"if(!process.env.SKIP_PREPUBLISH_GUARD){console.error('\\nUse `npm run publish:prod` or `npm run publish:dev` to ensure correct BUILD_ENV is baked.\\nIf you really want to publish directly, set SKIP_PREPUBLISH_GUARD=1.\\n');process.exit(1)}\""
|
|
24
36
|
},
|
|
25
37
|
"keywords": [
|
|
26
38
|
"redai",
|
|
@@ -44,7 +56,7 @@
|
|
|
44
56
|
},
|
|
45
57
|
"homepage": "https://github.com/redonvn/redai-cli#readme",
|
|
46
58
|
"dependencies": {
|
|
47
|
-
"@redonvn/cli-protocol": "^0.1.
|
|
59
|
+
"@redonvn/cli-protocol": "^0.1.2",
|
|
48
60
|
"@vscode/ripgrep": "^1.15.9",
|
|
49
61
|
"axios": "^1.7.7",
|
|
50
62
|
"chalk": "^4.1.2",
|
|
@@ -57,6 +69,7 @@
|
|
|
57
69
|
"devDependencies": {
|
|
58
70
|
"@types/node": "^20.14.0",
|
|
59
71
|
"@types/prompts": "^2.4.9",
|
|
72
|
+
"cross-env": "^7.0.3",
|
|
60
73
|
"rimraf": "^5.0.5",
|
|
61
74
|
"ts-node": "^10.9.2",
|
|
62
75
|
"typescript": "^5.5.4"
|