@gitruck/cli 0.2.8 → 0.2.9
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/AGENT.md +8 -0
- package/README.md +30 -3
- package/dist/index.js +1899 -3
- package/package.json +64 -62
- package/skills/gtrk-tools/SKILL.md +53 -0
package/AGENT.md
CHANGED
|
@@ -239,3 +239,11 @@ gtrk oralcut "D:/素材/某条.mp4" --params-json '{"punctuation_breaks":{"。":
|
|
|
239
239
|
|
|
240
240
|
新增命令 = 写 `src/commands/<name>.ts` 的 `register<Name>(program)` + 在 `src/index.ts` 注册一行。
|
|
241
241
|
云端调用走 `src/lib/cloud.ts`(`{code,msg,data}` 包装、鉴权 Header `Authorization:<裸key>`;单发取结果 `getTaskResult`、`pollTask` 复用之);上传一律走 `src/lib/upload-cache.ts` 的 `uploadCached`(白嫖指纹缓存;≥256MiB 自动分片断点续传,见 `src/lib/chunk-upload.ts`)。本地预处理(探几何 / 抽音频 / 压 720p)在 `src/lib/media.ts`;本地渲染(gtrk EDL → ffmpeg filter_complex)在 `src/lib/render.ts`;三方产物落地 + `result.json` 两段写在 `src/lib/materialize.ts`(`oralcut` 与 `oralcut-result` 共用)。已上线:`oralcut`(云剪)、`oralcut-result`(按 task_id 取回)、`render`(本地渲染 gtrk)、`split`(视觉拆分派单器:`src/lib/projection.ts` 投影纯函数 + `src/lib/splitdoc.ts` 拆分稿校验/落地 + `src/lib/gtrk-writeback.ts` 原子写回 `struct_meta.split`,随包分发 `skills/gtrk-splitter/`)。`matrix`(B-roll 检索:`src/lib/matrix.ts` 双口路由/派单翻译/plan 构建 + `src/commands/matrix.ts`;`matrix search "<词>"` ad-hoc)。规划中:`struct`(已有 gtrk → 三方工程)。
|
|
242
|
+
|
|
243
|
+
### 工具族:接单点云能力 = 加一个 descriptor(不写编排)
|
|
244
|
+
|
|
245
|
+
单发单收的单点能力(图转运镜、图片/视频抠像…)不各开顶层命令,而入 `gtrk tool <name>` 工具族。骨架全归共享 runner `src/lib/tool-runner.ts`(校验 → 可选 preprocess → `uploadCached` → 提交前打印 `billingHint` → `submitTask`(6004 失效重传收编于此)→ 自循环轮询(复用 `getTaskResult`、墙钟 per-tool 可覆盖,**不改 `pollTask`**)→ `mapOutputs` **流式下载**落地(fetch body pipe 到 `createWriteStream`,大产物不过内存,**不用 `cloud.ts` 全内存 `download`**)→ `task.json`/`result.json` 面包屑)。差异全归一个薄 descriptor `src/lib/tool-descriptors.ts`(`name`/`kind`/`input`(含扩展名白名单、视频类 `maxDurationSec` 硬上限)/`taskType`/`buildPayload`/`mapOutputs`/`billingHint`/`options`/`enabled`+`disabledReason`/`pollTimeoutMs`)。
|
|
246
|
+
|
|
247
|
+
**接新工具 = 在 `TOOL_REGISTRY` 追加一个 descriptor 对象**(`tool list` 与分派自动生效),不新写命令编排。`--param`/`--params-json` 在 `buildPayload` 结果上逐字段合并覆盖。`cloud.ts`/`upload-cache.ts`/`chunk-upload.ts`/`media.ts` 只被复用、零改动。`list` 为保留字。工具长出多模式子命令 / SOP 检查点链 / 栏目风格注入时按 `mg`/`matrix` 先例毕业为独立命令。随包分发伞形 skill `skills/gtrk-tools/`(一个 skill 覆盖全族)。
|
|
248
|
+
|
|
249
|
+
**local 型(`kind:"local"`)首个实例 = `mad`(一键剪 MAD,add-tool-mad)**:无 Key 可跑、可选云端加料。cloud 型走共享 runner 全链,local 型(复杂度上限标尺)在 `tool.ts` 的 local 分支**分派到自己的 handler**(`src/lib/mad/mad.ts::runMad`),不套 runCloudTool。mad 的新逻辑全住 `src/lib/mad/`(数据获取层 `data.ts` = 云端 manifest `/task/mad/manifest` + `~/.gitruck/mad-cache` 版本感知缓存 + sha256 自愈;`selector.ts` 六维规则选窗 + 种子 PRNG;`beat.ts` downbeat 量化 + 三级降级;`pool.ts` IR 分片按需拉取;`scan.ts` 素材扫描;`cloud-beat.ts` audio_music_analyze 接线 + 6004 失效重传)与 `src/lib/convert/`(IR→JSX,含 `madJsx` 母合成拼接 + `bake_ops.ts` 时序算子烘焙)——`tool-descriptors.ts`/`tool-runner.ts`/`cloud.ts` 零改动(红线)。产物仅 `.jsx`/仅支持 AE。
|
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
>
|
|
5
5
|
> 一条命令,把口播毛片变成可二次精修的剪辑工程。云端做重活,本地只装配,源视频不出本地。
|
|
6
6
|
|
|
7
|
+
**🔗 [官网](https://cloud.ai-mcn.tv/zh-CN/cli) · [使用教程](https://hocassian.feishu.cn/docx/A6v0dCKT8oWMdAxI1qQcKzmJnIf) · [快速开始](https://cloud.ai-mcn.tv/zh-CN/docs/quick-start) · [客户端下载](https://cloud.ai-mcn.tv/zh-CN/download) · [npm](https://www.npmjs.com/package/@gitruck/cli)**
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## 为什么用 gtrk-cli
|
|
@@ -21,11 +23,12 @@
|
|
|
21
23
|
| ✂️ | `gtrk split [拆分稿]` | 视觉拆分派单器:成片 × transcript 投影 → beat 分镜校验落地(`struct_meta.split` + `dispatch.json`),驱动四车道派单;`--column <id>` 按栏目词表校验 |
|
|
22
24
|
| ⚙️ | `gtrk init` | 引导式一次性配置(API Key + 剪映草稿目录),之后免管 |
|
|
23
25
|
| 🩺 | `gtrk doctor` | 体检:配置 / 云端连通 / 剪映目录 / 运行时一键自检 |
|
|
24
|
-
| 🤖 | `gtrk skills install` | 把
|
|
26
|
+
| 🤖 | `gtrk skills install` | 把 7 个 CLI 自带 skill(`/gtrk-oralcut`·`/gtrk-splitter`·`/gtrk-matrix`·`/gtrk-mg`·`/gtrk-ai-drama`·`/gtrk-style-maker`·`/gtrk-tools`)装进 Claude Code |
|
|
25
27
|
| ⬆️ | `gtrk upgrade` | 升级 CLI 到最新版 + 刷新 skill(配置保留);`--check` 只查不装 |
|
|
26
28
|
| 🎞️ | `gtrk render` | 本地渲染 gtrk 工程(EDL)→ 成片 mp4(需 ffmpeg) |
|
|
27
29
|
| 🔎 | `gtrk matrix` | B-roll 检索+**候选铺轨**:消费 FILM_BROLL 派单 → 产候选清单 + 下载 preview 代理铺 N 条候选轨(`--lay N` 默认 1,opencut 打开即可用轨道小眼睛对比;`--lay 0` 只出清单);`matrix search "<词>"` 单条 ad-hoc |
|
|
28
30
|
| 🎨 | `gtrk mg` | MG 动态图颗粒铺轨:消费 MG 派单 → 把 html-particle 颗粒(透明叠加 / 满屏底层,由你栏目的 MG 生产 skill 所产)铺进 `.gtrk` 的 beat_track;`mg lint <颗粒.html>` 六铁律静态校验、`mg status --project <dir>` 编排看板(缺 HTML / 已产未铺 / 已铺);aux 叠层颗粒同段多铺(一 beat 派生主 + `-aux<n>`)。旧名 `gtrk rrv` 保留为弃用别名 |
|
|
31
|
+
| 🧰 | `gtrk tool <name>` | 单点工具族:`gtrk tool image_move <图>`(图转运镜,2 积分/个)、`image_matting <图>` / `video_matting <视频>`(图片/视频抠像,**免费**)、`mad <素材文件夹>`(一键剪 MAD → AE 成片工程 `.jsx`,无 Key 可跑、`--bgm` 卡点计费);`gtrk tool list` 查全部(输入/产物/计费/状态)。单发单收、共享 runner,接新工具只加一个 descriptor |
|
|
29
32
|
| 🚧 | `struct` | (规划中)已有 gtrk 转三方工程 |
|
|
30
33
|
|
|
31
34
|
---
|
|
@@ -143,7 +146,7 @@ irm https://api.ai-mcn.tv:9000/broadcast/exe/install.ps1 | iex
|
|
|
143
146
|
|
|
144
147
|
## 给 AI Agent 用
|
|
145
148
|
|
|
146
|
-
`gtrk install` 已经把
|
|
149
|
+
`gtrk install` 已经把 7 个 CLI 自带 skill(`/gtrk-oralcut`·`/gtrk-splitter`·`/gtrk-matrix`·`/gtrk-mg`·`/gtrk-ai-drama`·`/gtrk-style-maker`·`/gtrk-tools`)装进 `~/.claude/skills`(单独装用 `gtrk skills install`)。
|
|
147
150
|
|
|
148
151
|
然后在 Claude Code 里直接说「**帮我把这条口播剪一版**」或打 `/gtrk-oralcut`,agent 会问清毛片 / 文稿 / 节奏,调 `gtrk oralcut --json` 跑通闭环、验证产物、把三端打开方式回给你。完整可移植 playbook 见 [`AGENT.md`](./AGENT.md)。
|
|
149
152
|
|
|
@@ -162,9 +165,10 @@ irm https://api.ai-mcn.tv:9000/broadcast/exe/install.ps1 | iex
|
|
|
162
165
|
| ⑤ | `/gtrk-ai-drama` | (无命令,纯创作) | **最后上 AI 再现**:产四段描述稿(故事背景/角色/分镜/原文,中英分块)→ 任意外部平台出片、手动回铺(产物即描述文本、无机械尾巴,同 `/gtrk-style-maker` 只 skill 无命令) |
|
|
163
166
|
| — | `/gtrk-style-maker` | (无命令,建栏目) | 一次性访谈式建你栏目的风格体系(skill 家族 + 栏目配置,见下节) |
|
|
164
167
|
| — | (收口) | `gtrk render` | 本地渲染 gtrk 工程 → 成片 mp4 |
|
|
168
|
+
| 🧰 | `/gtrk-tools` | `gtrk tool <name>` | 单点工具族(图转运镜 / 图片·视频抠像…)——单发单收,**不在成片 SOP 序列内**、随时可独立用 |
|
|
165
169
|
|
|
166
170
|
> **skill 与命令的区别**:`/gtrk-mg` 是**脑**——懂它在 SOP 第 ④ 步(B-roll 定了才铺 MG)、带用户确认、按栏目配置解析该产哪种颗粒;`gtrk mg` 是**手**——纯确定性 lint + 铺轨。你对话触发 skill,skill 替你跑命令。
|
|
167
|
-
> 上面
|
|
171
|
+
> 上面 7 个 `/gtrk-X` 都是 **CLI 自带框架 skill**(`gtrk skills install` 装)——`/gtrk-matrix`·`/gtrk-mg`·`/gtrk-tools` 各驱动 gtrk 命令,`/gtrk-ai-drama`·`/gtrk-style-maker` 是纯创作 skill(无命令)。`/gtrk-tools` 是单点工具族的向导,不属成片 SOP 序列。栏目专属的**视觉风格/生产内容**另由你栏目的生产 skill(`/gtrk-style-maker` 产、经栏目配置 `style.skills` 绑定)供,不写死在这些框架 skill 里。
|
|
168
172
|
|
|
169
173
|
上面三个是 **CLI 自带的框架 skill**(`gtrk skills install` 装,业务无关)。
|
|
170
174
|
|
|
@@ -310,6 +314,29 @@ gtrk init --api-key <KEY> --jianying-draft-dir auto -y
|
|
|
310
314
|
> **aux 叠层颗粒**:`gtrk split` 若在某 beat 的 `aux_layers` 派了 `overlay` 颗粒,会派生 `<beat>-aux<n>` 合成条目进 `dispatch.mg`——`gtrk mg` 一并铺,实现「同段既有底轨主视觉、又叠透明概念图解」。
|
|
311
315
|
> **双读兼容**:`dispatch.mg`(读旧 `rrv_mg`)、源目录 `mg/`(读旧 `rrv/`)、素材前缀 `mg-`(读旧 `rrv-`)——去品牌化前的既有工程零迁移。
|
|
312
316
|
|
|
317
|
+
### `gtrk tool <name> [input]` — 单点工具族
|
|
318
|
+
|
|
319
|
+
单发单收的独立能力,与成片管线的车道命令(`oralcut`/`split`/`matrix`/`mg`)分家。**顶层命令 + 首个 positional 词分派**(不用父子命令):`gtrk tool <name> [input]` 跑工具,`gtrk tool list` 查全部。一个工具 = 一个薄 descriptor(输入类别 / payload 拼装 / 产物映射 / 计费 / 可用门),共享 runner 跑「校验 → 上传(指纹缓存、≥256MiB 自动分片)→ 提交 → 轮询 → 流式下载落地 → `task.json`/`result.json` 面包屑」——接新工具只加一个 descriptor、不写编排。
|
|
320
|
+
|
|
321
|
+
| 工具 | 输入 | 产物 | 计费 | 状态 |
|
|
322
|
+
|---|---|---|---|---|
|
|
323
|
+
| `image_move` | 单张图片 | 运镜视频(几何按原图朝向推导:横 1920×1080 / 竖 1080×1920) | 2 积分/个 | 已上线 |
|
|
324
|
+
| `image_matting` | 单张图片 | 透明背景 png(可 `--param` 请求背景底板) | **免费** | 已上线 |
|
|
325
|
+
| `video_matting` | 单条视频(**≤10 分钟**,原片直传不压代理) | 透明背景 webm | **免费** | 已上线 |
|
|
326
|
+
| `mad` | 一个素材文件夹(3~10 条视频)+ 可选 `--bgm` | AE 母合成成片工程 `.jsx`(仅支持 AE) | **免费**(`--bgm` 卡点计费一次) | 已上线 |
|
|
327
|
+
|
|
328
|
+
> 抠像面向用户**免费**(license 合规,白标售卖是红线)。`video_matting` 上传前 ffprobe 探时长,> 10 分钟直接拒绝(不上传不提交、请先裁剪)。
|
|
329
|
+
> `mad` 是族内首个 **local 型「纯本地工具、可选云端加料」**:无 Key 可跑零费用(技法数据经云端 manifest 下发 + `~/.gitruck/mad-cache` 缓存,**首拉联网、缓存后离线可跑**),`--bgm` 卡点才需 Key 并计费一次云端节拍分析;三级降级(有 Key 卡点 / 无 Key 或坏 BGM 固定节奏 / 云端失败降级)全程不崩。仅产 `.jsx`/仅支持 AE。
|
|
330
|
+
|
|
331
|
+
- `gtrk tool list [--json]` — 列全部工具(名称/说明/输入/产物/计费/状态);`--json` 出单行机读数组。**无 API Key 也能跑**(纯本地读注册表、零网络)。
|
|
332
|
+
- `gtrk tool image_move ./photo.jpg [--json]` — 图转运镜;产物落 `photo-image_move/`。`--param width=1080 --param height=1920` 覆盖推导几何。
|
|
333
|
+
- `gtrk tool image_matting ./portrait.jpg` / `gtrk tool video_matting ./clip.mp4` — 图片/视频抠像。
|
|
334
|
+
- `gtrk tool mad ./素材 [--bgm 歌.mp3] [--duration 20] [--seed 42] [--refresh] [--json]` — 一键剪 MAD:扫素材文件夹 → 自动选技法 → 单一 `.jsx`(AE 2020+ 跑一遍出母合成成片工程)。`--seed` 可复现;`result.json` 记 seed/数据版本/降级档位/选中技法。
|
|
335
|
+
- 通用:`--out <dir>` 覆盖产物目录、`--param k=v`(可重复)/`--params-json '<对象>'` 透传云端参数、`--reupload` 忽略上传缓存、`--json` 机读、`--ffmpeg-path <dir>` 指定 ffmpeg 目录。
|
|
336
|
+
- cloud 型工具缺 Key → 报错引导 `gtrk init`。产物下载失败(如链接过期 404)→ `result.json` 记 `errors`、`ok=false`、`task.json` 保留可凭 `taskId` 恢复。
|
|
337
|
+
|
|
338
|
+
配套 skill `/gtrk-tools`(一个 skill 覆盖整个工具族)。
|
|
339
|
+
|
|
313
340
|
### 其它
|
|
314
341
|
|
|
315
342
|
- `gtrk install [--api-key … -y --skills-dir …]` — 一条命令装全(skill + 配置 + 体检),对标飞书 `lark-cli install`。
|