rainskills 0.1.40 → 0.1.42

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.
Files changed (69) hide show
  1. package/README.md +25 -259
  2. package/SKILL.md +2 -2
  3. package/contracts/ai-engine-skills-prerequisites-v1.json +175 -0
  4. package/install.sh +101 -40
  5. package/marketplace/rainskills/.claude-plugin/plugin.json +1 -1
  6. package/marketplace/rainskills/.codex-plugin/plugin.json +1 -1
  7. package/marketplace/rainskills/skills/rainskills/SKILL.md +3 -3
  8. package/package.json +11 -2
  9. package/rainbond-ai-assistant/SKILL.md +45 -0
  10. package/rainbond-ai-assistant/agents/openai.yaml +5 -0
  11. package/rainbond-ai-assistant/evals/scenarios.yaml +196 -0
  12. package/rainbond-ai-assistant/references/advanced-vllm-arguments.md +10 -0
  13. package/rainbond-ai-assistant/references/context-and-permissions.md +9 -0
  14. package/rainbond-ai-assistant/references/cpu-deployment.md +22 -0
  15. package/rainbond-ai-assistant/references/deletion-policy.md +8 -0
  16. package/rainbond-ai-assistant/references/deployment-diagnostics.md +18 -0
  17. package/rainbond-ai-assistant/references/error-recovery.md +17 -0
  18. package/rainbond-ai-assistant/references/gpu-provider-and-capacity.md +44 -0
  19. package/rainbond-ai-assistant/references/instance-deployment.md +32 -0
  20. package/rainbond-ai-assistant/references/instance-lifecycle.md +10 -0
  21. package/rainbond-ai-assistant/references/model-discovery.md +16 -0
  22. package/rainbond-ai-assistant/references/model-download.md +31 -0
  23. package/rainbond-ai-assistant/references/model-selection.md +24 -0
  24. package/rainbond-ai-assistant/references/output-contract.md +37 -0
  25. package/rainbond-ai-assistant/references/parameter-decision-guide.md +122 -0
  26. package/rainbond-ai-assistant/references/runtime-gate.md +61 -0
  27. package/rainbond-ai-assistant/references/throughput-tuning.md +12 -0
  28. package/rainbond-ai-assistant/schemas/ai-engine-result.schema.yaml +85 -0
  29. package/rainbond-ai-assistant/scripts/validate_ai_engine_output.py +42 -0
  30. package/rainbond-ai-assistant/scripts/validate_progressive_loading.py +28 -0
  31. package/rainbond-app-assistant/SKILL.md +2 -2
  32. package/rainbond-app-assistant/evals/17-local-package-existing-app-needs-init.expected.yaml +26 -0
  33. package/rainbond-app-assistant/evals/17-local-package-existing-app-needs-init.response.md +46 -0
  34. package/rainbond-app-assistant/references/output-contract.md +20 -1
  35. package/rainbond-app-assistant/references/product-object-model.md +3 -3
  36. package/rainbond-app-assistant/references/runtime-gate.md +2 -2
  37. package/rainbond-app-assistant/references/workflow-rules.md +30 -9
  38. package/rainbond-app-assistant/scripts/validate_app_assistant_output.py +1 -0
  39. package/rainbond-app-assistant/scripts/validate_progressive_loading.py +14 -0
  40. package/rainbond-app-version-assistant/SKILL.md +20 -1
  41. package/rainbond-delivery-verifier/SKILL.md +20 -1
  42. package/rainbond-env-sync/SKILL.md +20 -1
  43. package/rainbond-fullstack-bootstrap/SKILL.md +30 -2
  44. package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.expected.yaml +28 -0
  45. package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.prompt.md +1 -0
  46. package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.response.md +39 -0
  47. package/rainbond-fullstack-bootstrap/modules/40-source-and-package-rules.md +33 -4
  48. package/rainbond-fullstack-bootstrap/modules/50-workflow-and-convergence.md +8 -2
  49. package/rainbond-fullstack-troubleshooter/SKILL.md +20 -1
  50. package/rainbond-opensource-app-deploy/SKILL.md +18 -0
  51. package/rainbond-opensource-app-deploy/references/runtime-gate.md +1 -1
  52. package/rainbond-platform-installer/SKILL.md +1 -1
  53. package/rainbond-platform-installer/scripts/installed-version.js +1 -1
  54. package/rainbond-platform-installer/scripts/windows-auth.js +22 -6
  55. package/rainbond-platform-installer/scripts/windows-onboarding.js +24 -8
  56. package/rainbond-platform-plugin-manager/SKILL.md +38 -0
  57. package/rainbond-platform-plugin-manager/agents/openai.yaml +5 -0
  58. package/rainbond-platform-plugin-manager/evals/scenarios.yaml +28 -0
  59. package/rainbond-platform-plugin-manager/references/output-contract.md +30 -0
  60. package/rainbond-platform-plugin-manager/references/plugin-discovery.md +12 -0
  61. package/rainbond-platform-plugin-manager/references/plugin-lifecycle.md +25 -0
  62. package/rainbond-platform-plugin-manager/references/recovery.md +13 -0
  63. package/rainbond-platform-plugin-manager/references/runtime-gate.md +62 -0
  64. package/rainbond-platform-plugin-manager/scripts/validate_progressive_loading.py +25 -0
  65. package/rainbond-platform-query/SKILL.md +1 -1
  66. package/rainbond-project-init/SKILL.md +39 -8
  67. package/rainbond-template-installer/SKILL.md +20 -1
  68. package/scripts/install-local-cli.mjs +3 -0
  69. package/scripts/sync-ai-engine-contract.mjs +27 -0
