@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 +8 -8
- package/CHANGELOG.md +17 -0
- package/README.md +35 -14
- package/data/tools-classification.json +1 -1
- package/data/tools-list-snapshot.json +2 -2
- package/docs/LOCAL-TESTING.md +15 -7
- package/package.json +4 -4
- package/sbom.json +7 -7
- package/test/resolve.test.mjs +1 -1
package/.dz-manifest.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"files": [
|
|
6
6
|
{
|
|
7
7
|
"path": "CHANGELOG.md",
|
|
8
|
-
"sha256": "
|
|
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": "
|
|
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": "
|
|
36
|
+
"sha256": "0f09cb2fffd2feebfa5e7e97e8503a47ae1b63d1035e309540a4211f0bace477"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "data/tools-list-snapshot.json",
|
|
40
|
-
"sha256": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
6
|
-
> package `@dzhechkov/cloudru-vm-linux-x64@0.2.
|
|
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 —
|
|
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.
|
|
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
|
|
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 `
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
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.
|
|
4
|
-
"engineSha256": "
|
|
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": [
|
package/docs/LOCAL-TESTING.md
CHANGED
|
@@ -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.
|
|
23
|
-
`
|
|
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
|
-
|
|
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:
|
|
37
|
-
✓ engine-version: cloudru-vm 0.2.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
29
|
+
"linux-x64": "0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08"
|
|
30
30
|
},
|
|
31
|
-
"engineVersion": "cloudru-vm 0.2.
|
|
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.
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
422
|
+
"content": "dcaede3dea29d98d93f3c902b8f9f389f24dc7b9a84665d1c206263915282f06"
|
|
423
423
|
}
|
|
424
424
|
]
|
|
425
425
|
},
|
package/test/resolve.test.mjs
CHANGED
|
@@ -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
|
-
'
|
|
128
|
+
'0095d3911da7e3a93f1d2ee064708820b9b9c50bfc5cbd99fc46c7da6db8be08',
|
|
129
129
|
);
|
|
130
130
|
});
|