@zhuoyuezs/ml-platform 0.1.0

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 (29) hide show
  1. package/DEVELOPMENT.md +189 -0
  2. package/README.md +103 -0
  3. package/checksums.json +110 -0
  4. package/package.json +29 -0
  5. package/release-policy.json +31 -0
  6. package/release.json +42 -0
  7. package/runtime/business-client/README.md +14 -0
  8. package/runtime/business-client/package-lock.json +19 -0
  9. package/runtime/business-client/package.json +21 -0
  10. package/runtime/business-client/src/catalog.js +184 -0
  11. package/runtime/business-client/src/cli.js +225 -0
  12. package/runtime/business-client/src/config.js +52 -0
  13. package/runtime/business-client/src/http.js +137 -0
  14. package/scripts/lib.js +819 -0
  15. package/scripts/main.js +92 -0
  16. package/skills/feature-management/SKILL.md +265 -0
  17. package/skills/feature-management/agents/openai.yaml +4 -0
  18. package/skills/feature-management/assets/catalog-template/catalog.json +23 -0
  19. package/skills/feature-management/assets/catalog-template/datasets/example_temperature_training.v1.json +24 -0
  20. package/skills/feature-management/assets/catalog-template/feature_sets/example_temperature_core.v1.json +13 -0
  21. package/skills/feature-management/assets/catalog-template/features/example_temperature_mean_5m.v1.json +21 -0
  22. package/skills/feature-management/assets/catalog-template/operator_package/pyproject.toml +12 -0
  23. package/skills/feature-management/assets/catalog-template/operator_package/src/business_feature_operator_template/__init__.py +39 -0
  24. package/skills/feature-management/assets/catalog-template/operator_package/tests/test_operator.py +56 -0
  25. package/skills/feature-management/assets/catalog-template/operators/example_temperature_features.v1.json +43 -0
  26. package/skills/feature-management/assets/catalog-template/parameters/example_temperature.v1.json +57 -0
  27. package/skills/feature-management/references/commands.md +244 -0
  28. package/skills/feature-management/references/contracts.md +682 -0
  29. package/skills/feature-management/references/operator-authoring.md +167 -0
