@dzhechkov/cloudru-hub 0.1.16 → 0.1.17

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/.dz-manifest.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "files": [
6
6
  {
7
7
  "path": "CHANGELOG.md",
8
- "sha256": "56ba17ee84afe937d3f13c17387b26090e42217b1c8ffd9eee175a5512a14091"
8
+ "sha256": "70bc9263f657739464a56bf220ce370da7baa73dae086565417ccf62b6806078"
9
9
  },
10
10
  {
11
11
  "path": "LICENSE",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  {
15
15
  "path": "README.md",
16
- "sha256": "bfd1c00de39c986cebad2e3fb00fa072ad0b4ecb3cb07f744920bf80474ecb47"
16
+ "sha256": "0ca9b07e9194d91645194140c23d715b741a4503ad261305bf1b8af28470c494"
17
17
  },
18
18
  {
19
19
  "path": "THIRD_PARTY_NOTICES.md",
@@ -33,11 +33,11 @@
33
33
  },
34
34
  {
35
35
  "path": "data/tools-classification.json",
36
- "sha256": "a4bf5a2e76d4f9bd686bec704919ab3380bb22ff46a399b058dc5b3e71a64dd1"
36
+ "sha256": "0f09cb2fffd2feebfa5e7e97e8503a47ae1b63d1035e309540a4211f0bace477"
37
37
  },
38
38
  {
39
39
  "path": "data/tools-list-snapshot.json",
40
- "sha256": "6864bb944ebf780454d266fe7ad47e9cec12969fb66fa9e9a1963b547944e10f"
40
+ "sha256": "247fe8a6d9c47d3b7c4d218d1047df842e41e3b1880594d7dbc7b3f5e6ce52ed"
41
41
  },
42
42
  {
43
43
  "path": "docs/COST-COMPARE.md",
@@ -49,7 +49,7 @@
49
49
  },
50
50
  {
51
51
  "path": "docs/LOCAL-TESTING.md",
52
- "sha256": "7f5cc32d5f089c66246f8349f86fc72dfe6397de7a63edf51692da8583231b41"
52
+ "sha256": "6b2f6b18f863a9a467ad08977b14de4fdf3285a70ae5a35ce855c4f143c05958"
53
53
  },
54
54
  {
55
55
  "path": "docs/WEB-IMAGE.md",
@@ -61,7 +61,7 @@
61
61
  },
62
62
  {
63
63
  "path": "package.json",
64
- "sha256": "94247888df4287a6077204c369ccb685a51b1d943635d51c6228dc1f8fe54635"
64
+ "sha256": "7fe766354e40487c5dd90461d41edcde781cf4775d46376daad9c5abbaf8b314"
65
65
  },
66
66
  {
67
67
  "path": "src/classification.js",
@@ -165,7 +165,7 @@
165
165
  },
166
166
  {
167
167
  "path": "test/resolve.test.mjs",
168
- "sha256": "b447a8755c67bcbfc3db63c909235f34414721139c7bc7fdf0658ab0638e7980"
168
+ "sha256": "dcaede3dea29d98d93f3c902b8f9f389f24dc7b9a84665d1c206263915282f06"
169
169
  },
170
170
  {
171
171
  "path": "test/safe-mcp.test.mjs",
@@ -173,5 +173,5 @@
173
173
  }
174
174
  ]
175
175
  },
176
- "signature": "uCRif8l/EX1KMduryC76GpbzVdYNOCth1Zq9ssM2PoWD6EvqNnFlsK1lDoalJERQi5Rly6hZNmFwixIY0n54Dw=="
176
+ "signature": "H9IFrg1rkdQ36/YEY4aH9uYXFczQB7h+PSmA5LV+mwEkF08uYlis6QAArIaDBpz6d85no/YvOS97A2rneTFbDw=="
177
177
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog — @dzhechkov/cloudru-hub
2
2
 
