@zhuoyuezs/ml-platform 0.1.9 → 0.1.10

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 (34) hide show
  1. package/README.md +7 -3
  2. package/package.json +1 -1
  3. package/checksums.json +0 -155
  4. package/release.json +0 -52
  5. package/runtime/business-client/README.md +0 -78
  6. package/runtime/business-client/package-lock.json +0 -19
  7. package/runtime/business-client/package.json +0 -23
  8. package/runtime/business-client/src/catalog.js +0 -206
  9. package/runtime/business-client/src/cli.js +0 -533
  10. package/runtime/business-client/src/config.js +0 -56
  11. package/runtime/business-client/src/http.js +0 -254
  12. package/skills/feature-management/SKILL.md +0 -480
  13. package/skills/feature-management/agents/openai.yaml +0 -4
  14. package/skills/feature-management/assets/catalog-template/catalog.json +0 -23
  15. package/skills/feature-management/assets/catalog-template/datasets/example_temperature_training.v1.json +0 -40
  16. package/skills/feature-management/assets/catalog-template/feature_sets/example_temperature_core.v1.json +0 -14
  17. package/skills/feature-management/assets/catalog-template/features/example_temperature_mean_5m.v1.json +0 -28
  18. package/skills/feature-management/assets/catalog-template/operator_package/pyproject.toml +0 -12
  19. package/skills/feature-management/assets/catalog-template/operator_package/src/business_feature_operator_template/__init__.py +0 -39
  20. package/skills/feature-management/assets/catalog-template/operator_package/tests/test_operator.py +0 -83
  21. package/skills/feature-management/assets/catalog-template/operators/example_temperature_features.v1.json +0 -58
  22. package/skills/feature-management/assets/catalog-template/parameters/example_temperature.v1.json +0 -58
  23. package/skills/feature-management/references/commands.md +0 -358
  24. package/skills/feature-management/references/contracts.md +0 -731
  25. package/skills/feature-management/references/operator-authoring.md +0 -175
  26. package/skills/feature-management/references/platform-capability-guide.md +0 -75
  27. package/skills/feature-management/references/supervised-datasets.md +0 -101
  28. package/skills/model-lifecycle-management/SKILL.md +0 -38
  29. package/skills/model-lifecycle-management/agents/openai.yaml +0 -4
  30. package/skills/model-lifecycle-management/references/discovery.md +0 -89
  31. package/skills/model-lifecycle-management/references/evaluation.md +0 -172
  32. package/skills/model-lifecycle-management/references/packaging.md +0 -56
  33. package/skills/model-lifecycle-management/references/training-contracts.md +0 -164
  34. package/skills/model-lifecycle-management/references/training.md +0 -85
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ML Platform
2
2
 
3
- ML Platform 的 JavaScript CLI `feature-management` Agent Skill。CLI 与 Skill 由同一个 npm
3
+ ML Platform 的 JavaScript CLI、`feature-management` `model-lifecycle-management` Agent Skill。CLI 与 Skill 由同一个 npm
4
4
  release 安装和升级,运行时不需要 Python 或 `uv`。
5
5
 
6
6
  ## 环境要求
@@ -17,8 +17,8 @@ release 安装和升级,运行时不需要 Python 或 `uv`。
17
17
  npx @zhuoyuezs/ml-platform@latest install
