rainskills 0.1.46 → 0.1.47

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 (25) hide show
  1. package/README.md +10 -1
  2. package/SKILL.md +1 -1
  3. package/marketplace/rainskills/.claude-plugin/plugin.json +1 -1
  4. package/marketplace/rainskills/.codex-plugin/plugin.json +1 -1
  5. package/marketplace/rainskills/skills/rainskills/SKILL.md +2 -2
  6. package/package.json +1 -1
  7. package/rainbond-ai-assistant/references/generated/runtime-gate.md +2 -2
  8. package/rainbond-app-assistant/references/generated/runtime-gate.md +3 -3
  9. package/rainbond-app-assistant/references/phases/topology-selection.md +1 -1
  10. package/rainbond-app-version-assistant/references/generated/runtime-gate.md +2 -2
  11. package/rainbond-delivery-verifier/references/generated/runtime-gate.md +2 -2
  12. package/rainbond-env-sync/references/generated/runtime-gate.md +2 -2
  13. package/rainbond-fullstack-bootstrap/modules/30-creation-rules.md +2 -0
  14. package/rainbond-fullstack-bootstrap/modules/35-runtime-topology-rules.md +1 -1
  15. package/rainbond-fullstack-bootstrap/references/generated/runtime-gate.md +3 -3
  16. package/rainbond-fullstack-bootstrap/references/quick-reference.md +8 -0
  17. package/rainbond-fullstack-troubleshooter/references/diagnosis-workflow.md +7 -0
  18. package/rainbond-fullstack-troubleshooter/references/generated/runtime-gate.md +2 -2
  19. package/rainbond-opensource-app-deploy/references/generated/runtime-gate.md +2 -2
  20. package/rainbond-platform-installer/SKILL.md +1 -1
  21. package/rainbond-platform-installer/scripts/installed-version.js +1 -1
  22. package/rainbond-platform-plugin-manager/references/generated/runtime-gate.md +2 -2
  23. package/rainbond-platform-query/references/generated/runtime-gate.md +2 -2
  24. package/rainbond-project-init/references/generated/runtime-gate.md +2 -2
  25. package/rainbond-template-installer/references/generated/runtime-gate.md +2 -2
