democut 1.0.57 → 1.0.59
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/cli.js +200 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -6916,7 +6916,7 @@ import { realpathSync } from "fs";
|
|
|
6916
6916
|
import { fileURLToPath } from "url";
|
|
6917
6917
|
|
|
6918
6918
|
// src/version.ts
|
|
6919
|
-
var VERSION = "1.0.
|
|
6919
|
+
var VERSION = "1.0.59";
|
|
6920
6920
|
|
|
6921
6921
|
// src/device-flow.ts
|
|
6922
6922
|
var DeviceFlowError = class extends Error {
|
|
@@ -9026,6 +9026,84 @@ var GENERATED_TOOLS = [
|
|
|
9026
9026
|
"openWorldHint": false
|
|
9027
9027
|
}
|
|
9028
9028
|
},
|
|
9029
|
+
{
|
|
9030
|
+
"name": "democut_list_folders",
|
|
9031
|
+
"description": "\uD504\uB85C\uC81D\uD2B8 \uD3F4\uB354 \uBAA9\uB85D(1\uB381\uC2A4, \uC911\uCCA9 \uC5C6\uC74C) + \uD3F4\uB354\uBCC4 \uD504\uB85C\uC81D\uD2B8 \uC218. \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uB2E4. \uD504\uB85C\uC81D\uD2B8\uB97C \uD3F4\uB354\uC5D0 \uB123\uC73C\uB824\uBA74 \uC5EC\uAE30\uC11C \uBC1B\uC740 id \uB97C democut_update_project \uC758 folder_id \uC5D0 \uC900\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_create_folder, democut_update_project.",
|
|
9032
|
+
"inputSchema": {
|
|
9033
|
+
"type": "object",
|
|
9034
|
+
"properties": {},
|
|
9035
|
+
"required": [],
|
|
9036
|
+
"additionalProperties": false
|
|
9037
|
+
},
|
|
9038
|
+
"outputSchema": {
|
|
9039
|
+
"type": "object",
|
|
9040
|
+
"properties": {
|
|
9041
|
+
"folders": {
|
|
9042
|
+
"type": "array"
|
|
9043
|
+
}
|
|
9044
|
+
},
|
|
9045
|
+
"required": [
|
|
9046
|
+
"folders"
|
|
9047
|
+
]
|
|
9048
|
+
},
|
|
9049
|
+
"annotations": {
|
|
9050
|
+
"readOnlyHint": true,
|
|
9051
|
+
"destructiveHint": false,
|
|
9052
|
+
"idempotentHint": true,
|
|
9053
|
+
"openWorldHint": false
|
|
9054
|
+
}
|
|
9055
|
+
},
|
|
9056
|
+
{
|
|
9057
|
+
"name": "democut_create_folder",
|
|
9058
|
+
"description": "\uD504\uB85C\uC81D\uD2B8 \uD3F4\uB354\uB97C \uB9CC\uB4E0\uB2E4(0\uC6D0). \uAC19\uC740 \uC774\uB984\uC744 \uC5EC\uB7FF \uB9CC\uB4E4 \uC218 \uC788\uC73C\uB2C8 **\uBA3C\uC800 democut_list_folders \uB85C \uC788\uB294\uC9C0 \uBCF4\uB77C** \u2014 \uBB3B\uC9C0 \uC54A\uACE0 \uB9CC\uB4E4\uBA74 \uAC19\uC740 \uC774\uB984\uC758 \uD3F4\uB354\uAC00 \uC313\uC778\uB2E4. \uB9CC\uB4E0 \uB4A4 \uD504\uB85C\uC81D\uD2B8\uB97C \uB123\uB294 \uAC83\uC740 update_project(folder_id=\u2026) \uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_update_project, democut_list_folders.",
|
|
9059
|
+
"inputSchema": {
|
|
9060
|
+
"type": "object",
|
|
9061
|
+
"properties": {
|
|
9062
|
+
"name": {
|
|
9063
|
+
"description": "\uD3F4\uB354 \uC774\uB984(1~80\uC790, \uC55E\uB4A4 \uACF5\uBC31\uC740 \uC11C\uBC84\uAC00 \uC790\uB978\uB2E4)",
|
|
9064
|
+
"maxLength": 80,
|
|
9065
|
+
"minLength": 1,
|
|
9066
|
+
"type": "string"
|
|
9067
|
+
}
|
|
9068
|
+
},
|
|
9069
|
+
"required": [
|
|
9070
|
+
"name"
|
|
9071
|
+
],
|
|
9072
|
+
"additionalProperties": false
|
|
9073
|
+
},
|
|
9074
|
+
"outputSchema": {
|
|
9075
|
+
"type": "object",
|
|
9076
|
+
"properties": {
|
|
9077
|
+
"id": {
|
|
9078
|
+
"type": "string"
|
|
9079
|
+
},
|
|
9080
|
+
"name": {
|
|
9081
|
+
"type": "string"
|
|
9082
|
+
},
|
|
9083
|
+
"project_count": {
|
|
9084
|
+
"type": "integer"
|
|
9085
|
+
},
|
|
9086
|
+
"created_at": {
|
|
9087
|
+
"type": "string"
|
|
9088
|
+
},
|
|
9089
|
+
"updated_at": {
|
|
9090
|
+
"type": "string"
|
|
9091
|
+
}
|
|
9092
|
+
},
|
|
9093
|
+
"required": [
|
|
9094
|
+
"id",
|
|
9095
|
+
"name",
|
|
9096
|
+
"created_at",
|
|
9097
|
+
"updated_at"
|
|
9098
|
+
]
|
|
9099
|
+
},
|
|
9100
|
+
"annotations": {
|
|
9101
|
+
"readOnlyHint": false,
|
|
9102
|
+
"destructiveHint": false,
|
|
9103
|
+
"idempotentHint": false,
|
|
9104
|
+
"openWorldHint": false
|
|
9105
|
+
}
|
|
9106
|
+
},
|
|
9029
9107
|
{
|
|
9030
9108
|
"name": "democut_credit_balance",
|
|
9031
9109
|
"description": "\uB0B4 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC758 \uD06C\uB808\uB527 \uC794\uC561. \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uB2E4. \uB3C8\uC774 \uB098\uAC00\uB294 \uC791\uC5C5(democut_make_cuts \uB4F1)\uC744 \uC81C\uCD9C\uD558\uAE30 **\uC804\uC5D0** \uD655\uC778\uD558\uB77C \u2014 \uBD80\uC871\uD558\uBA74 \uC81C\uCD9C\uC774 402 \uB85C \uAC70\uBD80\uB418\uACE0, \uADF8\uAC83\uC744 \uBBF8\uB9AC \uC544\uB294 \uD3B8\uC774 \uB0AB\uB2E4(democut_estimate_cuts \uC758 can_afford \uAC00 \uC788\uC73C\uBA74 \uB9E4\uBC88 \uBD80\uB97C \uD544\uC694\uB294 \uC5C6\uB2E4). \uBAA8\uC790\uB77C\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC54C\uB9AC\uACE0 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 \uAD00\uB9AC\uC790\uC5D0\uAC8C \uCDA9\uC804\uC744 \uC694\uCCAD\uD558\uB3C4\uB85D \uC548\uB0B4\uD558\uB77C \u2014 \uB124\uAC00 \uC9C1\uC811 \uCDA9\uC804\uD560 \uC218\uB294 \uC5C6\uB2E4.",
|
|
@@ -11292,6 +11370,52 @@ var GENERATED_TOOLS = [
|
|
|
11292
11370
|
"openWorldHint": false
|
|
11293
11371
|
}
|
|
11294
11372
|
},
|
|
11373
|
+
{
|
|
11374
|
+
"name": "democut_get_audio_tracks",
|
|
11375
|
+
"description": "\uADF8 \uC720\uD29C\uBE0C \uD074\uB9BD \uCEF7\uC758 \uC74C\uC131 \uD2B8\uB799(\uC5B8\uC5B4) \uBAA9\uB85D \u2014 \uC6D0\uBCF8\uACFC \uC720\uD29C\uBE0C \uC790\uB3D9 \uB354\uBE59(0\uC6D0). \uC8FC\uC18C\uB294 \uCEF7 \uCD08\uC548(draft_spec.source.url)\uC5D0\uC11C \uC77D\uB294\uB2E4 \u2014 \uC5C6\uC73C\uBA74 422. \uACE0\uB978 lang \uC744 draft_spec.source.audio_lang \uC5D0 \uB123\uC5B4 democut_put_cut_draft \uD558\uBA74 \uADF8 \uC5B8\uC5B4\uC758 \uC74C\uC131\uC73C\uB85C \uB9CC\uB4E0\uB2E4(\uBE44\uC6B0\uBA74 \uC6D0\uBCF8). \uC74C\uC131\uC744 \uBC14\uAFB8\uBA74 \uB2E4\uB978 \uC601\uC0C1\uC774\uB77C \uC774\uBBF8 \uB9CC\uB4E0 \uCEF7\uC740 dirty \uAC00 \uB41C\uB2E4. \uD2B8\uB799\uC740 \uC601\uC0C1\uB9C8\uB2E4 \uB2E4\uB974\uB2E4 \u2014 \uC8FC\uC18C\uB97C \uBC14\uAFB8\uBA74 \uB2E4\uC2DC \uC77D\uC5B4\uB77C. \uB2E4\uC74C \uD638\uCD9C: democut_put_cut_draft, democut_estimate_cuts.",
|
|
11376
|
+
"inputSchema": {
|
|
11377
|
+
"type": "object",
|
|
11378
|
+
"properties": {
|
|
11379
|
+
"slug": {
|
|
11380
|
+
"type": "string",
|
|
11381
|
+
"description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(democut_list_projects)"
|
|
11382
|
+
},
|
|
11383
|
+
"cut_id": {
|
|
11384
|
+
"type": "string",
|
|
11385
|
+
"description": "\uCEF7 id(cut_\u2026)"
|
|
11386
|
+
}
|
|
11387
|
+
},
|
|
11388
|
+
"required": [
|
|
11389
|
+
"slug",
|
|
11390
|
+
"cut_id"
|
|
11391
|
+
],
|
|
11392
|
+
"additionalProperties": false
|
|
11393
|
+
},
|
|
11394
|
+
"outputSchema": {
|
|
11395
|
+
"type": "object",
|
|
11396
|
+
"properties": {
|
|
11397
|
+
"cut_id": {
|
|
11398
|
+
"type": "string"
|
|
11399
|
+
},
|
|
11400
|
+
"url": {
|
|
11401
|
+
"type": "string"
|
|
11402
|
+
},
|
|
11403
|
+
"tracks": {
|
|
11404
|
+
"type": "array"
|
|
11405
|
+
}
|
|
11406
|
+
},
|
|
11407
|
+
"required": [
|
|
11408
|
+
"cut_id",
|
|
11409
|
+
"url"
|
|
11410
|
+
]
|
|
11411
|
+
},
|
|
11412
|
+
"annotations": {
|
|
11413
|
+
"readOnlyHint": true,
|
|
11414
|
+
"destructiveHint": false,
|
|
11415
|
+
"idempotentHint": true,
|
|
11416
|
+
"openWorldHint": false
|
|
11417
|
+
}
|
|
11418
|
+
},
|
|
11295
11419
|
{
|
|
11296
11420
|
"name": "democut_estimate_export",
|
|
11297
11421
|
"description": "\uC644\uC131\uBCF8 \uACAC\uC801(0\uC6D0 \uD589).",
|
|
@@ -12519,6 +12643,18 @@ var TOOL_META = {
|
|
|
12519
12643
|
"method": "POST",
|
|
12520
12644
|
"path": "/api/projects/{slug}/cuts/{cut_id}/images/generate"
|
|
12521
12645
|
},
|
|
12646
|
+
"democut_list_folders": {
|
|
12647
|
+
"cost": "none",
|
|
12648
|
+
"group": "core",
|
|
12649
|
+
"method": "GET",
|
|
12650
|
+
"path": "/api/folders"
|
|
12651
|
+
},
|
|
12652
|
+
"democut_create_folder": {
|
|
12653
|
+
"cost": "none",
|
|
12654
|
+
"group": "core",
|
|
12655
|
+
"method": "POST",
|
|
12656
|
+
"path": "/api/folders"
|
|
12657
|
+
},
|
|
12522
12658
|
"democut_credit_balance": {
|
|
12523
12659
|
"cost": "none",
|
|
12524
12660
|
"group": "credits",
|
|
@@ -12711,6 +12847,12 @@ var TOOL_META = {
|
|
|
12711
12847
|
"method": "POST",
|
|
12712
12848
|
"path": "/api/projects/{slug}/cuts/{cut_id}/hook_scan/pick"
|
|
12713
12849
|
},
|
|
12850
|
+
"democut_get_audio_tracks": {
|
|
12851
|
+
"cost": "none",
|
|
12852
|
+
"group": "storyboard",
|
|
12853
|
+
"method": "GET",
|
|
12854
|
+
"path": "/api/projects/{slug}/cuts/{cut_id}/audio_tracks"
|
|
12855
|
+
},
|
|
12714
12856
|
"democut_estimate_export": {
|
|
12715
12857
|
"cost": "quote",
|
|
12716
12858
|
"group": "export",
|
|
@@ -14632,6 +14774,37 @@ function deleteCutVersion(a = {}, deps = {}) {
|
|
|
14632
14774
|
};
|
|
14633
14775
|
});
|
|
14634
14776
|
}
|
|
14777
|
+
function listFolders(_a3 = {}, deps = {}) {
|
|
14778
|
+
return guarded(READ_ONLY, async () => {
|
|
14779
|
+
const base = resolveBaseUrl(deps.baseUrl);
|
|
14780
|
+
const out4 = await apiRequest(base, "/api/folders", {}, deps);
|
|
14781
|
+
if (!out4.folders?.length) {
|
|
14782
|
+
return { text: "\uD3F4\uB354\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. democut_create_folder \uB85C \uB9CC\uB4DC\uC138\uC694.", structured: callableStructured(out4) };
|
|
14783
|
+
}
|
|
14784
|
+
return {
|
|
14785
|
+
text: [
|
|
14786
|
+
`\uD3F4\uB354 ${out4.folders.length}\uAC1C \u2014 id \xB7 \uC774\uB984 \xB7 \uD504\uB85C\uC81D\uD2B8 \uC218:`,
|
|
14787
|
+
...out4.folders.map((f) => ` ${f.id} \xB7 ${f.name} \xB7 \uD504\uB85C\uC81D\uD2B8 ${f.project_count ?? 0}\uAC1C`),
|
|
14788
|
+
"\uD504\uB85C\uC81D\uD2B8\uB97C \uB123\uC73C\uB824\uBA74 democut_update_project \uC758 folder_id \uC5D0 \uC704 id \uB97C \uC8FC\uC138\uC694."
|
|
14789
|
+
].join("\n"),
|
|
14790
|
+
structured: callableStructured(out4)
|
|
14791
|
+
};
|
|
14792
|
+
});
|
|
14793
|
+
}
|
|
14794
|
+
function createFolder(a = {}, deps = {}) {
|
|
14795
|
+
return guarded(READ_ONLY, async () => {
|
|
14796
|
+
if (!(a.name ?? "").trim()) return { isError: true, text: "name \uC774 \uD544\uC694\uD569\uB2C8\uB2E4." };
|
|
14797
|
+
const base = resolveBaseUrl(deps.baseUrl);
|
|
14798
|
+
const out4 = await apiRequest(base, "/api/folders", { method: "POST", body: { name: a.name } }, deps);
|
|
14799
|
+
return {
|
|
14800
|
+
text: [
|
|
14801
|
+
`\uD3F4\uB354\uB97C \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4: ${out4.name} [${out4.id}]`,
|
|
14802
|
+
`\uD504\uB85C\uC81D\uD2B8\uB97C \uB123\uC73C\uB824\uBA74 democut_update_project(slug=\u2026, folder_id=${out4.id}) \uB97C \uBD80\uB974\uC138\uC694.`
|
|
14803
|
+
].join("\n"),
|
|
14804
|
+
structured: callableStructured(out4)
|
|
14805
|
+
};
|
|
14806
|
+
});
|
|
14807
|
+
}
|
|
14635
14808
|
function characterLine(c) {
|
|
14636
14809
|
const photos = c.photos?.length ? `\uC0AC\uC9C4 ${c.photos.length}\uC7A5` : "\uC0AC\uC9C4 \uC5C6\uC74C";
|
|
14637
14810
|
return `${c.name} [${c.id}] rev=${c.rev} \xB7 ${photos}${c.current_photo_id ? " (\uB300\uD45C \uC788\uC74C)" : ""}`;
|
|
@@ -15047,6 +15220,25 @@ function pickHookCandidate(a = {}, deps = {}) {
|
|
|
15047
15220
|
return { text: lines.join("\n"), structured: callableStructured(out4) };
|
|
15048
15221
|
});
|
|
15049
15222
|
}
|
|
15223
|
+
function getAudioTracks(a = {}, deps = {}) {
|
|
15224
|
+
return guarded(READ_ONLY, async () => {
|
|
15225
|
+
const slug = needSlug(a);
|
|
15226
|
+
if (typeof slug !== "string") return slug;
|
|
15227
|
+
const cutId = needCut(a);
|
|
15228
|
+
if (typeof cutId !== "string") return cutId;
|
|
15229
|
+
const base = resolveBaseUrl(deps.baseUrl);
|
|
15230
|
+
const out4 = await apiRequest(base, cutPath(slug, cutId, "/audio_tracks"), {}, deps);
|
|
15231
|
+
const tracks = out4.tracks ?? [];
|
|
15232
|
+
const original = tracks.find((t) => t.original)?.lang;
|
|
15233
|
+
const dubs = tracks.filter((t) => !t.original).map((t) => t.lang);
|
|
15234
|
+
const lines = tracks.length === 0 ? [`${cutId} \uC758 \uC601\uC0C1\uC5D0\uB294 \uC5B8\uC5B4\uAC00 \uD45C\uC2DC\uB41C \uC74C\uC131 \uD2B8\uB799\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uC6D0\uBCF8 \uC74C\uC131\uB9CC \uBC1B\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4(audio_lang \uC744 \uBE44\uC6CC \uB450\uC138\uC694).`] : [
|
|
15235
|
+
`${cutId} \uC758 \uC74C\uC131 \uD2B8\uB799 ${tracks.length}\uAC1C \u2014 \uC6D0\uBCF8: ${original ?? "(\uD45C\uC2DC \uC5C6\uC74C)"}` + (dubs.length ? `, \uC790\uB3D9 \uB354\uBE59: ${dubs.join(", ")}` : ""),
|
|
15236
|
+
"\uC6D0\uBCF8\uC73C\uB85C \uB9CC\uB4E4\uB824\uBA74 draft_spec.source.audio_lang \uC744 \uBE44\uC6CC \uB450\uACE0, \uB2E4\uB978 \uC5B8\uC5B4\uB85C \uB9CC\uB4E4\uB824\uBA74 \uADF8 lang \uC744 \uB123\uC5B4 democut_put_cut_draft \uD558\uC138\uC694.",
|
|
15237
|
+
"\uB354\uBE59\uC740 \uC720\uD29C\uBE0C\uAC00 \uC790\uB3D9\uC73C\uB85C \uB9CC\uB4E0 \uC74C\uC131\uC774\uB77C \uD488\uC9C8\uC774 \uACE0\uB974\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC790\uB9C9 \uC5B8\uC5B4\uB294 \uC74C\uC131\uC744 \uB530\uB77C \uC804\uC0AC\uB429\uB2C8\uB2E4."
|
|
15238
|
+
];
|
|
15239
|
+
return { text: lines.join("\n"), structured: callableStructured(out4) };
|
|
15240
|
+
});
|
|
15241
|
+
}
|
|
15050
15242
|
function estimateExport(a = {}, deps = {}) {
|
|
15051
15243
|
return guarded(READ_ONLY, async () => {
|
|
15052
15244
|
const slug = needSlug(a);
|
|
@@ -15436,6 +15628,8 @@ function dispatch(name, args, deps = {}) {
|
|
|
15436
15628
|
return makeHookScan(args, deps);
|
|
15437
15629
|
case "democut_pick_hook_candidate":
|
|
15438
15630
|
return pickHookCandidate(args, deps);
|
|
15631
|
+
case "democut_get_audio_tracks":
|
|
15632
|
+
return getAudioTracks(args, deps);
|
|
15439
15633
|
case "democut_estimate_export":
|
|
15440
15634
|
return estimateExport(args, deps);
|
|
15441
15635
|
case "democut_make_export":
|
|
@@ -15477,6 +15671,11 @@ function dispatch(name, args, deps = {}) {
|
|
|
15477
15671
|
return selectCutVersion(args, deps);
|
|
15478
15672
|
case "democut_delete_cut_version":
|
|
15479
15673
|
return deleteCutVersion(args, deps);
|
|
15674
|
+
// ── 프로젝트 폴더(1뎁스) ──
|
|
15675
|
+
case "democut_list_folders":
|
|
15676
|
+
return listFolders(args, deps);
|
|
15677
|
+
case "democut_create_folder":
|
|
15678
|
+
return createFolder(args, deps);
|
|
15480
15679
|
// ── 아바타(캐릭터) CRUD (MR 19a) ──
|
|
15481
15680
|
case "democut_list_characters":
|
|
15482
15681
|
return listCharacters(args, deps);
|