@easytwin/devkit 0.1.2 → 0.1.4

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
@@ -1,79 +1,78 @@
1
- # @easytwin/devkit
2
-
3
- EasyTwin 第三方应用开发工具集的核心包:lib(函数库)与 bin(`easytwin` 命令)双导出,供人类与 AI agent(如 Cursor / Claude Code / Codex)共同使用。设计蓝图见仓库根 `AGENTS.md`。
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm i -g @easytwin/devkit # 全局安装 CLI
9
- ```
10
-
11
- 也可作为库安装:`npm i @easytwin/devkit`。
12
-
13
- ## 命令
14
-
15
- | 命令 | 行为 |
16
- | --- | --- |
17
- | `easytwin init` | 交互式生成 `easytwin.config.json`,并追加进 `.gitignore`(无则创建) |
18
- | `easytwin scene list` | 列出凭据可见的场景,并把摘要写入 `easytwin.config.json.scenes` |
19
- | `easytwin scene pull <id> [--out <path>]` | 拉取场景 JSON 到本地 |
20
- | `easytwin upload <dir>` | 全量覆盖上传目录 |
21
- | `easytwin skills sync [--target cursor\|claude\|codex\|all]` | 同步 skills 到用户项目,缺省 all |
22
-
23
- ## 配置
24
-
25
- 项目根 `easytwin.config.json`:
26
-
27
- ```json
28
- {
29
- "appId": "必填",
30
- "appSecret": "必填",
31
- "env": "可选,prod=正式 / test=测试,缺省 prod",
32
- "baseUrl": "可选,缺省按 env 选官方域名",
33
- "ossUrl": "可选,缺省官方 OSS",
34
- "opAccountId": "可选,过渡期网关头;env=test 缺省 25",
35
- "opUserId": "可选,过渡期网关头;env=test 缺省 25",
36
- "spaceId": "可选,过渡期网关头;env=test 缺省 54",
37
- "scenes": "可选,由 scene list 写入的场景摘要"
38
- }
39
- ```
40
-
41
- 环境变量 `EASYTWIN_APP_ID` / `EASYTWIN_APP_SECRET` / `EASYTWIN_BASE_URL` / `EASYTWIN_ENV` / `EASYTWIN_OSS_URL` 优先于文件。当前测试 API 另需 `EASYTWIN_OP_ACCOUNT_ID` / `EASYTWIN_OP_USER_ID` / `EASYTWIN_SPACE_ID`(OP 网关头,免网关接口到位后删除)。官方 API:正式 `http://saas-twin.k8s.dtstack.cn/`、测试 `http://172.16.125.3:10100/`,缺省按 env 选择。官方 OSS:`https://dt-easyv-test.oss-cn-hangzhou.aliyuncs.com/`,供 twin runtime 加载 webp/draco/组件脚本。文件含密钥,永不入库(`init` 会处理 gitignore)。
42
-
43
- ## skills
44
-
45
- 六件套(`easytwin-render` / `-core` / `-develop` / `-bootstrap` / `-scene` / `-upload`)随包分发,通过 `easytwin skills sync` 显式写入 Cursor(`.cursor/skills/`)、Claude Code(`.claude/skills/`)与 Codex(`AGENTS.md` 标记段),重复执行幂等。
46
-
47
- ## 发布到 npm
48
-
49
- ```bash
50
- # 1. 登录(写入 ~/.npmrc 的 npmjs token;CI 用 NPM_TOKEN 环境变量)
51
- npm login --registry https://registry.npmjs.org/
52
-
53
- # 2. 确认发布产物应包含 dist/ 与 skills/
54
- npm pack --dry-run
55
-
56
- # 3. 升版本
57
- npm version patch|minor|major
58
-
59
- # 4. 发布(必须先升版本:同版本已在 npm 上会被跳过,提示 There are no new packages that should be published)
60
- # 在仓库根目录用 run,不要直接 pnpm publish(那是工作区递归发布内置命令)
61
- pnpm run publish
62
- ```
63
-
64
- - scoped 包需 publishConfig.access public,已配置;
65
- - 本机默认 registry npmmirror,publishConfig.registry 已固定为官方 npmjs;
66
- - 包名是否被占用可用 npm view @easytwin/devkit 确认;
67
- - repository 目前指向内网 GitLab,公网发布前建议改为公开地址(可选)。
68
-
69
- ## 开发
70
-
71
- ```bash
72
- pnpm install
73
- pnpm -r build
74
- pnpm -r test
75
- ```
76
-
77
- ## 已知外部输入(TODO)
78
-
79
- 渲染 API 文档与 d.ts 仍未到位,skills 中以 `TODO(外部输入)` 标记,不臆造。场景列表/拉取与工作区代码上传已按内部 swagger(SDK 应用场景 / SDK 应用代码)落地;官方 API 域名、官方 OSS 与场景 JSON 格式已定(见上)。
1
+ # @easytwin/devkit
2
+
3
+ EasyTwin 第三方应用开发工具集的核心包:lib(函数库)与 bin(`easytwin` 命令)双导出,供人类与 AI agent(如 Cursor / Claude Code / Codex)共同使用。设计蓝图见仓库根 `AGENTS.md`。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm i -g @easytwin/devkit # 全局安装 CLI
9
+ ```
10
+
11
+ 也可作为库安装:`npm i @easytwin/devkit`。
12
+
13
+ ## 命令
14
+
15
+ | 命令 | 行为 |
16
+ | --- | --- |
17
+ | `easytwin init` | 交互式生成 `.easytwin/easytwin.config.json`,并将凭据与 `.easytwin/scenes/` 追加进 `.gitignore`(无则创建) |
18
+ | `easytwin scene list` | 列出凭据可见的场景,并把摘要写入 `.easytwin/easytwin.config.json.scenes` |
19
+ | `easytwin scene pull <id> [--out <path>]` | 拉取场景 JSON:写入 `.easytwin/scenes/<id>.scene.json`;`--out` 再额外写一份 |
20
+ | `easytwin scene inspect <id> [--name] [--type]` | 只读本地快照,打印对象树(id/name/type);超过 200 节点截断 |
21
+ | `easytwin upload [dir]` | 对照远端全量对齐工作区(缺省 cwd;跳过插件产物) |
22
+ | `easytwin skills sync [--target cursor\|claude\|codex\|all]` | 同步 skills 到用户项目,缺省 all |
23
+
24
+ ## 配置
25
+
26
+ `.easytwin/easytwin.config.json`(项目级):
27
+
28
+ ```json
29
+ {
30
+ "appId": "必填",
31
+ "appSecret": "必填",
32
+ "env": "可选,prod=正式 / test=测试,缺省 prod",
33
+ "baseUrl": "可选,缺省按 env 选官方域名",
34
+ "ossUrl": "可选,缺省官方 OSS",
35
+ "scenes": "可选,由 scene list 写入的场景摘要"
36
+ }
37
+ ```
38
+
39
+ 环境变量 `EASYTWIN_APP_ID` / `EASYTWIN_APP_SECRET` / `EASYTWIN_BASE_URL` / `EASYTWIN_ENV` / `EASYTWIN_OSS_URL` 优先于文件。请求带 `x-app-id`(App ID)与 `x-app-secret`(App Secret),不走 OP 网关。官方 API:正式 `http://saas-twin.k8s.dtstack.cn/`、测试 `http://172.16.125.3:10100/`,缺省按 env 选择。官方 OSS 资产根:`https://dt-easyv-test.oss-cn-hangzhou.aliyuncs.com/`,供 twin runtime 加载 webp/draco/组件脚本。runtime 类型:`env=prod` 用正式桶 `https://dt-easyv-prod.oss-cn-hangzhou.aliyuncs.com/easytwin/system/libs/runtime/types/`,其余用测试桶同路径。文件含密钥,永不入库(`init` 会处理 gitignore)。
40
+
41
+ ## skills
42
+
43
+ 六件套(`easytwin-render` / `-core` / `-develop` / `-bootstrap` / `-scene` / `-upload`)随包分发,通过 `easytwin skills sync` 显式写入 Cursor(`.cursor/skills/`)、Claude Code(`.claude/skills/`)与 Codex(`AGENTS.md` 标记段),重复执行幂等。
44
+
45
+ ## 发布到 npm
46
+
47
+ ```bash
48
+ # 1. 登录(写入 ~/.npmrc 的 npmjs token;CI 用 NPM_TOKEN 环境变量)
49
+ npm login --registry https://registry.npmjs.org/
50
+
51
+ # 2. 确认发布产物应包含 dist/ 与 skills/
52
+ npm pack --dry-run
53
+
54
+ # 3. 升版本
55
+ npm version patch|minor|major
56
+
57
+ # 4. 发布(必须先升版本:同版本已在 npm 上会被跳过,提示 There are no new packages that should be published)
58
+ # 在仓库根目录用 run,不要直接 pnpm publish(那是工作区递归发布内置命令)
59
+ pnpm run publish
60
+ ```
61
+
62
+ - scoped 包需 publishConfig.access 为 public,已配置;
63
+ - 本机默认 registry 是 npmmirror,publishConfig.registry 已固定为官方 npmjs;
64
+ - `pnpm run publish` 只在本次进程清掉 `proxy` / `HTTP_PROXY`,不改 `~/.npmrc`;Clash 日常代理可保持 `http://127.0.0.1:7890`;
65
+ - 包名是否被占用可用 npm view @easytwin/devkit 确认;
66
+ - repository 目前指向内网 GitLab,公网发布前建议改为公开地址(可选)。
67
+
68
+ ## 开发
69
+
70
+ ```bash
71
+ pnpm install
72
+ pnpm -r build
73
+ pnpm -r test
74
+ ```
75
+
76
+ ## 已知外部输入(TODO)
77
+
78
+ 渲染 API 文档与 d.ts 仍未到位,skills 中以 `TODO(外部输入)` 标记,不臆造。场景列表/拉取与工作区代码上传已按内部 swagger(SDK 应用场景 / SDK 应用代码)落地;官方 API 域名、官方 OSS 与场景 JSON 格式已定(见上)。