@pippit-dev/cli 1.0.51 → 1.0.52

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
@@ -77,6 +77,20 @@ pippit-tool-cli get-credit-balance --team-id 0 # 仅本次使用个人
77
77
 
78
78
  `space list/use TEAM_ID` 依赖 API 部署 `/api/biz/v1/skill/get_lite_team_list` 的 AK 适配入口,业务团队使用还依赖对应 API 团队权限实现;不直连 commerce Web 接口。宿主 Agent 的选择、任务恢复与不回退规则已写入三个 Skill 的 `Space Selection` 章节。
79
79
 
80
+ ## 账号 AIGC 水印设置
81
+
82
+ ```bash
83
+ pippit-tool-cli watermark # 查询当前账号的 AIGC 水印开关
84
+ pippit-tool-cli watermark off # 保存内容时去除 AIGC 水印
85
+ pippit-tool-cli watermark on # 恢复保留 AIGC 水印
86
+ ```
87
+
88
+ 查询和修改均输出 `{"enabled":true}` 或 `{"enabled":false}`,`true` 表示保留 AIGC 水印。无参数只查询,只有显式 `on` / `off` 才修改;修改接口在服务端回读后返回当前状态。
89
+
90
+ 这是当前认证账号的持久设置,与 Web「保存内容去除 AIGC 水印」同步;不依赖默认个人/团队空间,也不会变成团队开关。品牌水印与最终下载权益仍由服务端决定,关闭 AIGC 开关不代表所有视频均无任何水印。修改失败或结果不明时先用无参数命令查询,不自动重复写入。
91
+
92
+ 依赖 API 部署 `/api/biz/v1/skill/mget_user_setting` 和 `/api/biz/v1/skill/update_user_setting` 的 AK 接口。前者接收 `{}`,后者接收 `{"enabled":true}` 或 `{"enabled":false}`;接口仅读写 AK 所属账号的 AIGC 设置。
93
+
80
94
  ## 小云雀营销成片技能
81
95
 
