cutsdk 1.1.5 → 1.1.7
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/dist/api/draft/list-drafts.d.ts.map +1 -1
- package/dist/api/draft/list-drafts.js +1 -0
- package/dist/api/draft/list-drafts.js.map +1 -1
- package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -1
- package/dist/api/draft-spec/create-and-render-draft.js +24 -17
- package/dist/api/draft-spec/create-and-render-draft.js.map +1 -1
- package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +3 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-drafts.d.ts","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"list-drafts.d.ts","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CA2C3D"}
|
|
@@ -28,6 +28,7 @@ async function listDrafts() {
|
|
|
28
28
|
if (fs_1.default.existsSync(metaPath)) {
|
|
29
29
|
try {
|
|
30
30
|
const meta = JSON.parse(fs_1.default.readFileSync(metaPath, 'utf-8'));
|
|
31
|
+
item.draftId = meta.draft_id || item.draftId;
|
|
31
32
|
item.name = meta.draft_name || entry.name;
|
|
32
33
|
if (meta.tm_draft_create)
|
|
33
34
|
item.createdAt = meta.tm_draft_create;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-drafts.js","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":";;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"list-drafts.js","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":";;;;;AAKA,gCA2CC;AAhDD,4CAAoB;AACpB,gDAAwB;AACxB,yCAAsC;AAG/B,KAAK,UAAU,UAAU;IAC9B,MAAM,SAAS,GAAG,eAAM,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QAEnC,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAExD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAE1C,MAAM,IAAI,GAAkB;YAC1B,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,QAAQ,EAAE,GAAG;SACd,CAAC;QAEF,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC1C,IAAI,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;gBAChE,IAAI,IAAI,CAAC,iBAAiB;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiChH"}
|
|
@@ -8,6 +8,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const config_1 = require("../../config");
|
|
10
10
|
const render_draft_1 = require("../cloud/render-draft");
|
|
11
|
+
const errors_1 = require("../../shared/errors");
|
|
11
12
|
const create_draft_from_spec_1 = require("./create-draft-from-spec");
|
|
12
13
|
async function createAndRenderDraft(input) {
|
|
13
14
|
const draftsDir = input.output?.draftsDir;
|
|
@@ -15,9 +16,7 @@ async function createAndRenderDraft(input) {
|
|
|
15
16
|
config_1.config.draftsDir = draftsDir;
|
|
16
17
|
}
|
|
17
18
|
const draft = await (0, create_draft_from_spec_1.createDraftFromSpec)(input.draft);
|
|
18
|
-
|
|
19
|
-
setDraftDisplayName(draft.filePath, input.output.name);
|
|
20
|
-
}
|
|
19
|
+
finalizeDraftOutput(draft, input.output?.name);
|
|
21
20
|
if (input.afterCreate) {
|
|
22
21
|
await input.afterCreate({
|
|
23
22
|
draft,
|
|
@@ -47,17 +46,6 @@ function findCreatedClip(clips, type, index) {
|
|
|
47
46
|
}
|
|
48
47
|
return clip;
|
|
49
48
|
}
|
|
50
|
-
function setDraftDisplayName(draftPath, draftName) {
|
|
51
|
-
const metaPath = path_1.default.join(draftPath, 'draft_meta_info.json');
|
|
52
|
-
if (!fs_1.default.existsSync(metaPath))
|
|
53
|
-
return;
|
|
54
|
-
const meta = JSON.parse(fs_1.default.readFileSync(metaPath, 'utf-8'));
|
|
55
|
-
meta.draft_name = draftName;
|
|
56
|
-
meta.draft_fold_path = draftPath;
|
|
57
|
-
meta.draft_root_path = path_1.default.dirname(draftPath);
|
|
58
|
-
meta.tm_draft_modified = Date.now() * 1000;
|
|
59
|
-
fs_1.default.writeFileSync(metaPath, JSON.stringify(meta), 'utf-8');
|
|
60
|
-
}
|
|
61
49
|
function finalizeDraftOutput(draft, draftName) {
|
|
62
50
|
const actualPath = resolveActualDraftPath(draft.filePath, draftName);
|
|
63
51
|
draft.filePath = actualPath;
|
|
@@ -79,12 +67,31 @@ function syncDraftMetaPath(draftPath, draftName) {
|
|
|
79
67
|
fs_1.default.writeFileSync(metaPath, JSON.stringify(meta), 'utf-8');
|
|
80
68
|
}
|
|
81
69
|
function resolveActualDraftPath(draftPath, draftName) {
|
|
70
|
+
if (draftName) {
|
|
71
|
+
return ensureNamedDraftPath(draftPath, draftName);
|
|
72
|
+
}
|
|
82
73
|
if (fs_1.default.existsSync(draftPath))
|
|
83
74
|
return draftPath;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
return draftPath;
|
|
76
|
+
}
|
|
77
|
+
function ensureNamedDraftPath(draftPath, draftName) {
|
|
78
|
+
const namedPath = path_1.default.join(path_1.default.dirname(draftPath), draftName);
|
|
79
|
+
if (path_1.default.resolve(draftPath) === path_1.default.resolve(namedPath))
|
|
80
|
+
return namedPath;
|
|
81
|
+
if (fs_1.default.existsSync(namedPath)) {
|
|
82
|
+
if (!fs_1.default.existsSync(draftPath))
|
|
87
83
|
return namedPath;
|
|
84
|
+
throw new errors_1.CutSdkError({
|
|
85
|
+
code: 'DRAFT_OUTPUT_CONFLICT',
|
|
86
|
+
message: `Draft output folder already exists: ${namedPath}`,
|
|
87
|
+
operation: 'createAndRenderDraft',
|
|
88
|
+
path: namedPath,
|
|
89
|
+
details: { draftPath, namedPath, draftName },
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (fs_1.default.existsSync(draftPath)) {
|
|
93
|
+
fs_1.default.renameSync(draftPath, namedPath);
|
|
94
|
+
return namedPath;
|
|
88
95
|
}
|
|
89
96
|
return draftPath;
|
|
90
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ console.log(result.draft.filePath);
|
|
|
81
81
|
- 包导入名是 `cutsdk`。
|
|
82
82
|
- 低层 SDK 的数字时间单位是微秒,`1s = 1000000`。
|
|
83
83
|
- AI Draft Spec 和 `cutcli` 便捷命令可写 `1.5s`、`500ms`、`300000us`。
|
|
84
|
-
- 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 或 `createAndRenderDraft().output.draftsDir`
|
|
84
|
+
- 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 或 `createAndRenderDraft().output.draftsDir` 覆盖;传入 `output.name` 时,SDK 会使用显示名文件夹,并保持 `result.draft.actualPath`、`result.draft.filePath` 与 `listDrafts().filePath` 一致。
|
|
85
85
|
- 媒体本地路径和 URL 都可用:本地路径会复制到草稿 `resources/`,URL 会下载到 `resources/`。
|
|
86
86
|
- 图片必须提供 `width` 和 `height`。
|
|
87
87
|
- 使用低层 API 添加视频或音频时,要提供素材原始时长。
|
|
@@ -127,4 +127,5 @@ cutcli config doctor --pretty
|
|
|
127
127
|
|
|
128
128
|
- 更友好的 Spec 模板 DSL 可以建立在 Draft Spec 之上,例如 `createMontage({ output, canvas, durationPerImage, images, captions, style })`,内部展开为标准 Draft Spec。
|
|
129
129
|
- 后续 SDK 可在 Spec validate 阶段校验转场名,错误提示应类似:`transition xxx not found,建议使用素材浏览器或 query transitions 返回的名称`。
|
|
130
|
-
-
|
|
130
|
+
- SDK 已支持返回 `actualPath`、`displayName`、`draftFolderName`,并在传入 `output.name` 时稳定采用显示名文件夹;生成后注意校验 `actualPath` / `filePath` 是否与 `listDrafts().filePath` 一致。
|
|
131
|
+
- 后续 SDK 可支持 `cleanupOnFailure: true` 清理失败半成品。
|