@zhuoyuezs/ml-platform 0.1.6 → 0.1.7

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/checksums.json CHANGED
@@ -22,8 +22,8 @@
22
22
  },
23
23
  {
24
24
  "path": "runtime/business-client/src/cli.js",
25
- "sha256": "sha256:ec2b5366dff1da0e56738e2ba39284701940e6a4574e11529d77aed8e4fe0d61",
26
- "size_bytes": 41201
25
+ "sha256": "sha256:ca7bbee61e83f4597c0da75fd3527f1ee43d5257fff07693b581987efeeaafd3",
26
+ "size_bytes": 41926
27
27
  },
28
28
  {
29
29
  "path": "runtime/business-client/src/config.js",
@@ -112,8 +112,8 @@
112
112
  },
113
113
  {
114
114
  "path": "skills/model-lifecycle-management/SKILL.md",
115
- "sha256": "sha256:5827d5e2ae6bc4561150e7c2e435a6ed657688d48aeab202ec9cf3a9b8f5e8e6",
116
- "size_bytes": 2790
115
+ "sha256": "sha256:48c60d20ab9203cde9681fc61a0515ce3f316ad674e4f349aa21e320127a7520",
116
+ "size_bytes": 2837
117
117
  },
118
118
  {
119
119
  "path": "skills/model-lifecycle-management/agents/openai.yaml",
@@ -132,8 +132,8 @@
132
132
  },
133
133
  {
134
134
  "path": "skills/model-lifecycle-management/references/training.md",
135
- "sha256": "sha256:84426c5cfbc60db1ea8b1692f270da82e16700b057af7dd826907acfb3b12e3f",
136
- "size_bytes": 1125
135
+ "sha256": "sha256:e6971f2ef9c2b8645388dd4bac4562408f7a7b1adb0b7171c7e6b4912ea48b50",
136
+ "size_bytes": 1852
137
137
  }
138
138
  ],
139
139
  "schema_version": "data_platform.ml_platform_checksums/v1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhuoyuezs/ml-platform",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "ML 数据平台 business CLI 与 Agent Skills 管理工具",
5
5
  "bin": {
6
6
  "ml-platform": "scripts/main.js"
package/release.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "entrypoint": "src/cli.js",
14
14
  "name": "ml-platform",
15
15
  "path": "runtime/business-client",
16
- "sha256": "sha256:28a74ef7e721f3de925384b249588a435c11b6995df92e3be96209682ca81041",
16
+ "sha256": "sha256:bbb3c59d5d7e16f92e6496e5596e59af3af4fdf4f820487d9ceb6eb85ca0857b",
17
17
  "version": "0.7.0"
18
18
  },
19
19
  "policy_sha256": "sha256:02fbde0134696b78c0c365d6e0b76c9814227208da5b2b3d4e5dbd82dc4a3606",
@@ -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.6",
28
+ "release_version": "0.1.7",
29
29
  "runtime_requirements": {
30
30
  "node": ">=18",
31
31
  "os": [
@@ -38,15 +38,15 @@
38
38
  "feature-management": {
39
39
  "path": "skills/feature-management",
40
40
  "requires_cli": ">=0.7.0 <0.8.0",
41
- "revision": "0.1.6",
41
+ "revision": "0.1.7",
42
42
  "sha256": "sha256:15131c1303b143373e4b8671301f5b884013a1906a44cfc85dd6f93f43c5d8c8"
43
43
  },
44
44
  "model-lifecycle-management": {
45
45
  "path": "skills/model-lifecycle-management",
46
46
  "requires_cli": ">=0.7.0 <0.8.0",
47
- "revision": "0.1.6",
48
- "sha256": "sha256:4107926beb85882c38333310e951a4a4cfcdcf946875359a7b5c1a55fb406347"
47
+ "revision": "0.1.7",
48
+ "sha256": "sha256:b6eac3ac75a82cf27db2efe2daf2b5b8777c95a0841d48f93ada29ef08b8d8fe"
49
49
  }
50
50
  },
51
- "source_commit": "d3e7aa1256c18453ba59f2a624b4cdc6dbbf9421"
51
+ "source_commit": "62db427abfd17b9c8dc58964b03aec21927217b5"
52
52
  }
