rainskills 0.1.19 → 0.1.21
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 +34 -39
- package/SKILL.md +12 -10
- package/bin/rainskills-tools.js +114 -240
- package/bin/rainskills.js +134 -591
- package/install.sh +68 -94
- package/marketplace/rainskills/.claude-plugin/plugin.json +1 -1
- package/marketplace/rainskills/.codex-plugin/plugin.json +1 -1
- package/marketplace/rainskills/skills/rainskills/SKILL.md +13 -11
- package/package.json +2 -2
- package/rainbond-app-assistant/SKILL.md +116 -151
- package/rainbond-app-version-assistant/SKILL.md +98 -98
- package/rainbond-delivery-verifier/SKILL.md +98 -68
- package/rainbond-env-sync/SKILL.md +98 -69
- package/rainbond-fullstack-bootstrap/SKILL.md +101 -89
- package/rainbond-fullstack-bootstrap/modules/10-context-loading.md +1 -1
- package/rainbond-fullstack-troubleshooter/SKILL.md +98 -68
- package/rainbond-opensource-app-deploy/SKILL.md +102 -81
- package/rainbond-platform-installer/SKILL.md +4 -4
- package/rainbond-platform-installer/scripts/auto-update.js +0 -9
- package/rainbond-platform-installer/scripts/installed-version.js +1 -1
- package/rainbond-platform-installer/scripts/platform-installer.js +3 -89
- package/rainbond-platform-installer/scripts/runtime-state.js +14 -251
- package/rainbond-platform-installer/scripts/single-runtime.js +114 -0
- package/rainbond-platform-installer/scripts/user-message.js +3 -49
- package/rainbond-platform-installer/scripts/windows-client-config.js +0 -51
- package/rainbond-platform-installer/scripts/windows-onboarding.js +0 -3
- package/rainbond-platform-installer/scripts/windows-platform.ps1 +1 -1
- package/rainbond-platform-query/SKILL.md +103 -61
- package/rainbond-project-init/SKILL.md +102 -79
- package/rainbond-template-installer/SKILL.md +102 -80
- package/rainbond-platform-installer/scripts/environment-credentials.js +0 -225
- package/rainbond-platform-installer/scripts/environment-registry.js +0 -349
- package/rainbond-platform-installer/scripts/local-runtime-commands.js +0 -180
- package/rainbond-platform-installer/scripts/local-runtime.js +0 -58
- package/rainbond-platform-installer/scripts/runtime-context-resolver.js +0 -189
- package/rainbond-platform-installer/scripts/runtime-credentials.js +0 -163
- package/rainbond-platform-installer/scripts/runtime-intents.js +0 -386
- package/rainbond-platform-installer/scripts/runtime-operations.js +0 -597
- package/rainbond-platform-installer/scripts/windows-client-config.ps1 +0 -9
- package/rainbond-platform-installer/scripts/windows-read-user-environment.ps1 +0 -16
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ Rainskills 安装完成,下一条消息即可直接使用。
|
|
|
67
67
|
|
|
68
68
|
每个业务 Skill 都必须先通过相同门禁:
|
|
69
69
|
|
|
70
|
-
0. 第一步检查 Node.js 是否存在且主版本不低于 18。缺失或低于 18 时,只说明 Rainskills 执行组件需要 Node.js 18
|
|
70
|
+
0. 第一步检查 Node.js 是否存在且主版本不低于 18。缺失或低于 18 时,只说明 Rainskills 执行组件需要 Node.js 18 或更高版本并停止;不连接运行环境、不调用 CLI、不猜测替代命令。
|
|
71
71
|
|
|
72
72
|
固定 launcher 来自当前 `package.json` 版本:
|
|
73
73
|
|
|
@@ -77,12 +77,11 @@ Rainskills 安装完成,下一条消息即可直接使用。
|
|
|
77
77
|
|
|
78
78
|
所有调用都把 launcher 与参数合并成 argv 数组后直接执行;不得使用 `rainskills@latest`,不得把参数拼成 shell 字符串。
|
|
79
79
|
|
|
80
|
-
1.
|
|
81
|
-
2.
|
|
82
|
-
3.
|
|
83
|
-
4.
|
|
84
|
-
5. 安装私有环境时,只消费完成 schema、action、onboarding id 和参数边界校验的 `rainskills.next-action.v1.argv
|
|
85
|
-
6. 探针失败进入 reconnect。连接或安装完成后执行 launcher + `["intent", "resume", "--onboarding-id", "<同一 onboarding-id>"]`,恢复受保护的原始 intent 和 `resume_step`,不重新猜测用户动作。
|
|
80
|
+
1. 本会话首次使用时执行 launcher + `["runtime", "status", "--json"]`。只有返回 `connected` 且 `usable=true` 才进入业务流程。
|
|
81
|
+
2. 本机只保存一个 Rainbond 运行环境。没有环境时使用 `runtime connect` 连接 Cloud、已有私有 Rainbond,或安装一个私有 Rainbond;重新授权使用 `runtime reconnect <target>`。
|
|
82
|
+
3. 所有 Rainbond 查询和变更都直接通过 `~/.rainbond/bin/rainskills-tools.js`。不配置客户端 MCP,不创建业务 runtime operation,不传环境 ID、operation ID 或 intent JSON。
|
|
83
|
+
4. 写操作仍由 CLI 生成 confirmation ID;只有完全相同的输入追加 `--confirm` 后才执行一次。
|
|
84
|
+
5. 安装私有环境时,只消费完成 schema、action、onboarding id 和参数边界校验的 `rainskills.next-action.v1.argv`;onboarding id 只属于平台安装断点。
|
|
86
85
|
|
|
87
86
|
`deploy`/`create` 允许先只保存动作类型。选择私有环境后,先完整完成本地单机、服务器单机、主机集群或已有 Kubernetes 的平台安装和验收;此阶段不得询问本地项目路径、Git 仓库 URL、镜像地址或安装包路径。恢复到 `project-analysis` 后才识别当前项目或询问缺失的应用来源。
|
|
88
87
|
|
|
@@ -101,17 +100,11 @@ Rainskills 安装完成,下一条消息即可直接使用。
|
|
|
101
100
|
提示“请选择应用要运行的环境:”,并只显示:
|
|
102
101
|
|
|
103
102
|
1) 云端环境(免费体验)
|
|
104
|
-
2)
|
|
103
|
+
2) 本机环境
|
|
104
|
+
3) 独立服务器
|
|
105
|
+
4) 已有 Rainbond
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
请选择部署位置:
|
|
109
|
-
|
|
110
|
-
1、部署到本机
|
|
111
|
-
2、部署到独立服务器
|
|
112
|
-
3、部署到已有 Rainbond
|
|
113
|
-
|
|
114
|
-
选择 1 时执行 `install-private` route 并传入 `--location local`;选择 2 时执行 `install-private` route 并传入 `--location server`;选择 3 时询问已有私有环境地址并执行 `private-existing` route。不会再显示额外的接入方式中间步骤。不得在进入平台安装器后重复询问部署位置,也不得在环境准备完成前询问应用来源。
|
|
107
|
+
选择 1 时执行 `saas` route;选择 2 时执行 `install-private` route 并传入 `--location local`;选择 3 时执行 `install-private` route 并传入 `--location server`;选择 4 时询问已有 Rainbond 地址并执行 `private-existing` route。不得显示“私有环境”中间层,不得在进入平台安装器后重复询问部署位置,也不得在环境准备完成前询问应用来源。
|
|
115
108
|
|
|
116
109
|
选择“部署到独立服务器”后,只显示:
|
|
117
110
|
|
|
@@ -132,31 +125,35 @@ Rainskills 安装完成,下一条消息即可直接使用。
|
|
|
132
125
|
5. 指纹和一次服务器密码均由系统 SSH 读取;两种命令都只准备公钥连接,不安装 Rainbond。全部节点处理完后,用户统一回复一次“已完成”。
|
|
133
126
|
6. Agent 使用同一版本、同一 `onboarding-id` 和原安装参数继续。不得重新询问环境、安装模式、节点或应用来源。
|
|
134
127
|
7. 后续传输、安装和验收全部使用免密 SSH;系统终端不会继续安装或授权。
|
|
135
|
-
8. Rainbond
|
|
128
|
+
8. Rainbond 验收通过后只进行一次浏览器授权;授权成功后由当前 Agent 会话继续应用任务。
|
|
136
129
|
|
|
137
130
|
主机密钥发生变化时直接阻断并要求人工核对,不自动替换 `known_hosts`。聊天中永远不接收密码、私钥或 Token。
|
|
138
131
|
|
|
139
|
-
##
|
|
132
|
+
## 单运行环境
|
|
133
|
+
|
|
134
|
+
- 本机只保存一个 Rainbond Console origin 和对应凭据。
|
|
135
|
+
- 更换环境时,新凭据通过 live probe 后才覆盖当前运行环境。
|
|
136
|
+
- 连接和重新授权始终进入浏览器 Device Flow,不复用 Shell 中缓存的 JWT。
|
|
137
|
+
- Agent 始终执行受保护的本地 Rainskills CLI,不配置或直接调用客户端 MCP。
|
|
138
|
+
- 项目的 preview/production 配置仍属于应用配置投影,与本机连接的 Rainbond 运行环境不是同一概念。
|
|
140
139
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
-
|
|
148
|
-
|
|
140
|
+
业务 CLI 默认忽略 Shell 中遗留的 `RAINBOND_URL` / `RAINBOND_JWT`。CI 需要使用环境变量凭据时,显式设置:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
RAINSKILLS_CREDENTIAL_SOURCE=environment \
|
|
144
|
+
RAINBOND_URL=https://rainbond.example.com \
|
|
145
|
+
RAINBOND_JWT="$RAINBOND_JWT" \
|
|
146
|
+
node ~/.rainbond/bin/rainskills-tools.js status --skill-id rainbond-platform-query
|
|
147
|
+
```
|
|
149
148
|
|
|
150
|
-
|
|
149
|
+
常用命令:
|
|
151
150
|
|
|
152
151
|
```bash
|
|
153
|
-
node
|
|
154
|
-
node
|
|
155
|
-
node <已安装的 Skills 根目录>/rainbond-platform-installer/scripts/local-runtime.js environment set-default --environment-id <uuid>
|
|
156
|
-
node <已安装的 Skills 根目录>/rainbond-platform-installer/scripts/local-runtime.js environment remove --environment-id <uuid>
|
|
152
|
+
node ~/.rainbond/lib/rainskills/bin/rainskills.js runtime status --json
|
|
153
|
+
node ~/.rainbond/lib/rainskills/bin/rainskills.js runtime reconnect codex
|
|
157
154
|
```
|
|
158
155
|
|
|
159
|
-
|
|
156
|
+
`runtime status` 会通过当前唯一环境执行 live probe。业务 Tool 继续通过 `~/.rainbond/bin/rainskills-tools.js` 调用。
|
|
160
157
|
|
|
161
158
|
### 已有应用环境选择
|
|
162
159
|
|
|
@@ -164,15 +161,13 @@ node <已安装的 Skills 根目录>/rainbond-platform-installer/scripts/local-r
|
|
|
164
161
|
|
|
165
162
|
### 认证与权限恢复
|
|
166
163
|
|
|
167
|
-
Rainbond
|
|
164
|
+
Rainbond CLI 返回 401 时执行:
|
|
168
165
|
|
|
169
166
|
```json
|
|
170
|
-
["runtime", "
|
|
171
|
-
["runtime", "reconnect", "--onboarding-id", "<同一 onboarding-id>"]
|
|
172
|
-
["intent", "resume", "--onboarding-id", "<同一 onboarding-id>"]
|
|
167
|
+
["runtime", "reconnect", "<target>"]
|
|
173
168
|
```
|
|
174
169
|
|
|
175
|
-
|
|
170
|
+
只读调用可在重新授权后重试一次。写调用不得自动重放,必须先查询平台真实状态。403 立即停止,不 reconnect。
|
|
176
171
|
|
|
177
172
|
凭据只由受保护的本地状态和客户端配置处理。不要在聊天、intent、日志或命令行参数中发送密码、JWT、Token 或私钥。
|
|
178
173
|
|
|
@@ -228,7 +223,7 @@ node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-
|
|
|
228
223
|
|
|
229
224
|
Rainskills 会在用户下一次发起业务动作时,由本地运行时立即返回环境查询结果,并另行启动后台任务静默检查更新。更新只跟随 npm `latest` 指向的正式版。当前版本是 RC 或其他预发布版本时不会查询、不会自动升级;npm 上的新 RC 版本也不参与正式版自动升级。
|
|
230
225
|
|
|
231
|
-
发现更高的正式版后,后台任务只委托到经过校验的精确版本,例如 `rainskills@0.1.
|
|
226
|
+
发现更高的正式版后,后台任务只委托到经过校验的精确版本,例如 `rainskills@0.1.21`,不会执行浮动的 `@latest` 业务代码。新版本原子刷新已经安装的 Rainskills Skills;当前业务继续使用启动时已经加载的版本,最迟从下一条新任务开始使用新版。npm 超时、版本检查失败、安装位置不安全或文件迁移失败时会保留旧版本,且不会阻塞或改变当前操作。
|
|
232
227
|
|
|
233
228
|
升级只更新 Rainskills 自身,不触发 Rainbond 安装、运行环境选择、登录授权或重新对接,也不会新增 Agent MCP 配置。更新内容仅包括 Skills 和本地 CLI。原始业务操作会继续执行;只有该业务操作本身需要运行环境时,才按既有门禁检查当前连接。可用连接直接复用,401 只重新授权一次,403 立即停止,从未连接过运行环境时才进入环境选择。
|
|
234
229
|
|
package/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rainskills
|
|
3
|
-
description: Use when a user asks to install, set up, initialize, update, repair, start using Rainskills, or
|
|
3
|
+
description: Use when a user asks to install, set up, initialize, update, repair, start using Rainskills, or connect, reconnect, inspect, or replace the single Rainskills runtime.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Rainskills
|
|
@@ -18,7 +18,7 @@ If the adjacent installer is missing, check the local Node.js version before cho
|
|
|
18
18
|
|
|
19
19
|
Skills-only 安装不需要 Node.js;CDN fallback 只负责安装 Skill 文件,不代表运行环境连接、应用部署或平台安装已经可执行。用户首次提出需要运行环境的动作时,对应业务 Skill 才检查 Node.js;固定 Rainskills launcher 需要 Node.js 18 或更高版本。缺失或版本过低时保留原始 intent 并停止,等待用户或 agent 明确同意安装或升级 Node.js,安装完成消息不得提前提示 Node.js。
|
|
20
20
|
|
|
21
|
-
执行优化:同一会话内只检查一次 Node.js
|
|
21
|
+
执行优化:同一会话内只检查一次 Node.js 和运行环境状态;仅在 Node.js、Rainskills 或唯一运行环境发生变化后失效。固定 launcher 和 argv 已在本 Skill 中,禁止读取、搜索或探测 `rainskills.js`,也禁止执行 `npm root -g`。
|
|
22
22
|
|
|
23
23
|
## Completion Message
|
|
24
24
|
|
|
@@ -38,18 +38,20 @@ Rainskills 安装完成,下一条消息即可直接使用。
|
|
|
38
38
|
也可以直接告诉我你想部署什么应用。
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
## Manage Runtime
|
|
41
|
+
## Manage the Single Runtime
|
|
42
42
|
|
|
43
43
|
受限沙箱(包括 Codex)执行本地状态命令时,必须申请用户级受保护目录访问权限;在 Codex 中使用 `require_escalated`。不得修改 `~/.rainbond` 权限、复制受保护状态到工作区,或因沙箱权限错误建议重装。
|
|
44
44
|
|
|
45
45
|
涉及浏览器或设备授权的 `runtime connect`,以及恢复/安装场景中的 `rainskills <target> --self-hosted`,必须在附加交互终端(TTY)中运行;在 Codex 中设置 `tty: true` 并保持进程附着直到授权完成。禁止通过非交互命令要求用户粘贴 JWT;非交互模式只可复用已存在的受保护凭据。
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.21`):
|
|
48
48
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
49
|
+
- 状态:执行 `runtime status --json`。
|
|
50
|
+
- 首次连接:执行 `runtime connect <target> --saas` 或 `runtime connect <target> --rainbond-url <Console origin>`。
|
|
51
|
+
- 安装私有环境:执行 `runtime connect <target> --install-private --location local|server`。
|
|
52
|
+
- 重新授权:执行 `runtime reconnect <target>`;必须进入浏览器 Device Flow,不复用 Shell 中缓存的 JWT。
|
|
53
|
+
- 更换环境:明确告知用户会替换当前唯一环境;新授权和 live probe 成功后再覆盖凭据。
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
所有 Rainbond 查询和变更继续通过 `~/.rainbond/bin/rainskills-tools.js`。不得配置客户端 MCP,也不得恢复环境枚举、业务 operation 生命周期、环境 ID 或 intent 恢复协议。
|
|
56
|
+
|
|
57
|
+
业务 CLI 默认只读取受保护的唯一运行环境文件,忽略 Shell 中遗留的 `RAINBOND_URL` / `RAINBOND_JWT`。CI 若要显式使用环境变量凭据,必须同时设置 `RAINSKILLS_CREDENTIAL_SOURCE=environment`。
|