package/README.md CHANGED
@@ -1,283 +1,49 @@
1
1
  # Rainskills
2
2
 
3
- Rainskills 是一组面向应用识别、部署、排障和交付的 AI Skills,支持 Codex、Claude Code、Pi Agent、DeepSeek Harness、WorkBuddy 和 Hermes Agent。用户在市场中只会看到一个 `Rainskills` 产品,安装后 11 个 `rainbond-*` Skill 仍会独立触发。
3
+ > 让你的 AI Agent 把应用真正跑起来。
4
4
 
5
- ## 安装
5
+ Rainskills 是一组开源 Agent Skills,让 Codex、Claude Code、Pi Agent、
6
+ DeepSeek Harness、WorkBuddy 和 Hermes Agent 能够完成应用识别、部署、
7
+ 排错、交付验证、版本管理和回滚。
6
8
 
7
- Skill 市场安装:
8
-
9
- ```bash
10
- npx skills add goodrain/rainskills
11
- ```
12
-
13
- Skill 市场当前要求 Node.js 22.20.0 或更高版本。直接运行 npx 安装器最低支持 Node.js 18:
14
-
15
- ```bash
16
- npx --yes rainskills
17
- ```
18
-
19
- 没有合适的 Node.js 时可使用 CDN 入口:
20
-
21
- ```bash
22
- bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh)
23
- ```
24
-
25
- 仅安装 Skills 文件不需要 Node.js,CDN 入口在无 Node.js 时仍可完成这部分安装;这不代表应用部署、运行环境连接或私有平台安装已经可执行。用户首次提出需要运行环境的动作时,Rainskills 执行组件才要求 Node.js 18 或更高版本。
26
-
27
- 也可以使用客户端 Plugin 市场。
28
-
29
- Codex:
30
-
31
- ```bash
32
- codex plugin marketplace add goodrain/rainskills
33
- codex plugin add rainskills@goodrain
34
- ```
35
-
36
- Claude Code:
37
-
38
- ```text
39
- /plugin marketplace add goodrain/rainskills
40
- /plugin install rainskills@goodrain
41
- /reload-plugins
42
- ```
43
-
44
- DeepSeek Harness:
45
-
46
- ```bash
47
- npx --yes rainskills dsh
48
- ```
49
-
50
- 默认安装到 `${DSH_HOME:-~/.dsh}/skills`。DeepSeek Harness 使用原生 Skill catalog 和 `skill` loader 加载,不配置客户端 MCP。
51
-
52
- WorkBuddy:
53
-
54
- ```bash
55
- npx --yes rainskills workbuddy
56
- ```
57
-
58
- 默认安装到 `${WORKBUDDY_CONFIG_DIR:-~/.workbuddy-ai}/skills`。如果安装发生在一个已经打开的 WorkBuddy 任务中,先刷新 Skill 列表或新建任务;部署时明确指定 Rainbond/Rainskills,或让项目保留 `rainbond.app.json`、`.rainbond/local.json` 标记,以避免被内置 Sites 路由抢占。
59
-
60
- Hermes Agent:
61
-
62
- ```bash
63
- npx --yes rainskills hermes
64
- ```
65
-
66
- 默认安装到 `${HERMES_HOME:-~/.hermes}/skills`,与其他宿主共用同一 CLI profile 和本地 Rainskills CLI,不配置客户端 MCP。如果安装发生在一个已经打开的 Hermes 会话中,执行 `/reset` 或新建会话后再使用新安装的 Skills。
67
-
68
- 安装流程支持 Codex、Claude Code、Pi Agent、DeepSeek Harness、WorkBuddy 和 Hermes Agent;所有 Agent 共用同一组 Skills、CLI profile 和本地 Rainskills CLI,不提供单独的客户端 MCP adapter。macOS、Linux 和 WSL 不支持 OpenClaw 安装。不要手工复制 Skill、拼接凭据或修改 Agent 配置。
9
+ 安装后,你只需要告诉 Agent:
69
10
 
