@gitruck/cli 1.1.3 → 1.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/CHANGELOG.md CHANGED
@@ -1,6 +1,25 @@
1
1
  # 更新日志
2
2
 
3
- ## 未发布
3
+ ## 1.1.4(2026-09-06)
4
+
5
+ ### AI 片段回填不用再手搓脚本了
6
+
7
+ `gtrk ai-drama lay` 收下 AI Drama Desk 的 return-v1 导出包,把你在外面生成好、自己挑过的片段
8
+ 确定性地铺成一条独立 AI 轨——**纯本地、零模型调用、零计费**,生成那一步仍然发生在你和外部平台之间。
9
+
10
+ 在这之前,回填是靠现写脚本干的。真机上那份脚本把 `setpts` 系数写反过一次(本该放慢写成了加速,
11
+ 差了 0.42 秒才被发现),而且每条片子都要重写一遍、工程文件上不留任何登记。
12
+
13
+ 两条你会撞到的行为:
14
+
15
+ - **不完整的包整批拒收**。导出清单里只要还有镜头没导出,命令直接报错、一个 clip 都不铺——
16
+ 半个包铺进去,成片会在那个窗口无声无息地缺镜。
17
+ - **素材比窗口短就留空档**,不拉伸也不循环。末镜尽量吸收到窗口终点,但不会为了填满而凭空造帧。
18
+
19
+ 已经铺过的 AI 轨若被你在客户端拖动过,重跑会拒绝覆盖并提示 `--replace-all`;判不准时一律按
20
+ 「拒绝覆盖」处理——手调丢了不可逆,多问一次便宜得多。
21
+
22
+ ## 1.1.3(2026-09-05)
4
23
 
5
24
  ### 成片终于有人声了
6
25
 
package/README.en.md CHANGED
@@ -497,7 +497,7 @@ gtrk matrix lay --project <dir> [--plan <path>] # ③ consume the
497
497
  - **Optional atoms**: `matrix describe --plan <path> [--top-k N]` / `--materials <a,b>` understands candidates on demand (VLM description / tags / quality mark / watermark·subtitle·black-border·blur signals; 1 credit per frame (**async task billing**: pre-deducted on submit → settled on completion, auto-refunded on failure; Gitruck internal members are exempt, detected automatically at run time — with `--json`, `credits_estimated` is the actual charge and `credits_would_be` the list price), results injected into the plan and cached locally, cache hits are free, >20 frames triggers a confirmation guard). **One describe speaks for one segment, not the whole candidate**: in `--plan` mode each candidate is sampled at a single frame (`segments[0].best`), the result carries the scope anchor `describe.at_sec` (seconds on the material timebase), and the run reports "describe coverage = frames understood / total **segments** carried by the understood candidates" (`describe_coverage` in `--json`) — injecting N entries does not mean those N candidates were all looked at; `--source-window <start,end>` filters by source-time window (only with `--local`; the film-commentary pattern "segment N of the narration gets footage from around segment N of the film"); `matrix lay --mark-weight <0..1>` blends describe's quality mark into candidate ranking (fused score = sim×(1-w)+(mark/100)×w; reorders only, never changes admission; candidates without a cached mark are treated as neutral).
498
498
  - **Index knobs and score scale**: `--scene-threshold` tunes scene-split granularity, `--stability-threshold` collapses static-camera scenes to fewer sampled frames, `--rebuild` forces a rebuild (describe caches are kept); the index is not portable across machines (keys are absolute paths — just re-run `index` on the new machine). Local score scale differs from the cloud's (a perfect hit can score as low as ~0.25), so do not raise `--score-floor` on cloud instincts.
499
499
 
500
- **`gtrk matrix material "<query>"` (general tri-state material search)**: the second line alongside the B-roll search above, returning a download link for the **whole material** (not a segment) — `--scope clip|image|audio` (default `audio`, the BGM use case), `--commercial-only` searches commercially usable material only, `--min-duration/--max-duration` picks by finished-cut length, `--top-k` (default 5, server cap 50), `--diversity`, `--json` for machine reading, `--out` to write a file.
500
+ **`gtrk matrix material "<query>"` (general tri-state material search)**: the second line alongside the B-roll search above, returning a download link for the **whole material** (not a segment) — `--scope clip|image|audio` (default `audio`, the BGM use case), `--commercial-only` searches commercially usable material only (**an explicit opt-in switch — off by default**), `--min-duration/--max-duration` picks by finished-cut length, `--top-k` (default 5, server cap 50), `--diversity`, `--json` for machine reading, `--out` to write a file.
501
501
 
502
502
  > ⚠️ **`is_copyright` means "may this be used commercially", not "is this under copyright"**: `true` = **commercially usable** (owned ∪ licensed), `false` = **not commercially usable**.
503
503
  >
@@ -506,6 +506,8 @@ gtrk matrix lay --project <dir> [--plan <path>] # ③ consume the
506
506
  > This warning comes from a real incident: on 2026-09-02 an AI operator **deliberately picked `false` twice in a row** as the "safe" option and laid non-commercial material into 5 projects, while the only safe value, `true`, was actively avoided. So under `--json` the CLI now **derives a plain-words label `copyright_label`** per result (`"可商用"` = commercially usable / `"不可商用"` = not) — derived from `is_copyright`, always in the same direction, absent whenever `is_copyright` is absent. Read either key; never infer from the field name.
507
507
  >
