democut 1.0.171 → 1.0.173
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 +203 -11
- 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.173";
|
|
6920
6920
|
|
|
6921
6921
|
// src/device-flow.ts
|
|
6922
6922
|
var DeviceFlowError = class extends Error {
|
|
@@ -11554,7 +11554,7 @@ var GENERATED_TOOLS = [
|
|
|
11554
11554
|
},
|
|
11555
11555
|
{
|
|
11556
11556
|
"name": "democut_estimate_music",
|
|
11557
|
-
"description": "AI \uBC30\uACBD\uC74C\uC545 \uACAC\uC801(0\uC6D0). 5\uBD84 \uC0C1\uD55C\uC774\
|
|
11557
|
+
"description": "AI \uBC30\uACBD\uC74C\uC545 \uACAC\uC801(0\uC6D0). prompt \uB9CC\uC774\uBA74 5\uBD84 \uC0C1\uD55C, length_s\xB7plan \uC774\uBA74 \uADF8 \uAE38\uC774. \uC2E4\uCE21\uC73C\uB85C \uC815\uC0B0\uD55C\uB2E4.",
|
|
11558
11558
|
"inputSchema": {
|
|
11559
11559
|
"type": "object",
|
|
11560
11560
|
"properties": {
|
|
@@ -11566,8 +11566,43 @@ var GENERATED_TOOLS = [
|
|
|
11566
11566
|
},
|
|
11567
11567
|
"instrumental": {
|
|
11568
11568
|
"default": true,
|
|
11569
|
-
"description": "\
|
|
11569
|
+
"description": "\uC5F0\uC8FC\uACE1(prompt \uC77C \uB54C)",
|
|
11570
11570
|
"type": "boolean"
|
|
11571
|
+
},
|
|
11572
|
+
"length_s": {
|
|
11573
|
+
"anyOf": [
|
|
11574
|
+
{
|
|
11575
|
+
"maximum": 300,
|
|
11576
|
+
"minimum": 3,
|
|
11577
|
+
"type": "integer"
|
|
11578
|
+
},
|
|
11579
|
+
{
|
|
11580
|
+
"type": "null"
|
|
11581
|
+
}
|
|
11582
|
+
],
|
|
11583
|
+
"default": null,
|
|
11584
|
+
"description": "\uCD08(prompt \uC77C \uB54C). \uBE44\uC6B0\uBA74 \uBAA8\uB378\uC774 \uC815\uD55C\uB2E4"
|
|
11585
|
+
},
|
|
11586
|
+
"plan": {
|
|
11587
|
+
"default": null,
|
|
11588
|
+
"type": [
|
|
11589
|
+
"object",
|
|
11590
|
+
"null"
|
|
11591
|
+
],
|
|
11592
|
+
"description": "prompt \uB300\uC2E0 \uAD6C\uC131\uD45C(democut_plan_music \uAF34) \u2014 \uBAA8\uB378 MusicPlan \u2014 \uBAA8\uC591\uC740 \uC790\uC6D0 democut://guide \uC640 democut_get_options \uAC00 \uB9D0\uD55C\uB2E4(\uC5EC\uAE30\uC11C\uB294 \uC81C\uC57D\uC744 \uAC78\uC9C0 \uC54A\uB294\uB2E4)"
|
|
11593
|
+
},
|
|
11594
|
+
"source_asset_id": {
|
|
11595
|
+
"anyOf": [
|
|
11596
|
+
{
|
|
11597
|
+
"maxLength": 64,
|
|
11598
|
+
"type": "string"
|
|
11599
|
+
},
|
|
11600
|
+
{
|
|
11601
|
+
"type": "null"
|
|
11602
|
+
}
|
|
11603
|
+
],
|
|
11604
|
+
"default": null,
|
|
11605
|
+
"description": "\uC6D0\uACE1 \u2014 plan \uC758 keep\xB7reference \uAC00 \uAC00\uB9AC\uD0A8\uB2E4"
|
|
11571
11606
|
}
|
|
11572
11607
|
},
|
|
11573
11608
|
"required": [],
|
|
@@ -11621,7 +11656,7 @@ var GENERATED_TOOLS = [
|
|
|
11621
11656
|
},
|
|
11622
11657
|
{
|
|
11623
11658
|
"name": "democut_make_music",
|
|
11624
|
-
"description": "\uACE1\uC744 \uB9CC\uB4E0\uB2E4(\uCCAD\uAD6C\xB7\
|
|
11659
|
+
"description": "\uACE1\uC744 \uB9CC\uB4E0\uB2E4(\uCCAD\uAD6C). \uBCC0\uD615\xB7\uAC00\uC0AC \uACE0\uCE58\uAE30\uB294 source_asset_id + plan(\uACE0\uCE60 \uAD6C\uAC04\uB9CC new). \uACB0\uACFC asset_id \uB97C democut_set_cut_bgm \uC5D0. \uB3C8\uC774 \uB098\uAC00\uB294 \uB3C4\uAD6C\uB2E4 \u2014 \uC9DD\uC774 \uB418\uB294 estimate \uB3C4\uAD6C\uC758 \uAE08\uC561\uC5D0 \uC0AC\uC6A9\uC790\uAC00 \uB3D9\uC758\uD55C \uB4A4 confirmed_*_krw\xB7rate_version \uC744 \uADF8\uB300\uB85C \uB123\uC5B4\uB77C. \uC2E4\uD328\uD574\uB3C4 \uC7AC\uC81C\uCD9C\uD558\uC9C0 \uB9C8\uB77C(\uAC19\uC740 spec \uC774 \uD65C\uC131\uC774\uBA74 \uAE30\uC874 \uC7A1\uC744 \uB3CC\uB824\uC900\uB2E4 \u2014 deduplicated=true). \uB2E4\uC74C \uD638\uCD9C: democut_wait_jobs.",
|
|
11625
11660
|
"inputSchema": {
|
|
11626
11661
|
"type": "object",
|
|
11627
11662
|
"properties": {
|
|
@@ -11633,9 +11668,44 @@ var GENERATED_TOOLS = [
|
|
|
11633
11668
|
},
|
|
11634
11669
|
"instrumental": {
|
|
11635
11670
|
"default": true,
|
|
11636
|
-
"description": "\
|
|
11671
|
+
"description": "\uC5F0\uC8FC\uACE1(prompt \uC77C \uB54C)",
|
|
11637
11672
|
"type": "boolean"
|
|
11638
11673
|
},
|
|
11674
|
+
"length_s": {
|
|
11675
|
+
"anyOf": [
|
|
11676
|
+
{
|
|
11677
|
+
"maximum": 300,
|
|
11678
|
+
"minimum": 3,
|
|
11679
|
+
"type": "integer"
|
|
11680
|
+
},
|
|
11681
|
+
{
|
|
11682
|
+
"type": "null"
|
|
11683
|
+
}
|
|
11684
|
+
],
|
|
11685
|
+
"default": null,
|
|
11686
|
+
"description": "\uCD08(prompt \uC77C \uB54C). \uBE44\uC6B0\uBA74 \uBAA8\uB378\uC774 \uC815\uD55C\uB2E4"
|
|
11687
|
+
},
|
|
11688
|
+
"plan": {
|
|
11689
|
+
"default": null,
|
|
11690
|
+
"type": [
|
|
11691
|
+
"object",
|
|
11692
|
+
"null"
|
|
11693
|
+
],
|
|
11694
|
+
"description": "prompt \uB300\uC2E0 \uAD6C\uC131\uD45C(democut_plan_music \uAF34) \u2014 \uBAA8\uB378 MusicPlan \u2014 \uBAA8\uC591\uC740 \uC790\uC6D0 democut://guide \uC640 democut_get_options \uAC00 \uB9D0\uD55C\uB2E4(\uC5EC\uAE30\uC11C\uB294 \uC81C\uC57D\uC744 \uAC78\uC9C0 \uC54A\uB294\uB2E4)"
|
|
11695
|
+
},
|
|
11696
|
+
"source_asset_id": {
|
|
11697
|
+
"anyOf": [
|
|
11698
|
+
{
|
|
11699
|
+
"maxLength": 64,
|
|
11700
|
+
"type": "string"
|
|
11701
|
+
},
|
|
11702
|
+
{
|
|
11703
|
+
"type": "null"
|
|
11704
|
+
}
|
|
11705
|
+
],
|
|
11706
|
+
"default": null,
|
|
11707
|
+
"description": "\uC6D0\uACE1 \u2014 plan \uC758 keep\xB7reference \uAC00 \uAC00\uB9AC\uD0A8\uB2E4"
|
|
11708
|
+
},
|
|
11639
11709
|
"title": {
|
|
11640
11710
|
"default": "",
|
|
11641
11711
|
"maxLength": 100,
|
|
@@ -11690,6 +11760,72 @@ var GENERATED_TOOLS = [
|
|
|
11690
11760
|
"openWorldHint": false
|
|
11691
11761
|
}
|
|
11692
11762
|
},
|
|
11763
|
+
{
|
|
11764
|
+
"name": "democut_plan_music",
|
|
11765
|
+
"description": "\uACE1 \uAD6C\uC131\uD45C(0\uC6D0). prompt \uB85C \uAD6C\uAC04\xB7\uAC00\uC0AC \uCD08\uC548, source_asset_id \uB85C \uADF8 \uACE1\uC758 \uAD6C\uAC04(keep \uAF34)\uC744 \uC900\uB2E4. \uACE0\uCCD0 plan \uC5D0 \uC2E3\uB294\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_estimate_music.",
|
|
11766
|
+
"inputSchema": {
|
|
11767
|
+
"type": "object",
|
|
11768
|
+
"properties": {
|
|
11769
|
+
"prompt": {
|
|
11770
|
+
"default": "",
|
|
11771
|
+
"description": "\uCD08\uC548\uC744 \uC9E4 \uC124\uBA85",
|
|
11772
|
+
"maxLength": 2e3,
|
|
11773
|
+
"type": "string"
|
|
11774
|
+
},
|
|
11775
|
+
"length_s": {
|
|
11776
|
+
"anyOf": [
|
|
11777
|
+
{
|
|
11778
|
+
"maximum": 300,
|
|
11779
|
+
"minimum": 3,
|
|
11780
|
+
"type": "integer"
|
|
11781
|
+
},
|
|
11782
|
+
{
|
|
11783
|
+
"type": "null"
|
|
11784
|
+
}
|
|
11785
|
+
],
|
|
11786
|
+
"default": null,
|
|
11787
|
+
"description": "\uCD08"
|
|
11788
|
+
},
|
|
11789
|
+
"source_asset_id": {
|
|
11790
|
+
"anyOf": [
|
|
11791
|
+
{
|
|
11792
|
+
"maxLength": 64,
|
|
11793
|
+
"type": "string"
|
|
11794
|
+
},
|
|
11795
|
+
{
|
|
11796
|
+
"type": "null"
|
|
11797
|
+
}
|
|
11798
|
+
],
|
|
11799
|
+
"default": null,
|
|
11800
|
+
"description": "\uC774 \uACE1\uC758 \uAD6C\uC131\uC744 \uC77D\uB294\uB2E4"
|
|
11801
|
+
}
|
|
11802
|
+
},
|
|
11803
|
+
"required": [],
|
|
11804
|
+
"additionalProperties": false
|
|
11805
|
+
},
|
|
11806
|
+
"outputSchema": {
|
|
11807
|
+
"type": "object",
|
|
11808
|
+
"properties": {
|
|
11809
|
+
"plan": {},
|
|
11810
|
+
"sections": {
|
|
11811
|
+
"type": "array"
|
|
11812
|
+
},
|
|
11813
|
+
"total_ms": {
|
|
11814
|
+
"type": "integer"
|
|
11815
|
+
},
|
|
11816
|
+
"source_asset_id": {}
|
|
11817
|
+
},
|
|
11818
|
+
"required": [
|
|
11819
|
+
"plan"
|
|
11820
|
+
]
|
|
11821
|
+
},
|
|
11822
|
+
"annotations": {
|
|
11823
|
+
"readOnlyHint": false,
|
|
11824
|
+
"destructiveHint": false,
|
|
11825
|
+
"idempotentHint": false,
|
|
11826
|
+
"openWorldHint": false
|
|
11827
|
+
}
|
|
11828
|
+
},
|
|
11693
11829
|
{
|
|
11694
11830
|
"name": "democut_reorder_cuts",
|
|
11695
11831
|
"description": "\uC5F0\uACB0 \uC21C\uC11C\uB97C \uD1B5\uC9F8\uB85C \uB2E4\uC2DC \uC4F4\uB2E4(If-Match rev). \uBE60\uC9C4 \uCEF7\uC740 \uB5BC\uC5B4 \uB454 \uCEF7\uC774 \uB41C\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_make_export.",
|
|
@@ -14175,6 +14311,12 @@ var TOOL_META = {
|
|
|
14175
14311
|
"method": "POST",
|
|
14176
14312
|
"path": "/api/music/generate"
|
|
14177
14313
|
},
|
|
14314
|
+
"democut_plan_music": {
|
|
14315
|
+
"cost": "none",
|
|
14316
|
+
"group": "storyboard",
|
|
14317
|
+
"method": "POST",
|
|
14318
|
+
"path": "/api/music/plan"
|
|
14319
|
+
},
|
|
14178
14320
|
"democut_reorder_cuts": {
|
|
14179
14321
|
"cost": "none",
|
|
14180
14322
|
"group": "storyboard",
|
|
@@ -16985,13 +17127,60 @@ function makeCharacterPhoto(a = {}, deps = {}) {
|
|
|
16985
17127
|
}
|
|
16986
17128
|
function musicBody(a) {
|
|
16987
17129
|
return {
|
|
16988
|
-
prompt: (a.prompt ?? "").trim(),
|
|
16989
|
-
...typeof a.instrumental === "boolean" ? { instrumental: a.instrumental } : {}
|
|
17130
|
+
...a.plan ? {} : { prompt: (a.prompt ?? "").trim() },
|
|
17131
|
+
...typeof a.instrumental === "boolean" && !a.plan ? { instrumental: a.instrumental } : {},
|
|
17132
|
+
...typeof a.length_s === "number" ? { length_s: a.length_s } : {},
|
|
17133
|
+
...a.plan ? { plan: a.plan } : {},
|
|
17134
|
+
...a.source_asset_id ? { source_asset_id: a.source_asset_id } : {}
|
|
16990
17135
|
};
|
|
16991
17136
|
}
|
|
17137
|
+
function musicLengthNote(a) {
|
|
17138
|
+
if (a.plan) {
|
|
17139
|
+
const ms = (a.plan.sections ?? []).reduce((sum, s) => {
|
|
17140
|
+
const sec = s;
|
|
17141
|
+
return sum + (sec.kind === "keep" && sec.range ? sec.range.end_ms - sec.range.start_ms : sec.duration_ms ?? 0);
|
|
17142
|
+
}, 0);
|
|
17143
|
+
return `\uAD6C\uC131\uD45C \uAE38\uC774 ${ms / 1e3}\uCD08\uB85C \uB0C5\uB2C8\uB2E4. \uBC1B\uC740 \uACE1 \uAE38\uC774\uB85C \uC815\uC0B0\uD569\uB2C8\uB2E4.`;
|
|
17144
|
+
}
|
|
17145
|
+
if (typeof a.length_s === "number") return `\uACE0\uB978 \uAE38\uC774 ${a.length_s}\uCD08\uB85C \uB0C5\uB2C8\uB2E4. \uBC1B\uC740 \uACE1 \uAE38\uC774\uB85C \uC815\uC0B0\uD569\uB2C8\uB2E4.`;
|
|
17146
|
+
return "5\uBD84 \uC0C1\uD55C\uC785\uB2C8\uB2E4. \uAE38\uC774\uB294 \uBAA8\uB378\uC774 \uC815\uD558\uACE0(\uBCF4\uD1B5 \uC57D 3\uBD84), \uBC1B\uC740 \uACE1 \uAE38\uC774\uB9CC\uD07C \uC815\uC0B0\uD574 \uCC28\uC561\uC744 \uB3CC\uB824\uB4DC\uB9BD\uB2C8\uB2E4.";
|
|
17147
|
+
}
|
|
17148
|
+
function musicRequestError(a) {
|
|
17149
|
+
if (a.source_asset_id && !a.plan) return "source_asset_id \uB294 plan(\uAD6C\uC131\uD45C)\uACFC \uD568\uAED8 \uC501\uB2C8\uB2E4. \uC6D0\uACE1\uC758 \uAD6C\uAC04\uC740 plan_music \uC73C\uB85C \uBC1B\uC73C\uC138\uC694.";
|
|
17150
|
+
if (!a.plan && !(a.prompt ?? "").trim()) return "prompt(\uACE1 \uC124\uBA85) \uB610\uB294 plan(\uAD6C\uC131\uD45C)\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.";
|
|
17151
|
+
return null;
|
|
17152
|
+
}
|
|
17153
|
+
function planMusic(a = {}, deps = {}) {
|
|
17154
|
+
return guarded(READ_ONLY, async () => {
|
|
17155
|
+
const prompt = (a.prompt ?? "").trim();
|
|
17156
|
+
if (!prompt === !a.source_asset_id) {
|
|
17157
|
+
return { isError: true, text: "prompt(\uCD08\uC548\uC744 \uC9E4 \uC124\uBA85)\uC640 source_asset_id(\uAD6C\uC131\uC744 \uC77D\uC744 \uACE1) \uC911 \uC815\uD655\uD788 \uD558\uB098\uB97C \uC8FC\uC138\uC694." };
|
|
17158
|
+
}
|
|
17159
|
+
const base = resolveBaseUrl(deps.baseUrl);
|
|
17160
|
+
const out4 = await apiRequest(
|
|
17161
|
+
base,
|
|
17162
|
+
"/api/music/plan",
|
|
17163
|
+
{
|
|
17164
|
+
method: "POST",
|
|
17165
|
+
body: a.source_asset_id ? { source_asset_id: a.source_asset_id } : { prompt, ...typeof a.length_s === "number" ? { length_s: a.length_s } : {} }
|
|
17166
|
+
},
|
|
17167
|
+
deps
|
|
17168
|
+
);
|
|
17169
|
+
const lines = [
|
|
17170
|
+
out4.source_asset_id ? `\uACE1 ${out4.source_asset_id} \uC758 \uAD6C\uC131\uC785\uB2C8\uB2E4` : "\uAD6C\uC131\uD45C \uCD08\uC548\uC785\uB2C8\uB2E4(0\uC6D0)",
|
|
17171
|
+
`\uCD1D ${(out4.total_ms ?? 0) / 1e3}\uCD08 \xB7 \uAD6C\uAC04 ${(out4.sections ?? []).length}\uAC1C`,
|
|
17172
|
+
...(out4.sections ?? []).map(
|
|
17173
|
+
(s, i) => ` ${i}. [${s.name}] ${s.start_ms}~${s.end_ms}ms \u2014 ${s.lyrics ? s.lyrics.replace(/\n/g, " / ").slice(0, 80) : "(\uC5F0\uC8FC)"}`
|
|
17174
|
+
),
|
|
17175
|
+
out4.source_asset_id ? "plan \uC740 \uBAA8\uB4E0 \uAD6C\uAC04\uC774 keep(\uC6D0\uACE1 \uADF8\uB300\uB85C)\uC774\uB2E4. \uACE0\uCE60 \uAD6C\uAC04\uB9CC kind=new(name\xB7lyrics\xB7duration_ms\xB7styles)\uB85C \uBC14\uAFD4 source_asset_id \uC640 \uD568\uAED8 estimate_music\xB7make_music \uC5D0 \uC2E3\uB294\uB2E4." : "plan \uC744 \uACE0\uCCD0(\uAC00\uC0AC\xB7\uAE38\uC774\xB7\uC2A4\uD0C0\uC77C) estimate_music\xB7make_music \uC758 plan \uC5D0 \uADF8\uB300\uB85C \uC2E3\uB294\uB2E4."
|
|
17176
|
+
];
|
|
17177
|
+
return { text: lines.join("\n"), structured: callableStructured(out4) };
|
|
17178
|
+
});
|
|
17179
|
+
}
|
|
16992
17180
|
function estimateMusic(a = {}, deps = {}) {
|
|
16993
17181
|
return guarded(READ_ONLY, async () => {
|
|
16994
|
-
|
|
17182
|
+
const invalid = musicRequestError(a);
|
|
17183
|
+
if (invalid) return { isError: true, text: invalid };
|
|
16995
17184
|
const base = resolveBaseUrl(deps.baseUrl);
|
|
16996
17185
|
const out4 = await apiRequest(base, "/api/music/estimate", { method: "POST", body: musicBody(a) }, deps);
|
|
16997
17186
|
const item = out4.items?.[0];
|
|
@@ -17003,7 +17192,7 @@ function estimateMusic(a = {}, deps = {}) {
|
|
|
17003
17192
|
}
|
|
17004
17193
|
const lines = [
|
|
17005
17194
|
`AI \uC74C\uC545 \uACAC\uC801 (\uC694\uC728 v${out4.rate_version}) \u2014 \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uC2B5\uB2C8\uB2E4`,
|
|
17006
|
-
` ${krw(item.total_krw ?? 0)} \u2014
|
|
17195
|
+
` ${krw(item.total_krw ?? 0)} \u2014 ${musicLengthNote(a)}`,
|
|
17007
17196
|
`\uC794\uC561 ${krw(out4.balance_krw)} \u2192 \uB0A8\uC744 \uC794\uC561 ${krw(out4.balance_after_krw)}`,
|
|
17008
17197
|
out4.can_afford ? "\uCDA9\uBD84\uD569\uB2C8\uB2E4." : "\u26A0\uFE0F \uC794\uC561\uC774 \uBD80\uC871\uD569\uB2C8\uB2E4 \u2014 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 \uAD00\uB9AC\uC790\uC5D0\uAC8C \uCDA9\uC804\uC744 \uC694\uCCAD\uD558\uC138\uC694."
|
|
17009
17198
|
];
|
|
@@ -17013,7 +17202,8 @@ function estimateMusic(a = {}, deps = {}) {
|
|
|
17013
17202
|
}
|
|
17014
17203
|
function makeMusic(a = {}, deps = {}) {
|
|
17015
17204
|
return guarded(SUBMITTING, async () => {
|
|
17016
|
-
|
|
17205
|
+
const invalid = musicRequestError(a);
|
|
17206
|
+
if (invalid) return { isError: true, text: invalid };
|
|
17017
17207
|
const base = resolveBaseUrl(deps.baseUrl);
|
|
17018
17208
|
const out4 = await apiRequest(
|
|
17019
17209
|
base,
|
|
@@ -17034,7 +17224,7 @@ function makeMusic(a = {}, deps = {}) {
|
|
|
17034
17224
|
return {
|
|
17035
17225
|
text: [
|
|
17036
17226
|
`\uACE1\uC744 \uB9CC\uB4DC\uB294 \uC911\uC785\uB2C8\uB2E4 \u2014 ${out4.job_id}`,
|
|
17037
|
-
`\uCCAD\uAD6C ${krw(out4.quote?.total_krw ?? 0)} \u2014
|
|
17227
|
+
`\uCCAD\uAD6C ${krw(out4.quote?.total_krw ?? 0)} \u2014 ${musicLengthNote(a)}`,
|
|
17038
17228
|
"democut_wait_jobs \uB85C \uB05D\uB098\uBA74 \uACB0\uACFC\uC758 asset_id \uAC00 \uACE1\uC785\uB2C8\uB2E4 \u2014 democut_set_cut_bgm \uC5D0 \uADF8\uB300\uB85C \uC4F0\uC138\uC694." + (a.project_slug ? " \uADF8 \uD504\uB85C\uC81D\uD2B8\uC758 \uACE1 \uBAA9\uB85D\uC5D0\uB3C4 \uB4E4\uC5B4\uAC11\uB2C8\uB2E4." : "")
|
|
17039
17229
|
].join("\n"),
|
|
17040
17230
|
structured: callableStructured(out4)
|
|
@@ -17845,6 +18035,8 @@ function dispatch(name, args, deps = {}) {
|
|
|
17845
18035
|
return estimateCharacterPhoto(args, deps);
|
|
17846
18036
|
case "democut_make_character_photo":
|
|
17847
18037
|
return makeCharacterPhoto(args, deps);
|
|
18038
|
+
case "democut_plan_music":
|
|
18039
|
+
return planMusic(args, deps);
|
|
17848
18040
|
case "democut_estimate_music":
|
|
17849
18041
|
return estimateMusic(args, deps);
|
|
17850
18042
|
case "democut_make_music":
|