70
- 测试或发布烟测可在安装命令末尾追加 `--no-telemetry`,仅关闭当前进程的匿名安装遥测;普通安装不传该参数时保持默认遥测行为。
11
+ > 帮我把当前项目部署上线,并验证页面和 API。
71
12
 
72
- ## 安装完成时用户会看到什么
73
-
74
- 安装完成后只完成 Skills 和受保护本地 CLI 的安装并展示能力列表,不选择运行环境、不登录 Rainbond,也不配置 Agent MCP:
75
-
76
- ```text
77
- Rainskills 安装完成,下一条消息即可直接使用。
78
-
79
- 下一步可以直接说:
80
-
81
- - 帮我部署当前项目
82
- - 帮我部署一个 Git 仓库
83
- - 帮我通过镜像或安装包部署应用
84
- - 帮我安装一个应用模板
85
- - 帮我分析当前项目应该如何部署
86
-
87
- 也可以直接告诉我你想部署什么应用。
88
- ```
89
-
90
- 用户第一次提出部署、查询、排障、验证、快照或模板安装等需要运行环境的动作时,Rainskills 才检查和连接运行环境。
91
-
92
- ## 按需连接应用运行环境
93
-
94
- 每个业务 Skill 都必须先通过相同门禁:
95
-
96
- 0. 第一步检查 Node.js 是否存在且主版本不低于 18。缺失或低于 18 时,只说明 Rainskills 执行组件需要 Node.js 18 或更高版本并停止;不连接运行环境、不调用 CLI、不猜测替代命令。
97
-
98
- 固定 launcher 来自当前 `package.json` 版本:
99
-
100
- ```json
101
- ["node", "<home>/.rainbond/lib/rainskills/bin/rainskills.js"]
102
- ```
13
+ Rainskills 会分析项目结构、组件和依赖,连接 Rainbond Cloud、已有 Rainbond,
14
+ 或者在本机和服务器上安装 Rainbond,然后继续完成部署与验证。
103
15
 
104
- 所有调用都把 launcher 与参数合并成 argv 数组后直接执行;不得使用 `rainskills@latest`,不得把参数拼成 shell 字符串。
16
+ **AI 负责生成,Rainskills 负责部署,Rainbond 负责持续运行。**
105
17
 
