@my-life-buddies/cli 0.23.0-dev.2 → 0.23.0-rc.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.
- package/README.md +75 -75
- package/dist/bin/buddy.js +32 -33
- package/dist/bin/buddy.js.map +2 -2
- package/dist/bin/core.js +451 -550
- package/dist/bin/core.js.map +4 -4
- package/dist/web/app.js +2 -2
- package/dist/web/widgets.js +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# buddy-cli-
|
|
1
|
+
# buddy-cli-prod 使用说明
|
|
2
2
|
|
|
3
|
-
创作者提供的参考素材应在开发主体时同步接入。使用 `buddy-cli-
|
|
3
|
+
创作者提供的参考素材应在开发主体时同步接入。使用 `buddy-cli-prod knowledge sync --plan .buddy/knowledge/plan.json` 生成分章节 Markdown、可读目录和来源映射;源资料更新时保留手工修改。计划格式见 `buddy-cli-prod knowledge --help`,完整流程见[运行知识接入](../../docs/cli/knowledge.md)。本功能只写本地文件,不增加 push 检查或自动上传。
|
|
4
4
|
|
|
5
5
|
这份说明按一次开发过程展开:登记搭子,准备工程,在本地预览,然后上传程序包。所有搭子统一使用 `@my-life-buddies/buddy-runtime`,业务能力通过 Prompt、`src/buddy-options.mjs` 和 Tool 实现。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
新建工程动态查询公共 npm latest 的最新正式版 Runtime,并写入准确版本与锁文件。已有工程在 DEV 和上传前完成最新正式版适配;CLI 不自动修改依赖。详见 [Runtime 集成说明](../../docs/runtime-integration.md)。
|
|
8
8
|
|
|
9
9
|
## 准备 CLI 和平台地址
|
|
10
10
|
|
|
@@ -14,36 +14,36 @@ CLI 发布目标为公共 Registry `https://registry.npmjs.org/`。已有仓库
|
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npm install
|
|
17
|
-
npm run buddy-cli-
|
|
17
|
+
npm run buddy-cli-prod -- --help
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
下文统一使用 `buddy-cli-
|
|
20
|
+
下文统一使用 `buddy-cli-prod`。源码运行时替换为 `npm run buddy-cli-prod --`;从公共 npm 安装已发布版本:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
npm install --global --prefix "$HOME/.local/share/buddy-cli/
|
|
24
|
-
export PATH="$HOME/.local/share/buddy-cli/
|
|
23
|
+
npm install --global --prefix "$HOME/.local/share/buddy-cli/prod" @my-life-buddies/cli@prod --registry=https://registry.npmjs.org/
|
|
24
|
+
export PATH="$HOME/.local/share/buddy-cli/prod/bin:$PATH"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### 与正式版共存
|
|
28
28
|
|
|
29
|
-
只使用一个 npm 包名 `@my-life-buddies/cli`。`latest` 提供 `buddy-cli`(ECS Test);`dev` 提供 `buddy-cli-sit`(SIT
|
|
29
|
+
只使用一个 npm 包名 `@my-life-buddies/cli`。`latest` 提供 `buddy-cli`(ECS Test);`dev` 提供 `buddy-cli-sit`(SIT);`prod` 提供 `buddy-cli-prod`(PROD 内测)。PROD 按上面的 `--prefix` 命令安装在独立目录;正式版可保留原有全局安装:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
npm install --global @my-life-buddies/cli@latest --registry=https://registry.npmjs.org/
|
|
33
33
|
buddy-cli --version
|
|
34
|
-
buddy-cli-
|
|
34
|
+
buddy-cli-prod --version
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
`--global --prefix` 只向指定目录安装包及命令,不覆盖系统默认全局目录。将 `export PATH="$HOME/.local/share/buddy-cli/
|
|
37
|
+
`--global --prefix` 只向指定目录安装包及命令,不覆盖系统默认全局目录。将 `export PATH="$HOME/.local/share/buddy-cli/prod/bin:$PATH"` 加入 `~/.zshrc`,新终端也可直接使用 PROD 命令。不要把两个渠道安装到同一个 prefix。
|
|
38
38
|
|
|
39
|
-
已有 `@my-life-buddies/cli-dev` 的用户,先卸载该旧独立包(按原安装位置卸载),再按上面的命令安装 `@my-life-buddies/cli@
|
|
39
|
+
已有 `@my-life-buddies/cli-dev` 的用户,先卸载该旧独立包(按原安装位置卸载),再按上面的命令安装 `@my-life-buddies/cli@prod`。不删除搭子工程或登录凭据。后续仅维护同一包的两个标签。
|
|
40
40
|
|
|
41
41
|
### 查看帮助与开发指引
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
buddy-cli-
|
|
45
|
-
buddy-cli-
|
|
46
|
-
buddy-cli-
|
|
44
|
+
buddy-cli-prod --help
|
|
45
|
+
buddy-cli-prod init --help
|
|
46
|
+
buddy-cli-prod guide
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
`--help` 列出命令,`<命令> --help` 说明当前命令的参数、限制和示例。`guide` 输出 Coding Agent 的完整开发指引,包括创作开场、资料确认、Skill 接续、实现和交付规则;无需工程或登录,先联网自检并按需自动更新 CLI,再输出新版指引,不修改工程文件。让 Agent 开始工作前先读取 `guide`,再按 CLI 返回的 `HANDOFF.md` 继续当前工程。HANDOFF 只包含当前工程、Skill 路径和接续方式,通用规则以 guide 为准;已生成文件在正常恢复创作时校验、备份并更新,CLI 升级不会直接覆盖工程里的 HANDOFF。`guide --help` 只显示该命令的简短用法。
|
|
@@ -55,23 +55,23 @@ buddy-cli-sit guide
|
|
|
55
55
|
### 查看版本和更新 CLI
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
buddy-cli-
|
|
59
|
-
buddy-cli-
|
|
60
|
-
buddy-cli-
|
|
58
|
+
buddy-cli-prod --version
|
|
59
|
+
buddy-cli-prod update --check
|
|
60
|
+
buddy-cli-prod update
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
`--version`(也可写作 `-v`)显示当前运行的 CLI 版本,无需联网。`update --check` 查询 `@my-life-buddies/cli` 的 npm `
|
|
63
|
+
`--version`(也可写作 `-v`)显示当前运行的 CLI 版本,无需联网。`update --check` 查询 `@my-life-buddies/cli` 的 npm `prod` 版本,只检查、不安装;`update` 有新版本时安装检查到的准确版本,完成后核验安装结果。版本相同或本机版本更高时不安装、不降级。这三个用法均无需登录搭搭账号或进入搭子工程,从 CLI 0.8.0 开始支持。旧版用户先用上面的 npm 命令升级。
|
|
64
64
|
|
|
65
|
-
从 CLI 0.17.0 起,每条正常命令(含 `guide` 和无参数入口)先查询 CLI 的公共 npm `
|
|
65
|
+
从 CLI 0.17.0 起,每条正常命令(含 `guide` 和无参数入口)先查询 CLI 的公共 npm `prod` 标签,当前版本落后时自动更新,并由新版执行原命令。无需手动先运行 `update`,等待当前命令完成即可。更新发生在创建工程、领取凭据、启动 DEV 或上传之前;保留参数、工作目录、终端输入输出和退出状态,一次调用最多自动切换一次。版本相同或更高时继续执行,不降级;已经运行的 DEV 不因新版本发布而中断。
|
|
66
66
|
|
|
67
|
-
全局安装及通过 `--global --prefix` 指定的独立安装,只更新当前正在运行的 CLI 所在目录,不依赖当前 npm 的默认 prefix,不改动另一个渠道的安装;源码、`npm link`、项目内安装和 `npx` 自动下载准确版本到 `~/.cache/buddy-cli-
|
|
67
|
+
全局安装及通过 `--global --prefix` 指定的独立安装,只更新当前正在运行的 CLI 所在目录,不依赖当前 npm 的默认 prefix,不改动另一个渠道的安装;源码、`npm link`、项目内安装和 `npx` 自动下载准确版本到 `~/.cache/buddy-cli-prod/updates/releases/`,从缓存运行,不改写原安装或工程依赖。并发更新共用安装锁。手动 `update` 支持这两种安装目录。查询最多等待 10 秒,安装(含重试)最多等待 180 秒。安装通过 `--prefer-online` 刷新 npm 版本缓存;找不到版本(`ETARGET`)时最多重试一次,始终安装本次自检查到的准确版本。仍失败时说明 npm 的具体原因,不展示日志路径,也不修改用户的 npm 配置或清空缓存;失败或取消时停止原业务命令,不回退旧版。帮助、各命令 `--help`、`--version` 和应急清理命令 `dev stop` 不联网更新。自动更新进度写入 stderr,不混入业务命令的 stdout 或 JSON;更新失败时 `--json` 返回 `code=CLI_UPDATE_FAILED` 和 `error`。
|
|
68
68
|
|
|
69
69
|
更新只针对 CLI,已有工程的 Runtime 依赖、锁文件和业务适配仍需另行修改与验证。旧 CLI 不会自动获得自检能力,需要先用 npm 安装命令升级一次。
|
|
70
70
|
|
|
71
71
|
可追加 `--json` 供 Coding Agent 或脚本读取,例如:
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
buddy-cli-
|
|
74
|
+
buddy-cli-prod update --check --json
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
检查结果包含 `package`、`currentVersion`、`latestVersion`、`updateAvailable` 和 `status`。`status` 为 `update_available`、`up_to_date` 或 `ahead`;更新成功时为 `updated`,另有 `installedVersion`,`updateAvailable` 为 `false`。失败时输出 `error`。检查成功(包括发现更新)返回退出码 0,查询或安装失败返回 1,参数错误返回 2。JSON 输出不会混入 npm 进度文字。
|
|
@@ -83,20 +83,20 @@ buddy-cli-sit update --check --json
|
|
|
83
83
|
```bash
|
|
84
84
|
npm run check
|
|
85
85
|
npm run verify:package
|
|
86
|
-
npm publish --workspace @my-life-buddies/cli --tag
|
|
86
|
+
npm publish --workspace @my-life-buddies/cli --tag prod
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
`
|
|
89
|
+
`release_prod` 构建 `@my-life-buddies/cli@prod`,只包含 `buddy-cli-prod` 命令。版本必须是 `x.y.z-rc.N`;发布校验拒绝 latest 标签。main 用同一个包名发布 `latest` 正式版本,提供 `buddy-cli`;两个版本必须分目录安装才能共存,同一目录中安装会互相替换。Core 和 Preview 保留 monorepo 开发边界并标记为 `private`,构建时合入 CLI 的内部模块;Preview 页面和工程模板资源进入 CLI 包;Creator 与 Avatar Skill 使用时独立加载。安装不会请求 `@buddy/cli-core` 或 `@buddy/preview`。第三方运行依赖按正常 npm dependencies 安装,构建工具 esbuild 不进入安装依赖。根工作区和 Web 同样保持 `private`。
|
|
90
90
|
|
|
91
91
|
版本维护:每批修改 CLI 发布内容时递增一次版本,默认 patch;根包和内部工作区版本、依赖引用、锁文件一起更新。Agent 工程自己的项目版本独立。升级 Runtime 时同步模板依赖与模板锁文件,并运行独立安装验收。
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
PROD CLI 固定连接 PROD `https://buddies.dots.chat`,无需配置地址:
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
|
-
buddy-cli-
|
|
96
|
+
buddy-cli-prod login
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
这是实际的
|
|
99
|
+
这是实际的 PROD 环境,使用 HTTPS;不能改为其他平台或本机网关。手机 App 需要连接同一环境。
|
|
100
100
|
|
|
101
101
|
CLI 会打开搭搭创作者平台网页完成登录和授权。浏览器已有有效 Cookie 时,页面直接显示当前账号,开发者确认后即可返回终端;没有登录时,先在同一网页完成短信登录,再确认授权。CLI 不读取浏览器 Cookie,也拿不到短信验证码,只通过本机回调收到一次性授权码,再换取自己的会话。
|
|
102
102
|
|
|
@@ -111,7 +111,7 @@ CLI 会把换取到的会话保存到 macOS Keychain。有效会话会复用,
|
|
|
111
111
|
| `--version [--json]` | 不需要,也不登录 | 显示当前运行的 CLI 版本,无需联网 |
|
|
112
112
|
| `update [--check] [--json]` | 不需要,也不登录 | 检查公共 npm 最新版,或更新 npm 全局 CLI |
|
|
113
113
|
| `login`、`logout` | 不需要 | 管理账号会话 |
|
|
114
|
-
| `models` | 不需要,也不登录 | 始终联网读取 npm
|
|
114
|
+
| `models` | 不需要,也不登录 | 始终联网读取 npm 最新正式版 Runtime 的模型目录,提示工程版本差异;支持 `--directory`、`--json` |
|
|
115
115
|
| `init` | 目标目录可以是空目录或已有官方工程 | 登记或恢复云端身份,准备本地文件 |
|
|
116
116
|
| `dev`、`preview`、`push` | 需要有效清单和完整工程文件 | 运行、调试或打包该工程 |
|
|
117
117
|
| `status` | 需要含 `buddyId` 的 `package.json` | 查询该搭子的云端状态;创作尚未完成时也可使用 |
|
|
@@ -128,13 +128,13 @@ CLI 会把换取到的会话保存到 macOS Keychain。有效会话会复用,
|
|
|
128
128
|
|
|
129
129
|
`init --mode create` 和 `init --mode direct` 都先保存本地资料草稿。Coding Agent 读取 CLI 返回的 `.buddy/meta/HANDOFF.md`,完整读取独立下载的 `@my-life-buddies/avatar-creator-skill/SKILL.md` 和配套规范,用宿主图片生成能力生成、检查并展示头像。开发者确认实际头像及名称、一句话介绍、详细介绍后,才调用 Meta 创建接口。
|
|
130
130
|
|
|
131
|
-
只有需要生成头像时才下载 `@my-life-buddies/avatar-creator-skill`,本地缓存位于 `~/.cache/buddy-cli-
|
|
131
|
+
只有需要生成头像时才下载 `@my-life-buddies/avatar-creator-skill`,本地缓存位于 `~/.cache/buddy-cli-prod/avatar-skills/my-life-buddies/<版本>/`,同一次头像创作由 `.buddy/meta/skill-lock.json` 固定版本。已有候选图片、`--avatar` 指定图片及上传重试不需要加载生成 Skill。显式传入 `--avatar-skill-version 1.0.0` 可在未完成的头像准备流程中选择准确版本;这不会删除或重画已有候选图片。宿主图片生成工具仍负责实际生图,CLI 负责确认与上传。
|
|
132
132
|
|
|
133
133
|
Skill 维护者可本地联调(无需发布):
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
BUDDY_AVATAR_SKILL_PATH=/absolute/path/avatar-creator-skill \
|
|
137
|
-
buddy-cli-
|
|
137
|
+
buddy-cli-prod init --mode create --directory ./my-buddy
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
本地来源会记录在头像 Skill 锁中;切回 npm 时清除环境变量,并显式传入 `--avatar-skill-version`。首次下载失败会保留草稿,可在同目录重试,也可提供已有图片完成登记。
|
|
@@ -143,14 +143,14 @@ BUDDY_AVATAR_SKILL_PATH=/absolute/path/avatar-creator-skill \
|
|
|
143
143
|
普通终端不会执行 skill,也不要求安装 Coding Agent:选择本地图片后会打开资料与头像预览,再询问是否确认登记。没有图片或暂不确认时保留草稿,退出码为 2,稍后在原目录继续。
|
|
144
144
|
|
|
145
145
|
```bash
|
|
146
|
-
buddy-cli-
|
|
146
|
+
buddy-cli-prod init --mode direct --directory "<搭子工程目录>" --avatar "<头像文件路径>"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
非交互调用必须由宿主先取得开发者明确确认,再传 `--avatar "<已确认图片路径>" --confirm-meta`。该标志声明开发者确认了本次资料和实际图片;不能把“帮我创建搭子”当作头像确认。CLI 不生成图片、不推断对话授权,也不以示例图替代新头像。
|
|
150
150
|
|
|
151
151
|
`.buddy/meta/` 保存草稿、候选图片、预览与接续说明,push 不上传。上传失败保留已创建的 buddyId,重试复用原身份;已有云端头像不会在恢复中被覆盖。Meta 创建响应丢失时会明确暂停,核对后台身份后用 `--buddy-id` 恢复,避免重复创建。
|
|
152
152
|
|
|
153
|
-
基础资料和头像的确认不等于 Creator 四册已确认。已有搭子的恢复沿用原身份和云端头像;明确需要更换头像时使用 `buddy-cli-
|
|
153
|
+
基础资料和头像的确认不等于 Creator 四册已确认。已有搭子的恢复沿用原身份和云端头像;明确需要更换头像时使用 `buddy-cli-prod meta update --avatar`。
|
|
154
154
|
|
|
155
155
|
## 需求明确时,直接开发
|
|
156
156
|
|
|
@@ -159,7 +159,7 @@ buddy-cli-sit init --mode direct --runtime-version "<已确认的版本>" --dire
|
|
|
159
159
|
直接生成官方 Runtime 工程:
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
buddy-cli-
|
|
162
|
+
buddy-cli-prod init --mode direct --directory ./study-buddy \
|
|
163
163
|
--name "学习搭子" --tagline "把学习目标拆成每天能完成的小步骤" \
|
|
164
164
|
--intro "根据学习目标与每日反馈,帮助用户安排练习并复盘。"
|
|
165
165
|
```
|
|
@@ -215,7 +215,7 @@ CLI 将 HTML 和 Schema 随工程源码打包。工程安装的 Runtime 在 Budd
|
|
|
215
215
|
|
|
216
216
|
模型使用小挂件工具时,在 `src/buddy-options.mjs` 的 `initialState.tools` 中加入 `conversation.tools.widget_create`、`conversation.tools.widget_write_record` 等工具;业务代码也可直接调用 `conversation.widget`。类型按上传进程的 Buddy 身份保存,DEV 分身与正式版隔离。修改文件后重启 Runtime;删除或改名目录不会删除平台上的旧类型。Preview 可展示小挂件卡片、会话列表与 H5 页面。
|
|
217
217
|
|
|
218
|
-
小挂件工具按工程选定的 Runtime 版本使用;
|
|
218
|
+
小挂件工具按工程选定的 Runtime 版本使用;PROD 新协议按操作区分:
|
|
219
219
|
|
|
220
220
|
| 操作 | `conversation.tools` 工具 | 业务代码 API |
|
|
221
221
|
| --- | --- | --- |
|
|
@@ -247,14 +247,14 @@ import createBuddyOptions from "./src/buddy-options.mjs";
|
|
|
247
247
|
await BuddyServer.start(createBuddyOptions);
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
工程在 `package.json` 声明准确 Runtime 版本,锁文件固定依赖;上传不包含 `node_modules` 或 Runtime 打包副本,部署执行同一份 `npm start`。首次生成 package.json 和 package-lock.json
|
|
250
|
+
工程在 `package.json` 声明准确 Runtime 版本,锁文件固定依赖;上传不包含 `node_modules` 或 Runtime 打包副本,部署执行同一份 `npm start`。首次生成 package.json 和 package-lock.json 时查询 npm latest 最新正式版,生成准确版本与锁文件。查询或锁文件生成失败时停止,不回退内置旧版本。已有工程再次初始化时保留其依赖;安装验收直接从公共 npm 安装。
|
|
251
251
|
|
|
252
252
|
## 想法还模糊时,先梳理需求
|
|
253
253
|
|
|
254
254
|
确认用于登记的基础资料后,再执行下面的命令;这里的文案只是示例,不是通用默认值。
|
|
255
255
|
|
|
256
256
|
```bash
|
|
257
|
-
buddy-cli-
|
|
257
|
+
buddy-cli-prod init --mode create --directory ./study-buddy \
|
|
258
258
|
--name "学习搭子" --tagline "帮助用户建立学习习惯" \
|
|
259
259
|
--intro "与用户一起明确目标,形成可以坚持的学习安排。"
|
|
260
260
|
```
|
|
@@ -274,12 +274,12 @@ buddy-cli-sit init --mode create --directory ./study-buddy \
|
|
|
274
274
|
→ 基础技术自测 → 打开真实预览 → 开发者体验并反馈
|
|
275
275
|
```
|
|
276
276
|
|
|
277
|
-
CLI 0.15.0 起,Creator 使用独立 npm 包 `@my-life-buddies/buddy-creator-skill`。新项目首次创作查询稳定版,校验后缓存到 `~/.cache/buddy-cli-
|
|
277
|
+
CLI 0.15.0 起,Creator 使用独立 npm 包 `@my-life-buddies/buddy-creator-skill`。新项目首次创作查询稳定版,校验后缓存到 `~/.cache/buddy-cli-prod/creator-skills/buddy-creator-skill/<版本>/`,在 `.buddy/creator/skill-lock.json` 记录准确版本与完整性摘要。恢复项目优先使用固定版本缓存,不自动升级,已有缓存时 Skill 准备无需联网(平台身份校验仍需联网)。Skill 负责人独立发包,不再要求重发 CLI。
|
|
278
278
|
|
|
279
279
|
显式升级某个项目:
|
|
280
280
|
|
|
281
281
|
```bash
|
|
282
|
-
buddy-cli-
|
|
282
|
+
buddy-cli-prod init --mode create --directory ./study-buddy --creator-version 1.6.0
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
CLI 只接受协议兼容的准确稳定版本,保留原始背景、身份与作品。未改动的旧版生成接续说明会备份后迁移;开发者自定义说明不覆盖。新项目下载失败会报错并保留登记身份,可在同目录重试。
|
|
@@ -288,7 +288,7 @@ CLI 只接受协议兼容的准确稳定版本,保留原始背景、身份与
|
|
|
288
288
|
|
|
289
289
|
```bash
|
|
290
290
|
BUDDY_CREATOR_SKILL_PATH=/absolute/path/buddy-creator-skill \
|
|
291
|
-
buddy-cli-
|
|
291
|
+
buddy-cli-prod init --mode create --directory ./study-buddy
|
|
292
292
|
```
|
|
293
293
|
|
|
294
294
|
本地来源同样记录在项目中,适合 Skill 开发,不要求发布。要切回 npm,清除环境变量并显式指定 `--creator-version`。Python 执行仍需 3.9+,不安装 Python 第三方依赖。阶段与创作规则由 Skill 的 `references/cli-workflow.md` 管理,CLI 只处理身份、目录和有效交付后的开发接续。
|
|
@@ -300,7 +300,7 @@ BUDDY_CREATOR_SKILL_PATH=/absolute/path/buddy-creator-skill \
|
|
|
300
300
|
手册完成后,Coding Agent 用下面的命令补齐官方 Runtime 工程,再据手册实现功能;这不是 Creator Skill 自己执行的操作:
|
|
301
301
|
|
|
302
302
|
```bash
|
|
303
|
-
buddy-cli-
|
|
303
|
+
buddy-cli-prod init --mode direct --directory ./study-buddy
|
|
304
304
|
```
|
|
305
305
|
|
|
306
306
|
创作阶段的 `package.json` 只有顶层 `buddyId`;CLI 用它从平台读取最新资料并重新校验归属,不另建搭子。创作中断后可以在原目录重试 `--mode create`,继续使用原作品;手册完成后执行 `--mode direct`,保留已有业务代码与数据声明,补齐 npm 字段和缺失的工程文件;缺失 `data-access.json` 时生成空 requirements 数组。旧 `--mode interview` 已停止使用。
|
|
@@ -324,10 +324,10 @@ Creator 例外保留首次创作背景快照,用于接续同一作品;恢复
|
|
|
324
324
|
登记后用 `meta` 查看云端资料,用 `meta update` 修改名称、介绍或替换头像:
|
|
325
325
|
|
|
326
326
|
```bash
|
|
327
|
-
buddy-cli-
|
|
328
|
-
buddy-cli-
|
|
329
|
-
buddy-cli-
|
|
330
|
-
buddy-cli-
|
|
327
|
+
buddy-cli-prod meta
|
|
328
|
+
buddy-cli-prod meta update --name "川大厨" --tagline "帮你安排每天吃什么"
|
|
329
|
+
buddy-cli-prod meta update --intro "根据食材、人数和口味推荐菜谱"
|
|
330
|
+
buddy-cli-prod meta update --avatar ./avatar.png
|
|
331
331
|
```
|
|
332
332
|
|
|
333
333
|
`meta` 只读,修改时必须带 `update` 并至少提供一个字段。多个修改参数可以组合,未传字段保持原样,包括云端已有的扩展资料。文字字段不能为空,名称最多 60 字,一句话介绍最多 200 字,完整介绍最多 10000 字。头像只上传替换,不提供清除选项;支持静态 PNG、JPEG、WebP,最大 5 MiB。Server 校验图片并生成地址,处理失败时保留原头像。
|
|
@@ -335,8 +335,8 @@ buddy-cli-sit meta update --avatar ./avatar.png
|
|
|
335
335
|
默认向上寻找 `package.json.buddyId`,也可用 `--directory ./cooking-buddy` 指定工程;图片路径始终相对执行命令的当前目录。创作阶段只有身份清单时也能使用,无需安装或启动 Runtime。工程外可直接指定平台 ID:
|
|
336
336
|
|
|
337
337
|
```bash
|
|
338
|
-
buddy-cli-
|
|
339
|
-
buddy-cli-
|
|
338
|
+
buddy-cli-prod meta --buddy-id b_example
|
|
339
|
+
buddy-cli-prod meta update --buddy-id b_example --name "川大厨" --avatar ./avatar.png
|
|
340
340
|
```
|
|
341
341
|
|
|
342
342
|
`--buddy-id` 和 `--directory` 不能同时使用。命令复用 CLI 登录态,由 Server 校验搭子归属。CLI 先通过 `GET /cli/buddies/:id` 获取最新资料,合并指定修改,再通过 `PUT /cli/buddies/:id/meta` 更新;含头像时使用 multipart,文字和图片通过校验后一起提交。头像地址由平台生成,文字更新不提交原头像 URL。
|
|
@@ -348,12 +348,12 @@ buddy-cli-sit meta update --buddy-id b_example --name "川大厨" --avatar ./ava
|
|
|
348
348
|
## 为这个搭子选一个模型
|
|
349
349
|
|
|
350
350
|
```bash
|
|
351
|
-
buddy-cli-
|
|
351
|
+
buddy-cli-prod models
|
|
352
352
|
```
|
|
353
353
|
|
|
354
|
-
|
|
354
|
+
`models`、`datasets` 动态读取 npm latest 最新正式版目录;JSON 返回 `latestRuntimeVersion`、工程版本和适配状态。
|
|
355
355
|
|
|
356
|
-
|
|
356
|
+
新工程动态查询 npm latest 并锁定最新正式版 Runtime,不使用 dev 测试版。已有工程不会自动改依赖;DEV、自动重载和 push 必须与 npm latest 正式版、实际安装及锁文件一致,开发 Agent 需按提示完成升级适配后重试。
|
|
357
357
|
|
|
358
358
|
此限制由本版 CLI 执行,不修改服务端策略或已部署进程;直接运行工程 `npm start`、旧 CLI 或服务端发布入口不受本版 CLI 检查约束。
|
|
359
359
|
|
|
@@ -384,7 +384,7 @@ initialState: {
|
|
|
384
384
|
}
|
|
385
385
|
```
|
|
386
386
|
|
|
387
|
-
新工程生成 `{ "requirements": [] }`。最多 32 项,ID 不能重复;`id`、`purpose` 会去除首尾空白,用途必须为 1~200 字。完整选项由 `buddy-cli-
|
|
387
|
+
新工程生成 `{ "requirements": [] }`。最多 32 项,ID 不能重复;`id`、`purpose` 会去除首尾空白,用途必须为 1~200 字。完整选项由 `buddy-cli-prod datasets [--json]` 按当前环境的版本规则读取,DEV 与 push 使用工程安装的 SDK 校验 ID。
|
|
388
388
|
|
|
389
389
|
Runtime 0.17.0 启动时自动读取该文件,通过 `PUT /internal/v1/data-access/requirements` 登记;文件缺失或空数组会上传空声明,清除旧声明。登记失败阻止启动,不会带着未同步的配置上线。DEV 监听该文件,保存后重启 Runtime 并重新登记。部署环境需提供对应登记接口。
|
|
390
390
|
|
|
@@ -396,31 +396,31 @@ CLI 将文件原样放入源码包,启动入口只调用 `BuddyServer.start(cr
|
|
|
396
396
|
|
|
397
397
|
## 在模拟器里聊一次
|
|
398
398
|
|
|
399
|
-
CLI 0.13.0 起,默认预览 UI 由后台提供。后台「获取连接指令」返回 `buddy-cli-
|
|
399
|
+
CLI 0.13.0 起,默认预览 UI 由后台提供。后台「获取连接指令」返回 `buddy-cli-prod preview --buddy-id <id> --developer-web <后台 URL> --app-server <平台 URL> --no-open`;请在对应工程目录执行。CLI 0.17.7 起支持 `--no-open`,只连接工程,返回原调试页即可,不重复打开网页;页面已关闭时可打开终端打印的地址。直接执行 `buddy-cli-prod preview` 仍自动打开后台,`--no-open` 不与 `--local` 混用。
|
|
400
400
|
|
|
401
401
|
CLI 校验工程身份,后台验证账号与搭子归属。同一电脑、同一工程已有连接时,新命令复用它并退出,由原 CLI 继续维持连接;请保持原终端运行。连接其他电脑或工程前,请先退出原 CLI。
|
|
402
402
|
|
|
403
403
|
后台显示「未连接本地工程」「已连接但 DEV 未启动」「DEV 运行中」。CLI 主动发起 HTTPS 连接,后台通过受限调试接口控制本机 Runtime,浏览器不需访问 localhost。工程路径用于显示连接身份,源码不会经调试通道上传。连接每 500 ms 交换待处理请求;持续中断 10 秒停止 DEV,后台最迟约 17 秒显示断开;短暂断网恢复后手动启动 DEV;若后台已结束或撤销连接,CLI 会退出,需要重新执行连接指令。页面刷新只恢复状态,CLI 退出停止 DEV 并断开。
|
|
404
404
|
|
|
405
|
-
后台暂不可用时,用 `buddy-cli-
|
|
405
|
+
后台暂不可用时,用 `buddy-cli-prod preview --local` 打开独立本地备用预览,可加 `--port`。后台模式不使用固定本地端口,不需要公网隧道。预览不会提审或发布。
|
|
406
406
|
|
|
407
407
|
以下两个命令按需选择,不必同时启动同一个工程:
|
|
408
408
|
|
|
409
409
|
```bash
|
|
410
|
-
buddy-cli-
|
|
411
|
-
buddy-cli-
|
|
410
|
+
buddy-cli-prod dev --directory ./study-buddy
|
|
411
|
+
buddy-cli-prod preview --directory ./study-buddy
|
|
412
412
|
```
|
|
413
413
|
|
|
414
414
|
### 停止 DEV 与强制断连(CLI 0.18.0 起)
|
|
415
415
|
|
|
416
416
|
- `dev` 运行本机 Runtime;`preview` 维持后台与工程的连接,在页面启动 DEV 后才运行 Runtime。
|
|
417
|
-
- 「停止 DEV」或在工程目录执行 `buddy-cli-
|
|
417
|
+
- 「停止 DEV」或在工程目录执行 `buddy-cli-prod dev stop`:停止 Runtime 和文件监听,已有 preview 连接保留,不重新启动。
|
|
418
418
|
- Ctrl+C、SIGTERM 或关闭终端(SIGHUP):停止 CLI 管理的 Runtime 进程组,释放锁并断开后台连接。
|
|
419
419
|
- 后台「强制断连」:先阻止新的调试操作,尝试停止该工程的 DEV,再撤销连接;旧 CLI 不能自动接回。页面会明确显示本机是否已确认停止。
|
|
420
420
|
- CLI 被强杀、电脑离线或旧版进程无法响应时,网页不能保证本机进程已退出。到原电脑的工程目录执行后台提供的停止指令,例如:
|
|
421
421
|
|
|
422
422
|
```bash
|
|
423
|
-
buddy-cli-
|
|
423
|
+
buddy-cli-prod dev stop --buddy-id b_example --app-server https://buddies.dots.chat
|
|
424
424
|
```
|
|
425
425
|
|
|
426
426
|
`dev stop` 无需登录、查询 npm 或访问平台,支持 `--directory`;按平台和工程 buddyId 查找本机进程。原 CLI 存活时通知它停止监听与 Runtime,原 CLI 已退出时核对进程身份后清理残留;不能确认身份时保留锁并报错,不误杀其他进程。同一搭子从其他目录启动时,应在提示的原工程目录执行。其他电脑的进程需到那台电脑停止。清理后如需调试,重新执行连接指令,再在页面启动 DEV;不会提审或发布。
|
|
@@ -449,7 +449,7 @@ Preview 展示平台对话记录、发送与流式输出耗时、会话状态和
|
|
|
449
449
|
|
|
450
450
|
### 正式包的平台与 Runtime
|
|
451
451
|
|
|
452
|
-
|
|
452
|
+
PROD 包固定连接 PROD:`https://buddies.dots.chat`,后台为 `https://buddies.dots.chat/developer/`。无需手动设置 `MLB_GATEWAY_URL`,也不询问开发或发布环境。
|
|
453
453
|
|
|
454
454
|
- 登录、API、凭据领取、预览与上传均使用固定目标;CLI 将该网关及开发 Token 写入工程 `.env` 给 Runtime 使用。
|
|
455
455
|
- `--app-server`、`--developer-web` 仅接受同一固定目标,兼容已有后台连接指令,不能切换环境。
|
|
@@ -459,15 +459,15 @@ SIT 包固定连接 SIT:`https://buddies.sit.dots.chat`,后台为 `https://b
|
|
|
459
459
|
|
|
460
460
|
临时保留同一 ECS 的旧入口迁移:`http://47.116.168.81:8788` 和 `http://47.116.168.81` 转为 HTTPS。启动 DEV 时校验归属,取得实例锁后更新 `.env`,保留业务配置与注释;失败不改文件。正式推广完成后可移除此兼容分支。
|
|
461
461
|
|
|
462
|
-
|
|
462
|
+
新工程动态查询 npm latest 并锁定最新正式版 Runtime,不使用 dev 测试版。已有工程不会自动改依赖;DEV、自动重载和 push 必须与 npm latest 正式版、实际安装及锁文件一致,开发 Agent 需按提示完成升级适配后重试。
|
|
463
463
|
|
|
464
|
-
|
|
464
|
+
PROD CLI 只查询自身包的 prod 标签,遇到稳定版本或其他预发布命名会拒绝更新;不会安装正式包。
|
|
465
465
|
|
|
466
466
|
## 上传程序包,不等于发布
|
|
467
467
|
|
|
468
468
|
```bash
|
|
469
|
-
buddy-cli-
|
|
470
|
-
buddy-cli-
|
|
469
|
+
buddy-cli-prod push --directory ./study-buddy --commit "根据完成情况调整练习难度"
|
|
470
|
+
buddy-cli-prod status --directory ./study-buddy
|
|
471
471
|
```
|
|
472
472
|
|
|
473
473
|
`push` 收集包含顶层 `buddyId` 的 `package.json`、`data-access.json`、源码和依赖锁文件,生成 `tar.gz`,上传到 `/cli/buddies/:id/packages/push`。`commit` 是改动说明,与本地 Git 是否提交无关。版本由 MLB 返回,CLI 不上传自己生成的 tag 或提审时间戳。
|
|
@@ -509,18 +509,18 @@ CLI 不提供 `release`、`publish`、`disable`、`enable` 或 `unpublish`。最
|
|
|
509
509
|
|
|
510
510
|
参考 Creator 已确认的需求、原型和设计说明,在 `widgets/<小挂件类型>/` 中编写 `index.html` 和 `schema.json`,并在搭子业务中接入创建、读写和发送能力。
|
|
511
511
|
|
|
512
|
-
使用 `buddy-cli-
|
|
512
|
+
使用 `buddy-cli-prod preview` 调试页面与交互,修改后重启 DEV;准备上传时运行 `buddy-cli-prod push`。Runtime 启动时读取小挂件文件并上传平台。开发步骤见仓库 `docs/widgets/design-delivery.md`。
|
|
513
513
|
|
|
514
514
|
## 查看数据集,不依赖 Coding Agent
|
|
515
515
|
|
|
516
516
|
工程内外均可直接查询最新目录,不要求先安装工程依赖:
|
|
517
517
|
|
|
518
518
|
```bash
|
|
519
|
-
buddy-cli-
|
|
520
|
-
buddy-cli-
|
|
519
|
+
buddy-cli-prod datasets
|
|
520
|
+
buddy-cli-prod datasets --directory ./my-buddy --json
|
|
521
521
|
```
|
|
522
522
|
|
|
523
|
-
|
|
523
|
+
目录来自 npm 最新正式版 Runtime 的 `DATA_ACCESS_CAPABILITIES`,包括 ID、名称、来源和 Schema 版本。JSON 返回版本信息、适配状态和 `datasets` 数组(字段见上方模型目录说明)。命令不登录、不启动搭子、不申请权限,也不修改配置;从子目录运行会向上找到工程。每次都需要联网确认最新正式版本,下载失败时明确报错,不把旧缓存称为最新版。
|
|
524
524
|
|
|
525
525
|
开发者将实际选择的 ID 和用途写进 `data-access.json.requirements`。JSON Schema 检查形状与用途;DEV 和上传预检按工程安装的 Runtime 检查所选模型与非空数据声明。目录缺失、依赖未安装或版本不匹配时明确报错。Runtime 0.12.2 有 10 项,但单次数据查询仍最多 8 项。
|
|
526
526
|
|
|
@@ -532,7 +532,7 @@ Preview 文本发送采用 App WebSocket 的 `messages` 数组,并校验逐项
|
|
|
532
532
|
|
|
533
533
|
同一个搭子的开发者共享开发 Token 和 `<buddyId>-dev` 身份;同一开发身份仍只能保持一条 Runtime 事件流。正式身份使用另一把 Token,两者互不顶替。开发凭据没有自动过期时间,Server 重置或删除搭子后才失效。
|
|
534
534
|
|
|
535
|
-
开发 Token 被平台重置后,停止当前 CLI,再运行 `buddy-cli-
|
|
535
|
+
开发 Token 被平台重置后,停止当前 CLI,再运行 `buddy-cli-prod dev --refresh-token` 或 `buddy-cli-prod preview --refresh-token`。这会跳过本地开发凭据,重新领取服务端当前的开发 Token 并更新 `.env`,不在 Server 生成新密钥。工程启动不再从旧版 Keychain 的开发 Token 缓存领取凭据。
|
|
536
536
|
|
|
537
537
|
账号登录凭据仍保存在 macOS Keychain,不写入工程。开发 Token 保存在权限为 `0600` 的工程 `.env`,不传给 Web,也不进入上传包或命令行参数。
|
|
538
538
|
|
|
@@ -560,22 +560,22 @@ Runtime 0.19.0 支持在 `schema.json.openTargets` 声明入口。业务通过 `
|
|
|
560
560
|
|
|
561
561
|
## CLI 0.20:MLB 统一提供服务
|
|
562
562
|
|
|
563
|
-
正式包入口固定与
|
|
563
|
+
正式包入口固定与 PROD 网页同源,使用 HTTPS。CLI 的一次性浏览器授权走 `/cli/web/authorizations`、`/cli/web/exchange`,预览连接走 `/cli/preview/*`。不调用独立 Web 服务,不支持地址覆盖;预览不触发上传或发布。
|
|
564
564
|
|
|
565
|
-
##
|
|
565
|
+
## PROD 包与准确版本复现
|
|
566
566
|
|
|
567
567
|
```sh
|
|
568
|
-
npm install --global --prefix "$HOME/.local/share/buddy-cli/
|
|
569
|
-
export PATH="$HOME/.local/share/buddy-cli/
|
|
570
|
-
buddy-cli-
|
|
568
|
+
npm install --global --prefix "$HOME/.local/share/buddy-cli/prod" @my-life-buddies/cli@prod --registry=https://registry.npmjs.org/
|
|
569
|
+
export PATH="$HOME/.local/share/buddy-cli/prod/bin:$PATH"
|
|
570
|
+
buddy-cli-prod --version
|
|
571
571
|
# 复现某一版(必须与已安装版本完全匹配)
|
|
572
|
-
export BUDDY_CLI_PIN_VERSION=0.23.0-
|
|
573
|
-
buddy-cli-
|
|
572
|
+
export BUDDY_CLI_PIN_VERSION=0.23.0-rc.0
|
|
573
|
+
buddy-cli-prod preview
|
|
574
574
|
unset BUDDY_CLI_PIN_VERSION
|
|
575
575
|
```
|
|
576
576
|
|
|
577
|
-
|
|
577
|
+
PROD 平台固定为 `https://buddies.dots.chat`。CLI 地址约束是客户端防误连机制;服务端仍须独立校验身份、Token 和权限,不是完整的服务端安全隔离。
|
|
578
578
|
|
|
579
|
-
|
|
579
|
+
PROD `push` 触发异步构建,显示 `building/ready/failed` 及失败原因,最多等待一分钟;仍在构建时用 `buddy-cli-prod status` 查询,不能重复上传当作查询。审核通过、构建就绪和线上发布是不同状态,发布仍需在后台手动完成。
|
|
580
580
|
|
|
581
|
-
DEV 要同时看到 Runtime 初始化完成和服务端在线后才就绪。
|
|
581
|
+
DEV 要同时看到 Runtime 初始化完成和服务端在线后才就绪。PROD 后台的 Widget 编辑需配套 Server 和 Web 部署,支持 Schema 授权的记录操作、图片上传与关闭后的聚合通知;API 和错误处理见 [编辑指南](../../docs/preview/widgets.md)。iOS 编辑桥接和付费服务不在本版范围。
|