@pippit-dev/cli 1.0.41 → 1.0.43
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 +42 -11
- package/checksums.txt +6 -6
- package/cmd/auth/auth.go +19 -5
- package/cmd/auth/auth_test.go +23 -0
- package/cmd/canvas/canvas.go +7 -7
- package/cmd/download_result.go +3 -2
- package/cmd/marketing.go +19 -3
- package/cmd/marketing_test.go +11 -5
- package/cmd/model.go +5 -4
- package/cmd/root.go +17 -5
- package/cmd/root_update_check_test.go +139 -0
- package/cmd/short_drama_test.go +2 -0
- package/cmd/source_test.go +27 -4
- package/cmd/space.go +199 -0
- package/cmd/space_test.go +469 -0
- package/cmd/upload_file_test.go +3 -1
- package/dist/checksums.txt +6 -6
- package/internal/adaptercli/commands_test.go +9 -5
- package/internal/auth/loopback.go +16 -11
- package/internal/auth/loopback_origins_test.go +152 -0
- package/internal/auth/space.go +26 -0
- package/internal/auth/space_test.go +42 -0
- package/internal/canvas/get.go +9 -2
- package/internal/commandnames/names.go +9 -4
- package/internal/common/client.go +23 -0
- package/internal/common/host_source.go +5 -0
- package/internal/common/host_source_test.go +9 -1
- package/internal/common/runner.go +5 -3
- package/internal/common/space.go +185 -0
- package/internal/common/space_test.go +132 -0
- package/internal/common/submit_run.go +2 -0
- package/internal/common/upload_file.go +2 -0
- package/internal/config/config.go +15 -12
- package/internal/generate_image/generate_image.go +3 -9
- package/internal/short_drama/submit_run.go +3 -9
- package/internal/space/session.go +153 -0
- package/internal/space/store.go +211 -0
- package/internal/space/store_test.go +246 -0
- package/internal/version/version.go +13 -0
- package/internal/version/version_test.go +38 -0
- package/internal/versioncheck/check.go +147 -0
- package/internal/versioncheck/check_test.go +204 -0
- package/internal/versioncheck/semver.go +84 -0
- package/package.json +1 -1
- package/scripts/canvas-command.js +47 -5
- package/scripts/install-wizard.js +1 -1
- package/scripts/run.js +15 -4
- package/scripts/telemetry.js +3 -1
- package/scripts/version-check.js +8 -1
- package/skills/short-drama/SKILL.md +12 -1
- package/skills/xyq-marketing-skill/SKILL.md +22 -3
- package/skills/xyq-marketing-skill/references/api.md +7 -1
- package/skills/xyq-marketing-skill/scripts/marketing.js +51 -19
- package/skills/xyq-nest-skill/SKILL.md +15 -4
- package/skills/xyq-nest-skill/commands/canvas-assets.md +1 -1
- package/skills/xyq-nest-skill/commands/canvas.md +5 -3
- package/skills/xyq-nest-skill/commands/get-credit-balance.md +2 -2
- package/skills/xyq-nest-skill/commands/model.md +1 -1
- package/skills/xyq-nest-skill/scripts/ensure-cli.js +8 -1
- package/skills/xyq-nest-skill/scripts/install.md +1 -1
- package/skills/xyq-nest-skill/workflows/canvas-edit.md +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: xyq-skill
|
|
3
|
-
description: 使用小云雀 pippit-tool-cli
|
|
3
|
+
description: 使用小云雀 pippit-tool-cli 生成或编辑图片、生成视频、超分和擦字幕,查询结果并交付媒体;操作小云雀个人或团队 Canvas 画布、节点、布局、连线、角色/场景、生成提示词、3D 导演台与多轨草稿;查询积分及管理授权。用户提到小云雀、xyq 并需要这些操作时使用。
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
6
|
{"openclaw": {"emoji": "💬", "requires": {"bins": ["node"]}}}
|
|
@@ -18,6 +18,17 @@ metadata:
|
|
|
18
18
|
|
|
19
19
|
参数是否存在、命令语法以当前 `cli_path` 对应的 `--help` 为准;返回字段和成功判断按命令文档及真实响应核对。文档与实际不一致时说明差异,不猜参数、不绕过 CLI 自行调用 HTTP。
|
|
20
20
|
|
|
21
|
+
## Space Selection
|
|
22
|
+
|
|
23
|
+
业务命令支持个人和团队空间,复用同一个 CLI 登录凭据。执行前先检查 `pippit-tool-cli space --help` 和业务命令的 `--team-id`;旧版不支持时先更新 CLI,不能忽略团队选择后继续收费操作。
|
|
24
|
+
|
|
25
|
+
- `space list` 统一输出 JSON,列出个人和当前账号的团队;顶层 `current` 表示已保存的默认空间,列表项 `current: true` 标记当前选择,无法识别本地账号时顶层为 `null`。`team_id` 保留字符串,`0` 为个人。列表中的团队不代表有生成权限、有效订阅或可用积分,最终由服务端判断。
|
|
26
|
+
- 用户明确要求长期切换时,运行 `space use TEAM_ID`;`space use 0` 保存个人空间。`use` 必须指定 ID,成功后返回保存的空间,不等待交互输入。只为本次任务选择空间时使用 `--team-id TEAM_ID`,不修改用户默认值;不能按模糊名称或剩余积分自动选团队。
|
|
27
|
+
- 新创作未指定空间时,读取并沿用保存的默认空间,首次使用为个人。向用户说明本次空间与积分账户,不重复索要已有授权。一次工作流开始后保存 TeamID,分开的上传、提交、查询和余额命令均显式传相同 `--team-id`,不能中途重新读取默认值。
|
|
28
|
+
- 已有任务优先沿用提交结果中的 `team_id` 或 CLI 的任务记录;切换默认团队后可以直接按原 thread/run 查询,CLI 自动恢复原空间。不要把当前默认 TeamID 强加给旧任务。跨设备或旧任务没有记录时,使用已知原空间;未知且用户也未指定时先核实,不能轮流试团队。
|
|
29
|
+
- 保存上传结果的资产 ID 和 `team_id`,提交结果的 thread/run ID 和 `team_id`。跨空间资产或任务冲突时停止;无权限、会员失效或余额不足不回退个人或其它团队。提交成功但本地记录写入失败时,保留返回 ID,用原 `--team-id` 查询,不重新生成。
|
|
30
|
+
- CLI 向同源 API 统一透传当前团队的 TeamID;模型接口内部继续按个人身份查询;模型列表成功不代表团队有生成权限。Canvas 同样使用所选空间;操作已有画布时沿用该画布原空间,切换默认空间后仍显式传入原 `--team-id`。
|
|
31
|
+
|
|
21
32
|
## 意图路由
|
|
22
33
|
|
|
23
34
|
按用户要做的操作选择命令,不能只看素材类型。有任务标识且用户只要求查询或取件时,复用该任务,不重新生成。
|
|
@@ -25,14 +36,14 @@ metadata:
|
|
|
25
36
|
| 用户意图 | CLI | 必读文档 |
|
|
26
37
|
| --- | --- | --- |
|
|
27
38
|
| 查看登录状态、登录、退出或切换账号 | `status` / `login` / `logout` | [授权](commands/auth.md) |
|
|
28
|
-
|
|
|
39
|
+
| 创建或查询小云雀个人或团队画布,编辑节点、布局、连线、角色/场景、提示词、3D 或多轨草稿 | `canvas` | [Canvas 能力与命令发现](commands/canvas.md) |
|
|
29
40
|
| 生成图片,或基于参考图修改图片 | `generate-image` | [生图与图片编辑](commands/generate-image.md) |
|
|
30
41
|
| 查询当前可用的图片/视频模型、比例、分辨率及推理强度等参数配置 | `model list` / `model describe` | [模型发现](commands/model.md) |
|
|
31
42
|
| 生成视频、参考生成、视频编辑、视频延长、首尾帧生成、Draft 样片及转成片 | `generate-video` | [生视频](commands/generate-video.md) |
|
|
32
43
|
| 提升已有视频分辨率、视频超分 | `video-super-resolution` | [超分](commands/video-super-resolution.md) |
|
|
33
44
|
| 去除已有视频字幕 | `erase-video-subtitle` | [擦字幕](commands/erase-video-subtitle.md) |
|
|
34
45
|
| 查询已有任务进度、下载生成结果 | `query-result` | [查询结果](commands/query-result.md) |
|
|
35
|
-
|
|
|
46
|
+
| 查询当前空间积分余额、剩余 credits | `get-credit-balance` | [积分](commands/get-credit-balance.md) |
|
|
36
47
|
|
|
37
48
|
- 普通生图、生视频也走对应生成命令,无需用户额外声明“模型直出”。
|
|
38
49
|
- 明确要求修改现有画布或其中节点时优先走 Canvas;普通生图、生视频不自动创建画布。“修改节点提示词”只修改配置,不隐含生成;指定节点生成或导出须先确认当前命令目录有对应能力。
|
|
@@ -59,7 +70,7 @@ metadata:
|
|
|
59
70
|
- 不向用户询问、不增加确认步骤,不为此改写 prompt。无法确认来源时直接省略;不传或空值均不阻塞提交。
|
|
60
71
|
- 来源只随本次提交发送,不加入上传、查询、下载或 Canvas 命令。使用已有旧版 CLI 时先按 `--help` 确认是否支持;不支持则省略,不因统计字段中断任务或在未知提交结果时重提。
|
|
61
72
|
|
|
62
|
-
优先从宿主的系统身份、当前工具运行环境和明确的平台元数据确认真实宿主,并在每次提交主动填写 `--source
|
|
73
|
+
优先从宿主的系统身份、当前工具运行环境和明确的平台元数据确认真实宿主,并在每次提交主动填写 `--source`;不要仅因字段可选就跳过。未传 `--source`、显式空值或纯空白时,CLI 依次尝试 `PIPPIT_CLI_SOURCE` 和已核实的宿主运行标记。只上报稳定的平台名,不上报标记中的会话 ID;来源冲突或仍无法确认则省略,不询问用户、不扫描登录凭据或安装目录。
|
|
63
74
|
|
|
64
75
|
## 按需参考的完整场景
|
|
65
76
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Canvas 原生资产命令
|
|
2
2
|
|
|
3
|
-
本页命令通过 `cli_path`
|
|
3
|
+
本页命令通过 `cli_path` 执行。支持个人和团队画布,复用默认空间或 `--team-id TEAM_ID`;创建、上传、查询和修改须使用同一空间。所有 ID 保持原始字符串,不能转换成 JavaScript Number;`project_id`、`canvas_asset_id`、节点 ID 和媒体 `pippit_asset_id` 不可混用。
|
|
4
4
|
|
|
5
5
|
| 命令 | 输入 | 返回与完成判断 |
|
|
6
6
|
| --- | --- | --- |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Canvas
|
|
1
|
+
# Canvas:画布空间与命令发现
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
用于小云雀个人或团队漫剧画布操作,不适用于其他产品的画布。与 [生图](generate-image.md)、[生视频](generate-video.md) 区分:修改画布文档不等于生成媒体,独立生成也不会自动写回指定节点。
|
|
4
4
|
|
|
5
5
|
## 两个入口
|
|
6
6
|
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
- SDK 语义命令:`node "CANVAS_ENTRY" canvas command ...`,`CANVAS_ENTRY` 替换为返回的 `canvas_entry`。不要把 Go 二进制的帮助输出当作语义命令可执行的证明。
|
|
15
15
|
- 切换 shell 时仍使用保存的绝对路径;Windows PowerShell 原生命令用 `& "CLI_PATH" ...`,Node 命令用 `node "CANVAS_ENTRY" ...`。授权复用 [CLI 凭据](auth.md)。
|
|
16
16
|
|
|
17
|
+
原生命令和 `canvas command run` 均复用 `space use TEAM_ID` 保存的默认空间,也可加 `--team-id TEAM_ID` 单次覆盖,`0` 表示个人。沿用 [Space Selection](../SKILL.md#space-selection) 规则,创建、上传、编辑和回读使用同一 TeamID。操作已有画布必须使用其原空间;不按画布 ID 自动查找所属团队,也不在失败后改用个人空间。一次 `run` 内部会固定首次查询确定的空间;多个独立命令仍须显式使用相同 `--team-id`。
|
|
18
|
+
|
|
17
19
|
## 按用户意图发现操作
|
|
18
20
|
|
|
19
21
|
先读取精简目录,仅展开要用的命令;以下名称用于定位,以当前安装版本返回的目录为准。
|
|
@@ -29,7 +31,7 @@
|
|
|
29
31
|
| 图片/视频节点提示词和已有引用 | `xyq.generation.update_prompt` | 先读 `guide prompt-references`;保留其他生成参数,不触发生成 |
|
|
30
32
|
| 3D 导演台对象、摄像机、关键帧、动作 | `xyq.scene3d.query` / `xyq.scene3d.apply` | 先读 `guide scene3d` 和 `guide time` |
|
|
31
33
|
| 多轨草稿、轨道、片段、输出尺寸 | `xyq.timeline.query` / `xyq.timeline.apply` | 先读 `guide timeline` 和 `guide time`,使用最新 `expectedRevision` |
|
|
32
|
-
| 检查点创建、列表、比较、恢复 | `create_checkpoint`、`list_checkpoints`、`compare_checkpoint`、`restore_checkpoint` | 需要网页登录的 credential_scope
|
|
34
|
+
| 检查点创建、列表、比较、恢复 | `create_checkpoint`、`list_checkpoints`、`compare_checkpoint`、`restore_checkpoint` | 需要网页登录的 credential_scope;本地检查点按账号、团队与画布隔离,不是跨机器备份 |
|
|
33
35
|
|
|
34
36
|
```bash
|
|
35
37
|
node "CANVAS_ENTRY" canvas command list
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# get-credit-balance
|
|
1
|
+
# get-credit-balance:当前空间积分余额
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
用于查询本次选择的个人或团队空间有效积分余额。默认沿用已保存的空间(通过 `space list` 查看),单次覆盖使用 `--team-id TEAM_ID`(`0` 为个人)。无需用户 ID 或任务 ID,不创建生成任务、不轮询,也不需要消耗积分的确认。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
pippit-tool-cli get-credit-balance
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# model:发现可用图片与视频模型
|
|
2
2
|
|
|
3
|
-
需要有效登录或 `XYQ_ACCESS_KEY`。生成前可查询当前账号可用的模型及参数配置。`--type image` 查询图片,`--type video` 查询视频;省略时保持查询视频。两类查询共用 Skill 模型接口,图片请求的 `scene=web_image_agent`,视频请求的 `scene=web_turbo_video_generator`,`source_model_key`
|
|
3
|
+
需要有效登录或 `XYQ_ACCESS_KEY`。生成前可查询当前账号可用的模型及参数配置。`--type image` 查询图片,`--type video` 查询视频;省略时保持查询视频。两类查询共用 Skill 模型接口,图片请求的 `scene=web_image_agent`,视频请求的 `scene=web_turbo_video_generator`,`source_model_key` 为空。身份沿用当前 AK;团队空间请求携带 `X-Team-Id`(可用 `--team-id` 单次指定),API 内部仍按个人身份查询,模型列表不代表团队生成权限。
|
|
4
4
|
|
|
5
5
|
使用旧版 CLI 时先检查 `model --help` 是否支持图片名称查询,并确认 `generate-image --help` 的 `--model` 接受完整名称;仅支持视频或仍要求图片 key 时先升级,不能用视频结果回答图片模型问题。
|
|
6
6
|
|
|
@@ -8,6 +8,7 @@ const path = require("path");
|
|
|
8
8
|
|
|
9
9
|
const REQUIRED_COMMANDS = [
|
|
10
10
|
"status", "login", "logout", "query-result",
|
|
11
|
+
"space list", "space use",
|
|
11
12
|
"generate-image", "generate-video", "video-super-resolution",
|
|
12
13
|
"erase-video-subtitle", "get-credit-balance", "model list", "model describe",
|
|
13
14
|
];
|
|
@@ -85,7 +86,13 @@ function ensureCLI({ canvas = false } = {}) {
|
|
|
85
86
|
}
|
|
86
87
|
for (const command of commands) {
|
|
87
88
|
try {
|
|
88
|
-
run(cliPath, [...command, "--help"], `检查 ${command.join(" ")} 命令`, true);
|
|
89
|
+
const help = run(cliPath, [...command, "--help"], `检查 ${command.join(" ")} 命令`, true).toString();
|
|
90
|
+
// --team-id is inherited from the root; reuse an existing business help check.
|
|
91
|
+
if (command[0] === "generate-image" && !/(?:^|\s)--team-id(?:[=\s,]|$)/m.test(help)) {
|
|
92
|
+
const failure = new Error("CLI 缺少 --team-id 参数。");
|
|
93
|
+
failure.missingCommand = "generate-image --team-id";
|
|
94
|
+
throw failure;
|
|
95
|
+
}
|
|
89
96
|
} catch (err) {
|
|
90
97
|
if (Number.isInteger(err.exitStatus) && err.exitStatus !== 0) {
|
|
91
98
|
err.missingCommand = command.join(" ");
|
|
@@ -12,7 +12,7 @@ node "{baseDir}/scripts/ensure-cli.js"
|
|
|
12
12
|
|
|
13
13
|
## 查找与复用
|
|
14
14
|
|
|
15
|
-
脚本依次检查 PATH 中的 CLI 和自身缓存,验证版本及本 Skill 使用命令的 `--help`;命令集合维护在脚本的 `REQUIRED_COMMANDS`,包含 `model list` 和 `
|
|
15
|
+
脚本依次检查 PATH 中的 CLI 和自身缓存,验证版本及本 Skill 使用命令的 `--help`;命令集合维护在脚本的 `REQUIRED_COMMANDS`,包含 `model list`、`model describe`、`space list` 和 `space use`。同时从 `generate-image --help` 检查各业务命令共用的全局 `--team-id` 参数;缺少该参数时沿用缺少必需命令的升级流程。帮助检查不调用生成服务,也不需要凭据,不证明账号权限或服务端运行状态。
|
|
16
16
|
|
|
17
17
|
命令齐全则直接复用,不检查最新版本;不存在或缺少必需命令时,获取 `@pippit-dev/cli@latest`。PATH 旧版本缺少命令但缓存完整时复用缓存,避免每次升级。版本命令不能运行或检查超时则报告运行错误。
|
|
18
18
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
适用于 [Canvas](../commands/canvas.md) 任务。该流程以画布状态为交付对象,创建、编辑不会自动产生可交付媒体文件。
|
|
4
4
|
|
|
5
|
-
1. **准备入口**:执行 Canvas 安装检查,保存 `cli_path` 和 `canvas_entry
|
|
5
|
+
1. **准备入口**:执行 Canvas 安装检查,保存 `cli_path` 和 `canvas_entry`,按授权文档确认身份,并按 Space Selection 确定 TeamID。后续独立命令均显式使用同一 `--team-id TEAM_ID`,个人为 `0`;已有画布沿用原空间。只查命令目录和离线指南无需登录;查询真实画布、执行编辑需要授权。
|
|
6
6
|
2. **确定目标**:已有画布使用真实 `canvas_asset_id` 作为语义命令的 `--canvas-id`。用户提供的信息无法唯一定位时先补齐,不创建替代画布。新画布仅在用户要求创建时使用原生 `canvas create`,检查其返回状态。
|
|
7
7
|
3. **发现与查询**:`list → describe/schema` 定位操作。用 `get_snapshot` 查节点,用 `get_asset` 查具体资产;3D/多轨再查询其独立文档。`run` 是统一执行入口,其中 query/get 类操作是读取,不等于所有 run 都是写入。
|
|
8
8
|
4. **准备输入**:使用查询所得的节点、子对象和资产 ID。多轨 `expectedRevision` 来自最新查询。复杂输入写入 JSON 文件后传 `--file`;不要同时传 `--file` 和 `--input`。只操作用户指定范围。
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
语义执行骨架(占位符替换为当前目录中的命令、真实 ID 和已准备的输入文件):
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
node "CANVAS_ENTRY" canvas command run COMMAND_NAME --canvas-id CANVAS_ASSET_ID --file "/path/to/input.json"
|
|
16
|
+
node "CANVAS_ENTRY" canvas command run COMMAND_NAME --canvas-id CANVAS_ASSET_ID --team-id TEAM_ID --file "/path/to/input.json"
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
写请求失败或返回“未确认事务已隔离”时保留错误上下文,先回读状态,不自动重跑、不删除本地恢复记录。多轨版本冲突需重新查询并基于新状态准备操作;检查点恢复会改变画布,不能作为所有失败的自动回滚方式。
|