@zhuoyuezs/ml-platform 0.1.19 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -95,12 +95,13 @@ ml-platform list-datasets --project <project>
95
95
  ml-platform get-dataset <dataset_id> <dataset_version> --project <project>
96
96
  ml-platform resolve-dataset <dataset_id> <dataset_version> --project <project>
97
97
  ml-platform build-registered-dataset <dataset_id> <dataset_version> --project <project> --wait
98
+ ml-platform list-deployments --package-id <package-id> --package-version <package-version>
98
99
  ml-platform apply /absolute/path/to/catalog --dry-run
99
100
  ml-platform build-dataset /absolute/path/to/manifest.json --wait
100
101
  ml-platform --help
101
102
  ```
102
103
 
103
- 前四个 Dataset 命令直接使用远程 Registry/API,适合 Agent 对已发布版本执行发现、只读诊断和
104
+ Dataset 查询和 `list-deployments` 直接使用远程 Registry/API,适合 Agent 对已发布版本执行发现、只读诊断和
104
105
  受控构建,不要求本地存在 Catalog。`apply`、`resolve-manifest` 和带本地 JSON 路径的
105
106
  `build-dataset` 用于新契约的编写和发布流程。
106
107
 
package/checksums.json CHANGED
@@ -2,17 +2,17 @@
2
2
  "files": [
3
3
  {
4
4
  "path": "runtime/business-client/README.md",
5
- "sha256": "sha256:61708adaee4479fe138ac5e6df1adc02be09cfeb6c30a7f9211ccc372c0e8ced",
6
- "size_bytes": 7553
5
+ "sha256": "sha256:7e84fad64f8ee6c7aae467b7947123f3a490b799ec5ffa24fd008e0fa37b133e",
6
+ "size_bytes": 7898
7
7
  },
8
8
  {
9
9
  "path": "runtime/business-client/package-lock.json",
10
- "sha256": "sha256:386e8b46ae8e6d7fd83e247b0412560710bee263c2545b593c5442b8f1363765",
10
+ "sha256": "sha256:43cc5d0a9326cf77ebba8062569feca6ebe986938fad6322647f4d96e3178ec5",
11
11
  "size_bytes": 381
12
12
  },
13
13
  {
14
14
  "path": "runtime/business-client/package.json",
15
- "sha256": "sha256:83e60780d91abc78420a533ba0f8ea184f31886f963ca6f1554da819530a6335",
15
+ "sha256": "sha256:68f1e248612f027e3d28c5de9f2679bd77a2692ef2748e4e92a0d9c59b07d1a6",
16
16
  "size_bytes": 501
17
17
  },
18
18
  {
@@ -22,8 +22,8 @@
22
22
  },
23
23
  {
24
24
  "path": "runtime/business-client/src/cli.js",
25
- "sha256": "sha256:255c1ddf9521f7d6b336122a4678b1e9aab34e1ff4e894395a9e69316bacb4ad",
26
- "size_bytes": 54119
25
+ "sha256": "sha256:b282fbbcb8e999ec44cf5bf36a17e02dcf23851971994d1556753e4a0b216d0e",
26
+ "size_bytes": 54352
27
27
  },
28
28
  {
29
29
  "path": "runtime/business-client/src/config.js",
@@ -132,8 +132,8 @@
132
132
  },
133
133
  {
134
134
  "path": "skills/model-deployment-management/references/operations.md",
135
- "sha256": "sha256:93977ec65a8b1ac51a5134ab98ac095e177de537c81f0db447ad97fb8a7e910f",
136
- "size_bytes": 4455
135
+ "sha256": "sha256:b6d8ac126033a1e3b463b53474f0b27d8687e1a7b05eb973d3aad79259838ac6",
136
+ "size_bytes": 4968
137
137
  },
138
138
  {
139
139
  "path": "skills/model-deployment-management/references/troubleshooting.md",
@@ -157,8 +157,8 @@
157
157
  },
158
158
  {
159
159
  "path": "skills/model-lifecycle-management/references/evaluation.md",
160
- "sha256": "sha256:099fc54af2a1d8bed287f9e557cee8583558e594880235c32b89276b385cce90",
161
- "size_bytes": 8858
160
+ "sha256": "sha256:4314e65b162f0a72c5c5e6411186340661c853551dc8b2ebce3597680acef117",
161
+ "size_bytes": 9477
162
162
  },
163
163
  {
164
164
  "path": "skills/model-lifecycle-management/references/packaging.md",
@@ -167,8 +167,8 @@
167
167
  },
168
168
  {
169
169
  "path": "skills/model-lifecycle-management/references/training-contracts.md",
170
- "sha256": "sha256:28fe32b2673db8f6cb1e02053bf5709826786e48dbe9951eac7bb4d98368d0c4",
171
- "size_bytes": 12644
170
+ "sha256": "sha256:d2b1f4089cd622589fabd50fe1600edfa6c330f4a7516734fe2316fcec7bb1e0",
171
+ "size_bytes": 12893
172
172
  },
173
173
  {
174
174
  "path": "skills/model-lifecycle-management/references/training.md",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhuoyuezs/ml-platform",
3
- "version": "0.1.19",
3
+ "version": "0.2.1",
4
4
  "description": "ML 数据平台 business CLI 与 Agent Skills 管理工具",
5
5
  "bin": {
6
6
  "ml-platform": "scripts/main.js"
package/release.json CHANGED
@@ -13,8 +13,8 @@
13
13
  "entrypoint": "src/cli.js",
14
14
  "name": "ml-platform",
15
15
  "path": "runtime/business-client",
16
- "sha256": "sha256:94d80ebfe36808fa5c0ed5585a002d8c77cb95c16b5f1ec856e5725d0d4b347f",
17
- "version": "0.7.8"
16
+ "sha256": "sha256:ce26f9355c6eed92173b478fac809d0d1c87bc59d342b37e8e12262f488bbdfa",
17
+ "version": "0.8.1"
18
18
  },
19
19
  "policy_sha256": "sha256:02fbde0134696b78c0c365d6e0b76c9814227208da5b2b3d4e5dbd82dc4a3606",
20
20
  "public_schema_versions": [
@@ -25,7 +25,7 @@
25
25
  "ml_data_platform.feature_set/v1",
26
26
  "ml_data_platform.dataset_manifest/v1"
27
27
  ],
28
- "release_version": "0.1.19",
28
+ "release_version": "0.2.1",
29
29
  "runtime_requirements": {
30
30
  "node": ">=18",
31
31
  "os": [
@@ -37,22 +37,22 @@
37
37
  "skills": {
38
38
  "feature-management": {
39
39
  "path": "skills/feature-management",
40
- "requires_cli": ">=0.7.8 <0.8.0",
41
- "revision": "0.1.19",
40
+ "requires_cli": ">=0.8.1 <0.9.0",
41
+ "revision": "0.2.1",
42
42
  "sha256": "sha256:d32f0306f129d7bf76eb037fe239c84dd3c29c64b61600799d6e40320784bb10"
43
43
  },
44
44
  "model-deployment-management": {
45
45
  "path": "skills/model-deployment-management",
46
- "requires_cli": ">=0.7.8 <0.8.0",
47
- "revision": "0.1.19",
48
- "sha256": "sha256:d81becca0076d0513e7b8277e7584d9f810db755aa56e79235df68d0f7a7659b"
46
+ "requires_cli": ">=0.8.1 <0.9.0",
47
+ "revision": "0.2.1",
48
+ "sha256": "sha256:e7d87c272a0dcc028ea628d5e36f5b7e52ed27cb9c1bc17ea76527478e28b46d"
49
49
  },
50
50
  "model-lifecycle-management": {
51
51
  "path": "skills/model-lifecycle-management",
52
- "requires_cli": ">=0.7.8 <0.8.0",
53
- "revision": "0.1.19",
54
- "sha256": "sha256:5a911eff6a4c188d8e3709f37e4f37819effea61db9f5a015e6ec4dddd4a0ec7"
52
+ "requires_cli": ">=0.8.1 <0.9.0",
53
+ "revision": "0.2.1",
54
+ "sha256": "sha256:aaa3fdb54c0ff9e8dfa0f71e67d072830786e5e3d4803ba3962dff723d159386"
55
55
  }
56
56
  },
57
- "source_commit": "ff73d381b4b895ea46ca764d9ad1bf32920faee1"
57
+ "source_commit": "93fcb433438db8409e3b762a0cad44c3abc12b8b"
58
58
  }
@@ -64,10 +64,15 @@ ml-platform validate-deployment /absolute/path/to/deployment.json \
64
64
  ml-platform create-deployment /absolute/path/to/deployment.json \
65
65
  --evaluation-id <pass-evaluation-id>
66
66
  ml-platform wait-deployment <deployment-id> --wait-timeout-seconds 1800
67
+ ml-platform list-deployments --package-id <package-id> \
68
+ --package-version <package-version> --model-artifact-id <artifact-id>
67
69
  ml-platform get-deployment <deployment-id>
68
70
  ml-platform get-deployment-events <deployment-id> --limit 100 --offset 0
69
71
  ```