106
- 1. 本会话首次使用时执行 launcher + `["runtime", "status", "--json"]`。只有返回 `connected` 且 `usable=true` 才进入业务流程。
107
- 2. 本机只保存一个 Rainbond 运行环境。没有环境时使用 `runtime connect` 连接 Cloud、已有私有 Rainbond,或安装一个私有 Rainbond;重新授权使用 `runtime reconnect <target>`。
108
- 3. 所有 Rainbond 查询和变更都直接通过 `~/.rainbond/bin/rainskills-tools.js`。不配置客户端 MCP,不创建业务 runtime operation,不传环境 ID、operation ID 或 intent JSON。
109
- 4. 写操作仍由 CLI 生成 confirmation ID;只有完全相同的输入追加 `--confirm` 后才执行一次。
110
- 5. 安装私有环境时,只消费完成 schema、action、onboarding id 和参数边界校验的 `rainskills.next-action.v1.argv`;onboarding id 只属于平台安装断点。
18
+ [快速安装](https://www.rainbond.com) ·
19
+ [使用文档](https://www.rainbond.com/docs/ai/rainskills) · [Rainbond Cloud](https://run.rainbond.com)
111
20
 
112
- `deploy`/`create` 允许先只保存动作类型。选择私有环境后,先完整完成本地单机、服务器单机、主机集群或已有 Kubernetes 的平台安装和验收;此阶段不得询问本地项目路径、Git 仓库 URL、镜像地址或安装包路径。恢复到 `project-analysis` 后才识别当前项目或询问缺失的应用来源。
21
+ ## 快速安装
113
22
 
114
- ### 新应用环境选择
115
-
116
- 新应用场景使用以下说明:
117
-
118
- > 可以,我会帮你完成应用识别、构建、部署和访问验证。
119
- >
120
- > 不过目前还没有可用的应用运行环境。
121
- >
122
- > 你刚安装的 Rainskills 是负责“部署”的 AI 助手,它会分析项目并执行部署流程;Rainbond 负责为应用提供稳定运行环境。
123
- >
124
- #### 选择运行环境
125
-
126
- 提示“请选择应用要运行的环境:”,并只显示:
127
-
128
- 1) 云端环境(免费体验)
129
- 2) 本机环境
130
- 3) 独立服务器
131
- 4) 已有 Rainbond
132
-
133
- 选择 1 时执行 `saas` route;选择 2 时执行 `install-private` route 并传入 `--location local`;选择 3 时执行 `install-private` route 并传入 `--location server`;选择 4 时询问已有 Rainbond 地址并执行 `private-existing` route。不得显示“私有环境”中间层,不得在进入平台安装器后重复询问部署位置,也不得在环境准备完成前询问应用来源。
134
-
135
- 选择“部署到独立服务器”后,只显示:
136
-
137
- 请选择服务器类型:
138
-
139
- 1、单台服务器(Linux)
140
- 2、三台及以上服务器(Linux)
141
- 3、已有 Kubernetes 集群
142
-
143
- ### 服务器 SSH 固定流程
144
-
145
- 部署到独立服务器或主机集群时,流程不再根据 Agent 是否提供可见终端而变化:
146
-
147
- 1. Rainskills 先使用 `BatchMode=yes` 检查 SSH 免密连接。
148
- 2. 已可连接时直接继续安装流程;不可连接时固定停止,不在 Agent 任务终端里等待密码。
149
- 3. 单台服务器时,用户在系统终端执行一条版本锁定的 `ssh prepare --ssh <user@host> --ssh-port <port>` 命令。
150
- 4. 主机集群时,Rainskills 先检查全部节点,一次列出所有待处理节点的名称、IP 和端口,再只给出一条版本锁定的 `ssh prepare-cluster --cluster-config <path>` 命令。该命令依次处理全部节点,已可免密连接的节点自动跳过;不得逐台显示命令或逐台等待用户回复。
151
- 5. 指纹和一次服务器密码均由系统 SSH 读取;两种命令都只准备公钥连接,不安装 Rainbond。全部节点处理完后,用户统一回复一次“已完成”。
152
- 6. Agent 使用同一版本、同一 `onboarding-id` 和原安装参数继续。不得重新询问环境、安装模式、节点或应用来源。
153
- 7. 后续传输、安装和验收全部使用免密 SSH;系统终端不会继续安装或授权。
154
- 8. Rainbond 验收通过后只进行一次浏览器授权;授权成功后由当前 Agent 会话继续应用任务。
155
-
156
- 主机密钥发生变化时直接阻断并要求人工核对,不自动替换 `known_hosts`。聊天中永远不接收密码、私钥或 Token。
157
-
158
- ## 单运行环境
159
-
160
- - 本机只保存一个 Rainbond Console origin 和对应凭据。
161
- - 更换环境时,新凭据通过 live probe 后才覆盖当前运行环境。
162
- - 连接和重新授权始终进入浏览器 Device Flow,不复用 Shell 中缓存的 JWT。
163
- - Agent 始终执行受保护的本地 Rainskills CLI,不配置或直接调用客户端 MCP。
164
- - 项目的 preview/production 配置仍属于应用配置投影,与本机连接的 Rainbond 运行环境不是同一概念。
165
-
166
- 业务 CLI 默认忽略 Shell 中遗留的 `RAINBOND_URL` / `RAINBOND_JWT`。CI 需要使用环境变量凭据时,显式设置:
167
-
168
- ```bash
169
- RAINSKILLS_CREDENTIAL_SOURCE=environment \
170
- RAINBOND_URL=https://rainbond.example.com \
171
- RAINBOND_JWT="$RAINBOND_JWT" \
172
- node ~/.rainbond/bin/rainskills-tools.js status --skill-id rainbond-platform-query
173
- ```
174
-
175
- 常用命令:
23
+ Skill 市场安装:
176
24
 
