@zicolasjac-ai/remote-readonly-ssh 1.4.2 → 1.4.3
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 +6 -7
- package/bin/postinstall.js +24 -3
- package/package.json +1 -1
- package/skills/remote-readonly-ssh/SKILL.md +3 -4
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ npx 会自动拉取最新版本、进入初始化向导,依次询问:
|
|
|
25
25
|
1. 是否覆盖已有 `~/.rrs/config.json`(首次安装跳过此步)
|
|
26
26
|
2. **认证组**:堡垒机主机 / 端口 / 用户名 / 认证模式(SSH 密钥或密码)/ 凭据;可配置多个认证组
|
|
27
27
|
3. 目标主机白名单(每行 `ip=堡垒机搜索关键字`),并为每台主机指定归属的认证组(多台主机可共用同一组)
|
|
28
|
-
4. 是否把 SKILL.md 安装到 opencode / Claude Code / Cursor 等 AI
|
|
28
|
+
4. 是否把 SKILL.md 安装到 opencode / Claude Code / Cursor 等 AI 助手(安装命令的 postinstall 已自动分发,此步幂等可确认)
|
|
29
29
|
|
|
30
30
|
向导结束后 `~/.rrs/config.json` 已就位、`~/.rrs/audit.log` 已建好、AI skill 已分发。直接试跑:
|
|
31
31
|
|
|
@@ -38,7 +38,7 @@ npx -y @zicolasjac-ai/remote-readonly-ssh@latest sys-info --json
|
|
|
38
38
|
每次调用都 `npx` 较慢(需下载/缓存)。如果要把 `rrs` 作为日常命令长期使用:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npm install -g @zicolasjac-ai/remote-readonly-ssh
|
|
41
|
+
npm install -g @zicolasjac-ai/remote-readonly-ssh # postinstall 自动分发 AI skill
|
|
42
42
|
rrs init # TTY 下仍是交互向导;非交互环境只生成配置模板
|
|
43
43
|
rrs sys-info --json # 直接用 rrs 前缀
|
|
44
44
|
```
|
|
@@ -145,7 +145,7 @@ rrs upload "E:\deploy\nginx.conf" /opt/upload/nginx.conf --host 10.0.0.2 --json
|
|
|
145
145
|
|
|
146
146
|
## Agent Skills
|
|
147
147
|
|
|
148
|
-
本工具附带一份 `SKILL.md`,教 AI 助手何时用、怎么用 `rrs
|
|
148
|
+
本工具附带一份 `SKILL.md`,教 AI 助手何时用、怎么用 `rrs`。**`npm install` 时 postinstall 会自动分发**(agents 实体 + opencode/claude/qoder 软链接),无需手工执行;`rrs setup skills` 保留为手工重装 / 只装部分 agent 的方式:
|
|
149
149
|
|
|
150
150
|
| `--agent` | 写入方式 | 路径 |
|
|
151
151
|
|-----------|----------|------|
|
|
@@ -155,17 +155,16 @@ rrs upload "E:\deploy\nginx.conf" /opt/upload/nginx.conf --host 10.0.0.2 --json
|
|
|
155
155
|
| `qoder` | 软链接 → agents | `~/.qoder/skills/remote-readonly-ssh/SKILL.md` |
|
|
156
156
|
| `all`(默认) | 实体 + 上述 3 个软链接 | 一行命令装齐 |
|
|
157
157
|
|
|
158
|
-
`rrs setup skills` 默认 `agent=all
|
|
158
|
+
`rrs setup skills` 默认 `agent=all`(不询问,直接装;postinstall 自动分发亦采用此默认),输出一行简明提示:
|
|
159
159
|
|
|
160
160
|
```
|
|
161
161
|
rrs skill 已安装: agents (实体), opencode/claude/qoder (软链接)
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
-
> **Windows 注意**:普通用户缺少 `SeCreateSymbolicLinkPrivilege`,软链接创建会被 OS 拒绝;rrs 会自动 fallback 为复制,并提示"Windows 已 fallback 为复制(请开启开发者模式以启用真软链接)"。开启开发者模式后重新跑 `rrs setup skills
|
|
164
|
+
> **Windows 注意**:普通用户缺少 `SeCreateSymbolicLinkPrivilege`,软链接创建会被 OS 拒绝;rrs 会自动 fallback 为复制,并提示"Windows 已 fallback 为复制(请开启开发者模式以启用真软链接)"。开启开发者模式后重新跑 `rrs setup skills`(或重装包)即可使用真软链接。
|
|
165
165
|
|
|
166
166
|
```bash
|
|
167
|
-
rrs setup skills #
|
|
168
|
-
npx -y @zicolasjac-ai/remote-readonly-ssh@latest setup skills # 全局未装时用 npx
|
|
167
|
+
rrs setup skills # 手工重装(正常情况 npm install 已自动分发)
|
|
169
168
|
rrs setup skills --agent opencode # 只装 opencode 链接(agents 实体也自动建)
|
|
170
169
|
rrs setup skills --agent qoder # 只装 qoder 链接
|
|
171
170
|
rrs setup skills --dry-run # 仅预览将要创建的目标
|
package/bin/postinstall.js
CHANGED
|
@@ -7,7 +7,28 @@ const path = require("path");
|
|
|
7
7
|
|
|
8
8
|
const PACKAGE_ROOT = path.join(__dirname, "..");
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* npm 安装完成后自动把 SKILL.md 分发到各 AI 助手的 skills 目录(agents 实体 + 软链接),
|
|
12
|
+
* 使 "npm install -g @latest" 一步完成 CLI 与 AI skill 的同步升级;失败不阻塞安装。
|
|
13
|
+
* 幂等:重复安装/升级会重建实体与软链(Windows 无符号链接权限时自动退化为复制)。
|
|
14
|
+
*/
|
|
15
|
+
function autoInstallSkills() {
|
|
16
|
+
try {
|
|
17
|
+
const results = setupSkill.install(PACKAGE_ROOT, { agent: "all" });
|
|
18
|
+
const canonical = results.find((r) => r.agent === "agents");
|
|
19
|
+
const links = results.filter((r) => r.agent !== "agents");
|
|
20
|
+
const anyFallback = links.some((r) => r.fallback);
|
|
21
|
+
const names = links.map((r) => r.agent).join("/");
|
|
22
|
+
const done = canonical && links.length ? `agents (实体), ${names} (软链接)` : canonical ? "agents (实体)" : names;
|
|
23
|
+
console.log(`rrs AI skill 已同步: ${done}${anyFallback ? " — Windows 已自动 fallback 为复制(开启开发者模式可获得真软链接)" : ""}`);
|
|
24
|
+
} catch (e) {
|
|
25
|
+
console.error(`[rrs postinstall] AI skill 自动分发失败(不影响 CLI 使用): ${e.message}`);
|
|
26
|
+
console.error("可稍后手动执行: rrs setup skills");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
10
30
|
(async () => {
|
|
31
|
+
autoInstallSkills();
|
|
11
32
|
const tty = process.stdin.isTTY && process.stdout.isTTY;
|
|
12
33
|
if (tty) {
|
|
13
34
|
try {
|
|
@@ -19,9 +40,9 @@ const PACKAGE_ROOT = path.join(__dirname, "..");
|
|
|
19
40
|
} else {
|
|
20
41
|
console.log("");
|
|
21
42
|
console.log("rrs 安装完成。下一步:");
|
|
22
|
-
console.log(" rrs init #
|
|
23
|
-
console.log(" rrs setup skills
|
|
43
|
+
console.log(" rrs init # 交互式初始化配置(首次安装必跑;向导不再询问 skill 安装,见上)");
|
|
44
|
+
console.log(" rrs setup skills --agent opencode # 如需只分发部分 AI 助手(默认已全量分发)");
|
|
24
45
|
console.log(" rrs list-tools # 查看白名单与配置");
|
|
25
46
|
console.log("");
|
|
26
47
|
}
|
|
27
|
-
})();
|
|
48
|
+
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zicolasjac-ai/remote-readonly-ssh",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "只读 SSH 运维 CLI 与 Agent Skill:通过 JumpServer 堡垒机白名单强制执行只读查询;认证组支持 SSH 私钥/密码两种模式与按 IP 分组;附 SKILL.md 让 opencode / Claude Code / Cursor 等 AI 助手自动发现并正确调用。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -34,11 +34,10 @@ metadata:
|
|
|
34
34
|
## Setup(用户一次性)
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
npm install -g @zicolasjac-ai/remote-readonly-ssh
|
|
38
|
-
rrs init # 生成配置模板 ~/.rrs/config.json
|
|
37
|
+
npm install -g @zicolasjac-ai/remote-readonly-ssh # postinstall 自动把 SKILL.md 分发到 opencode / claude / agents 等目录
|
|
38
|
+
rrs init # 生成配置模板 ~/.rrs/config.json(TTY 下为交互向导)
|
|
39
39
|
# 编辑配置: auth_profiles(认证组,key/password 两种模式,可多个;direct:true 表示跳过堡垒机菜单直连裸机)
|
|
40
|
-
# target_hosts(IP → 认证组+搜索关键字,多 IP
|
|
41
|
-
rrs setup skills # 把本 skill 安装到 opencode / claude / agents 等目录
|
|
40
|
+
# target_hosts(IP → 认证组+搜索关键字,多 IP 可共用一组;可选 sftp_root 声明 koko 资产树目录)
|
|
42
41
|
```
|
|
43
42
|
|
|
44
43
|
## Usage
|