70
72
 
73
+ `list-deployments` 也支持按 `service`、`environment`、`state` 和自由文本 `q` 过滤,返回平台
74
+ Deployment Controller 管理的部署,不把模型中心回写的 delivery 状态当作平台部署。
75
+
71
76
  `READY` 必须同时包含 `ReplicasReady=true`、`ArtifactsVerified=true` 和
72
77
  `SmokePredictionPassed=true`。`get-deployment` 返回控制器实际观察到的 endpoint 元数据;
73
78
  本地 CLI 不推测 Kubernetes Service 名称。部署后验证优先使用控制面代理:
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@zhuoyuezs/ml-platform-business-client",
3
- "version": "0.7.8",
3
+ "version": "0.8.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@zhuoyuezs/ml-platform-business-client",
9
- "version": "0.7.8",
9
+ "version": "0.8.1",
10
10
  "license": "UNLICENSED",
11
11
  "bin": {
12
12
  "ml-platform": "src/cli.js"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhuoyuezs/ml-platform-business-client",
3
- "version": "0.7.8",
3
+ "version": "0.8.1",
4
4
  "private": true,
5
5
  "description": "JavaScript implementation of the ML Platform business client",
6
6
  "bin": {
@@ -147,7 +147,7 @@ const COMMAND_USAGE = {
147
147
  "list-deployment-targets": "list-deployment-targets",
148
148
  "validate-deployment": "validate-deployment SPEC_JSON --evaluation-id ID",
149
149
  "create-deployment": "create-deployment SPEC_JSON --evaluation-id ID",
150
- "list-deployments": "list-deployments [--service SERVICE] [--environment ENV] [--state STATE] [-q QUERY] [--limit N] [--offset N]",
150
+ "list-deployments": "list-deployments [--service SERVICE] [--environment ENV] [--package-id ID] [--package-version VERSION] [--model-artifact-id ID] [--state STATE] [-q QUERY] [--limit N] [--offset N]",
151
151
  "get-deployment": "get-deployment DEPLOYMENT_ID",
152
152
  "wait-deployment": "wait-deployment DEPLOYMENT_ID [--poll-interval SECONDS] [--wait-timeout-seconds SECONDS]",
153
153
  "reconcile-deployment": "reconcile-deployment DEPLOYMENT_ID",
@@ -511,6 +511,9 @@ async function runBusinessCli(argv) {
511
511
  const params = {
512
512
  service: take(rest, "--service"),
513
513
  environment: take(rest, "--environment"),
514
+ package_id: take(rest, "--package-id"),
515
+ package_version: take(rest, "--package-version"),
516
+ model_artifact_id: take(rest, "--model-artifact-id"),
514
517
  state: take(rest, "--state"),
515
518
  q: take(rest, "--q", take(rest, "-q")),
516
519
  };
@@ -29,6 +29,21 @@ Use `get-deployment` to inspect the full revision history and endpoints. Use
29
29
  `list-deployments` for discovery and `get-deployment-events` for paginated
30
30
  audit evidence.
31
31
 
32
+ Discover deployments associated with a packaged model without knowing the
33
+ deployment ID first:
34
+
35
+ ```bash
36
+ ml-platform --profile server list-deployments \
37
+ --package-id <package-id> \
38
+ --package-version <package-version> \
39
+ --model-artifact-id <artifact-id>
40
+ ```
41
+
42
+ The filters may be used independently and combined with `--service`,
43
+ `--environment`, `--state`, `--q`, `--limit`, and `--offset`. These results are
44
+ ITSMP platform deployments; external model-center delivery callbacks are a
45
+ separate status surface.
46
+
32
47
  For direct model access, declare `service_exposure.type=NodePort` in the same
33
48
  validated DeploymentSpec. After the revision is `READY`, read the observed
34
49
  `nodeport` endpoint instead of constructing a Service name. Given an observed
@@ -27,6 +27,16 @@ Inspect `get-metric-definition regression.mae v1` before relying on this metric.
27
27
  Release mode additionally requires at least one required validation rule with a
28
28
  business-approved threshold; do not invent thresholds to obtain PASS.
29
29
 
30
+ For a fixed-length multi-step forecast, `regression.mae` and
31
+ `regression.rmse` cover only the terminal point at the maximum trained horizon.
32
+ Use `regression.trajectory_mae` and `regression.trajectory_rmse` for a release
33
+ gate over the complete trajectory. These metrics flatten every valid
34
+ `(anchor, horizon_step)` cell; they do not multiply the terminal metric by the
35
+ prediction length. Inspect `forecast_metrics.parquet` for the per-step curve.
36
+ When a trajectory metric is requested, prediction coverage requires every step
37
+ of an anchor to be finite. A non-forecast ModelArtifact is rejected before
38
+ Worker execution.
39
+
30
40
  Example `evaluation-request.json` shape; replace illustrative identities before
31
41
  validation or submission:
32
42
 
@@ -265,7 +265,11 @@ contracts. Training `evaluation.split=auto` prefers nonempty test, then validati
265
265
  then train; choose an explicit split when reserving the test set for final review.
266
266
  Training metrics are not a governed EvaluationResult or release gate pass.
267
267
 
268
- For sequence outputs, current training and governed evaluation apply regression
269
- metrics to the terminal point at the trained maximum horizon. They do not yet
270
- provide per-step or whole-trajectory release gates; record this limitation when
271
- reporting evidence for a multi-point package.
268
+ For sequence outputs, training feedback and governed `regression.mae` /
269
+ `regression.rmse` retain terminal-point semantics at the trained maximum
270
+ horizon. Governed evaluation additionally supports
271
+ `regression.trajectory_mae` and `regression.trajectory_rmse`: they aggregate all
272
+ valid `(anchor, horizon_step)` cells, while `forecast_metrics.parquet` records
273
+ the per-step curve. Use a trajectory metric for multi-point release gates; do
274
+ not multiply the terminal metric by `prediction_length` or report it as whole-
275
+ trajectory quality.