177
25
  ```bash
178
- node ~/.rainbond/lib/rainskills/bin/rainskills.js runtime status --json
179
- node ~/.rainbond/lib/rainskills/bin/rainskills.js runtime reconnect codex
180
- ```
181
-
182
- `runtime status` 会通过当前唯一环境执行 live probe。业务 Tool 继续通过 `~/.rainbond/bin/rainskills-tools.js` 调用。
183
-
184
- ### 已有应用环境选择
185
-
186
- 查询、排障、修改、交付验证、快照、发布和回滚属于已有应用操作,只让用户选择 Rainbond Cloud 或承载目标应用的已有私有 Rainbond,绝不执行 `install-private`,也不安装一个空的新平台代替目标应用。每个 Skill 的第一句话应匹配当前动作,例如“验证应用交付状态和访问地址”,不要全部写成“部署当前项目”。
187
-
188
- ### 认证与权限恢复
189
-
190
- Rainbond CLI 返回 401 时执行:
191
-
192
- ```json
193
- ["runtime", "reconnect", "<target>"]
26
+ npx skills add goodrain/rainskills
194
27
  ```
195
28
 
196
- 只读调用可在重新授权后重试一次。写调用不得自动重放,必须先查询平台真实状态。403 立即停止,不 reconnect。
197
-
198
- 凭据只由受保护的本地状态和客户端配置处理。不要在聊天、intent、日志或命令行参数中发送密码、JWT、Token 或私钥。
199
-
200
- ## 私有 Rainbond 安装
201
-
202
- 环境选择按渐进流程展示:
203
-
204
- 1. 用户选择“私有环境”后,直接选择部署到本机、独立服务器或已有 Rainbond。
205
- 2. 部署到已有 Rainbond 只询问环境地址,不执行平台安装。
206
- 3. 部署到本机直接进入单机版,不展示 ROI 或 Kubernetes;只有选择独立服务器后,再选择单台 Linux、三台及以上 Linux 或已有 Kubernetes。
207
-
208
- 主机集群支持 1、2 或 N 台 Linux 服务器,不要求固定三台;etcd 节点数必须是正奇数。首次进入该分支时,Rainskills 会生成一份受保护的 `cluster.yaml` 示例文件。用户一次性修改服务器地址、SSH 端口和节点角色后回复“已完成”,Rainskills 会一次列出全部可确定的配置问题;校验通过后只准备全部节点的 SSH 免密连接,再展示拓扑和安装变更供用户确认,不再执行额外的 CPU、内存、磁盘、端口、网络或已有安装检查。生成的文件中不得填写密码、私钥或 Token,SSH 密码仍只由系统 `ssh` 在终端中读取。确认后仅查询 bootstrap 节点架构以选择对应的 ROI 文件,实际安装条件由 ROI 判断。已有 Kubernetes 分支使用指定 kubeconfig 和 context 安装,要求 Kubernetes 1.24 或更高版本。
209
-
210
- Windows 本地安装是预览能力,也可以改选 Linux 服务器。它要求 Windows 10 build 19041+ 或 Windows 11 x64、已开启虚拟化并允许 UAC;安装器使用受管 WSL2 环境。macOS 本地路径使用 OrbStack。用户不需要理解这些底层实现。
211
-
212
- 常用固定参数:
29
+ 或者直接运行:
213
30
 
214
31
  ```bash
215
- # 本地单机
216
- node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
217
- --location local --mode single-node
218
-
219
- # Linux 服务器单机
220
- node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
221
- --location server --mode single-node --ssh <user@host>
222
-
223
- # 服务器主机集群(自动生成受保护示例文件)
224
- node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
225
- --location server --mode host-cluster
226
-
227
- # 已有高级 ROI cluster.yaml 才追加:--cluster-config <path>
228
-
229
- # 已有 Kubernetes
230
- node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
231
- --location server --mode existing-kubernetes \
232
- --kubeconfig <path> --kube-context <name> --chart-version <version>
32
+ npx --yes rainskills
233
33
  ```