18
18
  ```
19
19
 
20
- 这条命令不需要额外参数。默认安装持久化的 `ml-platform` 命令,并将 Skill 安装到
21
- `~/.codex/skills/feature-management/`,供当前用户的 Codex 使用。安装后重启终端和 Agent 会话。
20
+ 这条命令不需要额外参数。默认安装持久化的 `ml-platform` 命令,并将两个 Skill 安装到
21
+ `~/.codex/skills/`,供当前用户的 Codex 使用。安装后重启终端和 Agent 会话。
22
22
 
23
23
  只在当前项目使用 Skill 时,在项目根目录运行:
24
24
 
@@ -103,6 +103,10 @@ ml-platform --help
103
103
  受控构建,不要求本地存在 Catalog。`apply`、`resolve-manifest` 和带本地 JSON 路径的
104
104
  `build-dataset` 用于新契约的编写和发布流程。
105
105
 
106
+ Parameter JSON 可同时声明离线 `source` 和可选的实时 `online_source`。通过
107
+ `ml-platform add-parameter <spec.json>` 或 Catalog `apply` 正常发布即可;客户端原样提交
108
+ 字段,离线构建使用 `source`,`fetch-inference-data` 使用 `online_source`。
109
+
106
110
  ## 迁移旧 Skill
107
111
 
108
112
  目标目录存在旧 Python Skill、实验 symlink 或其他未托管 Skill 时,确认后显式备份:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhuoyuezs/ml-platform",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "ML 数据平台 business CLI 与 Agent Skills 管理工具",
5
5
  "bin": {
6
6
  "ml-platform": "scripts/main.js"
package/checksums.json DELETED
@@ -1,155 +0,0 @@
1
- {
2
- "files": [
3
- {
4
- "path": "runtime/business-client/README.md",
5
- "sha256": "sha256:02e6561b80cbef3cce2fd690750d863d8afb9c45bf5ccfcce3e3e2b082ff0761",
6
- "size_bytes": 3780
7
- },
8
- {
9
- "path": "runtime/business-client/package-lock.json",
10
- "sha256": "sha256:d5e7102ec51df3192ae901908f36cf0380aba5a0421b9824877403ab034d6740",
11
- "size_bytes": 381
12
- },
13
- {
14
- "path": "runtime/business-client/package.json",
15
- "sha256": "sha256:9e815ffe0487eb216447f4a4b31d248fe37392e08f0fd4bae2aba9c4f4285547",
16
- "size_bytes": 501
17
- },
18
- {
19
- "path": "runtime/business-client/src/catalog.js",
20
- "sha256": "sha256:8dcc4c4baff7f292a6fb09d6f82693b5ce7da16b9f0a9e03b22e1f18e893240f",
21
- "size_bytes": 53659
22
- },
23
- {
24
- "path": "runtime/business-client/src/cli.js",
25
- "sha256": "sha256:6ee4ed29a9df9f462502ccc0e10d5d9109bf00b52b8c27c9808730c7d8520592",
26
- "size_bytes": 44480
27
- },
28
- {
29
- "path": "runtime/business-client/src/config.js",
30
- "sha256": "sha256:4190e09c339a3f0b2861ca7dbc96fe2aa3bdd7927a5e1c4a4c00103a53236bd8",
31
- "size_bytes": 2186
32
- },
33
- {
34
- "path": "runtime/business-client/src/http.js",
35
- "sha256": "sha256:e515b39f19e7b5e7d6c2388e9cf2d8e2c9fd18b585bb53bd4f8eeeb7412af81c",
36
- "size_bytes": 15192
37
- },
38
- {
39
- "path": "skills/feature-management/SKILL.md",
40
- "sha256": "sha256:5b3ce57d84f11188579227dd42617075f87534ac113a3f37b3543c85c0ff0b3d",
41
- "size_bytes": 31114
42
- },
43
- {
44
- "path": "skills/feature-management/agents/openai.yaml",
45
- "sha256": "sha256:a4c69cb062dc52749f0c0c96ad2d16f91f83ecedb44f78dcf662ef220273f24d",
46
- "size_bytes": 325
47
- },
48
- {
49
- "path": "skills/feature-management/assets/catalog-template/catalog.json",
50
- "sha256": "sha256:b2bf887040479082d8f09e5d1027b5a98c7a02b14a784dbb170c29568f14304d",
51
- "size_bytes": 606
52
- },
53
- {
54
- "path": "skills/feature-management/assets/catalog-template/datasets/example_temperature_training.v1.json",
55
- "sha256": "sha256:4dbe304631d6ecbf60b19d7c5a377178e0593525362f5fe509c60622b99e8a46",
56
- "size_bytes": 900
57
- },
58
- {
59
- "path": "skills/feature-management/assets/catalog-template/feature_sets/example_temperature_core.v1.json",
60
- "sha256": "sha256:22f37b954200864c19ed5593ab8455f562cc3dee7e05a0b01d5856a163dc0660",
61
- "size_bytes": 352
62
- },
63
- {
64
- "path": "skills/feature-management/assets/catalog-template/features/example_temperature_mean_5m.v1.json",
65
- "sha256": "sha256:7e58fa9c6a5ef581866d5cae598682de73e5ef3ce49fdd630432bada3a8a41a1",
66
- "size_bytes": 807
67
- },
68
- {
69
- "path": "skills/feature-management/assets/catalog-template/operator_package/pyproject.toml",
70
- "sha256": "sha256:df8b4087cb20ecd86736fc69d013a665e7c3dfa7dab80ffbc23279158dae5451",
71
- "size_bytes": 295
72
- },
73
- {
74
- "path": "skills/feature-management/assets/catalog-template/operator_package/src/business_feature_operator_template/__init__.py",
75
- "sha256": "sha256:46a572cbd603299cb18692548480462208ec7b2696ba4f2fd90e1b15697e1a4b",
76
- "size_bytes": 1366
77
- },
78
- {
79
- "path": "skills/feature-management/assets/catalog-template/operator_package/tests/test_operator.py",
80
- "sha256": "sha256:6fe073e07ed57d0fb4e782150153556b97c5b873b9eb2dad45df0d7f522d8650",
81
- "size_bytes": 3678
82
- },
83
- {
84
- "path": "skills/feature-management/assets/catalog-template/operators/example_temperature_features.v1.json",
85
- "sha256": "sha256:646965a05b982ae291960b23f359403c69bf8a173d6cc65d706fb2dc53ab030b",
86
- "size_bytes": 1277
87
- },
88
- {
89
- "path": "skills/feature-management/assets/catalog-template/parameters/example_temperature.v1.json",
90
- "sha256": "sha256:28c7d3576c4b7e94c1e9db7f95f26d83ee2e10dc9f81ec6223f4fbd9b2f5eeda",
91
- "size_bytes": 1488
92
- },
93
- {
94
- "path": "skills/feature-management/references/commands.md",
95
- "sha256": "sha256:c748f1877f6d2ac1f6ecc29e45cd270997cbd35b498a190decddb66c74b840ab",
96
- "size_bytes": 13751
97
- },
98
- {
99
- "path": "skills/feature-management/references/contracts.md",
100
- "sha256": "sha256:d9ff95edb3ac50cb590df640c5034d45ddd5b758431a4ae2e69eb807bb659314",
101
- "size_bytes": 28449
102
- },
103
- {
104
- "path": "skills/feature-management/references/operator-authoring.md",
105
- "sha256": "sha256:2ecfccbc9fe771bc1103db679d67af78847307eeb440f680f4055c35405ac923",
106
- "size_bytes": 6089
107
- },
108
- {
109
- "path": "skills/feature-management/references/platform-capability-guide.md",
110
- "sha256": "sha256:6acb35f57e1bd6385702b6114e96c0ed1db34c9650d18658f74f212af9f91d14",
111
- "size_bytes": 4423
112
- },
113
- {
114
- "path": "skills/feature-management/references/supervised-datasets.md",
115
- "sha256": "sha256:2c7a894330a649248e7f52c944422bcd7a3aba4558f7984d129dfd21c8736cf3",
116
- "size_bytes": 4540
117
- },
118
- {
119
- "path": "skills/model-lifecycle-management/SKILL.md",
120
- "sha256": "sha256:98437e919b6d76822b2a3521713400b2c73ae42fbe5086f2e0b864aadd6cbf55",
121
- "size_bytes": 3464
122
- },
123
- {
124
- "path": "skills/model-lifecycle-management/agents/openai.yaml",
125
- "sha256": "sha256:37857849a8baa6b06b6d5d07ae6036080239356fcccd36f77bbdc52c1dfa283f",
126
- "size_bytes": 249
127
- },
128
- {
129
- "path": "skills/model-lifecycle-management/references/discovery.md",
130
- "sha256": "sha256:c87a9efacb1a18125bc1ee1b3061c5a9b876355e238aa5f7f17a985014413281",
131
- "size_bytes": 4899
132
- },
133
- {
134
- "path": "skills/model-lifecycle-management/references/evaluation.md",
135
- "sha256": "sha256:099fc54af2a1d8bed287f9e557cee8583558e594880235c32b89276b385cce90",
136
- "size_bytes": 8858
137
- },
138
- {
139
- "path": "skills/model-lifecycle-management/references/packaging.md",
140
- "sha256": "sha256:8435283061d740e57aafc90fa402cd89adcd8e2e957805b3d435ea4ba1f8721c",
141
- "size_bytes": 3142
142
- },
143
- {
144
- "path": "skills/model-lifecycle-management/references/training-contracts.md",
145
- "sha256": "sha256:1d1fa51ef7deb6abf178cf019eb69e8ee6a93ecb018029780f01a33696473dd6",
146
- "size_bytes": 8229
147
- },
148
- {
149
- "path": "skills/model-lifecycle-management/references/training.md",
150
- "sha256": "sha256:370d5e663292ce1bdcf0eb88c133c07a77f57dd31e21748906c92aa3407c4e95",
151
- "size_bytes": 4516
152
- }
153
- ],
154
- "schema_version": "data_platform.ml_platform_checksums/v1"
155
- }
package/release.json DELETED
@@ -1,52 +0,0 @@
1
- {
2
- "agent_adapters": [
3
- "codex-user",
4
- "codex-project",
5
- "explicit-skills-dir"
6
- ],
7
- "api_compatibility": {
8
- "contract": "current-unversioned",
9
- "health_check_required": true,
10
- "note": "The deployed API does not yet expose a machine-readable API version."
11
- },
12
- "cli": {
13
- "entrypoint": "src/cli.js",
14
- "name": "ml-platform",
15
- "path": "runtime/business-client",
16
- "sha256": "sha256:fb2ebe76ddba0ccfcd052741e8e290e25fc2897df7656d48267e82fe6be06d1c",
17
- "version": "0.7.0"
18
- },
19
- "policy_sha256": "sha256:02fbde0134696b78c0c365d6e0b76c9814227208da5b2b3d4e5dbd82dc4a3606",
20
- "public_schema_versions": [
21
- "ml_data_platform.catalog/v1",
22
- "ml_data_platform.parameter/v1",
23
- "ml_data_platform.operator/v1",
24
- "ml_data_platform.feature/v1",
25
- "ml_data_platform.feature_set/v1",
26
- "ml_data_platform.dataset_manifest/v1"
27
- ],
28
- "release_version": "0.1.9",
29
- "runtime_requirements": {
30
- "node": ">=18",
31
- "os": [
32
- "darwin",
33
- "linux"
34
- ]
35
- },
36
- "schema_version": "data_platform.ml_platform_release/v2",
37
- "skills": {
38
- "feature-management": {
39
- "path": "skills/feature-management",
40
- "requires_cli": ">=0.7.0 <0.8.0",
41
- "revision": "0.1.9",
42
- "sha256": "sha256:82a49a3f636d4e1a4b5adf28cbcab533168e3aa5fc3014f096149055e7745624"
43
- },
44
- "model-lifecycle-management": {
45
- "path": "skills/model-lifecycle-management",
46
- "requires_cli": ">=0.7.0 <0.8.0",
47
- "revision": "0.1.9",
48
- "sha256": "sha256:b84505ee632967d019e97f89292c0041f8b722bd320e7d68d170e41131edaff7"
49
- }
50
- },
51
- "source_commit": "5f855cd27f7951b739424704ea7dc15d714aeb5d"
52
- }
@@ -1,78 +0,0 @@
1
- # Business Client JS
2
-
3
- 工业时序智能建模平台唯一受支持的业务 CLI 与 API client 实现。客户端合同由平台
4
- OpenAPI 快照、JavaScript 单元测试和 npm 发布测试直接验证;
5
- 本目录是业务 CLI 的唯一 JavaScript 实现源码,Skill 通过外部 `ml-platform` 命令调用它,
6
- 不复制或内嵌本目录的 runtime。
7
-
8
- ```bash
9
- npm test --prefix business-client-js
10
- node business-client-js/src/cli.js --help
11
- ```
12
-
13
- 当前包保持 `private: true`,用于独立开发、测试和迁移验证,不作为第二个正式 npm 产品发布。
14
- 正式 npm 封装阶段会把这份源码作为 `@zhuoyuezs/ml-platform` 的唯一 CLI runtime,并继续只暴露
15
- `ml-platform` 命令。
16
-
17
- 已注册 Dataset 的 API-first 流程不依赖本地 Catalog:
18
-
19
- ```bash
20
- ml-platform list-datasets --project <project>
21
- ml-platform get-dataset <dataset_id> <dataset_version> --project <project>
22
- ml-platform resolve-dataset <dataset_id> <dataset_version> --project <project>
23
- ml-platform build-registered-dataset <dataset_id> <dataset_version> \
24
- --project <project> --wait
25
- ```
26
-
27
- `resolve-manifest` 和 `build-dataset <manifest.json>` 仍用于尚未注册的本地契约。Catalog
28
- normalizer 保留并校验非默认 `project`;`apply --project` 与 Catalog 内项目不一致时拒绝执行。
29
-
30
- Registry 资产详情和版本发现使用与 `dev` OpenAPI 一致的命令:
31
-
32
- ```bash
33
- ml-platform get-parameter <name> <version> --project <project>
34
- ml-platform get-feature <name> <version> --project <project>
35
- ml-platform list-feature-versions <name> --project <project> --all
36
- ml-platform list-jobs --project <project> --status succeeded --all
37
- ```
38
-
39
- 平台资源生命周期与部署绑定的因果上下文读取也由同一 CLI 覆盖:
40
-
41
- ```bash
42
- ml-platform list-parameter-references <name> <version> --project <project>
43
- ml-platform get-parameter-lifecycle <name> <version> --project <project>
44
- ml-platform fetch-inference-context /absolute/path/to/request.json
45
- ```
46
-
47
- Parameter、Feature、FeatureSet 的删除命令执行软删除,并支持带 actor、reason 和幂等键的
48
- 恢复;调用方应在任何变更前查询直接与传递引用。
49
-
50
- 仓库中的 `api-spec/latest.json` 从 `origin/dev` 生成。同步或验证契约时运行:
51
-
52
- ```bash
53
- uv run python scripts/generate_openapi_schema.py --ref origin/dev
54
- uv run python scripts/generate_openapi_schema.py --ref origin/dev --check
55
- npm run api:check --prefix business-client-js
56
- ```
57
-
58
- ## Lifecycle discovery and preflight
59
-
60
- Use `get-model-runtime-release` to inspect approved trainer/device/image bindings
61
- and the effective evaluation identity. Find immutable resources with
62
- `list-training-runs`, `list-training-jobs`, `list-model-artifacts`,
63
- `list-evaluation-configs`, `list-evaluation-runs`, `list-evaluation-jobs`,
64
- `list-metric-definitions`, `list-executable-packages`, and `list-model-packages`.
65
- These commands accept `-q`, `--limit` (1–500), and `--offset`; responses contain
66
- `items`, `total`, `limit`, `offset`. Query matches serialized metadata substrings.
67
- Use the returned exact IDs with detail commands; Job lists contain immutable
68
- specs, while Job detail refreshes status.
69
-
70
- `validate-training-job REQUEST_JSON` and `validate-model-package REQUEST_JSON`
71
- resolve the same contracts as submission without registering or scheduling
72
- workloads. Read `submitted=false` and `unchecked`: successful preflight does not
73
- verify image pulls, cluster resources or runtime execution. Complete request
74
- examples and identity propagation are in the bundled model lifecycle Skill.
75
-
76
- Maintainers can export the current API, including uncommitted schema changes,
77
- with `uv run python scripts/generate_openapi_schema.py --working-tree` from the
78
- repository root; use `--check` with it to verify the committed snapshot.
@@ -1,19 +0,0 @@
1
- {
2
- "name": "@zhuoyuezs/ml-platform-business-client",
3
- "version": "0.7.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "@zhuoyuezs/ml-platform-business-client",
9
- "version": "0.7.0",
10
- "license": "UNLICENSED",
11
- "bin": {
12
- "ml-platform": "src/cli.js"
13
- },
14
- "engines": {
15
- "node": ">=18"
16
- }
17
- }
18
- }
19
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "@zhuoyuezs/ml-platform-business-client",
3
- "version": "0.7.0",
4
- "private": true,
5
- "description": "JavaScript implementation of the ML Platform business client",
6
- "bin": {
7
- "ml-platform": "src/cli.js"
8
- },
9
- "files": [
10
- "src",
11
- "README.md"
12
- ],
13
- "scripts": {
14
- "test": "node --test test/*.test.js",
15
- "api:check": "node ../scripts/check_api_contract.js",
16
- "pack": "npm pack"
17
- },
18
- "engines": {
19
- "node": ">=18"
20
- },
21
- "license": "UNLICENSED",
22
- "dependencies": {}
23
- }