82
96
  入口:[skills/xyq-marketing-skill/SKILL.md](skills/xyq-marketing-skill/SKILL.md)。使用 [官网](https://xyq.jianying.com/cli?tab=api) 已开放的营销 API,支持素材上传、营销视频提交、结果查询与下载、积分查询。安装器会从 `skills/` 自动安装该 Skill,也可以单独安装:
package/checksums.txt CHANGED
@@ -1,6 +1,6 @@
1
- 95c1a5b68a1df337ef3869de5cd00172b766c9324975f2a7358631d92b843137 pippit-tool-cli-1.0.51-darwin-amd64.tar.gz
2
- 05a617b10aa6768f1a0d51c82d5f1bbf7a3ed6196db17247dfaad7cd1f46f957 pippit-tool-cli-1.0.51-darwin-arm64.tar.gz
3
- fb1edb92514aa2941b8c83ca1b806f76cdd1a0e19610b6ac9af38e415b9e060e pippit-tool-cli-1.0.51-linux-amd64.tar.gz
4
- 45b57561a0f190d32e4f05cc2aef6e9d2421263f7cec4cacd1e0151d5b1898aa pippit-tool-cli-1.0.51-linux-arm64.tar.gz
5
- 0f727048f4e3915a3f58e7c3b0b4df6d3fcd4214a17881cdb37f2958c417d86a pippit-tool-cli-1.0.51-windows-amd64.zip
6
- 1b05ef17e005e405997cf78622afbdc6d161f20c855347fabc5a0a46cf00399d pippit-tool-cli-1.0.51-windows-arm64.zip
1
+ edd2d8640d4a34b156d8c614ef5186ce91a6ea8778aee7b208d41296a840ef3f pippit-tool-cli-1.0.52-darwin-amd64.tar.gz
2
+ 7b4b992088057f012851cd5c396d05239ad5fd6782bf93c3a7f9f5ae494b81fd pippit-tool-cli-1.0.52-darwin-arm64.tar.gz
3
+ aab287cc80ccab5f78f0f73df95d15b61d7e9e67205fb8b5e6386c22a35dc732 pippit-tool-cli-1.0.52-linux-amd64.tar.gz
4
+ a9c86c8323d9f2a4859a0280095a7cac85cdf0e7fc59aa3bc758f99332bd387e pippit-tool-cli-1.0.52-linux-arm64.tar.gz
5
+ a0846db0ff0f2c61337c85f50f3b746ad9a6bd1ed2862df16399ba6dcc4257e7 pippit-tool-cli-1.0.52-windows-amd64.zip
6
+ 54dd5852b9597b3ad9405be0c63ebfa670b713c169f69649647b3afe5ed89fe1 pippit-tool-cli-1.0.52-windows-arm64.zip
package/cmd/root.go CHANGED
@@ -119,6 +119,7 @@ func newRootCommandWithAdapter(stdout, stderr io.Writer, runner *common.Runner,
119
119
  root.AddCommand(canvascmd.NewCommand(stdout, stderr, runner))
120
120
  root.AddCommand(newDownloadResultCommand(stdout, stderr, runner))
121
121
  root.AddCommand(newGetCreditBalanceCommand(stdout, stderr, runner))
122
+ root.AddCommand(newWatermarkCommand(stdout, stderr, runner))
122
123
  root.AddCommand(newModelCommand(stdout, stderr, runner))
123
124
  root.AddCommand(newMarketingCommand(stdout, stderr, runner, policy))
124
125
  root.AddCommand(newGetThreadCommand(stdout, stderr, runner))
package/cmd/space.go CHANGED
@@ -30,7 +30,7 @@ func prepareCommandSpace(cmd *cobra.Command, runner *common.Runner, stderr io.Wr
30
30
  top = top.Parent()
31
31
  }
32
32
  switch top.Name() {
33
- case commandnames.Space, commandnames.Login, commandnames.Logout, commandnames.Status, commandnames.Update, commandnames.Completion, commandnames.Help, commandnames.DownloadResult:
33
+ case commandnames.Space, commandnames.Login, commandnames.Logout, commandnames.Status, commandnames.Update, commandnames.Completion, commandnames.Help, commandnames.DownloadResult, commandnames.Watermark:
34
34
  return nil
35
35
  }
36
36
  raw, _ := cmd.Flags().GetString("space-context")
@@ -0,0 +1,38 @@
1
+ package cmd
2
+
3
+ import (
4
+ "fmt"
5
+ "io"
6
+
7
+ "github.com/Pippit-dev/pippit-cli/internal/commandnames"
8
+ "github.com/Pippit-dev/pippit-cli/internal/common"
9
+ "github.com/spf13/cobra"
10
+ )
11
+
12
+ func newWatermarkCommand(stdout, stderr io.Writer, runner *common.Runner) *cobra.Command {
13
+ cmd := &cobra.Command{
14
+ Use: commandnames.Watermark + " [on|off]",
15
+ Short: "Query or set the current account's AIGC watermark",
16
+ Long: "Without arguments, query the current account's AIGC watermark setting. Use on to retain it or off to remove it from saved content. This changes a persistent account setting; team selection does not change its scope. Final downloads remain subject to server policies.",
17
+ Args: cobra.MaximumNArgs(1),
18
+ ValidArgs: []string{"on", "off"},
19
+ RunE: withErrorLog(commandnames.Watermark, nil, func(cmd *cobra.Command, args []string) error {
20
+ var enabled *bool
21
+ if len(args) > 0 {
22
+ if args[0] != "on" && args[0] != "off" {
23
+ return fmt.Errorf("水印状态只支持 on 或 off")
24
+ }
25
+ value := args[0] == "on"
26
+ enabled = &value
27
+ }
28
+ result, err := common.Watermark(cmd.Context(), runner, enabled)
29
+ if err != nil {
30
+ return err
31
+ }
32
+ return common.WriteJSON(stdout, result)
33
+ }),
34
+ }
35
+ cmd.SetOut(stdout)
36
+ cmd.SetErr(stderr)
37
+ return cmd
38
+ }
@@ -1,6 +1,6 @@
1
- 95c1a5b68a1df337ef3869de5cd00172b766c9324975f2a7358631d92b843137 pippit-tool-cli-1.0.51-darwin-amd64.tar.gz
2
- 05a617b10aa6768f1a0d51c82d5f1bbf7a3ed6196db17247dfaad7cd1f46f957 pippit-tool-cli-1.0.51-darwin-arm64.tar.gz
3
- fb1edb92514aa2941b8c83ca1b806f76cdd1a0e19610b6ac9af38e415b9e060e pippit-tool-cli-1.0.51-linux-amd64.tar.gz
4
- 45b57561a0f190d32e4f05cc2aef6e9d2421263f7cec4cacd1e0151d5b1898aa pippit-tool-cli-1.0.51-linux-arm64.tar.gz
5
- 0f727048f4e3915a3f58e7c3b0b4df6d3fcd4214a17881cdb37f2958c417d86a pippit-tool-cli-1.0.51-windows-amd64.zip
6
- 1b05ef17e005e405997cf78622afbdc6d161f20c855347fabc5a0a46cf00399d pippit-tool-cli-1.0.51-windows-arm64.zip
1
+ edd2d8640d4a34b156d8c614ef5186ce91a6ea8778aee7b208d41296a840ef3f pippit-tool-cli-1.0.52-darwin-amd64.tar.gz
2
+ 7b4b992088057f012851cd5c396d05239ad5fd6782bf93c3a7f9f5ae494b81fd pippit-tool-cli-1.0.52-darwin-arm64.tar.gz
3
+ aab287cc80ccab5f78f0f73df95d15b61d7e9e67205fb8b5e6386c22a35dc732 pippit-tool-cli-1.0.52-linux-amd64.tar.gz
4
+ a9c86c8323d9f2a4859a0280095a7cac85cdf0e7fc59aa3bc758f99332bd387e pippit-tool-cli-1.0.52-linux-arm64.tar.gz
5
+ a0846db0ff0f2c61337c85f50f3b746ad9a6bd1ed2862df16399ba6dcc4257e7 pippit-tool-cli-1.0.52-windows-amd64.zip
6
+ 54dd5852b9597b3ad9405be0c63ebfa670b713c169f69649647b3afe5ed89fe1 pippit-tool-cli-1.0.52-windows-arm64.zip
@@ -10,5 +10,6 @@ const (
10
10
  Completion = "completion"
11
11
  Help = "help"
12
12
  Model = "model"
13
+ Watermark = "watermark"
13
14
  DownloadResult = "download-result"
14
15
  )
@@ -0,0 +1,54 @@
1
+ package common
2
+
3
+ import (
4
+ "context"
5
+ "fmt"
6
+
7
+ "github.com/Pippit-dev/pippit-cli/internal/config"
8
+ )
9
+
10
+ type WatermarkResult struct {
11
+ Enabled bool `json:"enabled"`
12
+ }
13
+
14
+ type watermarkResponse struct {
15
+ Ret string `json:"ret"`
16
+ Errmsg string `json:"errmsg"`
17
+ LogID string `json:"log_id"`
18
+ Data *struct {
19
+ Enabled *bool `json:"enabled"`
20
+ } `json:"data"`
21
+ }
22
+
23
+ // Watermark queries when enabled is nil; updates return the server's readback in the same request.
24
+ func Watermark(ctx context.Context, runner *Runner, enabled *bool) (*WatermarkResult, error) {
25
+ if runner == nil || runner.Client == nil {
26
+ return nil, fmt.Errorf("水印设置运行器客户端缺失")
27
+ }
28
+ path := config.GetWatermarkSettingPath
29
+ var body any = struct{}{}
30
+ if enabled != nil {
31
+ path = config.UpdateWatermarkSettingPath
32
+ body = struct {
33
+ Enabled bool `json:"enabled"`
34
+ }{Enabled: *enabled}
35
+ }
36
+
37
+ var resp watermarkResponse
38
+ if err := runner.Client.SendRequest(ctx, path, body, &resp); err != nil {
39
+ if enabled != nil {
40
+ return nil, fmt.Errorf("设置水印请求失败,结果可能已生效,请运行 watermark 查询确认: %w", err)
41
+ }
42
+ return nil, fmt.Errorf("查询水印设置请求失败: %w", err)
43
+ }
44
+ if resp.Ret != "0" {
45
+ if resp.Errmsg == "" {
46
+ resp.Errmsg = "未知错误"
47
+ }
48
+ return nil, NewLogIDError(fmt.Sprintf("水印设置请求返回失败: ret=%s errmsg=%s", resp.Ret, resp.Errmsg), resp.LogID)
49
+ }
50
+ if resp.Data == nil || resp.Data.Enabled == nil {
51
+ return nil, NewLogIDError("水印设置响应缺少 data.enabled;请查询确认当前状态", resp.LogID)
52
+ }
53
+ return &WatermarkResult{Enabled: *resp.Data.Enabled}, nil
54
+ }
@@ -21,6 +21,8 @@ const (
21
21
  SubmitMarketingRunPath = "/api/biz/v1/agent/submit_marketing_run"
22
22
  QueryGenerateVideoResultPath = "/api/biz/v1/agent/query_generate_video_result"
23
23
  GetCreditBalancePath = "/api/biz/v1/skill/get_credit_balance"
24
+ GetWatermarkSettingPath = "/api/biz/v1/skill/mget_user_setting"
25
+ UpdateWatermarkSettingPath = "/api/biz/v1/skill/update_user_setting"
24
26
  GetLiteTeamListPath = "/api/biz/v1/skill/get_lite_team_list"
25
27
  GetAvailableModelListPath = "/api/biz/v1/skill/get_available_model_list"
26
28
  GetThreadPath = "/api/biz/v1/skill/get_thread"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pippit-dev/cli",
3
- "version": "1.0.51",
3
+ "version": "1.0.52",
4
4
  "description": "Pippit CLI",
5
5
  "bin": {
6
6
  "pippit-tool-cli": "scripts/run.js"
@@ -32,6 +32,7 @@ metadata:
32
32
  | 用户意图 | CLI | 必读文档 |
33
33
  | --- | --- | --- |
34
34
  | 查看登录、登录、退出或切换账号 | `status` / `login` / `logout` | [授权](commands/auth.md) |
35
+ | 查询或修改当前账号的 AIGC 水印开关 | `watermark [on\|off]` | [账号水印设置](commands/watermark.md) |
35
36
  | 新建短剧、续写、改写、回复后端问题 | `short-drama +submit-run` | [提交任务](commands/submit-run.md) |
36
37
  | 上传本地参考剧本 | `short-drama +upload-file` | [上传文件](commands/upload-file.md) |
37
38
  | 查询角色、场景、外观、画布、分镜等业务内容 | 同一会话 `short-drama +submit-run`,再用 `get-thread` 获取回答 | [业务内容查询](workflows/creation.md#业务内容查询) |
@@ -0,0 +1,15 @@
1
+ # 账号 AIGC 水印设置
2
+
3
+ 先用 `pippit-tool-cli watermark --help` 检查命令。缺失时按[安装说明](../scripts/install.md)通过宿主升级,独立 CLI 可执行 `update`;改用升级后的绝对路径重查。
4
+
5
+ ```bash
6
+ pippit-tool-cli watermark # 查询
7
+ pippit-tool-cli watermark off # 关闭
8
+ pippit-tool-cli watermark on # 保留
9
+ ```
10
+
11
+ 返回 `{"enabled":true}` 或 `{"enabled":false}`,`true` 表示保留。设置后返回服务端回读状态。
12
+
13
+ 设置与 Web 同步,按当前账号持续生效,与团队选择无关。用户明确要求修改账号设置时才执行 `on/off`;只要求本次视频无水印时,先确认是否接受修改账号默认值。
14
+
15
+ 此开关控制 AIGC 水印,品牌水印与最终下载权益由服务端决定。修改报错或结果未知时先查询确认。
@@ -45,6 +45,7 @@ metadata:
45
45
  | 去除已有视频字幕 | `erase-video-subtitle` | [擦字幕](commands/erase-video-subtitle.md) |
46
46
  | 查询已有任务进度、下载生成结果 | `query-result` | [查询结果](commands/query-result.md) |
47
47
  | 查询当前空间积分余额、剩余 credits | `get-credit-balance` | [积分](commands/get-credit-balance.md) |
48
+ | 查询或修改当前账号的 AIGC 水印开关 | `watermark [on\|off]` | [账号水印设置](commands/watermark.md) |
48
49
 
49
50
  - 普通生图、生视频也走对应生成命令,无需用户额外声明“模型直出”。
50
51
  - 明确要求修改现有画布或其中节点时优先走 Canvas;普通生图、生视频不自动创建画布。“修改节点提示词”只修改配置,不隐含生成;指定节点生成或导出须先确认当前命令目录有对应能力。
@@ -0,0 +1,15 @@
1
+ # 账号 AIGC 水印设置
2
+
3
+ 先用 `pippit-tool-cli watermark --help` 检查命令。缺失时按[安装说明](../scripts/install.md)通过宿主升级,独立 CLI 可执行 `update`;改用升级后的绝对路径重查。
4
+
5
+ ```bash
6
+ pippit-tool-cli watermark # 查询
7
+ pippit-tool-cli watermark off # 关闭
8
+ pippit-tool-cli watermark on # 保留
9
+ ```
10
+
11
+ 返回 `{"enabled":true}` 或 `{"enabled":false}`,`true` 表示保留。设置后返回服务端回读状态。
12
+
13
+ 设置与 Web 同步,按当前账号持续生效,与团队选择无关。用户明确要求修改账号设置时才执行 `on/off`;只要求本次视频无水印时,先确认是否接受修改账号默认值。
14
+
15
+ 此开关控制 AIGC 水印,品牌水印与最终下载权益由服务端决定。修改报错或结果未知时先查询确认。