3
+ ## 0.1.17 — 2026-10-29
4
+
5
+ - Pin the matched Linux/x64 engine `0.2.8-20261029` (SHA-256
6
+ `0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08`)
7
+ as the exact `@dzhechkov/cloudru-vm-linux-x64@0.2.8` optional dependency.
8
+ The local `tools/list` observation retains the 146 ordered registered catalog
9
+ names and gate flags; classification permissions and tool schemas are unchanged.
10
+ - Add the source-reviewed, exclusive shared-local project/VM-name claim before
11
+ VM or static-site security-group mutation. Retain uncertain, partial and empty
12
+ claims across restart; no expiry, unlock or blind replay. Different roots,
13
+ hosts, older clients and direct API calls are outside coordination.
14
+ - Add action-scoped, immutable configured-project/exact-cluster delete intent
15
+ before `k8s_delete`. Duplicate or uncertain attempts refuse another DELETE.
16
+ Receipt recovery is GET-only; accepted operation and operation completion do
17
+ not prove cluster absence or cleanup. Existing create/nodepool behavior remains.
18
+ Both corrections have local synthetic controls, not new paid-cloud acceptance.
19
+
3
20
  ## 0.1.16 — 2026-10-29
4
21
 
5
22
  - Pin the matched Linux/x64 engine `0.2.7-20261029` (SHA-256
package/README.md CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  Site: https://aicoding.space · Source: https://github.com/djd1m/dz-harness/tree/main/packages/cloudru-hub
4
4
 
5
- > **Linux/x64:** version 0.1.16 names the exact optional engine
6
- > package `@dzhechkov/cloudru-vm-linux-x64@0.2.7`. The `dz guard` `licence-hold`
5
+ > **Linux/x64:** version 0.1.17 names the exact optional engine
6
+ > package `@dzhechkov/cloudru-vm-linux-x64@0.2.8`. The `dz guard` `licence-hold`
7
7
  > rule continues to check LICENSE, notices and SPDX on publish.
8
8
 
9
9
  > **Unofficial. NOT affiliated with, endorsed, or supported by Cloud.ru.** "Cloud.ru" is a
10
10
  > trademark of its owner; this launcher merely talks to the public Cloud.ru Evolution API
11
11
  > through the `cloudru-vm` engine.
12
12
 
13
- Thin JS launcher for the **`cloudru-vm` MCP engine** — a Go MCP server with **146 tools**
14
- (MEASURED — live `tools/list` probe, `data/tools-list-snapshot.json`) for Cloud.ru
13
+ Thin JS launcher for the **`cloudru-vm` MCP engine** — a Go MCP server with **146 registered catalog tools**
14
+ (MEASURED — local `tools/list` probe, `data/tools-list-snapshot.json`; this is not 146 live Cloud.ru API tests) for Cloud.ru
15
15
  Evolution: VMs, k8s, PostgreSQL/Kafka/Redis, DNS, S3, certificates, billing/FinOps, and a
16
16
  docker-compose deploy wizard.
17
17
 
@@ -19,11 +19,11 @@ The launcher archive contains no engine binary. npm installs the exact optional
19
19
  platform package with the pinned Go engine on Linux/x64. Run:
20
20
 
21
21
  ```bash
22
- npm install -g @dzhechkov/cloudru-hub@0.1.16
22
+ npm install -g @dzhechkov/cloudru-hub@0.1.17
23
23
  cloudru-hub self-test
24
24
  ```
25
25
 
26
- The self-test verifies the engine SHA-256, version, 146 live MCP tools and their
26
+ The self-test verifies the engine SHA-256, version, 146 registered MCP catalog tools and their
27
27
  classification without Cloud.ru credentials. On another platform, or if optional
28
28
  dependencies were disabled, provide a trusted binary with the same SHA-256.
29
29
 
@@ -82,7 +82,7 @@ node bin/cloudru-hub.js self-test
82
82
  ```
83
83
 
84
84
  Expected: 5 green steps ending `self-test: ALL GREEN` (resolution, sha256 match against
85
- the pinned baseline `94fdba4f…bfabc03`, engine version, 146 live tools, full
85
+ the pinned baseline `0095d391…db8be08`, engine version, 146 registered catalog tools, full
86
86
  classification coverage). Full walkthrough incl. `npm link` and MCP registration:
87
87
  [`docs/LOCAL-TESTING.md`](docs/LOCAL-TESTING.md).
88
88
 
@@ -90,11 +90,13 @@ Host setup, checks and limits: [`docs/HERMES-CODEX.md`](docs/HERMES-CODEX.md). T
90
90
 
91
91
  For billing through `mcp-safe`, add the optional `"agreement_id":"…"` to the owner-only `~/.config/cloudru-hub/credentials.json` alongside `key_id`, `secret` and `project_id`. The proxy forwards it to the Go child as `CLOUDRU_AGREEMENT_ID`. Existing environment-only billing setups remain supported when no credential file is configured. The current consumption tool reports the agreement-wide total; its output should not be presented as a per-project bill. See the [Cloud.ru instructions for locating the agreement ID](https://cloud.ru/docs/billing/ug/topics/faq__api_id_agreement).
92
92
 
93
- The `vm-deploy` and `k8s-deploy` profiles are opt-in previews requiring a matching pinned Go binary and credentials in a private local file. `deploy_plan` resolves a VM and a compute/disk estimate; `deploy_preflight(plan_id)` observes live name collisions and available quota usage, naming unknown create rights, capacity and billed tariffs. After an exact-plan approval, `deploy_apply` writes a private run intent before VM creation. If the API outcome is uncertain, `deploy_reconcile(plan_id)` reads the receipt and project inventory; it never adopts a same-name VM or authorizes a retry. A prior receipt for the same project and VM name also blocks a new plan, even if the cloud inventory has not caught up; inspect the prior run and choose a new name. The static-site route still snapshots approved HTML/ZIP bytes, uses fixed Cloud-init and a dedicated TCP-80 group, and reports verified only after exact-byte HTTP checks against the approved IP. Every public file must be reviewed; a public IP may incur additional charges. Static sites do not grant `vm_exec` SSH access. See `features/cloudru-cli-vm-deploy/SNAKE-ACCEPTANCE.md` in the private source tree for the earlier live acceptance.
93
+ The `vm-deploy` and `k8s-deploy` profiles are opt-in previews requiring a matching pinned Go binary and credentials in a private local file. `deploy_plan` resolves a VM and a compute/disk estimate; `deploy_preflight(plan_id)` observes live name collisions and available quota usage, naming unknown create rights, capacity and billed tariffs. After an exact-plan approval, `deploy_apply` writes a private run intent before VM creation. If the API outcome is uncertain, `deploy_reconcile(plan_id)` reads the receipt and project inventory; it never adopts a same-name VM or authorizes a retry. A prior receipt for the same project and VM name also blocks a new plan, even if the cloud inventory has not caught up; inspect the prior run and choose a new name. The static-site route still snapshots approved HTML/ZIP bytes, uses fixed Cloud-init and a dedicated TCP-80 group, and reports verified only after exact-byte HTTP checks against the approved IP. Every public file must be reviewed; a public IP may incur additional charges. Static sites do not grant `vm_exec` SSH access.
94
94
 
95
- Concurrent distinct VM plans for the same project and VM name are not serialized. Avoid launching those plans together; the prior-receipt check protects sequential submissions and is not an atomic name reservation.
95
+ **Published versions `cloudru-hub@0.1.16` and `cloudru-vm-linux-x64@0.2.7`:** concurrent distinct VM plans for the same project and VM name are not serialized. Avoid launching those plans together; the prior-receipt check protects sequential submissions and is not an atomic name reservation.
96
96
 
97
- In the matched `0.2.7-20261029` engine, operator `k8s_plan` resolves a supported zone name or ID to `zone_id`/`zones`, and `k8s_create` explicitly sends that ID for control-plane placement. The VIP subnet must match the same zone. This does not establish why a worker pool may fail to register nodes.
97
+ **Matched `cloudru-hub@0.1.17` / `cloudru-vm-linux-x64@0.2.8`:** the initial deployment checkpoint exclusively claims the exact project/VM-name pair in private shared local state before either a VM or static-site security group is mutated. The claim remains after process exit, an uncertain provider response, or a later checkpoint failure; even an empty or partial claim blocks another plan. There is no TTL, unlock, forced replay or name-based adoption. Inspect the retained claim and run receipt in the shared state root, reconcile live project inventory and known resource IDs, then choose a new name for a separate deployment if needed. Coordination covers upgraded processes sharing one local state root. Old clients, raw engine paths, different roots or hosts, and direct Cloud.ru API calls remain outside it; this is not distributed idempotency. Local synthetic race, restart and I/O-fault controls cover this correction; no new live VM creation was used for these controls.
98
+
99
+ In the previous `0.2.7-20261029` engine (retained in `0.2.8-20261029`), operator `k8s_plan` resolves a supported zone name or ID to `zone_id`/`zones`, and `k8s_create` explicitly sends that ID for control-plane placement. The VIP subnet must match the same zone. This does not establish why a worker pool may fail to register nodes.
98
100
 
99
101
  The matched engine also accepts `k8s_plan` with
100
102
  `{"preflight":true}` to collect read-only observations before a possible paid
@@ -121,13 +123,13 @@ balancer and traffic, then run `cloudru-hub cost-compare --input <json> --json`
121
123
  separately with verified tariff inputs. This diagnostic does not create an
122
124
  approval or unlock a retry.
123
125
 
124
- Kubernetes recovery is included in the matched `0.2.7-20261029` engine.
126
+ Kubernetes create/nodepool recovery was included in the previous `0.2.7-20261029` engine and is retained in `0.2.8-20261029`.
125
127
  The operator flow records a private durable intent before
126
128
  `k8s_create` or `k8s_add_nodepool`, then saves known operation/resource IDs.
127
129
  After a lost reply, `k8s_get` supports `receipt_id`, `operation_id` and
128
130
  bounded `receipts:true` discovery in addition to its existing cluster lookup.
129
131
  These observations distinguish provider operation state from resource presence;
130
- they do not check Ready Nodes or application HTTP. This candidate has no new
132
+ they do not check Ready Nodes or application HTTP. This release adds no new
131
133
  live Kubernetes deployment or `web-image` acceptance result.
132
134
 
133
135
  The first recovery increment keeps the same project/kind/parent/name blocked
@@ -137,7 +139,26 @@ automatic retry, force flag or receipt-removal procedure. A different name is a
137
139
  separate deployment with possible duplicate cost. Diagnostics do not create a
138
140
  cluster, and existing guarded profiles still deny infrastructure create tools.
139
141
 
140
- The Kubernetes preview has two explicit profiles. The default `snake` profile retains its exact ConfigMap, non-root Deployment and ClusterIP Service. `web-image` accepts one reviewed digest-pinned OCI image in a bounded one-pod Deployment and internal ClusterIP Service. It requires a `/health` endpoint on port 8080, a dedicated namespace, non-root UID 10001, a read-only root filesystem and bounded CPU/RAM. The image must already be built, pushed and pullable by the existing cluster. This package does not build code from a repository or prove that an image digest corresponds to a source commit. `k8s-approve` binds exact manifest bytes, cluster, namespace, project and a ten-minute single-use approval. The proxy uses `create_only=true`; inspect partial resources before retrying because Kubernetes multi-document create is not transactional. Neither profile creates a cluster, namespace, nodes, NAT, ingress or load balancer. The four-host live acceptance in `features/cloudru-k8s-snake-deploy/` covers only Snake; `web-image` currently has deterministic local tests.
142
+ **Matched `cloudru-hub@0.1.17` / `cloudru-vm-linux-x64@0.2.8`:**
143
+ before one confirmed `k8s_delete` DELETE, the engine writes a private, durable
144
+ `cluster-delete` intent scoped to the action, configured project and exact
145
+ cluster ID. That target is immutable. A duplicate call or restart after an
146
+ uncertain outcome refuses another DELETE through the shared store, including
147
+ when the receipt is unreadable. A valid accepted response reports `deleting`;
148
+ malformed or uncertain responses report `unknown_outcome` and retain only
149
+ unambiguous operation correlation. For `unknown_outcome` or
150
+ `recovery_required`, inspect `k8s_get(receipt_id)` or bounded `receipts:true`
151
+ discovery. Recovery is GET-only for the exact target and any known operation
152
+ under the configured project. A scoped exact-cluster 404 observes absence;
153
+ 403, errors, malformed or mismatched JSON remain unknown. Operation `done`
154
+ does not prove cluster absence, application readiness, dependent cleanup or
155
+ zero cost. There is no TTL, receipt removal, forced retry or distributed
156
+ guarantee; other hosts, state roots and direct API callers do not coordinate.
157
+ Existing create and nodepool recovery behavior is retained. Local synthetic
158
+ replay, restart and I/O-fault controls cover this correction; no new paid-cluster
159
+ test was used. Broader operation recovery remains work in progress.
160
+
161
+ The Kubernetes preview has two explicit profiles. The default `snake` profile retains its exact ConfigMap, non-root Deployment and ClusterIP Service. `web-image` accepts one reviewed digest-pinned OCI image in a bounded one-pod Deployment and internal ClusterIP Service. It requires a `/health` endpoint on port 8080, a dedicated namespace, non-root UID 10001, a read-only root filesystem and bounded CPU/RAM. The image must already be built, pushed and pullable by the existing cluster. This package does not build code from a repository or prove that an image digest corresponds to a source commit. `k8s-approve` binds exact manifest bytes, cluster, namespace, project and a ten-minute single-use approval. The proxy uses `create_only=true`; inspect partial resources before retrying because Kubernetes multi-document create is not transactional. Neither profile creates a cluster, namespace, nodes, NAT, ingress or load balancer. Earlier four-host live application acceptance covered only Snake; `web-image` currently has deterministic local tests.
141
162
 
142
163
  See the [web-image procedure](docs/WEB-IMAGE.md) for authored code and pinned repository inputs.
143
164
 
@@ -182,7 +203,7 @@ protections proven:
182
203
 
183
204
  ## Platform package status
184
205
 
185
- The separate `@dzhechkov/cloudru-vm-linux-x64@0.2.7` package is installed
206
+ The separate `@dzhechkov/cloudru-vm-linux-x64@0.2.8` package is installed
186
207
  automatically on Linux/x64 unless optional dependencies are disabled. Its static
187
208
  build reproduces the pinned SHA-256 and bundles the license and NOTICE files
188
209
  of linked Go modules. `CLOUDRU_VM_BIN` and `~/.cloudru-hub/config.json` remain
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$comment": "Golden classification of every cloudru-vm engine tool. allow requires a BEHAVIOUR audit of the handler at the pinned engine SHA proving both axes: (1) observational with no cloud mutation, job advancement or secret return (a local plan write is disclosed), and (2) no user-controlled argument reaching shell/exec/SSH. Shell-reaching tools remain ask even when arguments are quoted. Schema shape alone never proves allow. The old baseline had two hazards: stack_status advanced planned jobs into paid actions and logs inserted an unescaped service into a shell command. In the pinned engine, stack_status reads persisted state only; stack_apply explicitly advances jobs, and logs shell-quotes service. The specific regression tests are in go/cloudru-vm/internal/mcp/stack_status_test.go and internal/engine/logs_test.go. Any unknown live tool fails drift checks; deny by default.",
3
- "engineSha256": "94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03",
3
+ "engineSha256": "0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08",
4
4
  "toolCount": 146,
5
5
  "counts": {
6
6
  "ask": 64,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "capturedAt": "2026-10-29",
3
- "engineVersion": "cloudru-vm 0.2.7-20261029",
4
- "engineSha256": "94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03",
3
+ "engineVersion": "cloudru-vm 0.2.8-20261029",
4
+ "engineSha256": "0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08",
5
5
  "method": "JSON-RPC tools/list via src/probe-child.js against locally built private engine",
6
6
  "toolCount": 146,
7
7
  "tools": [
@@ -19,8 +19,8 @@ EOF
19
19
  # c) no override: the installed Linux/x64 optional platform package
20
20
  ```
21
21
 
22
- The pinned binary identifies itself as `cloudru-vm 0.2.7-20261029` and has SHA-256
23
- `94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03`.
22
+ The pinned binary identifies itself as `cloudru-vm 0.2.8-20261029` and has SHA-256
23
+ `0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08`.
24
24
 
25
25
  ## 2. Self-test (end-to-end, no credentials required)
26
26
 
@@ -29,18 +29,26 @@ cd packages/@dzhechkov/cloudru-hub
29
29
  node bin/cloudru-hub.js self-test
30
30
  ```
31
31
 
32
- Expected output for the current private build:
32
+ Example output from the verified engine (installation path varies):
33
33
 
34
34
  ```
35
35
  ✓ resolve: …/cloudru-vm-linux-x64/native/cloudru-vm (source: env)
36
- ✓ sha256: 94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03 — MATCHES pinned baseline
37
- ✓ engine-version: cloudru-vm 0.2.7-20261029
36
+ ✓ sha256: 0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08 — MATCHES pinned baseline
37
+ ✓ engine-version: cloudru-vm 0.2.8-20261029
38
38
  ✓ tools-list: 146 tools live (snapshot: 146)
39
39
  ✓ classification-coverage: every live tool is classified (146 golden entries)
40
40
  self-test: ALL GREEN
41
41
  ```
42
42
 
43
- `tools/list` needs no Cloud.ru credentials. For `--toolsets vm-deploy`, place temporary keys in the owner-only JSON file described in `HERMES-CODEX.md`; the proxy maps them to the Go child's environment without shell evaluation.
43
+ The tool's word “live” means a real local MCP catalog observation: 146
44
+ registered tools, without Cloud.ru credentials or cloud API calls. It does
45
+ not mean 146 cloud operations were exercised. A sandbox that prohibits child
46
+ processes can instead report `spawnSync /usr/bin/node EPERM`; run the same
47
+ self-test where the engine can start, rather than treating that refusal as a pass.
48
+
49
+ For `--toolsets vm-deploy`, place
50
+ temporary keys in the owner-only JSON file described in `HERMES-CODEX.md`;
51
+ the proxy maps them to the Go child's environment without shell evaluation.
44
52
 
45
53
  ## 3. Optional: `npm link` for a global `cloudru-hub`
46
54
 
@@ -66,4 +74,4 @@ appears; note which prefix spelling the runtime used.
66
74
 
67
75
  ## 5. Testing from another server (`npm install` path)
68
76
 
69
- On Linux/x64, install `@dzhechkov/cloudru-hub@0.1.16` normally and run `cloudru-hub self-test` without setting `CLOUDRU_VM_BIN`. npm installs the exact optional engine package. If optional dependencies were disabled or the platform is unsupported, provide a matching trusted binary explicitly.
77
+ On Linux/x64, install `@dzhechkov/cloudru-hub@0.1.17` normally and run `cloudru-hub self-test` without setting `CLOUDRU_VM_BIN`. npm installs the exact `@dzhechkov/cloudru-vm-linux-x64@0.2.8` optional engine package. If optional dependencies were disabled or the platform is unsupported, provide a matching trusted binary explicitly.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/cloudru-hub",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "licenseHold": {
5
5
  "adr": "features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md",
6
6
  "note": "SATISFIED hold. Timur is credited for substantial Cloud.ru API testing. The 2026-10-20 correction is in the historical grant record. This field keeps the dz guard licence-hold rule checking LICENSE, THIRD_PARTY_NOTICES and SPDX on every publish."
@@ -26,9 +26,9 @@
26
26
  ],
27
27
  "cloudruHub": {
28
28
  "binaryHashes": {
29
- "linux-x64": "94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03"
29
+ "linux-x64": "0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08"
30
30
  },
31
- "engineVersion": "cloudru-vm 0.2.7-20261029",
31
+ "engineVersion": "cloudru-vm 0.2.8-20261029",
32
32
  "platformPackages": {
33
33
  "linux-x64": "@dzhechkov/cloudru-vm-linux-x64"
34
34
  }
@@ -53,7 +53,7 @@
53
53
  "yaml": "^2.9.0"
54
54
  },
55
55
  "optionalDependencies": {
56
- "@dzhechkov/cloudru-vm-linux-x64": "0.2.7"
56
+ "@dzhechkov/cloudru-vm-linux-x64": "0.2.8"
57
57
  },
58
58
  "repository": {
59
59
  "type": "git",
package/sbom.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "hashes": [
16
16
  {
17
17
  "alg": "SHA-256",
18
- "content": "56ba17ee84afe937d3f13c17387b26090e42217b1c8ffd9eee175a5512a14091"
18
+ "content": "70bc9263f657739464a56bf220ce370da7baa73dae086565417ccf62b6806078"
19
19
  }
20
20
  ]
21
21
  },
@@ -35,7 +35,7 @@
35
35
  "hashes": [
36
36
  {
37
37
  "alg": "SHA-256",
38
- "content": "bfd1c00de39c986cebad2e3fb00fa072ad0b4ecb3cb07f744920bf80474ecb47"
38
+ "content": "0ca9b07e9194d91645194140c23d715b741a4503ad261305bf1b8af28470c494"
39
39
  }
40
40
  ]
41
41
  },
@@ -85,7 +85,7 @@
85
85
  "hashes": [
86
86
  {
87
87
  "alg": "SHA-256",
88
- "content": "a4bf5a2e76d4f9bd686bec704919ab3380bb22ff46a399b058dc5b3e71a64dd1"
88
+ "content": "0f09cb2fffd2feebfa5e7e97e8503a47ae1b63d1035e309540a4211f0bace477"
89
89
  }
90
90
  ]
91
91
  },
@@ -95,7 +95,7 @@
95
95
  "hashes": [
96
96
  {
97
97
  "alg": "SHA-256",
98
- "content": "6864bb944ebf780454d266fe7ad47e9cec12969fb66fa9e9a1963b547944e10f"
98
+ "content": "247fe8a6d9c47d3b7c4d218d1047df842e41e3b1880594d7dbc7b3f5e6ce52ed"
99
99
  }
100
100
  ]
101
101
  },
@@ -125,7 +125,7 @@
125
125
  "hashes": [
126
126
  {
127
127
  "alg": "SHA-256",
128
- "content": "7f5cc32d5f089c66246f8349f86fc72dfe6397de7a63edf51692da8583231b41"
128
+ "content": "6b2f6b18f863a9a467ad08977b14de4fdf3285a70ae5a35ce855c4f143c05958"
129
129
  }
130
130
  ]
131
131
  },
@@ -159,7 +159,7 @@
159
159
  },
160
160
  {
161
161
  "name": "dz:canonical-json-sha256-v2",
162
- "value": "94247888df4287a6077204c369ccb685a51b1d943635d51c6228dc1f8fe54635"
162
+ "value": "7fe766354e40487c5dd90461d41edcde781cf4775d46376daad9c5abbaf8b314"
163
163
  }
164
164
  ]
165
165
  },
@@ -419,7 +419,7 @@
419
419
  "hashes": [
420
420
  {
421
421
  "alg": "SHA-256",
422
- "content": "b447a8755c67bcbfc3db63c909235f34414721139c7bc7fdf0658ab0638e7980"
422
+ "content": "dcaede3dea29d98d93f3c902b8f9f389f24dc7b9a84665d1c206263915282f06"
423
423
  }
424
424
  ]
425
425
  },
@@ -125,6 +125,6 @@ test('sha256File matches node crypto', () => {
125
125
  test('the pinned linux-x64 hash is the rebuilt private engine sha256', () => {
126
126
  assert.equal(
127
127
  PKG.cloudruHub.binaryHashes['linux-x64'],
128
- '94fdba4fe4d1a71e684be998c3d2f94f374ff4e4054db2683bcc04d72bfabc03',
128
+ '0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08',
129
129
  );
130
130
  });