package/DEVELOPMENT.md ADDED
@@ -0,0 +1,189 @@
1
+ # ML Platform 开发指南
2
+
3
+ 本文定义 `@zhuoyuezs/ml-platform` 的 npm v2 架构、实施状态和完成标准。
4
+
5
+ ## 1. 已确定的架构决策
6
+
7
+ - npm 是 CLI 与 Skill 的唯一正式分发和安装边界。
8
+ - 不支持裸 Skill 目录或 ZIP 作为正式交付渠道。
9
+ - Business CLI 与 Skill 是并列组件;CLI 不属于 Skill。
10
+ - Skill 直接调用正式命令 `ml-platform`,不嵌入 CLI runtime。
11
+ - 正式 npm 包只有 `@zhuoyuezs/ml-platform`,正式 bin 只有 `ml-platform`。
12
+ - `business-client-js/` 是 CLI 唯一源码,`skills/feature-management/` 是 Skill 唯一源码。
13
+ - `npx @zhuoyuezs/ml-platform@<version> install` 是统一安装入口。
14
+ - npm `postinstall` 不得修改 Agent Skills 目录。
15
+ - Python business client 只保留为迁移 oracle,不进入 release。
16
+ - Codex CLI 不重新打包;当前只支持唯一自研 Host。
17
+
18
+ ## 2. 源码与归档
19
+
20
+ 源码:
21
+
22
+ ```text
23
+ business-client-js/
24
+ skills/feature-management/
25
+ npm/ml-platform/
26
+ npm/scripts/build_ml_platform_release.py
27
+ agent_poc/codex-host/
28
+ ```
29
+
30
+ 归档:
31
+
32
+ ```text
33
+ package/
34
+ ├── package.json
35
+ ├── scripts/
36
+ │ ├── main.js
37
+ │ └── lib.js
38
+ ├── runtime/business-client/
39
+ ├── skills/feature-management/
40
+ ├── release.json
41
+ ├── checksums.json
42
+ ├── README.md
43
+ └── DEVELOPMENT.md
44
+ ```
45
+
46
+ 严格 `files` allowlist 必须排除 `node_modules`、测试 oracle、旧 wheel、Skill runtime、旧 wrapper、
47
+ Host 副本、日志、会话数据、attic、凭证和实验文件。
48
+
49
+ ## 3. Step-by-step 实施计划
50
+
51
+ 每一步单独实现、补测试并验收;上一阶段未通过时不进入下一阶段。
52
+
53
+ ### Step 1:完成 business-client-js 迁移(已完成)
54
+
55
+ - 补齐全部 Python CLI 命令和参数契约;
56
+ - 对齐 JSON stdout、stderr 和退出码;
57
+ - 补齐数值参数、子命令 help、路径展开和 HTTP 错误测试;
58
+ - 扩大 Catalog normalization differential tests;
59
+ - 完成 Job、Artifact、inference 和 Operator upload 负向测试;
60
+ - 删除正式运行路径中的旧产品名兼容;
61
+ - 独立执行 `npm pack --dry-run`、clean install 和 CLI smoke test。
62
+
63
+ 完成标准:Python 只剩 oracle 作用,正式 CLI 不需要 Python、`uv` 或第三方 npm runtime 依赖。
64
+
65
+ ### Step 2:重建纯 feature-management Skill(已完成)
66
+
67
+ - 保留 `SKILL.md`、`agents/`、`references/` 和 `assets/catalog-template/`;
68
+ - 删除 `runtime/business-client-js/`、`assets/wheels/`、Skill installer 和 CLI launcher;
69
+ - 所有命令示例改为直接调用 `ml-platform`;
70
+ - 明确 CLI 是外部 prerequisite,并提供 `ml-platform --help` 自省路径;
71
+ - 更新 `agents/openai.yaml`;
72
+ - 在隔离临时目录把已验收的本地 business CLI 暴露为 `ml-platform`,不依赖最终 npm 安装器;
73
+ - 运行 Skill 结构校验和真实任务 forward tests。
74
+
75
+ 完成标准:Skill tree 中没有 business CLI 或安装逻辑,Agent 在存在匹配 CLI 时能完成只读工作流。
76
+
77
+ ### Step 3:固定 npm v2 安装契约(已完成)
78
+
79
+ 只有 Step 1 和 Step 2 都完成后,才开始 npm dispatcher/installer:
80
+
81
+ - 定义 `release.json` v2 和 `checksums.json` 覆盖范围;
82
+ - 确定 `runtime/business-client` 与 `skills/feature-management` 并列目录;
83
+ - 定义 `ml-platform` 安装管理命令和业务命令的无歧义分发;
84
+ - 定义 `npx ... install` 如何建立持久 CLI,禁止引用一次性 npx cache;
85
+ - 定义 CLI home、shim、PATH 检查和跨平台失败行为;
86
+ - 定义 ownership、安装记录、upgrade、downgrade 和 rollback;
87
+ - 先写聚焦测试,再修改当前安装器。
88
+
89
+ 完成标准:测试能够证明新安装器在删除 npx cache 和新 shell 环境中仍可解析 `ml-platform`。
90
+
91
+ ### Step 4:重构 release builder(已完成)
92
+
93
+ - 从 `business-client-js` 复制唯一 client tree 到 `runtime/business-client`;
94
+ - 从 canonical Skill 复制纯 Skill 到 `skills/feature-management`;
95
+ - 生成 release v2 和 checksums;
96
+ - 拒绝多份 client、Skill runtime、旧 wheel 和未知文件;
97
+ - 执行 npm package allowlist 和可重现 digest 检查;
98
+ - 不修改 canonical source 或 `dist/package` 之外的生成目录。
99
+
100
+ 完成标准:最终 npm archive 只有一份 CLI tree,Skill tree 与 canonical source 字节级一致。
101
+
102
+ ### Step 5:重构顶层 CLI 与安装器(已完成)
103
+
104
+ - `install/upgrade/status/doctor` 进入 installer;
105
+ - 全部业务命令进入同一 business client;
106
+ - 未知命令和参数返回结构化非零错误;
107
+ - 安装事务支持 staging、lock、ownership 和 rollback;
108
+ - `status` 报告 CLI release、Skill revision、scope 和路径;
109
+ - `doctor` 校验 package、CLI、Skill、record、PATH 和可选 API health;
110
+ - 禁止隐式降级和覆盖非本包管理的 Skill。
111
+
112
+ 完成标准:install、幂等、upgrade、downgrade、rollback、篡改和锁竞争测试全部通过。
113
+
114
+ ### Step 6:Agent Host(当前不在范围内)
115
+
116
+ 当前阶段不修改或打包 Agent Host。`@zhuoyuezs/ml-platform` builder 只产出 Skill + CLI 主包;Host
117
+ 需要后续明确需求后再单独设计和验收。
118
+
119
+ ### Step 7:Skill + CLI 端到端发布验收(已完成)
120
+
121
+ - `git diff --check -- npm business-client-js skills/feature-management agent_poc/codex-host`;
122
+ - JS business-client tests;
123
+ - Python oracle tests;
124
+ - Skill validator 和 forward tests;
125
+ - npm installer tests;
126
+ - release builder;
127
+ - `npm pack --dry-run`;
128
+ - `.tgz.sha256`;
129
+ - clean npx install,删除 npx cache 后重测;
130
+ - `status`、`doctor` 和只读业务命令;
131
+ - Codex project/user scope 和显式 Skills 目录;
132
+ - 最终归档敏感文件和重复 client 检查。
133
+
134
+ 完成标准:同一个不可变 `.tgz` 通过全部验收。仍不执行 npmjs 或其他外部发布。
135
+
136
+ ## 4. package.json
137
+
138
+ ```json
139
+ {
140
+ "name": "@zhuoyuezs/ml-platform",
141
+ "version": "0.1.0",
142
+ "bin": {
143
+ "ml-platform": "scripts/main.js"
144
+ },
145
+ "files": [
146
+ "scripts",
147
+ "runtime",
148
+ "skills",
149
+ "release.json",
150
+ "checksums.json",
151
+ "README.md",
152
+ "DEVELOPMENT.md"
153
+ ],
154
+ "engines": {
155
+ "node": ">=18"
156
+ },
157
+ "license": "UNLICENSED",
158
+ "publishConfig": {
159
+ "access": "public",
160
+ "registry": "https://registry.npmjs.org/"
161
+ }
162
+ }
163
+ ```
164
+
165
+ 不得配置用于安装 Skills 的 `postinstall`。
166
+
167
+ ## 5. Release v2 约束
168
+
169
+ release manifest 必须记录:
170
+
171
+ - ML Platform release version;
172
+ - source commit;
173
+ - CLI name、version、path、entrypoint 和 tree digest;
174
+ - Skill revision、path、CLI compatibility range 和 tree digest;
175
+ - Agent adapters;
176
+ - Node.js 要求和 API compatibility contract;
177
+ - 不参与组件 digest 的生成时间。
178
+
179
+ `checksums.json` 覆盖 `runtime/` 和 `skills/` 全部文件,按路径排序并使用 canonical JSON。
180
+
181
+ ## 6. 安全与发布限制
182
+
183
+ - 不将凭证写入 npm 包、Skill、安装记录或测试 fixture;
184
+ - 不在安装时访问或修改 ML Platform Registry;
185
+ - 远程验收只执行获批的只读命令;
186
+ - 不发布模型训练、模型服务、Kubernetes 或平台服务端;
187
+ - 正式 npm 发布必须从 builder 生成的 `dist/package/` 执行 `npm publish --access public`;
188
+ - 不执行 GitHub Release 或其他未授权的外部发布;
189
+ - candidate 验证后不得用相同版本重新构建不同内容。
package/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # ML Platform
2
+
3
+ `@zhuoyuezs/ml-platform` 通过一个 npm 产品提供 JavaScript business CLI 和
4
+ `feature-management` Agent Skill。
5
+
6
+ 正式包名和命令固定为:
7
+
8
+ ```text
9
+ package: @zhuoyuezs/ml-platform
10
+ bin: ml-platform
11
+ ```
12
+
13
+ > 当前状态:`0.1.0` release candidate 已实现 release v2 的外部 CLI + 纯 Skill 架构,并通过
14
+ > 干净安装、cache 删除、`status`、`doctor` 和摘要验证。当前范围仅包含 Skill + CLI,不打包
15
+ > Agent Host。正式发布必须从 `dist/package/` 执行 `npm publish`。
16
+
17
+ ## 组件关系
18
+
19
+ ```text
20
+ 开发人员 / CI
21
+ -> ml-platform CLI
22
+ -> ML Platform API
23
+
24
+ Codex / ml-platform-host
25
+ -> feature-management Skill
26
+ -> ml-platform CLI
27
+ -> ML Platform API
28
+ ```
29
+
30
+ - CLI 可以独立运行,不依赖 Skill。
31
+ - Skill 负责工作流程、业务契约和安全边界,直接调用 `ml-platform`。
32
+ - npm release 同时固定 CLI version 和 Skill revision。
33
+ - Skill 不再携带 business CLI、Python wheel、bootstrap 或安装器。
34
+ - Codex CLI 和唯一自研 Host 是并行入口,都不进入本 npm 包。
35
+
36
+ ## 包结构
37
+
38
+ ```text
39
+ @zhuoyuezs/ml-platform/
40
+ ├── package.json
41
+ ├── scripts/
42
+ ├── runtime/business-client/
43
+ ├── skills/feature-management/
44
+ ├── release.json
45
+ ├── checksums.json
46
+ ├── README.md
47
+ └── DEVELOPMENT.md
48
+ ```
49
+
50
+ 归档中只有 `runtime/business-client/` 一份 business CLI。`skills/feature-management/` 是纯
51
+ Skill,与 CLI 并列。
52
+
53
+ ## 安装体验
54
+
55
+ 参考飞书 CLI,正式入口使用显式版本化 npx 命令:
56
+
57
+ ```bash
58
+ npx @zhuoyuezs/ml-platform@<version> install \
59
+ --agent codex \
60
+ --scope project \
61
+ --project-dir /absolute/path/to/project
62
+ ```
63
+
64
+ 安装命令必须建立可持续使用的 `ml-platform` 命令,再把纯 Skill 安装到目标 Agent 目录。它不能
65
+ 依赖一次性 npx cache,也不能通过 npm `postinstall` 修改用户 Skills。
66
+
67
+ 默认 runtime 位于 `~/.local/share/ml-platform/current/`,shim 位于
68
+ `~/.local/bin/ml-platform`。安装结果中的 `path_ready` 和 `path_setup` 会说明是否还需把 bin
69
+ 目录加入 PATH。隔离测试可显式传入 `--state-dir` 和 `--bin-dir`。
70
+
71
+ 安装后:
72
+
73
+ ```bash
74
+ ml-platform version
75
+ ml-platform status --agent codex --scope project --project-dir /absolute/path/to/project
76
+ ml-platform doctor --agent codex --scope project --project-dir /absolute/path/to/project
77
+
78
+ ml-platform configure --api-url http://<approved-host>:<port>
79
+ ml-platform health
80
+ ```
81
+
82
+ ## Canonical Source
83
+
84
+ ```text
85
+ business-client-js/ JavaScript CLI 唯一源码
86
+ skills/feature-management/ Skill 唯一源码
87
+ npm/ml-platform/ npm dispatcher 与 installer 唯一源码
88
+ npm/scripts/build_ml_platform_release.py
89
+ agent_poc/codex-host/ 唯一自研 Host
90
+ ```
91
+
92
+ 不要修改 `dist/`、临时安装目录或 Agent Skills 安装副本。Python `business-client/` 只保留为迁移
93
+ oracle,不进入 npm release。
94
+
95
+ ## 当前开发状态
96
+
97
+ 1. `business-client-js` parity 与纯 `feature-management` Skill 已完成并独立验收。
98
+ 2. npm v2 builder、dispatcher、持久 installer、ownership、digest 与回滚已完成。
99
+ 3. 新的本地 `.tgz`、`.tgz.sha256` 和 Codex project clean install smoke 已通过。
100
+ 4. Agent Host 当前不在本包构建范围内;后续需明确需求后单独推进。
101
+
102
+ 完整约束见 [DEVELOPMENT.md](DEVELOPMENT.md) 和
103
+ [`npm/docs/AGENT_SKILL_CLI_PACKAGING_ARCHITECTURE.md`](../docs/AGENT_SKILL_CLI_PACKAGING_ARCHITECTURE.md)。
package/checksums.json ADDED
@@ -0,0 +1,110 @@
1
+ {
2
+ "files": [
3
+ {
4
+ "path": "runtime/business-client/README.md",
5
+ "sha256": "sha256:165a2bd2bb51b61e0967b0b75fb51840b18e825fcf3198c7eee73cc74565ae5d",
6
+ "size_bytes": 637
7
+ },
8
+ {
9
+ "path": "runtime/business-client/package-lock.json",
10
+ "sha256": "sha256:d35849fa8c24520e4a33e18aa0366fb8d453a5df55516b45e9561db5e18cbedd",
11
+ "size_bytes": 381
12
+ },
13
+ {
14
+ "path": "runtime/business-client/package.json",
15
+ "sha256": "sha256:990c111ce4d345c660ec1136b81ac71f161217abf7716358d64bc8e1ac979c15",
16
+ "size_bytes": 426
17
+ },
18
+ {
19
+ "path": "runtime/business-client/src/catalog.js",
20
+ "sha256": "sha256:33b5da9f4b7fc200b1c5cee38d18fcec56bb2b2b022a473d8f8f47441ea2fb7b",
21
+ "size_bytes": 51193
22
+ },
23
+ {
24
+ "path": "runtime/business-client/src/cli.js",
25
+ "sha256": "sha256:0e344399795bb0c7804c057b6063f7e6d3720a7f4fe0cf8400fa362d62d03f56",
26
+ "size_bytes": 15765
27
+ },
28
+ {
29
+ "path": "runtime/business-client/src/config.js",
30
+ "sha256": "sha256:81022c2fc2a21cac8a12fd2c93b5defa18665a4d4a583a86e9eb54587650f47b",
31
+ "size_bytes": 1960
32
+ },
33
+ {
34
+ "path": "runtime/business-client/src/http.js",
35
+ "sha256": "sha256:0744596f8ae0beb60f317c06eccd87f3d5d0dc0ccba15668432a7a47c692aec9",
36
+ "size_bytes": 9450
37
+ },
38
+ {
39
+ "path": "skills/feature-management/SKILL.md",
40
+ "sha256": "sha256:5a5c935296b245a0f480dce967d122ff1085d543831b8ce6077e4959f658f5e4",
41
+ "size_bytes": 17823
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:c4b4c811cd7dc90ba014e3be0b38fdc357bc83c224e5df614ab9168ce7fbcc0c",
56
+ "size_bytes": 562
57
+ },
58
+ {
59
+ "path": "skills/feature-management/assets/catalog-template/feature_sets/example_temperature_core.v1.json",
60
+ "sha256": "sha256:bca7e24927d8aef2fc7f48df327bf56a25c77591332b97b0d2a548708126ec88",
61
+ "size_bytes": 315
62
+ },
63
+ {
64
+ "path": "skills/feature-management/assets/catalog-template/features/example_temperature_mean_5m.v1.json",
65
+ "sha256": "sha256:36eb3878125e337bf2afced7b363c56833266a529ce311fffd8f8b146f361739",
66
+ "size_bytes": 572
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:b758f343225365cf8361ae6c7a7e130502d339cc4ffe2be13d75c728ce9ec71a",
81
+ "size_bytes": 1842
82
+ },
83
+ {
84
+ "path": "skills/feature-management/assets/catalog-template/operators/example_temperature_features.v1.json",
85
+ "sha256": "sha256:5d188372b2c7721c95bd91bdaa871368fca1ce5d43965db22494ee8c895fa516",
86
+ "size_bytes": 916
87
+ },
88
+ {
89
+ "path": "skills/feature-management/assets/catalog-template/parameters/example_temperature.v1.json",
90
+ "sha256": "sha256:df65f46f67b320d7edf940c8f11d153f0869ecfc52fc4336f31358f6ecc7783d",
91
+ "size_bytes": 1451
92
+ },
93
+ {
94
+ "path": "skills/feature-management/references/commands.md",
95
+ "sha256": "sha256:4840af5c181ee3b9596548686f2eca2ca7a4acfcd6adcd9afa01f447187ea659",
96
+ "size_bytes": 8812
97
+ },
98
+ {
99
+ "path": "skills/feature-management/references/contracts.md",
100
+ "sha256": "sha256:b15cf8e0379c9ac2d0ecbc70a63635472da91956c3917318593cd5dc1f93695a",
101
+ "size_bytes": 26166
102
+ },
103
+ {
104
+ "path": "skills/feature-management/references/operator-authoring.md",
105
+ "sha256": "sha256:c2afb155a1c3379935f70fe0b68c1918a58a790ee470bea2b7516f54502c6ca0",
106
+ "size_bytes": 5510
107
+ }
108
+ ],
109
+ "schema_version": "data_platform.ml_platform_checksums/v1"
110
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@zhuoyuezs/ml-platform",
3
+ "version": "0.1.0",
4
+ "description": "ML 数据平台 business CLI 与 Agent Skills 管理工具",
5
+ "bin": {
6
+ "ml-platform": "scripts/main.js"
7
+ },
8
+ "files": [
9
+ "scripts",
10
+ "runtime",
11
+ "skills",
12
+ "release-policy.json",
13
+ "release.json",
14
+ "checksums.json",
15
+ "README.md",
16
+ "DEVELOPMENT.md"
17
+ ],
18
+ "scripts": {
19
+ "test": "node --test test/*.test.js"
20
+ },
21
+ "engines": {
22
+ "node": ">=18"
23
+ },
24
+ "license": "UNLICENSED",
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "registry": "https://registry.npmjs.org/"
28
+ }
29
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "schema_version": "data_platform.ml_platform_release_policy/v1",
3
+ "forbidden_directories": [
4
+ ".git",
5
+ "__pycache__",
6
+ "attic",
7
+ "dist",
8
+ "node_modules",
9
+ "runtime",
10
+ "sessions",
11
+ "tmp"
12
+ ],
13
+ "forbidden_files": [
14
+ ".DS_Store",
15
+ ".env",
16
+ ".netrc",
17
+ ".npmrc",
18
+ "credentials.json",
19
+ "runtime.json",
20
+ "token.json"
21
+ ],
22
+ "forbidden_suffixes": [
23
+ ".key",
24
+ ".log",
25
+ ".pem",
26
+ ".pyc",
27
+ ".sqlite",
28
+ ".sqlite3",
29
+ ".whl"
30
+ ]
31
+ }
package/release.json ADDED
@@ -0,0 +1,42 @@
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:6a43efb51ba1f878b11537d63e79c04cb798e7f456cb29f87fd0aac742794fdd",
17
+ "version": "0.5.0"
18
+ },
19
+ "policy_sha256": "sha256:fe4d32b6b7b955061a93731eb25eca1727af6c2b9db79339b5e1fd55f6a2ada4",
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.0",
29
+ "runtime_requirements": {
30
+ "node": ">=18"
31
+ },
32
+ "schema_version": "data_platform.ml_platform_release/v2",
33
+ "skills": {
34
+ "feature-management": {
35
+ "path": "skills/feature-management",
36
+ "requires_cli": ">=0.5.0 <0.6.0",
37
+ "revision": "0.1.0",
38
+ "sha256": "sha256:f7c2ba836338602f6f01ebec18b595a366f5dd1bcbfcb58e249cda5c10bd61dd"
39
+ }
40
+ },
41
+ "source_commit": "0a124d08d6d35f07b6bd90bb37fd81ff0f698ab7"
42
+ }
@@ -0,0 +1,14 @@
1
+ # Business Client JS
2
+
3
+ `business-client/` 的 JavaScript 迁移实现。Python client 目前仅作为迁移期 parity oracle;
4
+ 本目录是业务 CLI 的唯一 JavaScript 实现源码,Skill 通过外部 `ml-platform` 命令调用它,
5
+ 不复制或内嵌本目录的 runtime。
6
+
7
+ ```bash
8
+ npm test --prefix business-client-js
9
+ node business-client-js/src/cli.js --help
10
+ ```
11
+
12
+ 当前包保持 `private: true`,用于独立开发、测试和迁移验证,不作为第二个正式 npm 产品发布。
13
+ 正式 npm 封装阶段会把这份源码作为 `@zhuoyuezs/ml-platform` 的唯一 CLI runtime,并继续只暴露
14
+ `ml-platform` 命令。
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@zhuoyuezs/ml-platform-business-client",
3
+ "version": "0.5.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "@zhuoyuezs/ml-platform-business-client",
9
+ "version": "0.5.0",
10
+ "license": "UNLICENSED",
11
+ "bin": {
12
+ "ml-platform": "src/cli.js"
13
+ },
14
+ "engines": {
15
+ "node": ">=18"
16
+ }
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@zhuoyuezs/ml-platform-business-client",
3
+ "version": "0.5.0",
4
+ "private": true,
5
+ "description": "JavaScript parity 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
+ },
16
+ "engines": {
17
+ "node": ">=18"
18
+ },
19
+ "license": "UNLICENSED",
20
+ "dependencies": {}
21
+ }