508
508
  > The field exists **only on the matrix-member endpoint**: on the public endpoint its absence does not mean "not commercially usable" — the server already restricts that endpoint to commercially usable material at the source (absent = nothing to judge; the CLI reports the absence honestly and never fabricates a value).
509
+ >
510
+ > **Default scope (⟲ 2026-09-06)**: the matrix-member tier searches the **whole library by default** (`copyright_scope=all`, including non-commercial and concept material) — that breadth is exactly what membership buys, so the command never narrows it for you, and the bundled skills must not drop `is_copyright:false` candidates "just to be safe" (they do label every result honestly). Pass `--commercial-only` yourself when you need commercially usable material only.
509
511
 
510
512
  Orchestration recipes (pure matching / describe-then-lay / time-window / footage-first scripting / three-layer stacking) and the plan-editing contract live in the bundled skill `/gtrk-matrix`.
511
513
 
package/README.md CHANGED
@@ -517,7 +517,7 @@ gtrk matrix lay --project <目录> [--plan <path>] # ③ 消费(
517
517
  - **可选零件**:`matrix describe --plan <path> [--top-k N]` / `--materials <a,b>` 按需理解候选(VLM 描述/标签/质量分/水印·字幕·黑边·模糊信号,1 积分/张(**异步任务计费**:提交预扣→完成结算,失败自动退款;同合云内部成员豁免,跑时自动探测,`--json` 的 `credits_estimated` 即实耗、`credits_would_be` 为原价)、产物注入 plan 并本地缓存、缓存命中零计费、>20 张确认护栏)。**一条 describe 只代表一段**:`--plan` 形态每个候选只抽 `segments[0]` 的 best 一帧,产物带射程锚点 `describe.at_sec`(素材时基秒),跑完报「理解覆盖率 = 理解帧数 / 被理解候选携带的**段总数**」(`--json` 读 `describe_coverage`)——注入 N 条 ≠ 这 N 条候选都被看过;`--source-window <start,end>` 源时间窗过滤(仅 `--local`,影视解说式「第 N 段解说配影片第 N 段邻域画面」);`matrix lay --mark-weight <0..1>` 把 describe 的质量分融进候选排序(融合分 = sim×(1-w)+(mark/100)×w,只重排序不改准入,无缓存候选按中性处理)。
518
518
  - **索引参数与量纲**:`--scene-threshold` 调场景切分粒度、`--stability-threshold` 固定机位判稳收敛抽帧、`--rebuild` 强制重建(理解缓存不清);索引跨机不可移植(键=绝对路径,换机重跑 index 即可)。本地 score 量纲与云端不同(完美命中可低至 ~0.25),`--score-floor` 别按云端直觉调高。
519
519
 
520
- **`gtrk matrix material "<词>"`(通用三态素材检索)**:与上面的 B-roll 检索并列的第二条线,出**整条素材**的下载直链(不是段落)——`--scope clip|image|audio`(缺省 `audio`,BGM 主场)、`--commercial-only` 只搜可商用、`--min-duration/--max-duration` 按成片时长挑、`--top-k`(缺省 5,服务端上限 50)、`--diversity` 去同质、`--json` 机读、`--out` 落盘。
520
+ **`gtrk matrix material "<词>"`(通用三态素材检索)**:与上面的 B-roll 检索并列的第二条线,出**整条素材**的下载直链(不是段落)——`--scope clip|image|audio`(缺省 `audio`,BGM 主场)、`--commercial-only` 只搜可商用(**按需收紧的显式开关,缺省不带**)、`--min-duration/--max-duration` 按成片时长挑、`--top-k`(缺省 5,服务端上限 50)、`--diversity` 去同质、`--json` 机读、`--out` 落盘。
521
521
 
522
522
  > ⚠️ **`is_copyright` 读作「能不能商用」,不是「有没有被版权保护」**:`true` = **可商用**(自有 ∪ 已授权),`false` = **不可商用**。
523
523
  >
@@ -526,6 +526,8 @@ gtrk matrix lay --project <目录> [--plan <path>] # ③ 消费(
526
526
  > 这条警示是真机踩出来的:2026-09-02 有 AI 执行方连着两轮**特意去挑 `false`** 当「安全选择」,把不可商用素材铺进了 5 个工程,而唯一安全的 `true` 反倒被主动避开。所以 `--json` 里 CLI 会逐条**派生一个人话标签 `copyright_label`**(`"可商用"` / `"不可商用"`)——它由 `is_copyright` 推出、与之恒同向、缺席同缺席,判读认这两个键之一即可,别靠字段名去猜。
527
527
  >
528
528
  > 该字段**只有矩阵成员口才有**:公开口没有它不是「不可商用」,而是服务端在源头就只放可商用素材(缺席即无需判,CLI 如实缺省、绝不补假值)。
529
+ >
530
+ > **缺省口径(⟲ 2026-09-06)**:矩阵成员档**缺省搜全库**(`copyright_scope=all`,含非商用/概念素材)——那正是成员身份买到的东西,命令不会替你收紧,随包 skill 也不许「保险起见」自行剔掉 `is_copyright:false` 的候选(但会**逐条如实标注**版权状态)。只要可商用时,自己加 `--commercial-only`。
529
531
 
530
532
  编排配方(纯匹配 / 先理解后铺 / 时间窗 / 素材先行编剧 / 三层层叠)与 plan 编辑口径见随包 skill `/gtrk-matrix`。
531
533