234
34
 
235
- 可以为已有 Kubernetes 追加 `--values <path>`。非交互流程只有在展示预检和系统变更、用户明确同意后才追加 `--yes`。
236
-
237
- ### 安全与恢复边界
238
-
239
- - Console origin 会先规范化、探测并锁定。HTTPS 跨 origin 跳转必须重新确认;明文 HTTP 只允许用户明确确认的可信内网。
240
- - ROI 和 Helm 制品只从固定官方 HTTPS 来源获取,限制跳转和大小,并锁定版本与摘要;恢复时复用已验证字节。
241
- - kubeconfig、values、ROI 配置和断点使用受保护文件;所有 kubectl/Helm 调用都绑定固定 kubeconfig、context 和集群 identity。
242
- - 执行安装前必须完成只读预检和 dry-run(适用时),并单独确认真实下载/安装效果。
243
- - 取消会停止活动子进程但保留断点。失败或取消后只执行安装器输出的固定重试 argv;不要凭记忆改写命令。
244
- - 检测到目标、配置、集群 identity、版本或摘要漂移时停止,不静默换目标。
245
-
246
- 平台安装成功必须验证节点/平台组件、`rbd-app-ui` 和 Console 可访问,再恢复原始应用动作。详细规则见 `rainbond-platform-installer/references/installation-policy.md`。
247
-
248
- ## 更新
249
-
250
- Rainskills 会在用户下一次发起业务动作时,由本地运行时立即返回环境查询结果,并另行启动后台任务静默检查更新。更新只跟随 npm `latest` 指向的正式版。当前版本是 RC 或其他预发布版本时不会查询、不会自动升级;npm 上的新 RC 版本也不参与正式版自动升级。
251
-
252
- 发现更高的正式版后,后台任务只委托到经过校验的精确版本,例如 `rainskills@0.1.40`,不会执行浮动的 `@latest` 业务代码。新版本原子刷新已经安装的 Rainskills Skills;当前业务继续使用启动时已经加载的版本,最迟从下一条新任务开始使用新版。npm 超时、版本检查失败、安装位置不安全或文件迁移失败时会保留旧版本,且不会阻塞或改变当前操作。
253
-
254
- 升级只更新 Rainskills 自身,不触发 Rainbond 安装、运行环境选择、登录授权或重新对接,也不会新增 Agent MCP 配置。更新内容仅包括 Skills 和本地 CLI。原始业务操作会继续执行;只有该业务操作本身需要运行环境时,才按既有门禁检查当前连接。可用连接直接复用,401 只重新授权一次,403 立即停止,从未连接过运行环境时才进入环境选择。
255
-
256
- 正在执行的部署、私有平台安装和授权流程继续使用启动时锁定的旧版本,自动升级不会插入这些流程。操作完成后会再次静默调度更新检查;检查进程有固定超时且不向用户输出远程 npx 命令。
257
-
258
- 如需手工恢复安装,可执行 `npx --yes rainskills@latest --force`;正常使用不需要主动运行更新命令。
259
-
260
- ## 包含的 Skill
261
-
262
- - `rainbond-app-assistant`
263
- - `rainbond-app-version-assistant`
264
- - `rainbond-delivery-verifier`
265
- - `rainbond-env-sync`
266
- - `rainbond-fullstack-bootstrap`
267
- - `rainbond-fullstack-troubleshooter`
268
- - `rainbond-opensource-app-deploy`
269
- - `rainbond-platform-installer`
270
- - `rainbond-platform-query`
271
- - `rainbond-project-init`
272
- - `rainbond-template-installer`
35
+ 安装后,在项目目录告诉 Agent:
273
36
 
274
- ## 部署类 skill 怎么选
37
+ > 帮我部署当前项目,并验证页面和 API。
275
38
 
