@zan_team/cli 0.0.1 → 0.0.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 +15 -104
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,8 +28,7 @@ pnpm build
|
|
|
28
28
|
node dist/cli.js --help
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
下文统一使用 `zan
|
|
32
|
-
本地源码联调推荐使用下方的 `cli:local` 入口,无需反复构建。
|
|
31
|
+
下文统一使用 `zan`。运行源码构建产物时,将 `zan` 替换为 `node dist/cli.js`。
|
|
33
32
|
|
|
34
33
|
### 配置服务地址
|
|
35
34
|
|
|
@@ -37,74 +36,12 @@ CLI 未显式配置服务地址时默认连接生产环境 `https://zan.top`。
|
|
|
37
36
|
环境变量覆盖 Auth/API Origin:
|
|
38
37
|
|
|
39
38
|
```sh
|
|
40
|
-
export ZAN_ENV=dev
|
|
41
39
|
export ZAN_AUTH_BASE_URL=https://auth.example.com
|
|
42
40
|
export ZAN_API_BASE_URL=https://api.example.com
|
|
43
41
|
```
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
| 环境 | 配置文件 | Origin |
|
|
48
|
-
| ---- | ----------- | -------------------------------------- |
|
|
49
|
-
| DEV | `.env.dev` | `http://127.0.0.1:8088` |
|
|
50
|
-
| SIT | `.env.sit` | `https://zan.unchartedw3s.com` |
|
|
51
|
-
| PRE | `.env.pre` | `https://pre.zan.top` |
|
|
52
|
-
| PROD | `.env.prod` | `https://zan.top` |
|
|
53
|
-
|
|
54
|
-
### 本地源码联调
|
|
55
|
-
|
|
56
|
-
开发者可在 CLI 仓库中通过 `pnpm cli:local` 选择一次环境,后续命令会自动沿用;
|
|
57
|
-
源码修改后下一次调用立即生效:
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
pnpm cli:local -- env use dev
|
|
61
|
-
pnpm cli:local -- env status
|
|
62
|
-
pnpm cli:local -- --json --no-interactive usage
|
|
63
|
-
|
|
64
|
-
# 切换到 SIT
|
|
65
|
-
pnpm cli:local -- env use sit
|
|
66
|
-
|
|
67
|
-
# 仅本次使用 DEV,不改变保存的选择;--env 必须放在最前面
|
|
68
|
-
pnpm cli:local -- --env dev --json --no-interactive usage
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
选择保存在当前工作目录的 `.zan-dev.json`,只包含 `environment`,支持
|
|
72
|
-
`dev`、`sit`、`pre`。仅读取当前目录,不向上查找;未选择环境时会报错,
|
|
73
|
-
也可以直接用 `--env sit` 单次指定。`env status` 始终以 JSON 返回环境、
|
|
74
|
-
配置路径、工作目录、源码仓库和 Auth/API 地址,不包含凭据。
|
|
75
|
-
|
|
76
|
-
测试 Agent 应直接通过 Node 调用源码入口,避免 pnpm 的脚本横幅影响 JSON 解析。
|
|
77
|
-
在其他业务项目中,保留该项目的工作目录,使用源码入口的绝对路径:
|
|
78
|
-
|
|
79
|
-
```sh
|
|
80
|
-
node /absolute/path/to/zan-cli/scripts/zan-dev.mjs env use sit
|
|
81
|
-
node /absolute/path/to/zan-cli/scripts/zan-dev.mjs --json --no-interactive usage
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
该入口从 CLI 仓库读取依赖、源码和环境文件,保留调用方工作目录。
|
|
85
|
-
每个测试项目分别保存环境选择;登录、Project/Network 等仍是用户级、按环境共享的状态。
|
|
86
|
-
同目录并发测试不同环境时,各命令显式使用 `--env`。
|
|
87
|
-
|
|
88
|
-
此功能仅用于源码联调:正式 `zan` 和发布的 CLI 不读取 `.zan-dev.json`,
|
|
89
|
-
开发脚本不随 npm 包发布。给最终用户的 Skill 只保留正式 CLI 用法。
|
|
90
|
-
Agent 入口约定、写文件命令和状态隔离说明见[本地开发指南](docs/local-development.md)。
|
|
91
|
-
|
|
92
|
-
也可以通过 DEV、SIT、PRE 和 PROD 脚本直接指定环境,`--` 后的参数会完整传给 CLI:
|
|
93
|
-
|
|
94
|
-
```sh
|
|
95
|
-
pnpm cli:dev -- auth login
|
|
96
|
-
pnpm cli:sit -- auth status --verify
|
|
97
|
-
pnpm cli:pre -- --json project list
|
|
98
|
-
pnpm cli:prod -- auth login
|
|
99
|
-
pnpm cli:prod -- --json project list
|
|
100
|
-
pnpm cli:prod -- usage
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
环境脚本会覆盖当前终端残留的 `ZAN_ENV`、`ZAN_AUTH_BASE_URL` 和
|
|
104
|
-
`ZAN_API_BASE_URL`。DEV、SIT、PRE 分别使用独立的系统凭据 Profile、Session、
|
|
105
|
-
Project/Network 设置和 Endpoint 缓存;PROD 继续使用兼容既有安装的
|
|
106
|
-
`profile-default`、`session.json` 和 `settings.json`。非生产设置分别保存在
|
|
107
|
-
`settings.dev.json`、`settings.sit.json` 和 `settings.pre.json`。
|
|
43
|
+
上述 `example.com` 地址仅用于展示配置方式,不能直接使用。日常使用无需覆盖
|
|
44
|
+
服务地址;内部环境地址和配置请通过授权渠道获取,不要写入公开文档或示例。
|
|
108
45
|
|
|
109
46
|
### 登录
|
|
110
47
|
|
|
@@ -400,27 +337,17 @@ zan project cache clear
|
|
|
400
337
|
Project 使用不同缓存文件与密钥。普通设置文件仍只保存 Project ID 和 Network
|
|
401
338
|
ID,不保存 Endpoint 或 API Key。
|
|
402
339
|
|
|
403
|
-
####
|
|
404
|
-
|
|
405
|
-
源码调试时可以直接使用环境脚本:
|
|
406
|
-
|
|
407
|
-
```sh
|
|
408
|
-
pnpm cli:sit -- project use <project-id>
|
|
409
|
-
pnpm cli:sit -- evm networks
|
|
410
|
-
pnpm cli:sit -- evm networks --refresh
|
|
411
|
-
pnpm cli:sit -- project cache status
|
|
412
|
-
pnpm cli:sit -- project cache clear
|
|
413
|
-
```
|
|
340
|
+
#### RPC API Key 覆盖
|
|
414
341
|
|
|
415
342
|
需要临时替换当前 Project 的 RPC API Key 时,通过隐藏输入或 stdin 写入系统
|
|
416
343
|
凭据库:
|
|
417
344
|
|
|
418
345
|
```sh
|
|
419
|
-
|
|
346
|
+
zan project rpc-key set
|
|
420
347
|
printf '%s\n' "$TEST_RPC_API_KEY" \
|
|
421
|
-
|
|
|
422
|
-
|
|
423
|
-
|
|
348
|
+
| zan project rpc-key set --stdin
|
|
349
|
+
zan project rpc-key status
|
|
350
|
+
zan project rpc-key clear
|
|
424
351
|
```
|
|
425
352
|
|
|
426
353
|
覆盖值不会出现在命令参数、普通配置、Endpoint 缓存或命令输出中。启用覆盖后,
|
|
@@ -430,8 +357,6 @@ RPC 401/403 不会自动换回服务端下发的 Key,便于稳定测试指定
|
|
|
430
357
|
|
|
431
358
|
```sh
|
|
432
359
|
zan project rpc-key pull
|
|
433
|
-
# 源码 SIT 调试:
|
|
434
|
-
pnpm cli:sit -- project rpc-key pull
|
|
435
360
|
```
|
|
436
361
|
|
|
437
362
|
命令写入当前工作目录中固定的 `ZAN_API_KEY`:已存在时替换,缺少时追加,文件
|
|
@@ -441,8 +366,8 @@ pnpm cli:sit -- project rpc-key pull
|
|
|
441
366
|
后的文件在 POSIX 系统上使用 `0600` 权限,并通过文件锁和原子替换写入;符号链接
|
|
442
367
|
或非普通 `.env` 会被拒绝。
|
|
443
368
|
|
|
444
|
-
`pull` 只写 `.env
|
|
445
|
-
|
|
369
|
+
`pull` 只写 `.env`,不会修改其他环境配置文件。
|
|
370
|
+
它不会检查 Git 跟踪状态或自动更新 `.gitignore`,请自行确保 `.env`
|
|
446
371
|
不会被提交。写入后,任何拥有当前目录读取权限的进程或 Agent 都可能读取这个明文
|
|
447
372
|
文件;“不泄露”保证只覆盖该命令自身的参数、输出、错误和日志边界。
|
|
448
373
|
|
|
@@ -518,7 +443,9 @@ printf '["0x0000000000000000000000000000000000000000","latest"]' \
|
|
|
518
443
|
~/.zan-cli/config.yaml
|
|
519
444
|
```
|
|
520
445
|
|
|
521
|
-
`~` 由操作系统用户目录 API 解析。该文件是个人 CLI
|
|
446
|
+
`~` 由操作系统用户目录 API 解析。该文件是个人 CLI 策略,与环境配置文件、
|
|
447
|
+
`ZAN_ENV` 及所选 ZAN 后端环境无关;`ZAN_HOME` 不会改变它的位置,所有环境
|
|
448
|
+
读取同一个文件。
|
|
522
449
|
|
|
523
450
|
YAML schema 支持两个顶层属性,分别控制 Raw JSON-RPC 和 Hyperliquid Info 方法:
|
|
524
451
|
|
|
@@ -683,17 +610,6 @@ Agent 可用 `inspect` 检查本地状态;`ready: false` 需结合实际命令
|
|
|
683
610
|
Project/Network 选择、套餐与 Key 用量、EVM/Hyperliquid 查询、RPC Key 拉取及钱包签名指引。
|
|
684
611
|
`skills/` 随 npm 包发布;安装 CLI 后仍需将技能目录放入 Agent 的发现路径。
|
|
685
612
|
|
|
686
|
-
本仓库已通过 `.agents/skills/zan-cli` 软链接指向 `skills/zan-cli`。在 Codex
|
|
687
|
-
中打开本仓库即可发现技能,修改源文件无需复制。若未显示,重启 Codex 后尝试:
|
|
688
|
-
|
|
689
|
-
```text
|
|
690
|
-
使用 $zan-cli 列出当前支持的命令。本任务把技能中的 zan 统一替换为
|
|
691
|
-
node /absolute/path/to/zan-cli/scripts/zan-dev.mjs --env sit。
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
将示例路径替换为实际 CLI 仓库路径。该入口约定仅用于本地测试;
|
|
695
|
-
环境选择和状态隔离说明见[本地开发指南](docs/local-development.md)。
|
|
696
|
-
|
|
697
613
|
npm 包发布后,安装 CLI 并选择 Agent 安装技能:
|
|
698
614
|
|
|
699
615
|
```sh
|
|
@@ -796,13 +712,6 @@ zan completions fish
|
|
|
796
712
|
名称,或通过 `zan project list` 查找项目后执行 `zan project use <id>` 使用已有
|
|
797
713
|
项目;此错误不可重试,仍使用 `ZAN_API_ERROR` 和退出码 `8`。
|
|
798
714
|
|
|
799
|
-
本地联调遇到 “No free Node Service plan is configured for this environment” 时,
|
|
800
|
-
需在 `webtservice` 的本地数据库中配置 `/default/AVAILABLE_FREE_SPEC`,其中
|
|
801
|
-
`AVAILABLE_FREE_SPEC.NODE_SERVICE.specId` 必须指向有效的 `drw3_service_spec`
|
|
802
|
-
商品规格。只启动 MySQL、Redis 或重新登录不会生成这些商品数据;应导入环境
|
|
803
|
-
对应的测试商品配置,并确认该规格所需的套餐开通及回调链路可用。后端代码
|
|
804
|
-
修改后,需要重新编译并重启实际监听本地 API 端口的进程。
|
|
805
|
-
|
|
806
715
|
已认证的 Project 与 Network 请求如果通过 HTTP 401 或已发布的 WebResult
|
|
807
716
|
语义表明 Access Token 无效,会刷新一次 Access Token 并重放一次请求。第二次
|
|
808
717
|
仍失败时返回 `AUTH_EXPIRED`,不会继续刷新。普通 HTTP 403 和 Scope 不足不会
|
|
@@ -810,6 +719,8 @@ zan completions fish
|
|
|
810
719
|
|
|
811
720
|
### 安全注意事项
|
|
812
721
|
|
|
722
|
+
- 对外文档、截图和问题反馈中不要包含内部开发、测试或预发域名、IP、端口及环境配置;
|
|
723
|
+
示例统一使用 `example.com` 等占位地址,分享命令输出前先检查并脱敏。
|
|
813
724
|
- 不要把 Access Token、Refresh Token、Project Token 或完整 Endpoint 写入脚本、日志和普通配置。
|
|
814
725
|
- 不要使用 `--verbose` 输出处理结果中的敏感字段。
|
|
815
726
|
- 完整 RPC Endpoint 只在当前进程内解密使用;本地仅保存 AES-256-GCM 密文,
|
package/dist/cli.js
CHANGED
|
@@ -1891,7 +1891,7 @@ function registerSign(program, outputWriter, getRuntimeContext) {
|
|
|
1891
1891
|
}
|
|
1892
1892
|
|
|
1893
1893
|
// src/version.ts
|
|
1894
|
-
var CLI_VERSION = true ? "0.0.
|
|
1894
|
+
var CLI_VERSION = true ? "0.0.2" : pkg.version;
|
|
1895
1895
|
|
|
1896
1896
|
// src/commands/version.ts
|
|
1897
1897
|
function registerVersion(program, outputWriter) {
|