package/README.md CHANGED
@@ -15,7 +15,8 @@ DeepSeek Harness、WorkBuddy 和 Hermes Agent 能够继续完成应用部署、
15
15
  [产品介绍](https://www.rainbond.com/rainskills) ·
16
16
  [安装与使用](https://www.rainbond.com/docs/ai/rainskills) ·
17
17
  [视频教程](https://www.rainbond.com/videos/rainskills-ai-deploy) ·
18
- [Rainbond Cloud](https://run.rainbond.com)
18
+ [Rainbond Cloud](https://run.rainbond.com) ·
19
+ [微信交流](#微信交流)
19
20
 
20
21
  ## 为什么使用 RainSkills
21
22
 
@@ -161,6 +162,14 @@ Compose、Helm 和第三方应用中的特权容器、Operator、CRD、Job、主
161
162
  - [Rainbond 安装文档](https://www.rainbond.com/docs/installation)
162
163
  - [提交问题](https://github.com/goodrain/rainskills/issues)
163
164
 
165
+ ## 微信交流
166
+
167
+ 扫码添加微信,备注「RainSkills」,交流安装、部署和使用问题。
168
+
169
+ <a href="https://www.rainbond.com/wechat/rainbond-xzs.png">
170
+ <img src="https://www.rainbond.com/wechat/rainbond-xzs.png" alt="添加微信交流 RainSkills 的二维码" width="220" />
171
+ </a>
172
+
164
173
  ## License
165
174
 
166
175
  Apache-2.0
package/SKILL.md CHANGED
@@ -56,7 +56,7 @@ Hermes Agent 中必须使用 `terminal` 以 `background=true` 启动授权命令
56
56
 
57
57
  DeepSeek Harness 和 WorkBuddy 也必须保持原命令附着直到退出;如果宿主把长命令转成持久终端或后台任务,只能轮询该原始命令句柄,不得另起 `runtime status` 推测授权结果。WorkBuddy 安装后若当前任务的 Skill 清单尚未刷新,在下一条业务动作前先刷新 Skill 列表或新建任务,不得退回内置 Sites 代替 Rainbond 部署。
58
58
 
59
- Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.46`):
59
+ Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.47`):
60
60
 
61
61
  - 状态:执行 `runtime status --json`。
62
62
  - 首次连接:执行 `runtime connect <target> --saas` 或 `runtime connect <target> --rainbond-url <Console origin>`。
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rainskills",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "description": "Install the complete Rainskills AI deployment skill suite as one product.",
5
5
  "author": {
6
6
  "name": "Goodrain",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rainskills",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "description": "Install the complete Rainskills AI deployment skill suite as one product.",
5
5
  "author": {
6
6
  "name": "Goodrain",
@@ -14,7 +14,7 @@ This is the single marketplace entry for the complete Rainskills product. The in
14
14
  3. Keep stdin, stdout, and stderr attached. When `RAINSKILLS_USER_INPUT_REQUIRED` appears, pause for that installer choice. If the installer emits `rainskills.next-action.v1`, execute only its fixed `argv` through the same launcher; never evaluate output as a shell command. If the adjacent `bin/rainskills.js` exists, use it for fixed next actions; otherwise use the same versioned npm package fallback described below.
15
15
  4. Stay attached until every independent Skill is installed. Do not select, connect, or configure an application runtime during installation. In the user-facing response, output only the fixed completion message below.
16
16
 
17
- If the adjacent installer is missing, check the local Node.js version before choosing the fallback. With `npx` and Node.js 18 or newer, use `npx --yes rainskills@0.1.46 <target>`. With no Node.js or a version below 18, use `bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) <target>` instead. Omit `<target>` only when the host cannot be determined reliably. Keep either command attached to the interactive terminal. For an update or repair, refresh this marketplace Skill first, then run the installer again; it compares and updates every independent internal Skill.
17
+ If the adjacent installer is missing, check the local Node.js version before choosing the fallback. With `npx` and Node.js 18 or newer, use `npx --yes rainskills@0.1.47 <target>`. With no Node.js or a version below 18, use `bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) <target>` instead. Omit `<target>` only when the host cannot be determined reliably. Keep either command attached to the interactive terminal. For an update or repair, refresh this marketplace Skill first, then run the installer again; it compares and updates every independent internal Skill.
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
 
@@ -56,7 +56,7 @@ Hermes Agent 中必须使用 `terminal` 以 `background=true` 启动授权命令
56
56
 
57
57
  DeepSeek Harness 和 WorkBuddy 也必须保持原命令附着直到退出;如果宿主把长命令转成持久终端或后台任务,只能轮询该原始命令句柄,不得另起 `runtime status` 推测授权结果。WorkBuddy 安装后若当前任务的 Skill 清单尚未刷新,在下一条业务动作前先刷新 Skill 列表或新建任务,不得退回内置 Sites 代替 Rainbond 部署。
58
58
 
59
- Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.46`):
59
+ Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.47`):
60
60
 
61
61
  - 状态:执行 `runtime status --json`。
62
62
  - 首次连接:执行 `runtime connect <target> --saas` 或 `runtime connect <target> --rainbond-url <Console origin>`。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rainskills",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "description": "Agent Skills for deploying, troubleshooting, and verifying applications on Rainbond from Codex, Claude Code, and other AI coding agents",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://www.rainbond.com/rainskills",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: 66eacc1cce9b19faed97865175e483eb46d1172e0d28b8e56274487a8d560a8a -->
2
+ <!-- source-sha256: 93f81735a2b3675d035966ad237b7c035770375b6a4c068ce8a196a189667371 -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -48,7 +48,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
48
48
  ```json
49
49
  {
50
50
  "schema": "rainskills.single-runtime-contract.v1",
51
- "package_version": "rainskills@0.1.46",
51
+ "package_version": "rainskills@0.1.47",
52
52
  "runtime_status": [
53
53
  "node",
54
54
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,12 +1,12 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: a6cd0d2a363379bdd6a42a512d8ae1dccddee05d6077d5cdf66270b4916aadef -->
2
+ <!-- source-sha256: 5be7e59399345293898319a817284aed82158de668484672bdedd1237436b61b -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
6
6
 
7
7
  本机只允许连接一个 Rainbond 运行环境。当前 Skill 在本会话第一次调用 Rainbond 前,执行固定 launcher 的 `runtime status --json`。只有命令退出码为 0、`state=connected` 且 `usable=true` 时才继续。不得配置或直接调用客户端 MCP,不得枚举环境、读取凭据、创建自定义业务 operation,或生成运行环境 ID、业务 operation ID 与 intent JSON。固定 batch/recipe 请求和 CLI 返回的 confirmation_id 属于受保护调用协议,不是模型自建业务工作流。
8
8
 
9
- 运行状态的 `package_version` 必须与下方 JSON contract 完全一致;缺失或不一致时先执行固定版本 `rainskills@0.1.46` 的更新/修复流程。不得在版本错配时继续业务调用。
9
+ 运行状态的 `package_version` 必须与下方 JSON contract 完全一致;缺失或不一致时先执行固定版本 `rainskills@0.1.47` 的更新/修复流程。不得在版本错配时继续业务调用。
10
10
 
11
11
  如果 integrity.status=failed 或 repair_required=true,停止业务调用并修复相同版本的本地安装;不得将缺模块当作 API 参数错误排查或绕过兼容入口。
12
12
 
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -34,7 +34,7 @@
34
34
 
35
35
  **持久化方案**:
36
36
  1. 用 `rainbond_manage_component_storage(operation=create_volume, volume_type=share-file, volume_path=<官方数据目录>)` 在服务的数据目录挂 RWX 共享文件存储(stateless 组件能挂)
37
- 2. 然后 `rainbond_operate_app(action=deploy)` — **先挂存储再 deploy**,顺序不能反
37
+ 2. 然后应用配置:**首次部署**用 `rainbond_operate_app(action=deploy)`;组件**已在运行时**只改存储/配置要用 `action=upgrade`(deploy 会重新构建,upgrade 只做滚动更新)— 顺序不能反
38
38
  3. **禁止**用 `volume_type=local`(local 强制要求 stateful,平台会 HTTP 400 拒绝)
39
39
 
40
40
  **需要 stateful + local volume(高 IOPS 数据库)的唯一路径**:通过 `rainbond_install_app_model` 从应用市场安装预配置的 stateful 模板。镜像/源码模式做不到这件事,不要假装能做。
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: a62cbdd4cb2982dcb7b4bb69a520c58587a03ce683e8a3753c144a221ba3f9a2 -->
2
+ <!-- source-sha256: 853010671a62a371cc9d4374024c1af573b0d531ad94385a3b5c5421201a1103 -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -46,7 +46,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
46
46
  ```json
47
47
  {
48
48
  "schema": "rainskills.single-runtime-contract.v1",
49
- "package_version": "rainskills@0.1.46",
49
+ "package_version": "rainskills@0.1.47",
50
50
  "runtime_status": [
51
51
  "node",
52
52
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: 103da691520dc6f6f754495bf5c61dad7c9685899dec944c9c4831eafad1e358 -->
2
+ <!-- source-sha256: 22b768acbfa20399c095ee952f61f8cb2a8ae14ba25aaddb548b0a835b9e30df -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: e260f8269e0fd04cfefdcd694bb8ab469a9bab0889cc1a0f92b389ee76b53e2a -->
2
+ <!-- source-sha256: e3242005579b3f87c9deabbbac6378e137371fc64833c49a165229ee633bd7ea -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -35,6 +35,8 @@ Call `rainbond_create_component_from_image` with `is_deploy=false`. Reuse the re
35
35
 
36
36
  Do not accept the Console default `is_deploy=true` and then deploy the same component again after configuration. If an existing component was already deployed successfully, port and outer-access changes synchronize through the Console/Region APIs; do not rebuild it merely to apply those changes.
37
37
 
38
+ If the component is already running and you are only changing envs, dependencies, storage, probes, or connection envs, apply the change with `rainbond_operate_app(action=upgrade)` instead of `deploy` — `deploy` rebuilds from source or image, while `upgrade` applies saved configuration through a rolling update.
39
+
38
40
  ## 2b. Deployment-plan readiness for multi-component image topologies
39
41
 
40
42
  Before any mutating Rainbond Tool call for a multi-component image deployment, build a short `DeploymentPlanReadiness` mentally and stop if it is not ready.
@@ -48,7 +48,7 @@ For services not in this list, recall the documented data directory from the ima
48
48
 
49
49
  **Rules**:
50
50
  - inspect existing component storage before deploying the stateful-service component
51
- - if no durable storage is already mounted at the data directory, use `rainbond_manage_component_storage(operation=create_volume, volume_name=<short-name>, volume_type=share-file, volume_path=<data-dir>)` **before** `rainbond_operate_app(action=deploy)`
51
+ - if no durable storage is already mounted at the data directory, use `rainbond_manage_component_storage(operation=create_volume, volume_name=<short-name>, volume_type=share-file, volume_path=<data-dir>)` **before** applying it — use `rainbond_operate_app(action=upgrade)` for an already-running component, and `action=deploy` only when this is the component's first deployment or a rebuild is actually required
52
52
  - prefer the smallest durable storage binding accepted by the platform; do not invent a storage class, PVC name, host path, reclaim policy, or data-retention guarantee
53
53
  - if the storage Tool call fails or the platform does not expose a usable storage provider, do not silently ignore it; report missing persistence as a bootstrap caveat or blocker depending on user intent
54
54
  - if no stateful service component is present, no persistence check is required
@@ -1,12 +1,12 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: b1cc4e1820904668fae44e6417e628f222a06edc5c0ce484f41662ce88128454 -->
2
+ <!-- source-sha256: 2c0b21970071bb63fa3f01f6c2bf631cdf1c39e8ddb5bd0c6184e3972bf8355a -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
6
6
 
7
7
  本机只允许连接一个 Rainbond 运行环境。当前 Skill 在本会话第一次调用 Rainbond 前,执行固定 launcher 的 `runtime status --json`。只有命令退出码为 0、`state=connected` 且 `usable=true` 时才继续。不得配置或直接调用客户端 MCP,不得枚举环境、读取凭据、创建自定义业务 operation,或生成运行环境 ID、业务 operation ID 与 intent JSON。固定 batch/recipe 请求和 CLI 返回的 confirmation_id 属于受保护调用协议,不是模型自建业务工作流。
8
8
 
9
- 运行状态的 `package_version` 必须与下方 JSON contract 完全一致;缺失或不一致时先执行固定版本 `rainskills@0.1.46` 的更新/修复流程。不得在版本错配时继续业务调用。
9
+ 运行状态的 `package_version` 必须与下方 JSON contract 完全一致;缺失或不一致时先执行固定版本 `rainskills@0.1.47` 的更新/修复流程。不得在版本错配时继续业务调用。
10
10
 
11
11
  如果 integrity.status=failed 或 repair_required=true,停止业务调用并修复相同版本的本地安装;不得将缺模块当作 API 参数错误排查或绕过兼容入口。
12
12
 
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -2,6 +2,14 @@
2
2
 
3
3
  Use this file for low-frequency reminders. Do not treat it as the source of truth for execution logic.
4
4
 
5
+ ## Operation semantics (upgrade vs deploy vs restart)
6
+
7
+ - `rainbond_operate_app(action=upgrade)` applies already-saved configuration (env, dependency, storage, probe, connection env, ports) to running instances through a rolling update. It does not rebuild.
8
+ - `rainbond_operate_app(action=deploy)` rebuilds from source or image and then deploys. Use it for the first deployment, or when the code or image actually changed.
9
+ - `rainbond_operate_app(action=restart)` only recreates instances: it neither rebuilds nor applies pending configuration changes.
10
+ - `rainbond_build_component` is the creation-step build, not a configuration-update mechanism.
11
+ - A 409 "operation too frequent" response means the previous async event is still running. Wait for its terminal state (bounded) instead of retrying immediately; the platform releases the guard after 3 minutes.
12
+
5
13
  ## Common Mistakes
6
14
 
7
15
  - creating duplicate components instead of checking existing ones first
@@ -4,6 +4,13 @@ Load this reference for evidence collection, operation anchoring, bounded repair
4
4
 
5
5
  For a build, restart, or redeploy that needs repeated status reads, invoke protected `poll` once. The CLI owns the bounded loop and returns only state transitions, final state, blocker, retryability, attempts, and elapsed time; unchanged states never enter model context.
6
6
 
7
+ ## Operation and status vocabulary
8
+
9
+ - Apply a repaired env / dependency / storage / probe / connection-env change with `rainbond_operate_app(action=upgrade)`. `restart` does not apply pending configuration, and `deploy` rebuilds from source or image unnecessarily.
10
+ - Use the platform's status values: `building`, `waiting`, `starting`, `running`, `upgrade` (not "upgrading"), `stopping`, `closed`, `abnormal` / `some_abnormal`, `undeploy`. `undeploy` is a runtime label, not evidence that a build never started — check build events and build logs instead.
11
+ - Source and CNB builds have a hard timeout of about 60 minutes. Elapsed time below that threshold is not failure evidence; do not re-trigger a build just because it is slow.
12
+ - A 409 "operation too frequent" response means the previous async operation is still running. Wait for its terminal event (bounded) instead of retrying in a loop; the platform releases the guard after 3 minutes.
13
+
7
14
  ## Workflow
8
15
 
9
16
  Follow this order unless there is strong evidence to do otherwise.
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: d8b6cf0839a23c6e91e87e5cf9e04ce1954fff3b1474b8073881aafd79d8ea81 -->
2
+ <!-- source-sha256: a864ca697c977009edd92e142e8a264c463a3a51739130b380381faa8d51a6ba -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: ad349ea89d310290049d1c72ebd3752752f42227b0d2ea5f24dee6926558eaf5 -->
2
+ <!-- source-sha256: 9418108f10b6aa98c01c5c5f6c8c387a217340df910fb23eb78503a7b7d717bf -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -32,7 +32,7 @@ Do not use it to deploy an application to an existing Rainbond. Route those requ
32
32
  ## Workflow
33
33
 
34
34
  1. Read [installation-policy.md](references/installation-policy.md).
35
- 2. Use the installed local launcher `["node", "<home>/.rainbond/lib/rainskills/bin/rainskills.js"]`; its protected runtime package marker is `rainskills@0.1.46` and must equal this package's `package.json`. For a Rainskills marker, first validate schema `rainskills.next-action.v1`, action, onboarding id, and the bounded `argv` array, then append that array to the launcher. Never use `latest` or evaluate a shell string from output.
35
+ 2. Use the installed local launcher `["node", "<home>/.rainbond/lib/rainskills/bin/rainskills.js"]`; its protected runtime package marker is `rainskills@0.1.47` and must equal this package's `package.json`. For a Rainskills marker, first validate schema `rainskills.next-action.v1`, action, onboarding id, and the bounded `argv` array, then append that array to the launcher. Never use `latest` or evaluate a shell string from output.
36
36
  3. 业务 Skill 的四项运行环境菜单会把本机或独立服务器选择写入 `rainskills.next-action.v1` 的显式 `--location`;收到这类 next-action 后直接执行固定 argv,不得再次调用 `private-deployment-location`。只有用户直接要求安装 Rainbond 平台且尚未选择部署位置时,才执行 launcher + `["runtime", "message", "--id", "private-deployment-location"]` 并原样输出固定的三项部署位置消息:选择 1 后执行带 `["--location", "local", "--mode", "single-node"]` 的 `platform install`;选择 2 后执行带 `["--location", "server"]` 的 `platform install`,由 helper 继续显示固定的服务器类型消息;选择 3 后执行 launcher + `["runtime", "message", "--id", "private-console-origin"]` 并进入已有环境连接,不得执行 `platform install`。平台安装 onboarding 只保存安装断点,不保存或恢复业务 intent。
37
37
  4. Let the helper perform one read-only preflight against the already selected local or remote target, then show resources, blockers, and applicable host changes. Never invoke `platform install` without an explicit `--location`; the helper must not ask for the deployment location again.
38
38
  5. 主机集群开始前必须获得 explicit confirmation,并使用受限 AI 交接:首次调用在固定安装 argv 后追加 `--agent-handoff`,记录该子进程会话;用户确认后,使用相同固定 argv 追加 `--agent-handoff --yes` 一次。不得向等待进程写入 `y`、不得启动第二个竞争安装、不得 `kill` 安装进程,也不得让用户复制完整安装或恢复命令。用户取消时,仅使用同一 argv 追加 `--agent-handoff --cancel`;它只能清除匹配的待确认状态,不能建立 SSH 连接或修改服务器。
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  module.exports = Object.freeze({
4
- version: "0.1.46",
4
+ version: "0.1.47",
5
5
  });
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: 25b8cea9ba6079659aa6942cd018be040ff757d8475d9235f129a34392b436b6 -->
2
+ <!-- source-sha256: 6aaea2d5aaa7bf141ff4005d47af8e0b0eee98f457281329b42405e7bf382f68 -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: 65f87ea03854274e395134ad086b90aa2f05580e94263400c1917bc6279b7609 -->
2
+ <!-- source-sha256: 4060efcceb17e539cd58b2d845e3ec12b0691fca1b254e7430675b048748fc44 -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: f2db011c8f43aa8531dfcc58e20af527d1e8396cc52801410c0cfb7101c50351 -->
2
+ <!-- source-sha256: ff434f13cc5569e15c42133361f86f874f4bbbb94930dd77e8bef9cbdb298ae4 -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",
@@ -1,5 +1,5 @@
1
1
  <!-- generated-by: scripts/sync-runtime-contracts.mjs -->
2
- <!-- source-sha256: 23fbd176cae29b97571b67a6c775ba4d260c68a77ca4421699037e7eed2036fd -->
2
+ <!-- source-sha256: 91a56ac8810eb619f15f34e298f5e3f54373878737ac65324151347995bb9f2d -->
3
3
  <!-- profile: cli -->
4
4
  <!-- rainskills-runtime-gate:start -->
5
5
  # 单运行环境 CLI 门禁(生成文件)
@@ -47,7 +47,7 @@ Hermes Agent 使用 `terminal` 且 `background=true` 启动授权,随后只对
47
47
  ```json
48
48
  {
49
49
  "schema": "rainskills.single-runtime-contract.v1",
50
- "package_version": "rainskills@0.1.46",
50
+ "package_version": "rainskills@0.1.47",
51
51
  "runtime_status": [
52
52
  "node",
53
53
  "<home>/.rainbond/lib/rainskills/bin/rainskills.js",