276
- - 已确认的 Rainbond 市场模板 → `rainbond-template-installer`(一键安装商店模板)
277
- - 只说“部署 Harbor / Dify / n8n”等第三方开源套件也可以 → `rainbond-opensource-app-deploy` 会自动联网获取官方仓库、文档和 Release 中的部署资料,固定版本并推导组件拓扑;用户已提供 Compose、Helm 或镜像集合时也走这里
278
- - 部署当前项目、普通 Git 仓库或私有镜像项目 → `rainbond-app-assistant`
39
+ ## Rainskills 可以做什么
279
40
 
280
- Open-source Deploy 将 Compose、Helm 和安装器生成结果作为建模证据,默认创建独立 Rainbond 镜像组件,不依赖 Helm 黑盒导入或用户手工上传 Compose。当前/本地项目线索优先于同名软件,避免把用户自己的 Harbor fork 误判为上游套件。
41
+ - 识别本地项目、Git 仓库、镜像和开源软件
42
+ - 分析前端、后端、数据库及组件依赖
43
+ - 自动完成应用构建和部署
44
+ - 根据事件和日志排查部署故障
45
+ - 验证组件状态、访问地址、页面和 API
46
+ - 管理应用版本、升级、快照和回滚
281
47
 
282
48
  ## License
283
49
 
package/SKILL.md CHANGED
@@ -5,7 +5,7 @@ description: Use when a user asks to install, set up, initialize, update, repair
5
5
 
6
6
  # Rainskills
7
7
 
8
- This is the single marketplace entry for the complete Rainskills product. The installer deploys every bundled `rainbond-*` Skill as an independent Skill with its own trigger and responsibility, including the lightweight read-only `rainbond-platform-query` skill. Do not ask the user to choose only one of them.
8
+ This is the single marketplace entry for the complete Rainskills product. The installer deploys every bundled `rainbond-*` Skill as an independent Skill with its own trigger and responsibility, including `rainbond-platform-plugin-manager`, `rainbond-ai-assistant`, and the lightweight read-only `rainbond-platform-query` skill. Do not ask the user to choose only one of them.
9
9
 
10
10
  ## Initialize
11
11
 
@@ -54,7 +54,7 @@ Hermes Agent 中必须使用 `terminal` 以 `background=true` 启动授权命令
54
54
 
55
55
  DeepSeek Harness 和 WorkBuddy 也必须保持原命令附着直到退出;如果宿主把长命令转成持久终端或后台任务,只能轮询该原始命令句柄,不得另起 `runtime status` 推测授权结果。WorkBuddy 安装后若当前任务的 Skill 清单尚未刷新,在下一条业务动作前先刷新 Skill 列表或新建任务,不得退回内置 Sites 代替 Rainbond 部署。
56
56
 
57
- Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.40`):
57
+ Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.42`):
58
58
 
59
59
  - 状态:执行 `runtime status --json`。
60
60
  - 首次连接:执行 `runtime connect <target> --saas` 或 `runtime connect <target> --rainbond-url <Console origin>`。
