democut 0.6.23 → 0.6.24

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.
Files changed (2) hide show
  1. package/dist/cli.js +920 -4
  2. 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 = "0.6.23";
6919
+ var VERSION = "0.6.24";
6920
6920
 
6921
6921
  // src/device-flow.ts
6922
6922
  var DeviceFlowError = class extends Error {
@@ -18580,7 +18580,7 @@ var GENERATED_TOOLS = [
18580
18580
  },
18581
18581
  {
18582
18582
  "name": "democut_get_storyboard",
18583
- "description": "\uC2A4\uD1A0\uB9AC\uBCF4\uB4DC \u2014 rev\xB7\uC21C\uC11C\xB7\uCEF7(\uD30C\uC0DD \uD544\uB4DC)\xB7\uB300\uAE30 \uC81C\uC548\xB7\uC0AC\uC6A9\uB7C9. If-Match \uC5D0 \uC4F8 rev \uAC00 \uC5EC\uAE30 \uC788\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_add_cut.",
18583
+ "description": "\uC2A4\uD1A0\uB9AC\uBCF4\uB4DC \u2014 rev\xB7\uC21C\uC11C\xB7\uCEF7(\uD30C\uC0DD \uD544\uB4DC)\xB7\uB300\uAE30 \uC81C\uC548\xB7\uC0AC\uC6A9\uB7C9. If-Match \uC5D0 \uC4F8 rev \uAC00 \uC5EC\uAE30 \uC788\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_add_cut, democut_put_cut_draft.",
18584
18584
  "inputSchema": {
18585
18585
  "type": "object",
18586
18586
  "properties": {
@@ -19470,6 +19470,868 @@ var GENERATED_TOOLS = [
19470
19470
  "idempotentHint": true,
19471
19471
  "openWorldHint": false
19472
19472
  }
19473
+ },
19474
+ {
19475
+ "name": "democut_put_cut_draft",
19476
+ "description": "\uACC4\uD68D(draft_spec)\uC744 \uC804\uCCB4 \uAD50\uCCB4\uD55C\uB2E4(0\uC6D0, If-Match rev). \uB80C\uB354\uD558\uC9C0 \uC54A\uB294\uB2E4.",
19477
+ "inputSchema": {
19478
+ "type": "object",
19479
+ "properties": {
19480
+ "slug": {
19481
+ "type": "string",
19482
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
19483
+ },
19484
+ "cut_id": {
19485
+ "type": "string",
19486
+ "description": "\uCEF7 id(cut_\u2026)"
19487
+ },
19488
+ "spec": {
19489
+ "discriminator": {
19490
+ "mapping": {
19491
+ "ai_video": "#/$defs/AiVideoSpec",
19492
+ "motion_graphic": "#/$defs/MotionGraphicSpec",
19493
+ "youtube_clip": "#/$defs/YoutubeClipSpec"
19494
+ },
19495
+ "propertyName": "mode"
19496
+ },
19497
+ "oneOf": [
19498
+ {
19499
+ "$ref": "#/$defs/MotionGraphicSpec"
19500
+ },
19501
+ {
19502
+ "$ref": "#/$defs/AiVideoSpec"
19503
+ },
19504
+ {
19505
+ "$ref": "#/$defs/YoutubeClipSpec"
19506
+ }
19507
+ ],
19508
+ "title": "Spec"
19509
+ },
19510
+ "rev": {
19511
+ "type": "integer",
19512
+ "minimum": 0,
19513
+ "description": "\uD604\uC7AC rev(get_storyboard \uC758 \uAC12 \uADF8\uB300\uB85C). \uADF8 \uC0AC\uC774 \uBC14\uB00C\uC5C8\uC73C\uBA74 409 REV_MISMATCH"
19514
+ }
19515
+ },
19516
+ "required": [
19517
+ "slug",
19518
+ "cut_id",
19519
+ "spec",
19520
+ "rev"
19521
+ ],
19522
+ "additionalProperties": false,
19523
+ "$defs": {
19524
+ "AiVideoSpec": {
19525
+ "additionalProperties": false,
19526
+ "properties": {
19527
+ "dialogue": {
19528
+ "items": {
19529
+ "$ref": "#/$defs/DialogueLine"
19530
+ },
19531
+ "title": "Dialogue",
19532
+ "type": "array"
19533
+ },
19534
+ "narration_asset_id": {
19535
+ "anyOf": [
19536
+ {
19537
+ "minLength": 1,
19538
+ "type": "string"
19539
+ },
19540
+ {
19541
+ "type": "null"
19542
+ }
19543
+ ],
19544
+ "default": null,
19545
+ "description": "BYO: \uCEF7 \uC804\uCCB4 \uB098\uB808\uC774\uC158 wav \uD55C \uAC1C(\uB300\uC0AC\uAC00 \uC788\uC5B4\uC57C \uD55C\uB2E4 \u2014 \uC790\uB9C9\xB7\uD0C0\uC774\uBC0D\uC758 \uADFC\uAC70). \uC904\uBCC4 audio_asset_id \uC640 \uB3D9\uC2DC \uC9C0\uC815 422",
19546
+ "title": "Narration Asset Id"
19547
+ },
19548
+ "subtitles": {
19549
+ "default": false,
19550
+ "title": "Subtitles",
19551
+ "type": "boolean"
19552
+ },
19553
+ "host": {
19554
+ "anyOf": [
19555
+ {
19556
+ "type": "string"
19557
+ },
19558
+ {
19559
+ "type": "null"
19560
+ }
19561
+ ],
19562
+ "default": null,
19563
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
19564
+ "title": "Host"
19565
+ },
19566
+ "voice_id": {
19567
+ "anyOf": [
19568
+ {
19569
+ "minLength": 1,
19570
+ "type": "string"
19571
+ },
19572
+ {
19573
+ "type": "null"
19574
+ }
19575
+ ],
19576
+ "default": null,
19577
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
19578
+ "title": "Voice Id"
19579
+ },
19580
+ "pip": {
19581
+ "anyOf": [
19582
+ {
19583
+ "$ref": "#/$defs/PipSpec"
19584
+ },
19585
+ {
19586
+ "type": "null"
19587
+ }
19588
+ ],
19589
+ "default": null,
19590
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
19591
+ },
19592
+ "image_asset_id": {
19593
+ "anyOf": [
19594
+ {
19595
+ "minLength": 1,
19596
+ "type": "string"
19597
+ },
19598
+ {
19599
+ "type": "null"
19600
+ }
19601
+ ],
19602
+ "default": null,
19603
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
19604
+ "title": "Image Asset Id"
19605
+ },
19606
+ "duration_s": {
19607
+ "default": 5,
19608
+ "maximum": 15,
19609
+ "minimum": 4,
19610
+ "title": "Duration S",
19611
+ "type": "number"
19612
+ },
19613
+ "mode": {
19614
+ "const": "ai_video",
19615
+ "default": "ai_video",
19616
+ "title": "Mode",
19617
+ "type": "string"
19618
+ },
19619
+ "image_prompt": {
19620
+ "maxLength": 4e3,
19621
+ "minLength": 1,
19622
+ "title": "Image Prompt",
19623
+ "type": "string"
19624
+ },
19625
+ "provider": {
19626
+ "anyOf": [
19627
+ {
19628
+ "maxLength": 32,
19629
+ "minLength": 1,
19630
+ "type": "string"
19631
+ },
19632
+ {
19633
+ "type": "null"
19634
+ }
19635
+ ],
19636
+ "default": null,
19637
+ "description": "\uC601\uC0C1 \uC0DD\uC131 \uACF5\uAE09\uC790(\uC608: minimax). \uBE44\uC6B0\uBA74 \uC11C\uBC84 \uAE30\uBCF8\uAC12 \u2014 \uC4F8 \uC218 \uC788\uB294 \uBAA9\uB85D\uC740 GET \u2026/options \uC758 videogen_providers",
19638
+ "title": "Provider"
19639
+ },
19640
+ "seed": {
19641
+ "anyOf": [
19642
+ {
19643
+ "minimum": 0,
19644
+ "type": "integer"
19645
+ },
19646
+ {
19647
+ "type": "null"
19648
+ }
19649
+ ],
19650
+ "default": null,
19651
+ "title": "Seed"
19652
+ },
19653
+ "image": {
19654
+ "anyOf": [
19655
+ {
19656
+ "discriminator": {
19657
+ "mapping": {
19658
+ "asset": "#/$defs/AssetImageRef",
19659
+ "from_cut": "#/$defs/FromCutImageRef",
19660
+ "from_version": "#/$defs/FromVersionImageRef"
19661
+ },
19662
+ "propertyName": "kind"
19663
+ },
19664
+ "oneOf": [
19665
+ {
19666
+ "$ref": "#/$defs/AssetImageRef"
19667
+ },
19668
+ {
19669
+ "$ref": "#/$defs/FromCutImageRef"
19670
+ },
19671
+ {
19672
+ "$ref": "#/$defs/FromVersionImageRef"
19673
+ }
19674
+ ]
19675
+ },
19676
+ {
19677
+ "type": "null"
19678
+ }
19679
+ ],
19680
+ "default": null,
19681
+ "description": "\uCCAB \uD504\uB808\uC784. \uC5C6\uC73C\uBA74 image_asset_id \u2192 \uADF8\uAC83\uB3C4 \uC5C6\uC73C\uBA74 t2v(\uD14D\uC2A4\uD2B8\uB9CC) \u2014 \uACAC\uC801\uC774 notes \uB85C \uC54C\uB824\uC900\uB2E4",
19682
+ "title": "Image"
19683
+ },
19684
+ "end_image": {
19685
+ "anyOf": [
19686
+ {
19687
+ "discriminator": {
19688
+ "mapping": {
19689
+ "asset": "#/$defs/AssetImageRef",
19690
+ "from_cut": "#/$defs/FromCutImageRef",
19691
+ "from_version": "#/$defs/FromVersionImageRef"
19692
+ },
19693
+ "propertyName": "kind"
19694
+ },
19695
+ "oneOf": [
19696
+ {
19697
+ "$ref": "#/$defs/AssetImageRef"
19698
+ },
19699
+ {
19700
+ "$ref": "#/$defs/FromCutImageRef"
19701
+ },
19702
+ {
19703
+ "$ref": "#/$defs/FromVersionImageRef"
19704
+ }
19705
+ ]
19706
+ },
19707
+ {
19708
+ "type": "null"
19709
+ }
19710
+ ],
19711
+ "default": null,
19712
+ "title": "End Image"
19713
+ }
19714
+ },
19715
+ "required": [
19716
+ "image_prompt"
19717
+ ],
19718
+ "title": "AiVideoSpec",
19719
+ "type": "object"
19720
+ },
19721
+ "AssetImageRef": {
19722
+ "additionalProperties": false,
19723
+ "properties": {
19724
+ "kind": {
19725
+ "const": "asset",
19726
+ "default": "asset",
19727
+ "title": "Kind",
19728
+ "type": "string"
19729
+ },
19730
+ "asset_id": {
19731
+ "minLength": 1,
19732
+ "title": "Asset Id",
19733
+ "type": "string"
19734
+ }
19735
+ },
19736
+ "required": [
19737
+ "asset_id"
19738
+ ],
19739
+ "title": "AssetImageRef",
19740
+ "type": "object"
19741
+ },
19742
+ "DialogueLine": {
19743
+ "additionalProperties": false,
19744
+ "properties": {
19745
+ "id": {
19746
+ "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
19747
+ "pattern": "^ln_[a-z0-9]{6}$",
19748
+ "title": "Id",
19749
+ "type": "string",
19750
+ "x-diff": "ignore"
19751
+ },
19752
+ "text": {
19753
+ "description": "\uBC1C\uD654 \uD14D\uC2A4\uD2B8(\uC22B\uC790\uB294 \uC11C\uBC84\uAC00 \uC77D\uB294 \uBC95\uC744 \uC815\uD55C\uB2E4 \u2014 \uD480\uC5B4\uC4F0\uC9C0 \uC54A\uB294\uB2E4)",
19754
+ "maxLength": 2e3,
19755
+ "minLength": 1,
19756
+ "title": "Text",
19757
+ "type": "string"
19758
+ },
19759
+ "subtitle_text": {
19760
+ "anyOf": [
19761
+ {
19762
+ "maxLength": 2e3,
19763
+ "type": "string"
19764
+ },
19765
+ {
19766
+ "type": "null"
19767
+ }
19768
+ ],
19769
+ "default": null,
19770
+ "description": "\uC790\uB9C9 \uD45C\uAE30(\uC6D0\uBB38 \uD45C\uAE30). \uC5C6\uC73C\uBA74 text",
19771
+ "title": "Subtitle Text"
19772
+ },
19773
+ "audio_asset_id": {
19774
+ "anyOf": [
19775
+ {
19776
+ "minLength": 1,
19777
+ "type": "string"
19778
+ },
19779
+ {
19780
+ "type": "null"
19781
+ }
19782
+ ],
19783
+ "default": null,
19784
+ "description": "BYO: \uC774 \uC904\uC758 \uB098\uB808\uC774\uC158 \uC624\uB514\uC624 \uC790\uC0B0 \u2014 TTS \uD589 0\uC6D0, \uC815\uB82C \uD589\uB9CC",
19785
+ "title": "Audio Asset Id"
19786
+ }
19787
+ },
19788
+ "required": [
19789
+ "id",
19790
+ "text"
19791
+ ],
19792
+ "title": "DialogueLine",
19793
+ "type": "object"
19794
+ },
19795
+ "FromCutImageRef": {
19796
+ "additionalProperties": false,
19797
+ "properties": {
19798
+ "kind": {
19799
+ "const": "from_cut",
19800
+ "default": "from_cut",
19801
+ "title": "Kind",
19802
+ "type": "string"
19803
+ },
19804
+ "from_cut": {
19805
+ "description": "\uB2E4\uB978 \uCEF7\uC758 \uB300\uD45C \uBC84\uC804 \uD504\uB808\uC784(\uC5F0\uC18D\uC131 \uB3C4\uC6B0\uBBF8)",
19806
+ "minLength": 1,
19807
+ "title": "From Cut",
19808
+ "type": "string"
19809
+ },
19810
+ "frame": {
19811
+ "default": "last",
19812
+ "enum": [
19813
+ "first",
19814
+ "last"
19815
+ ],
19816
+ "title": "Frame",
19817
+ "type": "string"
19818
+ }
19819
+ },
19820
+ "required": [
19821
+ "from_cut"
19822
+ ],
19823
+ "title": "FromCutImageRef",
19824
+ "type": "object"
19825
+ },
19826
+ "FromVersionImageRef": {
19827
+ "additionalProperties": false,
19828
+ "properties": {
19829
+ "kind": {
19830
+ "const": "from_version",
19831
+ "default": "from_version",
19832
+ "title": "Kind",
19833
+ "type": "string"
19834
+ },
19835
+ "from_version": {
19836
+ "description": "\uC774 \uCEF7\uC758 \uD2B9\uC815 \uBC84\uC804 \uD504\uB808\uC784",
19837
+ "minimum": 1,
19838
+ "title": "From Version",
19839
+ "type": "integer"
19840
+ },
19841
+ "frame": {
19842
+ "default": "last",
19843
+ "enum": [
19844
+ "first",
19845
+ "last"
19846
+ ],
19847
+ "title": "Frame",
19848
+ "type": "string"
19849
+ }
19850
+ },
19851
+ "required": [
19852
+ "from_version"
19853
+ ],
19854
+ "title": "FromVersionImageRef",
19855
+ "type": "object"
19856
+ },
19857
+ "MotionGraphicSpec": {
19858
+ "additionalProperties": false,
19859
+ "properties": {
19860
+ "dialogue": {
19861
+ "items": {
19862
+ "$ref": "#/$defs/DialogueLine"
19863
+ },
19864
+ "title": "Dialogue",
19865
+ "type": "array"
19866
+ },
19867
+ "narration_asset_id": {
19868
+ "anyOf": [
19869
+ {
19870
+ "minLength": 1,
19871
+ "type": "string"
19872
+ },
19873
+ {
19874
+ "type": "null"
19875
+ }
19876
+ ],
19877
+ "default": null,
19878
+ "description": "BYO: \uCEF7 \uC804\uCCB4 \uB098\uB808\uC774\uC158 wav \uD55C \uAC1C(\uB300\uC0AC\uAC00 \uC788\uC5B4\uC57C \uD55C\uB2E4 \u2014 \uC790\uB9C9\xB7\uD0C0\uC774\uBC0D\uC758 \uADFC\uAC70). \uC904\uBCC4 audio_asset_id \uC640 \uB3D9\uC2DC \uC9C0\uC815 422",
19879
+ "title": "Narration Asset Id"
19880
+ },
19881
+ "subtitles": {
19882
+ "default": false,
19883
+ "title": "Subtitles",
19884
+ "type": "boolean"
19885
+ },
19886
+ "host": {
19887
+ "anyOf": [
19888
+ {
19889
+ "type": "string"
19890
+ },
19891
+ {
19892
+ "type": "null"
19893
+ }
19894
+ ],
19895
+ "default": null,
19896
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
19897
+ "title": "Host"
19898
+ },
19899
+ "voice_id": {
19900
+ "anyOf": [
19901
+ {
19902
+ "minLength": 1,
19903
+ "type": "string"
19904
+ },
19905
+ {
19906
+ "type": "null"
19907
+ }
19908
+ ],
19909
+ "default": null,
19910
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
19911
+ "title": "Voice Id"
19912
+ },
19913
+ "pip": {
19914
+ "anyOf": [
19915
+ {
19916
+ "$ref": "#/$defs/PipSpec"
19917
+ },
19918
+ {
19919
+ "type": "null"
19920
+ }
19921
+ ],
19922
+ "default": null,
19923
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
19924
+ },
19925
+ "image_asset_id": {
19926
+ "anyOf": [
19927
+ {
19928
+ "minLength": 1,
19929
+ "type": "string"
19930
+ },
19931
+ {
19932
+ "type": "null"
19933
+ }
19934
+ ],
19935
+ "default": null,
19936
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
19937
+ "title": "Image Asset Id"
19938
+ },
19939
+ "duration_s": {
19940
+ "anyOf": [
19941
+ {
19942
+ "exclusiveMinimum": 0,
19943
+ "maximum": 600,
19944
+ "type": "number"
19945
+ },
19946
+ {
19947
+ "type": "null"
19948
+ }
19949
+ ],
19950
+ "default": null,
19951
+ "title": "Duration S"
19952
+ },
19953
+ "mode": {
19954
+ "const": "motion_graphic",
19955
+ "default": "motion_graphic",
19956
+ "title": "Mode",
19957
+ "type": "string"
19958
+ },
19959
+ "motion_prompt": {
19960
+ "anyOf": [
19961
+ {
19962
+ "maxLength": 4e3,
19963
+ "type": "string"
19964
+ },
19965
+ {
19966
+ "type": "null"
19967
+ }
19968
+ ],
19969
+ "default": null,
19970
+ "title": "Motion Prompt"
19971
+ },
19972
+ "tsx": {
19973
+ "anyOf": [
19974
+ {
19975
+ "maxLength": 2e5,
19976
+ "type": "string"
19977
+ },
19978
+ {
19979
+ "type": "null"
19980
+ }
19981
+ ],
19982
+ "default": null,
19983
+ "description": "BYO Remotion \uCF54\uB4DC(UTF-8 \u2264 200KB) \u2014 codegen \uD589 0\uC6D0, \uAC8C\uC774\uD2B8\uB294 codegen \uACFC \uB3D9\uAE09",
19984
+ "title": "Tsx"
19985
+ },
19986
+ "brand_override": {
19987
+ "anyOf": [
19988
+ {
19989
+ "additionalProperties": true,
19990
+ "type": "object"
19991
+ },
19992
+ {
19993
+ "type": "null"
19994
+ }
19995
+ ],
19996
+ "default": null,
19997
+ "title": "Brand Override"
19998
+ }
19999
+ },
20000
+ "title": "MotionGraphicSpec",
20001
+ "type": "object"
20002
+ },
20003
+ "PipSpec": {
20004
+ "additionalProperties": false,
20005
+ "properties": {
20006
+ "avatar_id": {
20007
+ "minLength": 1,
20008
+ "title": "Avatar Id",
20009
+ "type": "string"
20010
+ },
20011
+ "background_asset_id": {
20012
+ "description": "\uBC30\uACBD\uC740 \uC5B8\uC81C\uB098 \uC790\uC0B0(origin=background \uCE74\uD0C8\uB85C\uADF8 \uB610\uB294 \uC62C\uB9B0 \uC774\uBBF8\uC9C0)",
20013
+ "minLength": 1,
20014
+ "title": "Background Asset Id",
20015
+ "type": "string"
20016
+ },
20017
+ "position": {
20018
+ "default": "br",
20019
+ "enum": [
20020
+ "tl",
20021
+ "tr",
20022
+ "bl",
20023
+ "br"
20024
+ ],
20025
+ "title": "Position",
20026
+ "type": "string"
20027
+ },
20028
+ "size": {
20029
+ "default": "m",
20030
+ "enum": [
20031
+ "s",
20032
+ "m",
20033
+ "l"
20034
+ ],
20035
+ "title": "Size",
20036
+ "type": "string"
20037
+ }
20038
+ },
20039
+ "required": [
20040
+ "avatar_id",
20041
+ "background_asset_id"
20042
+ ],
20043
+ "title": "PipSpec",
20044
+ "type": "object"
20045
+ },
20046
+ "YoutubeAssetSource": {
20047
+ "additionalProperties": false,
20048
+ "properties": {
20049
+ "kind": {
20050
+ "const": "asset",
20051
+ "default": "asset",
20052
+ "title": "Kind",
20053
+ "type": "string"
20054
+ },
20055
+ "asset_id": {
20056
+ "description": "BYO: \uC62C\uB9B0 \uC6D0\uBCF8 \uC601\uC0C1 \u2014 \uB0B4\uB824\uBC1B\uAE30 \uD589 0\uC6D0",
20057
+ "minLength": 1,
20058
+ "title": "Asset Id",
20059
+ "type": "string"
20060
+ },
20061
+ "start_s": {
20062
+ "anyOf": [
20063
+ {
20064
+ "minimum": 0,
20065
+ "type": "number"
20066
+ },
20067
+ {
20068
+ "type": "null"
20069
+ }
20070
+ ],
20071
+ "default": null,
20072
+ "title": "Start S"
20073
+ },
20074
+ "end_s": {
20075
+ "anyOf": [
20076
+ {
20077
+ "exclusiveMinimum": 0,
20078
+ "type": "number"
20079
+ },
20080
+ {
20081
+ "type": "null"
20082
+ }
20083
+ ],
20084
+ "default": null,
20085
+ "title": "End S"
20086
+ }
20087
+ },
20088
+ "required": [
20089
+ "asset_id"
20090
+ ],
20091
+ "title": "YoutubeAssetSource",
20092
+ "type": "object"
20093
+ },
20094
+ "YoutubeClipSpec": {
20095
+ "additionalProperties": false,
20096
+ "properties": {
20097
+ "dialogue": {
20098
+ "items": {
20099
+ "$ref": "#/$defs/DialogueLine"
20100
+ },
20101
+ "title": "Dialogue",
20102
+ "type": "array"
20103
+ },
20104
+ "narration_asset_id": {
20105
+ "anyOf": [
20106
+ {
20107
+ "minLength": 1,
20108
+ "type": "string"
20109
+ },
20110
+ {
20111
+ "type": "null"
20112
+ }
20113
+ ],
20114
+ "default": null,
20115
+ "description": "BYO: \uCEF7 \uC804\uCCB4 \uB098\uB808\uC774\uC158 wav \uD55C \uAC1C(\uB300\uC0AC\uAC00 \uC788\uC5B4\uC57C \uD55C\uB2E4 \u2014 \uC790\uB9C9\xB7\uD0C0\uC774\uBC0D\uC758 \uADFC\uAC70). \uC904\uBCC4 audio_asset_id \uC640 \uB3D9\uC2DC \uC9C0\uC815 422",
20116
+ "title": "Narration Asset Id"
20117
+ },
20118
+ "subtitles": {
20119
+ "default": false,
20120
+ "title": "Subtitles",
20121
+ "type": "boolean"
20122
+ },
20123
+ "host": {
20124
+ "anyOf": [
20125
+ {
20126
+ "type": "string"
20127
+ },
20128
+ {
20129
+ "type": "null"
20130
+ }
20131
+ ],
20132
+ "default": null,
20133
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
20134
+ "title": "Host"
20135
+ },
20136
+ "voice_id": {
20137
+ "anyOf": [
20138
+ {
20139
+ "minLength": 1,
20140
+ "type": "string"
20141
+ },
20142
+ {
20143
+ "type": "null"
20144
+ }
20145
+ ],
20146
+ "default": null,
20147
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
20148
+ "title": "Voice Id"
20149
+ },
20150
+ "pip": {
20151
+ "anyOf": [
20152
+ {
20153
+ "$ref": "#/$defs/PipSpec"
20154
+ },
20155
+ {
20156
+ "type": "null"
20157
+ }
20158
+ ],
20159
+ "default": null,
20160
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
20161
+ },
20162
+ "image_asset_id": {
20163
+ "anyOf": [
20164
+ {
20165
+ "minLength": 1,
20166
+ "type": "string"
20167
+ },
20168
+ {
20169
+ "type": "null"
20170
+ }
20171
+ ],
20172
+ "default": null,
20173
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
20174
+ "title": "Image Asset Id"
20175
+ },
20176
+ "duration_s": {
20177
+ "anyOf": [
20178
+ {
20179
+ "exclusiveMinimum": 0,
20180
+ "maximum": 600,
20181
+ "type": "number"
20182
+ },
20183
+ {
20184
+ "type": "null"
20185
+ }
20186
+ ],
20187
+ "default": null,
20188
+ "title": "Duration S"
20189
+ },
20190
+ "mode": {
20191
+ "const": "youtube_clip",
20192
+ "default": "youtube_clip",
20193
+ "title": "Mode",
20194
+ "type": "string"
20195
+ },
20196
+ "source": {
20197
+ "discriminator": {
20198
+ "mapping": {
20199
+ "asset": "#/$defs/YoutubeAssetSource",
20200
+ "url": "#/$defs/YoutubeUrlSource"
20201
+ },
20202
+ "propertyName": "kind"
20203
+ },
20204
+ "oneOf": [
20205
+ {
20206
+ "$ref": "#/$defs/YoutubeUrlSource"
20207
+ },
20208
+ {
20209
+ "$ref": "#/$defs/YoutubeAssetSource"
20210
+ }
20211
+ ],
20212
+ "title": "Source"
20213
+ }
20214
+ },
20215
+ "required": [
20216
+ "source"
20217
+ ],
20218
+ "title": "YoutubeClipSpec",
20219
+ "type": "object"
20220
+ },
20221
+ "YoutubeUrlSource": {
20222
+ "additionalProperties": false,
20223
+ "properties": {
20224
+ "kind": {
20225
+ "const": "url",
20226
+ "default": "url",
20227
+ "title": "Kind",
20228
+ "type": "string"
20229
+ },
20230
+ "url": {
20231
+ "description": "https://youtube.com|youtu.be \uACF5\uAC1C \uC8FC\uC18C\uB9CC",
20232
+ "minLength": 1,
20233
+ "title": "Url",
20234
+ "type": "string"
20235
+ },
20236
+ "start_s": {
20237
+ "minimum": 0,
20238
+ "title": "Start S",
20239
+ "type": "number"
20240
+ },
20241
+ "end_s": {
20242
+ "exclusiveMinimum": 0,
20243
+ "title": "End S",
20244
+ "type": "number"
20245
+ }
20246
+ },
20247
+ "required": [
20248
+ "url",
20249
+ "start_s",
20250
+ "end_s"
20251
+ ],
20252
+ "title": "YoutubeUrlSource",
20253
+ "type": "object"
20254
+ }
20255
+ }
20256
+ },
20257
+ "annotations": {
20258
+ "readOnlyHint": false,
20259
+ "destructiveHint": false,
20260
+ "idempotentHint": true,
20261
+ "openWorldHint": false
20262
+ }
20263
+ },
20264
+ {
20265
+ "name": "democut_set_cut_edit",
20266
+ "description": "\uC7AC\uC0DD \uAD6C\uAC04\xB7\uBB34\uC74C \uC790\uB974\uAE30(0\uC6D0, \uB80C\uB354 \uD30C\uC77C \uBD88\uBCC0 \u2014 \uC7AC\uC0DD\xB7\uC644\uC131\uBCF8\uC5D0\uB9CC \uC801\uC6A9).",
20267
+ "inputSchema": {
20268
+ "type": "object",
20269
+ "properties": {
20270
+ "slug": {
20271
+ "type": "string",
20272
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
20273
+ },
20274
+ "cut_id": {
20275
+ "type": "string",
20276
+ "description": "\uCEF7 id(cut_\u2026)"
20277
+ },
20278
+ "edit": {
20279
+ "$ref": "#/$defs/CutEdit"
20280
+ }
20281
+ },
20282
+ "required": [
20283
+ "slug",
20284
+ "cut_id",
20285
+ "edit"
20286
+ ],
20287
+ "additionalProperties": false,
20288
+ "$defs": {
20289
+ "CutEdit": {
20290
+ "additionalProperties": false,
20291
+ "properties": {
20292
+ "trim_in_ms": {
20293
+ "default": 0,
20294
+ "minimum": 0,
20295
+ "title": "Trim In Ms",
20296
+ "type": "integer"
20297
+ },
20298
+ "trim_out_ms": {
20299
+ "anyOf": [
20300
+ {
20301
+ "minimum": 1,
20302
+ "type": "integer"
20303
+ },
20304
+ {
20305
+ "type": "null"
20306
+ }
20307
+ ],
20308
+ "default": null,
20309
+ "title": "Trim Out Ms"
20310
+ },
20311
+ "silence_removal": {
20312
+ "default": false,
20313
+ "title": "Silence Removal",
20314
+ "type": "boolean"
20315
+ },
20316
+ "silence_threshold_ms": {
20317
+ "default": 800,
20318
+ "maximum": 5e3,
20319
+ "minimum": 100,
20320
+ "title": "Silence Threshold Ms",
20321
+ "type": "integer"
20322
+ }
20323
+ },
20324
+ "title": "CutEdit",
20325
+ "type": "object"
20326
+ }
20327
+ }
20328
+ },
20329
+ "annotations": {
20330
+ "readOnlyHint": false,
20331
+ "destructiveHint": false,
20332
+ "idempotentHint": true,
20333
+ "openWorldHint": false
20334
+ }
19473
20335
  }
19474
20336
  ];
19475
20337
 
@@ -20124,7 +20986,7 @@ function estimateCuts(a = {}, deps = {}) {
20124
20986
  lines.push(` ${label}: \uACAC\uC801 \uBD88\uAC00 \u2014 ${item.blocked_reason}`);
20125
20987
  continue;
20126
20988
  }
20127
- const rows = (item.rows ?? []).map((r) => `${r.key} ${krw(r.krw)}`).join(", ") || "\uD589 \uC5C6\uC74C";
20989
+ const rows = (item.rows ?? []).map((r) => `${r.display_name || r.key} ${krw(r.krw)}`).join(", ") || "\uD589 \uC5C6\uC74C";
20128
20990
  lines.push(` ${label}: ${krw(item.total_krw ?? 0)} (${rows})`);
20129
20991
  }
20130
20992
  lines.push(
@@ -20262,7 +21124,9 @@ function listing(lines) {
20262
21124
  var ACTIVE_JOB_STATES = /* @__PURE__ */ new Set(["queued", "running"]);
20263
21125
  function jobLine(j) {
20264
21126
  const bits = [`${j.job_id} [${j.state}] ${j.kind}`];
20265
- if (j.progress?.pct != null) bits.push(`${Math.round(j.progress.pct)}%`);
21127
+ if (ACTIVE_JOB_STATES.has(j.state) && j.progress?.pct != null) {
21128
+ bits.push(`${Math.round(j.progress.pct)}%`);
21129
+ }
20266
21130
  if (j.error) bits.push(`\uC624\uB958 ${j.error.code}: ${j.error.message}`);
20267
21131
  if (j.result?.version != null) bits.push(`\u2192 v${j.result.version}`);
20268
21132
  return bits.join(" \xB7 ");
@@ -20395,6 +21259,54 @@ function addCut(a = {}, deps = {}) {
20395
21259
  return { text: lines.join("\n") };
20396
21260
  });
20397
21261
  }
21262
+ var EDIT_NOTE = "\uC774\uBBF8 \uB9CC\uB4E0 \uC601\uC0C1 \uD30C\uC77C\uC740 \uADF8\uB300\uB85C\uC785\uB2C8\uB2E4 \u2014 \uC7AC\uC0DD\xB7\uC644\uC131\uBCF8\uC5D0\uB9CC \uC801\uC6A9\uB418\uACE0 \uC7AC\uB80C\uB354\uB294 \uC5C6\uC2B5\uB2C8\uB2E4.";
21263
+ function putCutDraft(a = {}, deps = {}) {
21264
+ return guarded(READ_ONLY, async () => {
21265
+ const slug = needSlug(a);
21266
+ if (typeof slug !== "string") return slug;
21267
+ const cutId = (a.cut_id ?? "").trim();
21268
+ if (!cutId) return { isError: true, text: "cut_id \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4." };
21269
+ if (a.spec === void 0 || a.spec === null) {
21270
+ return { isError: true, text: "spec \uC774 \uD544\uC694\uD569\uB2C8\uB2E4 \u2014 \uC804\uCCB4 \uAD50\uCCB4\uC785\uB2C8\uB2E4(\uC77C\uBD80\uB9CC \uBC14\uAFB8\uB294 \uAC83\uC774 \uC544\uB2D9\uB2C8\uB2E4)." };
21271
+ }
21272
+ if (a.rev === void 0 || a.rev === null) {
21273
+ return {
21274
+ isError: true,
21275
+ text: callableToolNames("rev \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4 \u2014 get_storyboard \uB85C \uD604\uC7AC rev \uB97C \uC77D\uC5B4 \uADF8\uB300\uB85C \uB123\uC73C\uC138\uC694.")
21276
+ };
21277
+ }
21278
+ const base = resolveBaseUrl(deps.baseUrl);
21279
+ const cut = await apiRequest(
21280
+ base,
21281
+ projectPath(slug, `/cuts/${encodeURIComponent(cutId)}/draft`),
21282
+ { method: "PUT", body: { spec: a.spec }, headers: { "If-Match": String(a.rev) } },
21283
+ deps
21284
+ );
21285
+ const lines = [cutLine(cut)];
21286
+ if (cut.next_calls?.length)
21287
+ lines.push(callableToolNames(`\uB2E4\uC74C \uD638\uCD9C: ${cut.next_calls.join(", ")}`));
21288
+ return { text: lines.join("\n") };
21289
+ });
21290
+ }
21291
+ function setCutEdit(a = {}, deps = {}) {
21292
+ return guarded(READ_ONLY, async () => {
21293
+ const slug = needSlug(a);
21294
+ if (typeof slug !== "string") return slug;
21295
+ const cutId = (a.cut_id ?? "").trim();
21296
+ if (!cutId) return { isError: true, text: "cut_id \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4." };
21297
+ if (a.edit === void 0 || a.edit === null) {
21298
+ return { isError: true, text: "edit \uC774 \uD544\uC694\uD569\uB2C8\uB2E4." };
21299
+ }
21300
+ const base = resolveBaseUrl(deps.baseUrl);
21301
+ const cut = await apiRequest(
21302
+ base,
21303
+ projectPath(slug, `/cuts/${encodeURIComponent(cutId)}/edit`),
21304
+ { method: "PUT", body: { edit: a.edit } },
21305
+ deps
21306
+ );
21307
+ return { text: [cutLine(cut), EDIT_NOTE].join("\n") };
21308
+ });
21309
+ }
20398
21310
  function duplicateCut(a = {}, deps = {}) {
20399
21311
  return guarded(READ_ONLY, async () => {
20400
21312
  const slug = needSlug(a);
@@ -20702,6 +21614,10 @@ function dispatch(name, args, deps = {}) {
20702
21614
  return getStoryboard(args, deps);
20703
21615
  case "democut_add_cut":
20704
21616
  return addCut(args, deps);
21617
+ case "democut_put_cut_draft":
21618
+ return putCutDraft(args, deps);
21619
+ case "democut_set_cut_edit":
21620
+ return setCutEdit(args, deps);
20705
21621
  case "democut_duplicate_cut":
20706
21622
  return duplicateCut(args, deps);
20707
21623
  case "democut_delete_cut":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "democut",
3
- "version": "0.6.23",
3
+ "version": "0.6.24",
4
4
  "description": "DemoCut 에이전트 CLI — device flow 로그인(RFC 8628) + 영상 생성",
5
5
  "license": "MIT",
6
6
  "author": "InfoGrab",