@@ -24,7 +24,7 @@ const BUSINESS_COMMANDS = new Set([
24
24
  "add-dataset", "update-dataset", "delete-dataset", "list-dataset-artifacts",
25
25
  "register-operator", "show-operator-specs", "delete-operator", "run-operator",
26
26
  "get-job", "wait-job", "retry-job", "cancel-job", "get-dataset-artifact", "download-dataset-artifact", "fetch-inference-data", "fetch-inference-context", "apply",
27
- "register-trainer", "register-training-run", "validate-training-run", "submit-training-job", "get-training-job", "retry-training-job", "cancel-training-job",
27
+ "register-trainer", "list-trainer-definitions", "get-trainer-definition", "register-training-run", "validate-training-run", "submit-training-job", "get-training-job", "retry-training-job", "cancel-training-job",
28
28
  "register-evaluation-config", "get-evaluation-config", "register-metric-definition", "get-metric-definition",
29
29
  "register-executable-package", "verify-executable-package", "publish-executable-package",
30
30
  "validate-evaluation-run", "submit-evaluation", "get-evaluation-run", "get-evaluation-job", "retry-evaluation-job", "cancel-evaluation-job", "list-evaluation-attempts",
@@ -94,6 +94,8 @@ const COMMAND_USAGE = {
94
94
  "fetch-inference-data": "fetch-inference-data MANIFEST --cutoff-time TIMESTAMP [--max-workers N] [--max-source-lag-hours HOURS] [--no-validate-freshness] [--allow-missing]",
95
95
  "fetch-inference-context": "fetch-inference-context REQUEST_JSON",
96
96
  "register-trainer": "register-trainer DEFINITION_JSON",
97
+ "list-trainer-definitions": "list-trainer-definitions",
98
+ "get-trainer-definition": "get-trainer-definition NAME VERSION [--project PROJECT]",
97
99
  "register-training-run": "register-training-run RUN_JSON",
98
100
  "validate-training-run": "validate-training-run RUN_JSON",
99
101
  "submit-training-job": "submit-training-job REQUEST_JSON",
@@ -352,7 +354,7 @@ async function runBusinessCli(argv) {
352
354
  if (allPages && (rawLimit !== undefined || rawOffset !== undefined)) throw new Error("--all cannot be combined with --limit or --offset");
353
355
  if (allPages) result = await fetchAll(client(options), `/${endpoint}/${encodeURIComponent(project)}/${encodeURIComponent(name)}`);
354
356
  else { const limit = Number(rawLimit ?? 50); const offset = Number(rawOffset ?? 0); if (!Number.isInteger(limit) || limit < 1 || limit > 500) throw new Error("limit must be between 1 and 500"); if (!Number.isInteger(offset) || offset < 0) throw new Error("offset must be >= 0"); result = await client(options).get(`/${endpoint}/${encodeURIComponent(project)}/${encodeURIComponent(name)}`, { limit, offset }); }
355
- } else if (options.command.startsWith("list-") && !["list-jobs", "list-dataset-artifacts"].includes(options.command)) {
357
+ } else if (options.command.startsWith("list-") && !["list-jobs", "list-dataset-artifacts", "list-trainer-definitions"].includes(options.command)) {
356
358
  const endpoints = { "list-parameters": "/parameters", "list-operators": "/operators", "list-features": "/features", "list-feature-sets": "/feature-sets", "list-datasets": "/datasets" };
357
359
  const project = take(rest, "--project");
358
360
  const name = take(rest, "--name"); const version = take(rest, "--version");
@@ -437,6 +439,11 @@ async function runBusinessCli(argv) {
437
439
  const request = { manifest: readDataset(manifest), cutoff_time: cutoffTime }; if (Object.keys(realtime).length) request.realtime_fetch = realtime; result = await client(options).post("/inference-data/fetch", request);
438
440
  } else if (options.command === "fetch-inference-context") {
439
441
  result = await client(options).post("/inference-data/context", readSpec(positional(rest, "request JSON")));
442
+ } else if (options.command === "list-trainer-definitions") {
443
+ result = await client(options).get("/trainer-definitions");
444
+ } else if (options.command === "get-trainer-definition") {
445
+ const name = positional(rest, "trainer name"); const version = positional(rest, "trainer version"); const project = take(rest, "--project", "default");
446
+ result = await client(options).get(`/trainer-definitions/${encodeURIComponent(project)}/${encodeURIComponent(name)}/${encodeURIComponent(version)}`);
440
447
  } else if ({
441
448
  "register-trainer": "/trainer-definitions", "register-training-run": "/training-runs", "validate-training-run": "/training-runs/validate",
442
449
  "submit-training-job": "/training-jobs", "register-evaluation-config": "/evaluation-configs", "register-metric-definition": "/metric-definitions",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: model-lifecycle-management
3
- description: Manage ITSMP model training, evaluation, and immutable model packaging through the deployed platform API. Use when a user asks to register a trainer, validate or submit a training run, inspect/retry/cancel training jobs, configure or run governed evaluation, inspect evaluation evidence, validate a ModelArtifact, or create and inspect a ModelPackage. Do not use for feature catalog authoring, dataset builds, model deployment, Kubernetes administration, or image release engineering.
3
+ description: Manage ITSMP model training, evaluation, and immutable model packaging through the deployed platform API. Use when a user asks to list or inspect registered TrainerDefinitions, register a trainer, validate or submit a training run, inspect/retry/cancel training jobs, configure or run governed evaluation, inspect evaluation evidence, validate a ModelArtifact, or create and inspect a ModelPackage. Do not use for feature catalog authoring, dataset builds, model deployment, Kubernetes administration, or image release engineering.
4
4
  ---
5
5
 
6
6
  # Model Lifecycle Management
@@ -1,5 +1,19 @@
1
1
  # Training Commands
2
2
 
3
+ Discover already-registered TrainerDefinitions (read-only) before authoring a
4
+ TrainingRunSpec or deciding whether registration is needed:
5
+
6
+ ```bash
7
+ ml-platform --profile server list-trainer-definitions
8
+ ml-platform --profile server get-trainer-definition <name> <version> [--project default]
9
+ ```
10
+
11
+ `get-trainer-definition` returns the entrypoint, immutable training image digest,
12
+ `artifact_format`, `model_file`, capabilities, and parameter schema. Use it to confirm
13
+ the referenced `v1` definition exists and its image digest matches the approved runtime
14
+ release; discovery never mutates the registry. Registering a new definition is the
15
+ separate mutation below, and a 404 means the definition (not the model plugin) is missing.
16
+
3
17
  ```bash
4
18
  ml-platform --profile server register-trainer trainer-definition.json
5
19
  ml-platform --profile server validate-training-run training-run.json