@@ -0,0 +1,175 @@
1
+ {
2
+ "schema": "rainbond.ai-engine.skills-prerequisites.v1",
3
+ "rest_endpoints": {
4
+ "deployment": "/api/v1/ai-engine/instances/{instance_id}/deployment",
5
+ "events": "/api/v1/ai-engine/instances/{instance_id}/events",
6
+ "logs": "/api/v1/ai-engine/instances/{instance_id}/logs",
7
+ "details": "/api/v1/ai-engine/instances/{instance_id}/details",
8
+ "gpu_devices": "/api/v1/ai-engine/gpu/devices",
9
+ "gpu_timeseries": "/api/v1/ai-engine/gpu/devices/{device_id}/timeseries",
10
+ "gpu_bindings": "/api/v1/ai-engine/gpu/instances/bindings",
11
+ "gpu_usage": "/api/v1/ai-engine/gpu/instances/usage"
12
+ },
13
+ "mcp_tools": {
14
+ "deployment": "rainbond_get_ai_engine_instance_deployment",
15
+ "events": "rainbond_list_ai_engine_instance_events",
16
+ "logs": "rainbond_get_ai_engine_instance_logs",
17
+ "gpu_devices": "rainbond_list_ai_engine_gpu_devices",
18
+ "gpu_timeseries": "rainbond_get_ai_engine_gpu_device_timeseries",
19
+ "gpu_bindings": "rainbond_list_ai_engine_gpu_instance_bindings",
20
+ "gpu_usage": "rainbond_list_ai_engine_gpu_instance_usage"
21
+ },
22
+ "deployment": {
23
+ "stage_names": [
24
+ "request_validation",
25
+ "model_resolution",
26
+ "resource_preflight",
27
+ "runtime_resolution",
28
+ "instance_record",
29
+ "namespace_pvc",
30
+ "network_policy",
31
+ "deployment_submit",
32
+ "service_submit",
33
+ "pod_scheduling",
34
+ "image_pull",
35
+ "volume_mount",
36
+ "container_start",
37
+ "model_precheck",
38
+ "runtime_initialization",
39
+ "health_probe",
40
+ "model_registration",
41
+ "terminal"
42
+ ],
43
+ "stage_statuses": [
44
+ "pending",
45
+ "running",
46
+ "success",
47
+ "failed",
48
+ "skipped",
49
+ "unavailable"
50
+ ],
51
+ "stage_sources": [
52
+ "validation",
53
+ "database",
54
+ "kubernetes",
55
+ "runtime"
56
+ ],
57
+ "response_fields": [
58
+ "available",
59
+ "unavailable_reason",
60
+ "current_stage",
61
+ "terminal",
62
+ "stages",
63
+ "failure",
64
+ "poll_after_seconds"
65
+ ],
66
+ "unavailable_reasons": [
67
+ "deployment_history_unavailable"
68
+ ],
69
+ "terminal_instance_statuses": [
70
+ "Running",
71
+ "Failed",
72
+ "Stopped"
73
+ ]
74
+ },
75
+ "gpu": {
76
+ "providers": [
77
+ "standard_nvidia",
78
+ "hami"
79
+ ],
80
+ "allocation_modes": [
81
+ "standard_whole_gpu",
82
+ "hami_shared_auto",
83
+ "hami_whole_gpu_fallback"
84
+ ],
85
+ "request_units": [
86
+ "physical_gpu",
87
+ "hami_vgpu"
88
+ ],
89
+ "response_fields": [
90
+ "provider",
91
+ "allocation_mode",
92
+ "request_unit",
93
+ "memory_mib_per_gpu",
94
+ "physical_memory_mib_per_gpu",
95
+ "available_memory_mib_per_gpu",
96
+ "available_vgpu_capacity",
97
+ "share_available",
98
+ "available",
99
+ "unavailable_reason",
100
+ "used_memory_bytes",
101
+ "binding_source",
102
+ "binding_scope",
103
+ "source"
104
+ ],
105
+ "usage_sources": [
106
+ "real",
107
+ "unavailable"
108
+ ],
109
+ "usage_unavailable_reasons": [
110
+ "gpu_usage_unavailable"
111
+ ]
112
+ },
113
+ "logs": {
114
+ "request_fields": [
115
+ "tail_lines",
116
+ "previous",
117
+ "since_seconds"
118
+ ],
119
+ "response_fields": [
120
+ "available",
121
+ "reason",
122
+ "log_source",
123
+ "logs",
124
+ "tail_lines",
125
+ "truncated"
126
+ ],
127
+ "sources": [
128
+ "current",
129
+ "previous"
130
+ ]
131
+ },
132
+ "events": {
133
+ "request_fields": [
134
+ "instance_id",
135
+ "limit",
136
+ "since_seconds"
137
+ ],
138
+ "response_fields": [
139
+ "resource_type",
140
+ "reason",
141
+ "safe_message",
142
+ "severity",
143
+ "count",
144
+ "first_seen",
145
+ "last_seen",
146
+ "source",
147
+ "truncated"
148
+ ],
149
+ "forbidden_inputs": [
150
+ "namespace",
151
+ "pod_name",
152
+ "selector",
153
+ "label_selector",
154
+ "field_selector"
155
+ ]
156
+ },
157
+ "details": {
158
+ "fields": [
159
+ "status",
160
+ "deployment_available",
161
+ "desired_replicas",
162
+ "ready_replicas",
163
+ "available_replicas",
164
+ "deployment_condition_reason",
165
+ "pod_scheduled",
166
+ "containers_ready",
167
+ "last_probe_type",
168
+ "last_probe_status",
169
+ "last_probe_error_code",
170
+ "serving_probe_status",
171
+ "served_model_registered",
172
+ "observed_at"
173
+ ]
174
+ }
175
+ }