democut 0.6.33 → 0.6.36

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 +2389 -296
  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.33";
6919
+ var VERSION = "0.6.36";
6920
6920
 
6921
6921
  // src/device-flow.ts
6922
6922
  var DeviceFlowError = class extends Error {
@@ -15994,6 +15994,406 @@ var GENERATED_TOOLS = [
15994
15994
  "required": [],
15995
15995
  "additionalProperties": false
15996
15996
  },
15997
+ "outputSchema": {
15998
+ "$defs": {
15999
+ "Brand": {
16000
+ "additionalProperties": false,
16001
+ "properties": {
16002
+ "accent_hex": {
16003
+ "anyOf": [
16004
+ {
16005
+ "pattern": "^#[0-9A-Fa-f]{6}$",
16006
+ "type": "string"
16007
+ },
16008
+ {
16009
+ "type": "null"
16010
+ }
16011
+ ],
16012
+ "default": null,
16013
+ "title": "Accent Hex"
16014
+ },
16015
+ "heading_font": {
16016
+ "anyOf": [
16017
+ {
16018
+ "type": "string"
16019
+ },
16020
+ {
16021
+ "type": "null"
16022
+ }
16023
+ ],
16024
+ "default": null,
16025
+ "title": "Heading Font"
16026
+ },
16027
+ "body_font": {
16028
+ "anyOf": [
16029
+ {
16030
+ "type": "string"
16031
+ },
16032
+ {
16033
+ "type": "null"
16034
+ }
16035
+ ],
16036
+ "default": null,
16037
+ "title": "Body Font"
16038
+ },
16039
+ "logo_asset_id": {
16040
+ "anyOf": [
16041
+ {
16042
+ "type": "string"
16043
+ },
16044
+ {
16045
+ "type": "null"
16046
+ }
16047
+ ],
16048
+ "default": null,
16049
+ "title": "Logo Asset Id"
16050
+ }
16051
+ },
16052
+ "title": "Brand",
16053
+ "type": "object"
16054
+ },
16055
+ "ProjectDefaults": {
16056
+ "additionalProperties": false,
16057
+ "properties": {
16058
+ "voice_id": {
16059
+ "anyOf": [
16060
+ {
16061
+ "type": "string"
16062
+ },
16063
+ {
16064
+ "type": "null"
16065
+ }
16066
+ ],
16067
+ "default": null,
16068
+ "title": "Voice Id"
16069
+ },
16070
+ "character_id": {
16071
+ "anyOf": [
16072
+ {
16073
+ "type": "string"
16074
+ },
16075
+ {
16076
+ "type": "null"
16077
+ }
16078
+ ],
16079
+ "default": null,
16080
+ "title": "Character Id"
16081
+ },
16082
+ "subtitles": {
16083
+ "default": false,
16084
+ "title": "Subtitles",
16085
+ "type": "boolean"
16086
+ },
16087
+ "brand": {
16088
+ "$ref": "#/$defs/Brand"
16089
+ }
16090
+ },
16091
+ "title": "ProjectDefaults",
16092
+ "type": "object"
16093
+ },
16094
+ "ProjectView": {
16095
+ "additionalProperties": false,
16096
+ "properties": {
16097
+ "slug": {
16098
+ "title": "Slug",
16099
+ "type": "string"
16100
+ },
16101
+ "workspace_id": {
16102
+ "title": "Workspace Id",
16103
+ "type": "string"
16104
+ },
16105
+ "title": {
16106
+ "title": "Title",
16107
+ "type": "string"
16108
+ },
16109
+ "ratio": {
16110
+ "enum": [
16111
+ "16:9",
16112
+ "9:16",
16113
+ "1:1"
16114
+ ],
16115
+ "title": "Ratio",
16116
+ "type": "string"
16117
+ },
16118
+ "resolution": {
16119
+ "enum": [
16120
+ "720p",
16121
+ "1080p"
16122
+ ],
16123
+ "title": "Resolution",
16124
+ "type": "string"
16125
+ },
16126
+ "defaults": {
16127
+ "$ref": "#/$defs/ProjectDefaults"
16128
+ },
16129
+ "rev": {
16130
+ "default": 0,
16131
+ "title": "Rev",
16132
+ "type": "integer"
16133
+ },
16134
+ "folder_id": {
16135
+ "anyOf": [
16136
+ {
16137
+ "type": "string"
16138
+ },
16139
+ {
16140
+ "type": "null"
16141
+ }
16142
+ ],
16143
+ "default": null,
16144
+ "title": "Folder Id"
16145
+ },
16146
+ "cut_count": {
16147
+ "default": 0,
16148
+ "title": "Cut Count",
16149
+ "type": "integer"
16150
+ },
16151
+ "created_by": {
16152
+ "title": "Created By",
16153
+ "type": "string"
16154
+ },
16155
+ "created_at": {
16156
+ "title": "Created At",
16157
+ "type": "string"
16158
+ },
16159
+ "updated_at": {
16160
+ "title": "Updated At",
16161
+ "type": "string"
16162
+ }
16163
+ },
16164
+ "required": [
16165
+ "slug",
16166
+ "workspace_id",
16167
+ "title",
16168
+ "ratio",
16169
+ "resolution",
16170
+ "created_by",
16171
+ "created_at",
16172
+ "updated_at"
16173
+ ],
16174
+ "title": "ProjectView",
16175
+ "type": "object"
16176
+ }
16177
+ },
16178
+ "additionalProperties": false,
16179
+ "properties": {
16180
+ "projects": {
16181
+ "items": {
16182
+ "$ref": "#/$defs/ProjectView"
16183
+ },
16184
+ "title": "Projects",
16185
+ "type": "array"
16186
+ }
16187
+ },
16188
+ "required": [
16189
+ "projects"
16190
+ ],
16191
+ "title": "ProjectListResponse",
16192
+ "type": "object"
16193
+ },
16194
+ "annotations": {
16195
+ "readOnlyHint": true,
16196
+ "destructiveHint": false,
16197
+ "idempotentHint": true,
16198
+ "openWorldHint": false
16199
+ }
16200
+ },
16201
+ {
16202
+ "name": "democut_get_project",
16203
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uD558\uB098.",
16204
+ "inputSchema": {
16205
+ "type": "object",
16206
+ "properties": {
16207
+ "slug": {
16208
+ "type": "string",
16209
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
16210
+ }
16211
+ },
16212
+ "required": [
16213
+ "slug"
16214
+ ],
16215
+ "additionalProperties": false
16216
+ },
16217
+ "outputSchema": {
16218
+ "$defs": {
16219
+ "Brand": {
16220
+ "additionalProperties": false,
16221
+ "properties": {
16222
+ "accent_hex": {
16223
+ "anyOf": [
16224
+ {
16225
+ "pattern": "^#[0-9A-Fa-f]{6}$",
16226
+ "type": "string"
16227
+ },
16228
+ {
16229
+ "type": "null"
16230
+ }
16231
+ ],
16232
+ "default": null,
16233
+ "title": "Accent Hex"
16234
+ },
16235
+ "heading_font": {
16236
+ "anyOf": [
16237
+ {
16238
+ "type": "string"
16239
+ },
16240
+ {
16241
+ "type": "null"
16242
+ }
16243
+ ],
16244
+ "default": null,
16245
+ "title": "Heading Font"
16246
+ },
16247
+ "body_font": {
16248
+ "anyOf": [
16249
+ {
16250
+ "type": "string"
16251
+ },
16252
+ {
16253
+ "type": "null"
16254
+ }
16255
+ ],
16256
+ "default": null,
16257
+ "title": "Body Font"
16258
+ },
16259
+ "logo_asset_id": {
16260
+ "anyOf": [
16261
+ {
16262
+ "type": "string"
16263
+ },
16264
+ {
16265
+ "type": "null"
16266
+ }
16267
+ ],
16268
+ "default": null,
16269
+ "title": "Logo Asset Id"
16270
+ }
16271
+ },
16272
+ "title": "Brand",
16273
+ "type": "object"
16274
+ },
16275
+ "ProjectDefaults": {
16276
+ "additionalProperties": false,
16277
+ "properties": {
16278
+ "voice_id": {
16279
+ "anyOf": [
16280
+ {
16281
+ "type": "string"
16282
+ },
16283
+ {
16284
+ "type": "null"
16285
+ }
16286
+ ],
16287
+ "default": null,
16288
+ "title": "Voice Id"
16289
+ },
16290
+ "character_id": {
16291
+ "anyOf": [
16292
+ {
16293
+ "type": "string"
16294
+ },
16295
+ {
16296
+ "type": "null"
16297
+ }
16298
+ ],
16299
+ "default": null,
16300
+ "title": "Character Id"
16301
+ },
16302
+ "subtitles": {
16303
+ "default": false,
16304
+ "title": "Subtitles",
16305
+ "type": "boolean"
16306
+ },
16307
+ "brand": {
16308
+ "$ref": "#/$defs/Brand"
16309
+ }
16310
+ },
16311
+ "title": "ProjectDefaults",
16312
+ "type": "object"
16313
+ }
16314
+ },
16315
+ "additionalProperties": false,
16316
+ "properties": {
16317
+ "slug": {
16318
+ "title": "Slug",
16319
+ "type": "string"
16320
+ },
16321
+ "workspace_id": {
16322
+ "title": "Workspace Id",
16323
+ "type": "string"
16324
+ },
16325
+ "title": {
16326
+ "title": "Title",
16327
+ "type": "string"
16328
+ },
16329
+ "ratio": {
16330
+ "enum": [
16331
+ "16:9",
16332
+ "9:16",
16333
+ "1:1"
16334
+ ],
16335
+ "title": "Ratio",
16336
+ "type": "string"
16337
+ },
16338
+ "resolution": {
16339
+ "enum": [
16340
+ "720p",
16341
+ "1080p"
16342
+ ],
16343
+ "title": "Resolution",
16344
+ "type": "string"
16345
+ },
16346
+ "defaults": {
16347
+ "$ref": "#/$defs/ProjectDefaults"
16348
+ },
16349
+ "rev": {
16350
+ "default": 0,
16351
+ "title": "Rev",
16352
+ "type": "integer"
16353
+ },
16354
+ "folder_id": {
16355
+ "anyOf": [
16356
+ {
16357
+ "type": "string"
16358
+ },
16359
+ {
16360
+ "type": "null"
16361
+ }
16362
+ ],
16363
+ "default": null,
16364
+ "title": "Folder Id"
16365
+ },
16366
+ "cut_count": {
16367
+ "default": 0,
16368
+ "title": "Cut Count",
16369
+ "type": "integer"
16370
+ },
16371
+ "created_by": {
16372
+ "title": "Created By",
16373
+ "type": "string"
16374
+ },
16375
+ "created_at": {
16376
+ "title": "Created At",
16377
+ "type": "string"
16378
+ },
16379
+ "updated_at": {
16380
+ "title": "Updated At",
16381
+ "type": "string"
16382
+ }
16383
+ },
16384
+ "required": [
16385
+ "slug",
16386
+ "workspace_id",
16387
+ "title",
16388
+ "ratio",
16389
+ "resolution",
16390
+ "created_by",
16391
+ "created_at",
16392
+ "updated_at"
16393
+ ],
16394
+ "title": "ProjectView",
16395
+ "type": "object"
16396
+ },
15997
16397
  "annotations": {
15998
16398
  "readOnlyHint": true,
15999
16399
  "destructiveHint": false,
@@ -16001,6 +16401,41 @@ var GENERATED_TOOLS = [
16001
16401
  "openWorldHint": false
16002
16402
  }
16003
16403
  },
16404
+ {
16405
+ "name": "democut_delete_project",
16406
+ "description": "\uD504\uB85C\uC81D\uD2B8\uC640 \uCEF7\xB7\uBC84\uC804\xB7\uC790\uC0B0\uC744 \uC9C0\uC6B4\uB2E4(\uD65C\uC131 \uC7A1\uC774 \uC788\uC73C\uBA74 409). \uC6D0\uC7A5\uC740 \uB0A8\uB294\uB2E4.",
16407
+ "inputSchema": {
16408
+ "type": "object",
16409
+ "properties": {
16410
+ "slug": {
16411
+ "type": "string",
16412
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
16413
+ }
16414
+ },
16415
+ "required": [
16416
+ "slug"
16417
+ ],
16418
+ "additionalProperties": false
16419
+ },
16420
+ "outputSchema": {
16421
+ "additionalProperties": false,
16422
+ "properties": {
16423
+ "deleted": {
16424
+ "default": true,
16425
+ "title": "Deleted",
16426
+ "type": "boolean"
16427
+ }
16428
+ },
16429
+ "title": "DeletedResponse",
16430
+ "type": "object"
16431
+ },
16432
+ "annotations": {
16433
+ "readOnlyHint": false,
16434
+ "destructiveHint": true,
16435
+ "idempotentHint": true,
16436
+ "openWorldHint": false
16437
+ }
16438
+ },
16004
16439
  {
16005
16440
  "name": "democut_create_project",
16006
16441
  "description": "\uD504\uB85C\uC81D\uD2B8\uB97C \uB9CC\uB4E0\uB2E4 \u2014 \uACFC\uAE08\uC740 \uC5C6\uC9C0\uB9CC \uACC4\uC815\uC5D0 \uB0A8\uB294 **\uC4F0\uAE30** \uC791\uC5C5\uC774\uB2E4. \uBE44\uC728(16:9|9:16|1:1)\uC740 \uC0DD\uC131 \uD6C4 \uBC14\uAFC0 \uC218 \uC5C6\uB2E4. \uAC19\uC740 \uC81C\uBAA9\uC73C\uB85C \uB2E4\uC2DC \uBD80\uB974\uBA74 \uC0C8\uB85C \uB9CC\uB4E4\uC9C0 \uC54A\uACE0 \uAE30\uC874 \uAC83\uC744 \uB3CC\uB824\uC900\uB2E4(\uC7AC\uC2DC\uB3C4 \uC548\uC804). \u2605 \uBA3C\uC800 democut_list_projects \uB85C \uC4F8 \uB9CC\uD55C \uAC83\uC774 \uC774\uBBF8 \uC788\uB294\uC9C0 \uBCF4\uACE0 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC5B4\uB290 \uAC83\uC5D0 \uB123\uC744\uC9C0 \uBB3C\uC5B4\uB77C \u2014 \uBB3B\uC9C0 \uC54A\uACE0 \uB9CC\uB4E4\uBA74 \uBE44\uC2B7\uD55C \uD504\uB85C\uC81D\uD2B8\uAC00 \uC313\uC778\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_get_options, democut_upload_asset, democut_estimate_cuts.",
@@ -27049,6 +27484,151 @@ var GENERATED_TOOLS = [
27049
27484
  "openWorldHint": false
27050
27485
  }
27051
27486
  },
27487
+ {
27488
+ "name": "democut_list_backgrounds",
27489
+ "description": "PIP \uBC30\uACBD \uCE74\uD0C8\uB85C\uADF8(origin=background \uC790\uC0B0) + \uC62C\uB9B0 \uBC30\uACBD.",
27490
+ "inputSchema": {
27491
+ "type": "object",
27492
+ "properties": {},
27493
+ "required": [],
27494
+ "additionalProperties": false
27495
+ },
27496
+ "outputSchema": {
27497
+ "$defs": {
27498
+ "AssetView": {
27499
+ "additionalProperties": false,
27500
+ "properties": {
27501
+ "id": {
27502
+ "title": "Id",
27503
+ "type": "string"
27504
+ },
27505
+ "workspace_id": {
27506
+ "title": "Workspace Id",
27507
+ "type": "string"
27508
+ },
27509
+ "project_slug": {
27510
+ "anyOf": [
27511
+ {
27512
+ "type": "string"
27513
+ },
27514
+ {
27515
+ "type": "null"
27516
+ }
27517
+ ],
27518
+ "default": null,
27519
+ "title": "Project Slug"
27520
+ },
27521
+ "kind": {
27522
+ "enum": [
27523
+ "image",
27524
+ "video",
27525
+ "audio",
27526
+ "subtitle",
27527
+ "code",
27528
+ "archive"
27529
+ ],
27530
+ "title": "Kind",
27531
+ "type": "string"
27532
+ },
27533
+ "origin": {
27534
+ "description": "upload|url_fetch|render|image_gen|export|pip|from_video|thumbnail|idle_motion|background|legacy_import (\uC77D\uAE30 \uAD00\uC6A9)",
27535
+ "title": "Origin",
27536
+ "type": "string"
27537
+ },
27538
+ "mime": {
27539
+ "title": "Mime",
27540
+ "type": "string"
27541
+ },
27542
+ "bytes": {
27543
+ "minimum": 0,
27544
+ "title": "Bytes",
27545
+ "type": "integer"
27546
+ },
27547
+ "sha256": {
27548
+ "anyOf": [
27549
+ {
27550
+ "type": "string"
27551
+ },
27552
+ {
27553
+ "type": "null"
27554
+ }
27555
+ ],
27556
+ "default": null,
27557
+ "title": "Sha256"
27558
+ },
27559
+ "meta": {
27560
+ "additionalProperties": true,
27561
+ "title": "Meta",
27562
+ "type": "object"
27563
+ },
27564
+ "state": {
27565
+ "enum": [
27566
+ "pending",
27567
+ "ready",
27568
+ "deleted"
27569
+ ],
27570
+ "title": "State",
27571
+ "type": "string"
27572
+ },
27573
+ "created_by": {
27574
+ "title": "Created By",
27575
+ "type": "string"
27576
+ },
27577
+ "created_at": {
27578
+ "title": "Created At",
27579
+ "type": "string"
27580
+ },
27581
+ "download_url": {
27582
+ "anyOf": [
27583
+ {
27584
+ "type": "string"
27585
+ },
27586
+ {
27587
+ "type": "null"
27588
+ }
27589
+ ],
27590
+ "default": null,
27591
+ "title": "Download Url"
27592
+ }
27593
+ },
27594
+ "required": [
27595
+ "id",
27596
+ "workspace_id",
27597
+ "kind",
27598
+ "origin",
27599
+ "mime",
27600
+ "bytes",
27601
+ "state",
27602
+ "created_by",
27603
+ "created_at"
27604
+ ],
27605
+ "title": "AssetView",
27606
+ "type": "object"
27607
+ }
27608
+ },
27609
+ "additionalProperties": false,
27610
+ "properties": {
27611
+ "backgrounds": {
27612
+ "items": {
27613
+ "$ref": "#/$defs/AssetView"
27614
+ },
27615
+ "title": "Backgrounds",
27616
+ "type": "array"
27617
+ }
27618
+ },
27619
+ "required": [
27620
+ "backgrounds"
27621
+ ],
27622
+ "title": "BackgroundListResponse",
27623
+ "type": "object"
27624
+ },
27625
+ "annotations": {
27626
+ "readOnlyHint": true,
27627
+ "destructiveHint": false,
27628
+ "idempotentHint": true,
27629
+ "openWorldHint": false
27630
+ }
27631
+ },
27052
27632
  {
27053
27633
  "name": "democut_get_storyboard",
27054
27634
  "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, democut_reorder_cuts.",
@@ -28181,174 +28761,1712 @@ var GENERATED_TOOLS = [
28181
28761
  "title": "PipSpec",
28182
28762
  "type": "object"
28183
28763
  },
28184
- "ProposalRequestView": {
28185
- "additionalProperties": false,
28186
- "properties": {
28187
- "text": {
28188
- "title": "Text",
28189
- "type": "string"
28190
- },
28191
- "attachments": {
28192
- "description": "asset_id \uBAA9\uB85D",
28193
- "items": {
28194
- "type": "string"
28195
- },
28196
- "title": "Attachments",
28197
- "type": "array"
28198
- }
28199
- },
28200
- "required": [
28201
- "text"
28202
- ],
28203
- "title": "ProposalRequestView",
28204
- "type": "object"
28205
- },
28206
- "ProposalView": {
28207
- "additionalProperties": false,
28208
- "properties": {
28209
- "id": {
28210
- "title": "Id",
28211
- "type": "string"
28212
- },
28213
- "project_slug": {
28214
- "title": "Project Slug",
28215
- "type": "string"
28216
- },
28217
- "source": {
28218
- "enum": [
28219
- "chat_global",
28220
- "chat_cut",
28221
- "user_ai"
28222
- ],
28223
- "title": "Source",
28224
- "type": "string"
28225
- },
28226
- "scope_cut_id": {
28227
- "anyOf": [
28228
- {
28229
- "type": "string"
28230
- },
28231
- {
28232
- "type": "null"
28233
- }
28234
- ],
28235
- "default": null,
28236
- "title": "Scope Cut Id"
28237
- },
28238
- "request": {
28239
- "$ref": "#/$defs/ProposalRequestView"
28240
- },
28241
- "base_rev": {
28242
- "title": "Base Rev",
28243
- "type": "integer"
28244
- },
28245
- "ops": {
28246
- "anyOf": [
28247
- {
28248
- "items": {
28249
- "discriminator": {
28250
- "mapping": {
28251
- "add_cut": "#/$defs/AddCutOp",
28252
- "relink": "#/$defs/RelinkOp",
28253
- "remove_cut": "#/$defs/RemoveCutOp",
28254
- "update_cut": "#/$defs/UpdateCutOp"
28255
- },
28256
- "propertyName": "op"
28257
- },
28258
- "oneOf": [
28259
- {
28260
- "$ref": "#/$defs/AddCutOp"
28261
- },
28262
- {
28263
- "$ref": "#/$defs/UpdateCutOp"
28264
- },
28265
- {
28266
- "$ref": "#/$defs/RemoveCutOp"
28267
- },
28268
- {
28269
- "$ref": "#/$defs/RelinkOp"
28270
- }
28271
- ]
28272
- },
28273
- "type": "array"
28274
- },
28275
- {
28276
- "type": "null"
28277
- }
28278
- ],
28279
- "default": null,
28280
- "title": "Ops"
28281
- },
28282
- "quote": {
28283
- "anyOf": [
28284
- {
28285
- "$ref": "#/$defs/Quote"
28286
- },
28287
- {
28288
- "type": "null"
28289
- }
28290
- ],
28291
- "default": null
28292
- },
28293
- "status": {
28294
- "enum": [
28295
- "thinking",
28296
- "pending",
28297
- "applied",
28298
- "dismissed",
28299
- "stale",
28300
- "superseded",
28301
- "failed"
28302
- ],
28303
- "title": "Status",
28304
- "type": "string"
28305
- },
28306
- "job_id": {
28307
- "title": "Job Id",
28308
- "type": "string"
28309
- },
28310
- "applied_rev": {
28311
- "anyOf": [
28312
- {
28313
- "type": "integer"
28314
- },
28315
- {
28316
- "type": "null"
28317
- }
28318
- ],
28319
- "default": null,
28320
- "title": "Applied Rev"
28321
- },
28322
- "created_at": {
28323
- "title": "Created At",
28324
- "type": "string"
28325
- },
28326
- "resolved_at": {
28327
- "anyOf": [
28328
- {
28329
- "type": "string"
28330
- },
28331
- {
28332
- "type": "null"
28333
- }
28334
- ],
28335
- "default": null,
28336
- "title": "Resolved At"
28337
- }
28338
- },
28339
- "required": [
28340
- "id",
28341
- "project_slug",
28342
- "source",
28343
- "request",
28344
- "base_rev",
28345
- "status",
28346
- "job_id",
28347
- "created_at"
28348
- ],
28349
- "title": "ProposalView",
28350
- "type": "object"
28351
- },
28764
+ "ProposalRequestView": {
28765
+ "additionalProperties": false,
28766
+ "properties": {
28767
+ "text": {
28768
+ "title": "Text",
28769
+ "type": "string"
28770
+ },
28771
+ "attachments": {
28772
+ "description": "asset_id \uBAA9\uB85D",
28773
+ "items": {
28774
+ "type": "string"
28775
+ },
28776
+ "title": "Attachments",
28777
+ "type": "array"
28778
+ }
28779
+ },
28780
+ "required": [
28781
+ "text"
28782
+ ],
28783
+ "title": "ProposalRequestView",
28784
+ "type": "object"
28785
+ },
28786
+ "ProposalView": {
28787
+ "additionalProperties": false,
28788
+ "properties": {
28789
+ "id": {
28790
+ "title": "Id",
28791
+ "type": "string"
28792
+ },
28793
+ "project_slug": {
28794
+ "title": "Project Slug",
28795
+ "type": "string"
28796
+ },
28797
+ "source": {
28798
+ "enum": [
28799
+ "chat_global",
28800
+ "chat_cut",
28801
+ "user_ai"
28802
+ ],
28803
+ "title": "Source",
28804
+ "type": "string"
28805
+ },
28806
+ "scope_cut_id": {
28807
+ "anyOf": [
28808
+ {
28809
+ "type": "string"
28810
+ },
28811
+ {
28812
+ "type": "null"
28813
+ }
28814
+ ],
28815
+ "default": null,
28816
+ "title": "Scope Cut Id"
28817
+ },
28818
+ "request": {
28819
+ "$ref": "#/$defs/ProposalRequestView"
28820
+ },
28821
+ "base_rev": {
28822
+ "title": "Base Rev",
28823
+ "type": "integer"
28824
+ },
28825
+ "ops": {
28826
+ "anyOf": [
28827
+ {
28828
+ "items": {
28829
+ "discriminator": {
28830
+ "mapping": {
28831
+ "add_cut": "#/$defs/AddCutOp",
28832
+ "relink": "#/$defs/RelinkOp",
28833
+ "remove_cut": "#/$defs/RemoveCutOp",
28834
+ "update_cut": "#/$defs/UpdateCutOp"
28835
+ },
28836
+ "propertyName": "op"
28837
+ },
28838
+ "oneOf": [
28839
+ {
28840
+ "$ref": "#/$defs/AddCutOp"
28841
+ },
28842
+ {
28843
+ "$ref": "#/$defs/UpdateCutOp"
28844
+ },
28845
+ {
28846
+ "$ref": "#/$defs/RemoveCutOp"
28847
+ },
28848
+ {
28849
+ "$ref": "#/$defs/RelinkOp"
28850
+ }
28851
+ ]
28852
+ },
28853
+ "type": "array"
28854
+ },
28855
+ {
28856
+ "type": "null"
28857
+ }
28858
+ ],
28859
+ "default": null,
28860
+ "title": "Ops"
28861
+ },
28862
+ "quote": {
28863
+ "anyOf": [
28864
+ {
28865
+ "$ref": "#/$defs/Quote"
28866
+ },
28867
+ {
28868
+ "type": "null"
28869
+ }
28870
+ ],
28871
+ "default": null
28872
+ },
28873
+ "status": {
28874
+ "enum": [
28875
+ "thinking",
28876
+ "pending",
28877
+ "applied",
28878
+ "dismissed",
28879
+ "stale",
28880
+ "superseded",
28881
+ "failed"
28882
+ ],
28883
+ "title": "Status",
28884
+ "type": "string"
28885
+ },
28886
+ "job_id": {
28887
+ "title": "Job Id",
28888
+ "type": "string"
28889
+ },
28890
+ "applied_rev": {
28891
+ "anyOf": [
28892
+ {
28893
+ "type": "integer"
28894
+ },
28895
+ {
28896
+ "type": "null"
28897
+ }
28898
+ ],
28899
+ "default": null,
28900
+ "title": "Applied Rev"
28901
+ },
28902
+ "created_at": {
28903
+ "title": "Created At",
28904
+ "type": "string"
28905
+ },
28906
+ "resolved_at": {
28907
+ "anyOf": [
28908
+ {
28909
+ "type": "string"
28910
+ },
28911
+ {
28912
+ "type": "null"
28913
+ }
28914
+ ],
28915
+ "default": null,
28916
+ "title": "Resolved At"
28917
+ }
28918
+ },
28919
+ "required": [
28920
+ "id",
28921
+ "project_slug",
28922
+ "source",
28923
+ "request",
28924
+ "base_rev",
28925
+ "status",
28926
+ "job_id",
28927
+ "created_at"
28928
+ ],
28929
+ "title": "ProposalView",
28930
+ "type": "object"
28931
+ },
28932
+ "Quote": {
28933
+ "additionalProperties": false,
28934
+ "properties": {
28935
+ "rows": {
28936
+ "items": {
28937
+ "$ref": "#/$defs/QuoteRow"
28938
+ },
28939
+ "title": "Rows",
28940
+ "type": "array"
28941
+ },
28942
+ "total_krw": {
28943
+ "minimum": 0,
28944
+ "title": "Total Krw",
28945
+ "type": "integer"
28946
+ },
28947
+ "rate_version": {
28948
+ "description": "pricing_config.version \u2014 make \uAC00 \uAC19\uC740 \uAC12\uC744 \uC694\uAD6C\uD55C\uB2E4",
28949
+ "minimum": 1,
28950
+ "title": "Rate Version",
28951
+ "type": "integer"
28952
+ },
28953
+ "mock": {
28954
+ "default": false,
28955
+ "title": "Mock",
28956
+ "type": "boolean"
28957
+ },
28958
+ "provisional": {
28959
+ "default": false,
28960
+ "description": "\uD589 \uC911 \uD558\uB098\uB77C\uB3C4 \uC784\uC2DC \uB2E8\uAC00\uBA74 True",
28961
+ "title": "Provisional",
28962
+ "type": "boolean"
28963
+ }
28964
+ },
28965
+ "required": [
28966
+ "total_krw",
28967
+ "rate_version"
28968
+ ],
28969
+ "title": "Quote",
28970
+ "type": "object"
28971
+ },
28972
+ "QuoteRow": {
28973
+ "additionalProperties": false,
28974
+ "properties": {
28975
+ "key": {
28976
+ "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
28977
+ "title": "Key",
28978
+ "type": "string"
28979
+ },
28980
+ "ref_type": {
28981
+ "description": "\uC6D0\uAC00\uD45C \uD0A4(credits/pricing.BASE_PRICES)",
28982
+ "title": "Ref Type",
28983
+ "type": "string"
28984
+ },
28985
+ "units": {
28986
+ "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
28987
+ "title": "Units",
28988
+ "type": "string"
28989
+ },
28990
+ "unit_kind": {
28991
+ "title": "Unit Kind",
28992
+ "type": "string"
28993
+ },
28994
+ "display_name": {
28995
+ "title": "Display Name",
28996
+ "type": "string"
28997
+ },
28998
+ "krw": {
28999
+ "minimum": 0,
29000
+ "title": "Krw",
29001
+ "type": "integer"
29002
+ },
29003
+ "provisional": {
29004
+ "default": false,
29005
+ "title": "Provisional",
29006
+ "type": "boolean"
29007
+ }
29008
+ },
29009
+ "required": [
29010
+ "key",
29011
+ "ref_type",
29012
+ "units",
29013
+ "unit_kind",
29014
+ "display_name",
29015
+ "krw"
29016
+ ],
29017
+ "title": "QuoteRow",
29018
+ "type": "object"
29019
+ },
29020
+ "RelinkOp": {
29021
+ "additionalProperties": false,
29022
+ "properties": {
29023
+ "op": {
29024
+ "const": "relink",
29025
+ "default": "relink",
29026
+ "title": "Op",
29027
+ "type": "string"
29028
+ },
29029
+ "cut_id": {
29030
+ "title": "Cut Id",
29031
+ "type": "string"
29032
+ },
29033
+ "after": {
29034
+ "anyOf": [
29035
+ {
29036
+ "type": "string"
29037
+ },
29038
+ {
29039
+ "type": "null"
29040
+ }
29041
+ ],
29042
+ "default": null,
29043
+ "description": "None = \uB9E8 \uC55E",
29044
+ "title": "After"
29045
+ }
29046
+ },
29047
+ "required": [
29048
+ "cut_id"
29049
+ ],
29050
+ "title": "RelinkOp",
29051
+ "type": "object"
29052
+ },
29053
+ "RemoveCutOp": {
29054
+ "additionalProperties": false,
29055
+ "properties": {
29056
+ "op": {
29057
+ "const": "remove_cut",
29058
+ "default": "remove_cut",
29059
+ "title": "Op",
29060
+ "type": "string"
29061
+ },
29062
+ "cut_id": {
29063
+ "title": "Cut Id",
29064
+ "type": "string"
29065
+ }
29066
+ },
29067
+ "required": [
29068
+ "cut_id"
29069
+ ],
29070
+ "title": "RemoveCutOp",
29071
+ "type": "object"
29072
+ },
29073
+ "Timing": {
29074
+ "additionalProperties": false,
29075
+ "properties": {
29076
+ "dialogue": {
29077
+ "items": {
29078
+ "$ref": "#/$defs/DialogueTiming"
29079
+ },
29080
+ "title": "Dialogue",
29081
+ "type": "array"
29082
+ },
29083
+ "audible_ranges": {
29084
+ "items": {
29085
+ "maxItems": 2,
29086
+ "minItems": 2,
29087
+ "prefixItems": [
29088
+ {
29089
+ "type": "integer"
29090
+ },
29091
+ {
29092
+ "type": "integer"
29093
+ }
29094
+ ],
29095
+ "type": "array"
29096
+ },
29097
+ "title": "Audible Ranges",
29098
+ "type": "array"
29099
+ },
29100
+ "tts_reused_from": {
29101
+ "anyOf": [
29102
+ {
29103
+ "type": "integer"
29104
+ },
29105
+ {
29106
+ "type": "null"
29107
+ }
29108
+ ],
29109
+ "default": null,
29110
+ "title": "Tts Reused From"
29111
+ }
29112
+ },
29113
+ "title": "Timing",
29114
+ "type": "object"
29115
+ },
29116
+ "UpdateCutOp": {
29117
+ "additionalProperties": false,
29118
+ "properties": {
29119
+ "op": {
29120
+ "const": "update_cut",
29121
+ "default": "update_cut",
29122
+ "title": "Op",
29123
+ "type": "string"
29124
+ },
29125
+ "cut_id": {
29126
+ "title": "Cut Id",
29127
+ "type": "string"
29128
+ },
29129
+ "fields": {
29130
+ "additionalProperties": {
29131
+ "$ref": "#/$defs/FieldChange"
29132
+ },
29133
+ "description": "json pointer \u2192 {before, after}",
29134
+ "title": "Fields",
29135
+ "type": "object"
29136
+ }
29137
+ },
29138
+ "required": [
29139
+ "cut_id",
29140
+ "fields"
29141
+ ],
29142
+ "title": "UpdateCutOp",
29143
+ "type": "object"
29144
+ },
29145
+ "YoutubeAssetSource": {
29146
+ "additionalProperties": false,
29147
+ "properties": {
29148
+ "kind": {
29149
+ "const": "asset",
29150
+ "default": "asset",
29151
+ "title": "Kind",
29152
+ "type": "string"
29153
+ },
29154
+ "asset_id": {
29155
+ "description": "BYO: \uC62C\uB9B0 \uC6D0\uBCF8 \uC601\uC0C1 \u2014 \uB0B4\uB824\uBC1B\uAE30 \uD589 0\uC6D0",
29156
+ "minLength": 1,
29157
+ "title": "Asset Id",
29158
+ "type": "string"
29159
+ },
29160
+ "start_s": {
29161
+ "anyOf": [
29162
+ {
29163
+ "minimum": 0,
29164
+ "type": "number"
29165
+ },
29166
+ {
29167
+ "type": "null"
29168
+ }
29169
+ ],
29170
+ "default": null,
29171
+ "title": "Start S"
29172
+ },
29173
+ "end_s": {
29174
+ "anyOf": [
29175
+ {
29176
+ "exclusiveMinimum": 0,
29177
+ "type": "number"
29178
+ },
29179
+ {
29180
+ "type": "null"
29181
+ }
29182
+ ],
29183
+ "default": null,
29184
+ "title": "End S"
29185
+ }
29186
+ },
29187
+ "required": [
29188
+ "asset_id"
29189
+ ],
29190
+ "title": "YoutubeAssetSource",
29191
+ "type": "object"
29192
+ },
29193
+ "YoutubeClipSpec": {
29194
+ "additionalProperties": false,
29195
+ "properties": {
29196
+ "dialogue": {
29197
+ "items": {
29198
+ "$ref": "#/$defs/DialogueLine"
29199
+ },
29200
+ "title": "Dialogue",
29201
+ "type": "array"
29202
+ },
29203
+ "narration_asset_id": {
29204
+ "anyOf": [
29205
+ {
29206
+ "minLength": 1,
29207
+ "type": "string"
29208
+ },
29209
+ {
29210
+ "type": "null"
29211
+ }
29212
+ ],
29213
+ "default": null,
29214
+ "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",
29215
+ "title": "Narration Asset Id"
29216
+ },
29217
+ "subtitles": {
29218
+ "default": false,
29219
+ "title": "Subtitles",
29220
+ "type": "boolean"
29221
+ },
29222
+ "host": {
29223
+ "anyOf": [
29224
+ {
29225
+ "type": "string"
29226
+ },
29227
+ {
29228
+ "type": "null"
29229
+ }
29230
+ ],
29231
+ "default": null,
29232
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
29233
+ "title": "Host"
29234
+ },
29235
+ "voice_id": {
29236
+ "anyOf": [
29237
+ {
29238
+ "minLength": 1,
29239
+ "type": "string"
29240
+ },
29241
+ {
29242
+ "type": "null"
29243
+ }
29244
+ ],
29245
+ "default": null,
29246
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
29247
+ "title": "Voice Id"
29248
+ },
29249
+ "pip": {
29250
+ "anyOf": [
29251
+ {
29252
+ "$ref": "#/$defs/PipSpec"
29253
+ },
29254
+ {
29255
+ "type": "null"
29256
+ }
29257
+ ],
29258
+ "default": null,
29259
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
29260
+ },
29261
+ "image_asset_id": {
29262
+ "anyOf": [
29263
+ {
29264
+ "minLength": 1,
29265
+ "type": "string"
29266
+ },
29267
+ {
29268
+ "type": "null"
29269
+ }
29270
+ ],
29271
+ "default": null,
29272
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
29273
+ "title": "Image Asset Id"
29274
+ },
29275
+ "duration_s": {
29276
+ "anyOf": [
29277
+ {
29278
+ "exclusiveMinimum": 0,
29279
+ "maximum": 600,
29280
+ "type": "number"
29281
+ },
29282
+ {
29283
+ "type": "null"
29284
+ }
29285
+ ],
29286
+ "default": null,
29287
+ "title": "Duration S"
29288
+ },
29289
+ "mode": {
29290
+ "const": "youtube_clip",
29291
+ "default": "youtube_clip",
29292
+ "title": "Mode",
29293
+ "type": "string"
29294
+ },
29295
+ "source": {
29296
+ "discriminator": {
29297
+ "mapping": {
29298
+ "asset": "#/$defs/YoutubeAssetSource",
29299
+ "url": "#/$defs/YoutubeUrlSource"
29300
+ },
29301
+ "propertyName": "kind"
29302
+ },
29303
+ "oneOf": [
29304
+ {
29305
+ "$ref": "#/$defs/YoutubeUrlSource"
29306
+ },
29307
+ {
29308
+ "$ref": "#/$defs/YoutubeAssetSource"
29309
+ }
29310
+ ],
29311
+ "title": "Source"
29312
+ }
29313
+ },
29314
+ "required": [
29315
+ "source"
29316
+ ],
29317
+ "title": "YoutubeClipSpec",
29318
+ "type": "object"
29319
+ },
29320
+ "YoutubeUrlSource": {
29321
+ "additionalProperties": false,
29322
+ "properties": {
29323
+ "kind": {
29324
+ "const": "url",
29325
+ "default": "url",
29326
+ "title": "Kind",
29327
+ "type": "string"
29328
+ },
29329
+ "url": {
29330
+ "description": "https://youtube.com|youtu.be \uACF5\uAC1C \uC8FC\uC18C\uB9CC",
29331
+ "minLength": 1,
29332
+ "title": "Url",
29333
+ "type": "string"
29334
+ },
29335
+ "start_s": {
29336
+ "minimum": 0,
29337
+ "title": "Start S",
29338
+ "type": "number"
29339
+ },
29340
+ "end_s": {
29341
+ "exclusiveMinimum": 0,
29342
+ "title": "End S",
29343
+ "type": "number"
29344
+ }
29345
+ },
29346
+ "required": [
29347
+ "url",
29348
+ "start_s",
29349
+ "end_s"
29350
+ ],
29351
+ "title": "YoutubeUrlSource",
29352
+ "type": "object"
29353
+ }
29354
+ },
29355
+ "additionalProperties": false,
29356
+ "properties": {
29357
+ "rev": {
29358
+ "title": "Rev",
29359
+ "type": "integer"
29360
+ },
29361
+ "order": {
29362
+ "description": "position \uC774 \uC788\uB294 \uCEF7\uC758 id, \uC21C\uC11C\uB300\uB85C",
29363
+ "items": {
29364
+ "type": "string"
29365
+ },
29366
+ "title": "Order",
29367
+ "type": "array"
29368
+ },
29369
+ "cuts": {
29370
+ "items": {
29371
+ "$ref": "#/$defs/CutView"
29372
+ },
29373
+ "title": "Cuts",
29374
+ "type": "array"
29375
+ },
29376
+ "pending_proposal": {
29377
+ "anyOf": [
29378
+ {
29379
+ "$ref": "#/$defs/ProposalView"
29380
+ },
29381
+ {
29382
+ "type": "null"
29383
+ }
29384
+ ],
29385
+ "default": null
29386
+ },
29387
+ "usage_bytes": {
29388
+ "default": 0,
29389
+ "title": "Usage Bytes",
29390
+ "type": "integer"
29391
+ },
29392
+ "next_calls": {
29393
+ "items": {
29394
+ "type": "string"
29395
+ },
29396
+ "title": "Next Calls",
29397
+ "type": "array"
29398
+ }
29399
+ },
29400
+ "required": [
29401
+ "rev"
29402
+ ],
29403
+ "title": "StoryboardView",
29404
+ "type": "object"
29405
+ },
29406
+ "annotations": {
29407
+ "readOnlyHint": true,
29408
+ "destructiveHint": false,
29409
+ "idempotentHint": true,
29410
+ "openWorldHint": false
29411
+ }
29412
+ },
29413
+ {
29414
+ "name": "democut_list_cuts",
29415
+ "description": "\uD504\uB85C\uC81D\uD2B8\uC758 \uCEF7 \uBAA9\uB85D(\uD30C\uC0DD \uC0C1\uD0DC \uD3EC\uD568).",
29416
+ "inputSchema": {
29417
+ "type": "object",
29418
+ "properties": {
29419
+ "slug": {
29420
+ "type": "string",
29421
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
29422
+ }
29423
+ },
29424
+ "required": [
29425
+ "slug"
29426
+ ],
29427
+ "additionalProperties": false
29428
+ },
29429
+ "outputSchema": {
29430
+ "$defs": {
29431
+ "AiVideoSpec": {
29432
+ "additionalProperties": false,
29433
+ "properties": {
29434
+ "dialogue": {
29435
+ "items": {
29436
+ "$ref": "#/$defs/DialogueLine"
29437
+ },
29438
+ "title": "Dialogue",
29439
+ "type": "array"
29440
+ },
29441
+ "narration_asset_id": {
29442
+ "anyOf": [
29443
+ {
29444
+ "minLength": 1,
29445
+ "type": "string"
29446
+ },
29447
+ {
29448
+ "type": "null"
29449
+ }
29450
+ ],
29451
+ "default": null,
29452
+ "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",
29453
+ "title": "Narration Asset Id"
29454
+ },
29455
+ "subtitles": {
29456
+ "default": false,
29457
+ "title": "Subtitles",
29458
+ "type": "boolean"
29459
+ },
29460
+ "host": {
29461
+ "anyOf": [
29462
+ {
29463
+ "type": "string"
29464
+ },
29465
+ {
29466
+ "type": "null"
29467
+ }
29468
+ ],
29469
+ "default": null,
29470
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
29471
+ "title": "Host"
29472
+ },
29473
+ "voice_id": {
29474
+ "anyOf": [
29475
+ {
29476
+ "minLength": 1,
29477
+ "type": "string"
29478
+ },
29479
+ {
29480
+ "type": "null"
29481
+ }
29482
+ ],
29483
+ "default": null,
29484
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
29485
+ "title": "Voice Id"
29486
+ },
29487
+ "pip": {
29488
+ "anyOf": [
29489
+ {
29490
+ "$ref": "#/$defs/PipSpec"
29491
+ },
29492
+ {
29493
+ "type": "null"
29494
+ }
29495
+ ],
29496
+ "default": null,
29497
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
29498
+ },
29499
+ "image_asset_id": {
29500
+ "anyOf": [
29501
+ {
29502
+ "minLength": 1,
29503
+ "type": "string"
29504
+ },
29505
+ {
29506
+ "type": "null"
29507
+ }
29508
+ ],
29509
+ "default": null,
29510
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
29511
+ "title": "Image Asset Id"
29512
+ },
29513
+ "duration_s": {
29514
+ "default": 5,
29515
+ "maximum": 15,
29516
+ "minimum": 4,
29517
+ "title": "Duration S",
29518
+ "type": "number"
29519
+ },
29520
+ "mode": {
29521
+ "const": "ai_video",
29522
+ "default": "ai_video",
29523
+ "title": "Mode",
29524
+ "type": "string"
29525
+ },
29526
+ "image_prompt": {
29527
+ "maxLength": 4e3,
29528
+ "minLength": 1,
29529
+ "title": "Image Prompt",
29530
+ "type": "string"
29531
+ },
29532
+ "provider": {
29533
+ "anyOf": [
29534
+ {
29535
+ "maxLength": 32,
29536
+ "minLength": 1,
29537
+ "type": "string"
29538
+ },
29539
+ {
29540
+ "type": "null"
29541
+ }
29542
+ ],
29543
+ "default": null,
29544
+ "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",
29545
+ "title": "Provider"
29546
+ },
29547
+ "seed": {
29548
+ "anyOf": [
29549
+ {
29550
+ "minimum": 0,
29551
+ "type": "integer"
29552
+ },
29553
+ {
29554
+ "type": "null"
29555
+ }
29556
+ ],
29557
+ "default": null,
29558
+ "title": "Seed"
29559
+ },
29560
+ "image": {
29561
+ "anyOf": [
29562
+ {
29563
+ "discriminator": {
29564
+ "mapping": {
29565
+ "asset": "#/$defs/AssetImageRef",
29566
+ "from_cut": "#/$defs/FromCutImageRef",
29567
+ "from_version": "#/$defs/FromVersionImageRef"
29568
+ },
29569
+ "propertyName": "kind"
29570
+ },
29571
+ "oneOf": [
29572
+ {
29573
+ "$ref": "#/$defs/AssetImageRef"
29574
+ },
29575
+ {
29576
+ "$ref": "#/$defs/FromCutImageRef"
29577
+ },
29578
+ {
29579
+ "$ref": "#/$defs/FromVersionImageRef"
29580
+ }
29581
+ ]
29582
+ },
29583
+ {
29584
+ "type": "null"
29585
+ }
29586
+ ],
29587
+ "default": null,
29588
+ "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",
29589
+ "title": "Image"
29590
+ },
29591
+ "end_image": {
29592
+ "anyOf": [
29593
+ {
29594
+ "discriminator": {
29595
+ "mapping": {
29596
+ "asset": "#/$defs/AssetImageRef",
29597
+ "from_cut": "#/$defs/FromCutImageRef",
29598
+ "from_version": "#/$defs/FromVersionImageRef"
29599
+ },
29600
+ "propertyName": "kind"
29601
+ },
29602
+ "oneOf": [
29603
+ {
29604
+ "$ref": "#/$defs/AssetImageRef"
29605
+ },
29606
+ {
29607
+ "$ref": "#/$defs/FromCutImageRef"
29608
+ },
29609
+ {
29610
+ "$ref": "#/$defs/FromVersionImageRef"
29611
+ }
29612
+ ]
29613
+ },
29614
+ {
29615
+ "type": "null"
29616
+ }
29617
+ ],
29618
+ "default": null,
29619
+ "title": "End Image"
29620
+ }
29621
+ },
29622
+ "required": [
29623
+ "image_prompt"
29624
+ ],
29625
+ "title": "AiVideoSpec",
29626
+ "type": "object"
29627
+ },
29628
+ "AssetImageRef": {
29629
+ "additionalProperties": false,
29630
+ "properties": {
29631
+ "kind": {
29632
+ "const": "asset",
29633
+ "default": "asset",
29634
+ "title": "Kind",
29635
+ "type": "string"
29636
+ },
29637
+ "asset_id": {
29638
+ "minLength": 1,
29639
+ "title": "Asset Id",
29640
+ "type": "string"
29641
+ }
29642
+ },
29643
+ "required": [
29644
+ "asset_id"
29645
+ ],
29646
+ "title": "AssetImageRef",
29647
+ "type": "object"
29648
+ },
29649
+ "CanvasPos": {
29650
+ "additionalProperties": false,
29651
+ "properties": {
29652
+ "x": {
29653
+ "default": 0,
29654
+ "title": "X",
29655
+ "type": "number"
29656
+ },
29657
+ "y": {
29658
+ "default": 0,
29659
+ "title": "Y",
29660
+ "type": "number"
29661
+ }
29662
+ },
29663
+ "title": "CanvasPos",
29664
+ "type": "object"
29665
+ },
29666
+ "CutEdit": {
29667
+ "additionalProperties": false,
29668
+ "properties": {
29669
+ "trim_in_ms": {
29670
+ "default": 0,
29671
+ "minimum": 0,
29672
+ "title": "Trim In Ms",
29673
+ "type": "integer"
29674
+ },
29675
+ "trim_out_ms": {
29676
+ "anyOf": [
29677
+ {
29678
+ "minimum": 1,
29679
+ "type": "integer"
29680
+ },
29681
+ {
29682
+ "type": "null"
29683
+ }
29684
+ ],
29685
+ "default": null,
29686
+ "title": "Trim Out Ms"
29687
+ },
29688
+ "silence_removal": {
29689
+ "default": false,
29690
+ "title": "Silence Removal",
29691
+ "type": "boolean"
29692
+ },
29693
+ "silence_threshold_ms": {
29694
+ "default": 800,
29695
+ "maximum": 5e3,
29696
+ "minimum": 100,
29697
+ "title": "Silence Threshold Ms",
29698
+ "type": "integer"
29699
+ }
29700
+ },
29701
+ "title": "CutEdit",
29702
+ "type": "object"
29703
+ },
29704
+ "CutImageView": {
29705
+ "additionalProperties": false,
29706
+ "properties": {
29707
+ "id": {
29708
+ "title": "Id",
29709
+ "type": "string"
29710
+ },
29711
+ "seq": {
29712
+ "title": "Seq",
29713
+ "type": "integer"
29714
+ },
29715
+ "asset_id": {
29716
+ "title": "Asset Id",
29717
+ "type": "string"
29718
+ },
29719
+ "source": {
29720
+ "enum": [
29721
+ "upload",
29722
+ "image_gen",
29723
+ "from_video"
29724
+ ],
29725
+ "title": "Source",
29726
+ "type": "string"
29727
+ },
29728
+ "from_version": {
29729
+ "anyOf": [
29730
+ {
29731
+ "type": "integer"
29732
+ },
29733
+ {
29734
+ "type": "null"
29735
+ }
29736
+ ],
29737
+ "default": null,
29738
+ "title": "From Version"
29739
+ },
29740
+ "url": {
29741
+ "anyOf": [
29742
+ {
29743
+ "type": "string"
29744
+ },
29745
+ {
29746
+ "type": "null"
29747
+ }
29748
+ ],
29749
+ "default": null,
29750
+ "description": "\uC11C\uBA85 URL",
29751
+ "title": "Url"
29752
+ }
29753
+ },
29754
+ "required": [
29755
+ "id",
29756
+ "seq",
29757
+ "asset_id",
29758
+ "source"
29759
+ ],
29760
+ "title": "CutImageView",
29761
+ "type": "object"
29762
+ },
29763
+ "CutVersionView": {
29764
+ "additionalProperties": false,
29765
+ "properties": {
29766
+ "version": {
29767
+ "minimum": 1,
29768
+ "title": "Version",
29769
+ "type": "integer"
29770
+ },
29771
+ "origin": {
29772
+ "enum": [
29773
+ "render",
29774
+ "import"
29775
+ ],
29776
+ "title": "Origin",
29777
+ "type": "string"
29778
+ },
29779
+ "spec": {
29780
+ "additionalProperties": true,
29781
+ "description": "\uBC15\uC81C\uB41C spec(\uD574\uC11D\uB41C asset_id \uD3EC\uD568). origin=render \uBA74 \uC2A4\uD0A4\uB9C8\uB294 CutSpec, origin=import \uBA74 **\uBE48 \uAC1D\uCCB4**\uB2E4 \u2014 \uADF8 \uC601\uC0C1\uC740 \uC6B0\uB9AC\uAC00 \uB9CC\uB4E4\uC9C0 \uC54A\uC558\uC73C\uBBC0\uB85C \uB9CC\uB4E0 \uBC29\uBC95\uC774 \uC5C6\uB2E4. \uBC29\uC2DD\uC744 \uC54C\uC544\uC57C \uD558\uBA74 origin \uC744 \uBCF4\uB77C(mode \uC5D0 import \uAC12\uC740 \uC5C6\uB2E4).",
29782
+ "title": "Spec",
29783
+ "type": "object"
29784
+ },
29785
+ "based_on": {
29786
+ "anyOf": [
29787
+ {
29788
+ "type": "integer"
29789
+ },
29790
+ {
29791
+ "type": "null"
29792
+ }
29793
+ ],
29794
+ "default": null,
29795
+ "title": "Based On"
29796
+ },
29797
+ "note": {
29798
+ "anyOf": [
29799
+ {
29800
+ "type": "string"
29801
+ },
29802
+ {
29803
+ "type": "null"
29804
+ }
29805
+ ],
29806
+ "default": null,
29807
+ "title": "Note"
29808
+ },
29809
+ "job_id": {
29810
+ "title": "Job Id",
29811
+ "type": "string"
29812
+ },
29813
+ "duration_ms": {
29814
+ "minimum": 0,
29815
+ "title": "Duration Ms",
29816
+ "type": "integer"
29817
+ },
29818
+ "width": {
29819
+ "title": "Width",
29820
+ "type": "integer"
29821
+ },
29822
+ "height": {
29823
+ "title": "Height",
29824
+ "type": "integer"
29825
+ },
29826
+ "fps": {
29827
+ "title": "Fps",
29828
+ "type": "number"
29829
+ },
29830
+ "timing": {
29831
+ "$ref": "#/$defs/Timing"
29832
+ },
29833
+ "quote": {
29834
+ "$ref": "#/$defs/Quote"
29835
+ },
29836
+ "mock": {
29837
+ "default": false,
29838
+ "title": "Mock",
29839
+ "type": "boolean"
29840
+ },
29841
+ "created_by": {
29842
+ "title": "Created By",
29843
+ "type": "string"
29844
+ },
29845
+ "created_at": {
29846
+ "title": "Created At",
29847
+ "type": "string"
29848
+ },
29849
+ "download": {
29850
+ "$ref": "#/$defs/DownloadUrls"
29851
+ }
29852
+ },
29853
+ "required": [
29854
+ "version",
29855
+ "origin",
29856
+ "spec",
29857
+ "job_id",
29858
+ "duration_ms",
29859
+ "width",
29860
+ "height",
29861
+ "fps",
29862
+ "timing",
29863
+ "quote",
29864
+ "created_by",
29865
+ "created_at",
29866
+ "download"
29867
+ ],
29868
+ "title": "CutVersionView",
29869
+ "type": "object"
29870
+ },
29871
+ "CutView": {
29872
+ "additionalProperties": false,
29873
+ "properties": {
29874
+ "id": {
29875
+ "title": "Id",
29876
+ "type": "string"
29877
+ },
29878
+ "project_slug": {
29879
+ "title": "Project Slug",
29880
+ "type": "string"
29881
+ },
29882
+ "mode": {
29883
+ "enum": [
29884
+ "motion_graphic",
29885
+ "ai_video",
29886
+ "youtube_clip"
29887
+ ],
29888
+ "title": "Mode",
29889
+ "type": "string"
29890
+ },
29891
+ "title": {
29892
+ "default": "",
29893
+ "title": "Title",
29894
+ "type": "string"
29895
+ },
29896
+ "position": {
29897
+ "anyOf": [
29898
+ {
29899
+ "type": "number"
29900
+ },
29901
+ {
29902
+ "type": "null"
29903
+ }
29904
+ ],
29905
+ "default": null,
29906
+ "description": "\uC5F0\uACB0 \uC21C\uC11C. None = \uCE94\uBC84\uC2A4\uC5D0\uC11C \uB5BC\uC5B4 \uB454 \uCEF7",
29907
+ "title": "Position"
29908
+ },
29909
+ "canvas": {
29910
+ "$ref": "#/$defs/CanvasPos"
29911
+ },
29912
+ "draft_spec": {
29913
+ "discriminator": {
29914
+ "mapping": {
29915
+ "ai_video": "#/$defs/AiVideoSpec",
29916
+ "motion_graphic": "#/$defs/MotionGraphicSpec",
29917
+ "youtube_clip": "#/$defs/YoutubeClipSpec"
29918
+ },
29919
+ "propertyName": "mode"
29920
+ },
29921
+ "oneOf": [
29922
+ {
29923
+ "$ref": "#/$defs/MotionGraphicSpec"
29924
+ },
29925
+ {
29926
+ "$ref": "#/$defs/AiVideoSpec"
29927
+ },
29928
+ {
29929
+ "$ref": "#/$defs/YoutubeClipSpec"
29930
+ }
29931
+ ],
29932
+ "title": "Draft Spec"
29933
+ },
29934
+ "edit": {
29935
+ "$ref": "#/$defs/CutEdit"
29936
+ },
29937
+ "current_version": {
29938
+ "anyOf": [
29939
+ {
29940
+ "type": "integer"
29941
+ },
29942
+ {
29943
+ "type": "null"
29944
+ }
29945
+ ],
29946
+ "default": null,
29947
+ "description": "None = \uACC4\uD68D \uCEF7(R11)",
29948
+ "title": "Current Version"
29949
+ },
29950
+ "current_image_id": {
29951
+ "anyOf": [
29952
+ {
29953
+ "type": "string"
29954
+ },
29955
+ {
29956
+ "type": "null"
29957
+ }
29958
+ ],
29959
+ "default": null,
29960
+ "title": "Current Image Id"
29961
+ },
29962
+ "images": {
29963
+ "items": {
29964
+ "$ref": "#/$defs/CutImageView"
29965
+ },
29966
+ "title": "Images",
29967
+ "type": "array"
29968
+ },
29969
+ "versions": {
29970
+ "description": "\uC0C1\uC138 \uC870\uD68C\uC5D0\uC11C\uB9CC \uCC44\uC6B4\uB2E4",
29971
+ "items": {
29972
+ "$ref": "#/$defs/CutVersionView"
29973
+ },
29974
+ "title": "Versions",
29975
+ "type": "array"
29976
+ },
29977
+ "state": {
29978
+ "enum": [
29979
+ "planned",
29980
+ "image_generating",
29981
+ "rendering",
29982
+ "ready",
29983
+ "dirty",
29984
+ "failed"
29985
+ ],
29986
+ "title": "State",
29987
+ "type": "string"
29988
+ },
29989
+ "dirty_fields": {
29990
+ "items": {
29991
+ "type": "string"
29992
+ },
29993
+ "title": "Dirty Fields",
29994
+ "type": "array"
29995
+ },
29996
+ "estimated_cost_krw": {
29997
+ "anyOf": [
29998
+ {
29999
+ "type": "integer"
30000
+ },
30001
+ {
30002
+ "type": "null"
30003
+ }
30004
+ ],
30005
+ "default": null,
30006
+ "title": "Estimated Cost Krw"
30007
+ },
30008
+ "rows": {
30009
+ "items": {
30010
+ "$ref": "#/$defs/QuoteRow"
30011
+ },
30012
+ "title": "Rows",
30013
+ "type": "array"
30014
+ },
30015
+ "blocked_reason": {
30016
+ "anyOf": [
30017
+ {
30018
+ "type": "string"
30019
+ },
30020
+ {
30021
+ "type": "null"
30022
+ }
30023
+ ],
30024
+ "default": null,
30025
+ "title": "Blocked Reason"
30026
+ },
30027
+ "edit_adjusted": {
30028
+ "default": false,
30029
+ "title": "Edit Adjusted",
30030
+ "type": "boolean"
30031
+ },
30032
+ "active_job_id": {
30033
+ "anyOf": [
30034
+ {
30035
+ "type": "string"
30036
+ },
30037
+ {
30038
+ "type": "null"
30039
+ }
30040
+ ],
30041
+ "default": null,
30042
+ "title": "Active Job Id"
30043
+ },
30044
+ "next_calls": {
30045
+ "items": {
30046
+ "type": "string"
30047
+ },
30048
+ "title": "Next Calls",
30049
+ "type": "array"
30050
+ },
30051
+ "created_at": {
30052
+ "title": "Created At",
30053
+ "type": "string"
30054
+ },
30055
+ "updated_at": {
30056
+ "title": "Updated At",
30057
+ "type": "string"
30058
+ }
30059
+ },
30060
+ "required": [
30061
+ "id",
30062
+ "project_slug",
30063
+ "mode",
30064
+ "draft_spec",
30065
+ "state",
30066
+ "created_at",
30067
+ "updated_at"
30068
+ ],
30069
+ "title": "CutView",
30070
+ "type": "object"
30071
+ },
30072
+ "DialogueLine": {
30073
+ "additionalProperties": false,
30074
+ "properties": {
30075
+ "id": {
30076
+ "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
30077
+ "pattern": "^ln_[a-z0-9]{6}$",
30078
+ "title": "Id",
30079
+ "type": "string",
30080
+ "x-diff": "ignore"
30081
+ },
30082
+ "text": {
30083
+ "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)",
30084
+ "maxLength": 2e3,
30085
+ "minLength": 1,
30086
+ "title": "Text",
30087
+ "type": "string"
30088
+ },
30089
+ "subtitle_text": {
30090
+ "anyOf": [
30091
+ {
30092
+ "maxLength": 2e3,
30093
+ "type": "string"
30094
+ },
30095
+ {
30096
+ "type": "null"
30097
+ }
30098
+ ],
30099
+ "default": null,
30100
+ "description": "\uC790\uB9C9 \uD45C\uAE30(\uC6D0\uBB38 \uD45C\uAE30). \uC5C6\uC73C\uBA74 text",
30101
+ "title": "Subtitle Text"
30102
+ },
30103
+ "audio_asset_id": {
30104
+ "anyOf": [
30105
+ {
30106
+ "minLength": 1,
30107
+ "type": "string"
30108
+ },
30109
+ {
30110
+ "type": "null"
30111
+ }
30112
+ ],
30113
+ "default": null,
30114
+ "description": "BYO: \uC774 \uC904\uC758 \uB098\uB808\uC774\uC158 \uC624\uB514\uC624 \uC790\uC0B0 \u2014 TTS \uD589 0\uC6D0, \uC815\uB82C \uD589\uB9CC",
30115
+ "title": "Audio Asset Id"
30116
+ }
30117
+ },
30118
+ "required": [
30119
+ "id",
30120
+ "text"
30121
+ ],
30122
+ "title": "DialogueLine",
30123
+ "type": "object"
30124
+ },
30125
+ "DialogueTiming": {
30126
+ "additionalProperties": false,
30127
+ "properties": {
30128
+ "id": {
30129
+ "title": "Id",
30130
+ "type": "string"
30131
+ },
30132
+ "start_ms": {
30133
+ "minimum": 0,
30134
+ "title": "Start Ms",
30135
+ "type": "integer"
30136
+ },
30137
+ "end_ms": {
30138
+ "minimum": 0,
30139
+ "title": "End Ms",
30140
+ "type": "integer"
30141
+ }
30142
+ },
30143
+ "required": [
30144
+ "id",
30145
+ "start_ms",
30146
+ "end_ms"
30147
+ ],
30148
+ "title": "DialogueTiming",
30149
+ "type": "object"
30150
+ },
30151
+ "DownloadUrls": {
30152
+ "additionalProperties": false,
30153
+ "description": "\uBC84\uC804\uC758 \uC5ED\uD560\uBCC4 \uC0B0\uCD9C\uBB3C \uC11C\uBA85 URL. \uC5C6\uB294 \uC5ED\uD560\uC740 ``None``.\n\n``timing`` \uC740 **\uD56D\uC0C1 None** \uC774\uB2E4 \u2014 \uC790\uC0B0\uC774 \uC544\uB2C8\uB77C \uD589 \uC548\uC758 JSON \uC774\uB77C \uC11C\uBA85\uD560 blob \uC774 \uC5C6\uB2E4. \uC2E4\uC81C \uAC12\uC740 \uAC19\uC740 \uC751\uB2F5\uC758\n``CutVersionView.timing`` \uC5D0 \uC778\uB77C\uC778\uC73C\uB85C \uC2E4\uB9B0\uB2E4. \uD544\uB4DC\uB97C \uC9C0\uC6B0\uC9C0 \uC54A\uB294 \uAC83\uC740 \uC5ED\uD560 \uD45C\uB97C \uD55C\uC790\uB9AC\uC5D0 \uBCF4\uC774\uAC8C \uB450\uAE30 \uC704\uD568\uC774\uB2E4.",
30154
+ "properties": {
30155
+ "video": {
30156
+ "anyOf": [
30157
+ {
30158
+ "type": "string"
30159
+ },
30160
+ {
30161
+ "type": "null"
30162
+ }
30163
+ ],
30164
+ "default": null,
30165
+ "title": "Video"
30166
+ },
30167
+ "audio": {
30168
+ "anyOf": [
30169
+ {
30170
+ "type": "string"
30171
+ },
30172
+ {
30173
+ "type": "null"
30174
+ }
30175
+ ],
30176
+ "default": null,
30177
+ "title": "Audio"
30178
+ },
30179
+ "subtitle": {
30180
+ "anyOf": [
30181
+ {
30182
+ "type": "string"
30183
+ },
30184
+ {
30185
+ "type": "null"
30186
+ }
30187
+ ],
30188
+ "default": null,
30189
+ "title": "Subtitle"
30190
+ },
30191
+ "still": {
30192
+ "anyOf": [
30193
+ {
30194
+ "type": "string"
30195
+ },
30196
+ {
30197
+ "type": "null"
30198
+ }
30199
+ ],
30200
+ "default": null,
30201
+ "title": "Still"
30202
+ },
30203
+ "timing": {
30204
+ "anyOf": [
30205
+ {
30206
+ "type": "string"
30207
+ },
30208
+ {
30209
+ "type": "null"
30210
+ }
30211
+ ],
30212
+ "default": null,
30213
+ "title": "Timing"
30214
+ }
30215
+ },
30216
+ "title": "DownloadUrls",
30217
+ "type": "object"
30218
+ },
30219
+ "FromCutImageRef": {
30220
+ "additionalProperties": false,
30221
+ "properties": {
30222
+ "kind": {
30223
+ "const": "from_cut",
30224
+ "default": "from_cut",
30225
+ "title": "Kind",
30226
+ "type": "string"
30227
+ },
30228
+ "from_cut": {
30229
+ "description": "\uB2E4\uB978 \uCEF7\uC758 \uB300\uD45C \uBC84\uC804 \uD504\uB808\uC784(\uC5F0\uC18D\uC131 \uB3C4\uC6B0\uBBF8)",
30230
+ "minLength": 1,
30231
+ "title": "From Cut",
30232
+ "type": "string"
30233
+ },
30234
+ "frame": {
30235
+ "default": "last",
30236
+ "enum": [
30237
+ "first",
30238
+ "last"
30239
+ ],
30240
+ "title": "Frame",
30241
+ "type": "string"
30242
+ }
30243
+ },
30244
+ "required": [
30245
+ "from_cut"
30246
+ ],
30247
+ "title": "FromCutImageRef",
30248
+ "type": "object"
30249
+ },
30250
+ "FromVersionImageRef": {
30251
+ "additionalProperties": false,
30252
+ "properties": {
30253
+ "kind": {
30254
+ "const": "from_version",
30255
+ "default": "from_version",
30256
+ "title": "Kind",
30257
+ "type": "string"
30258
+ },
30259
+ "from_version": {
30260
+ "description": "\uC774 \uCEF7\uC758 \uD2B9\uC815 \uBC84\uC804 \uD504\uB808\uC784",
30261
+ "minimum": 1,
30262
+ "title": "From Version",
30263
+ "type": "integer"
30264
+ },
30265
+ "frame": {
30266
+ "default": "last",
30267
+ "enum": [
30268
+ "first",
30269
+ "last"
30270
+ ],
30271
+ "title": "Frame",
30272
+ "type": "string"
30273
+ }
30274
+ },
30275
+ "required": [
30276
+ "from_version"
30277
+ ],
30278
+ "title": "FromVersionImageRef",
30279
+ "type": "object"
30280
+ },
30281
+ "MotionGraphicSpec": {
30282
+ "additionalProperties": false,
30283
+ "properties": {
30284
+ "dialogue": {
30285
+ "items": {
30286
+ "$ref": "#/$defs/DialogueLine"
30287
+ },
30288
+ "title": "Dialogue",
30289
+ "type": "array"
30290
+ },
30291
+ "narration_asset_id": {
30292
+ "anyOf": [
30293
+ {
30294
+ "minLength": 1,
30295
+ "type": "string"
30296
+ },
30297
+ {
30298
+ "type": "null"
30299
+ }
30300
+ ],
30301
+ "default": null,
30302
+ "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",
30303
+ "title": "Narration Asset Id"
30304
+ },
30305
+ "subtitles": {
30306
+ "default": false,
30307
+ "title": "Subtitles",
30308
+ "type": "boolean"
30309
+ },
30310
+ "host": {
30311
+ "anyOf": [
30312
+ {
30313
+ "type": "string"
30314
+ },
30315
+ {
30316
+ "type": "null"
30317
+ }
30318
+ ],
30319
+ "default": null,
30320
+ "description": "\uC9C4\uD589 \u2014 \uD5C8\uC6A9 \uC9D1\uD569\uC740 \uCE74\uD0C8\uB85C\uADF8(\uBC29\uC2DD\uBCC4). \uBAA8\uC158\uADF8\uB798\uD53D\uC740 \uD544\uC218",
30321
+ "title": "Host"
30322
+ },
30323
+ "voice_id": {
30324
+ "anyOf": [
30325
+ {
30326
+ "minLength": 1,
30327
+ "type": "string"
30328
+ },
30329
+ {
30330
+ "type": "null"
30331
+ }
30332
+ ],
30333
+ "default": null,
30334
+ "description": "host\u2208{voice,avatar} \uC774\uACE0 BYO \uC624\uB514\uC624\uAC00 \uC5C6\uC744 \uB54C \uD544\uC218",
30335
+ "title": "Voice Id"
30336
+ },
30337
+ "pip": {
30338
+ "anyOf": [
30339
+ {
30340
+ "$ref": "#/$defs/PipSpec"
30341
+ },
30342
+ {
30343
+ "type": "null"
30344
+ }
30345
+ ],
30346
+ "default": null,
30347
+ "description": "host=avatar \uC77C \uB54C \uD544\uC218"
30348
+ },
30349
+ "image_asset_id": {
30350
+ "anyOf": [
30351
+ {
30352
+ "minLength": 1,
30353
+ "type": "string"
30354
+ },
30355
+ {
30356
+ "type": "null"
30357
+ }
30358
+ ],
30359
+ "default": null,
30360
+ "description": "\uCEF7 \uC774\uBBF8\uC9C0\uB97C spec \uC5D0\uC11C \uC9C1\uC811 \uC9C0\uC815(\uC5D0\uC774\uC804\uD2B8 \uC6D0\uC0F7\uC6A9)",
30361
+ "title": "Image Asset Id"
30362
+ },
30363
+ "duration_s": {
30364
+ "anyOf": [
30365
+ {
30366
+ "exclusiveMinimum": 0,
30367
+ "maximum": 600,
30368
+ "type": "number"
30369
+ },
30370
+ {
30371
+ "type": "null"
30372
+ }
30373
+ ],
30374
+ "default": null,
30375
+ "title": "Duration S"
30376
+ },
30377
+ "mode": {
30378
+ "const": "motion_graphic",
30379
+ "default": "motion_graphic",
30380
+ "title": "Mode",
30381
+ "type": "string"
30382
+ },
30383
+ "motion_prompt": {
30384
+ "anyOf": [
30385
+ {
30386
+ "maxLength": 4e3,
30387
+ "type": "string"
30388
+ },
30389
+ {
30390
+ "type": "null"
30391
+ }
30392
+ ],
30393
+ "default": null,
30394
+ "title": "Motion Prompt"
30395
+ },
30396
+ "tsx": {
30397
+ "anyOf": [
30398
+ {
30399
+ "maxLength": 2e5,
30400
+ "type": "string"
30401
+ },
30402
+ {
30403
+ "type": "null"
30404
+ }
30405
+ ],
30406
+ "default": null,
30407
+ "description": "BYO Remotion \uCF54\uB4DC(UTF-8 \u2264 200KB) \u2014 codegen \uD589 0\uC6D0, \uAC8C\uC774\uD2B8\uB294 codegen \uACFC \uB3D9\uAE09",
30408
+ "title": "Tsx"
30409
+ },
30410
+ "brand_override": {
30411
+ "anyOf": [
30412
+ {
30413
+ "additionalProperties": true,
30414
+ "type": "object"
30415
+ },
30416
+ {
30417
+ "type": "null"
30418
+ }
30419
+ ],
30420
+ "default": null,
30421
+ "title": "Brand Override"
30422
+ }
30423
+ },
30424
+ "title": "MotionGraphicSpec",
30425
+ "type": "object"
30426
+ },
30427
+ "PipSpec": {
30428
+ "additionalProperties": false,
30429
+ "properties": {
30430
+ "avatar_id": {
30431
+ "minLength": 1,
30432
+ "title": "Avatar Id",
30433
+ "type": "string"
30434
+ },
30435
+ "background_asset_id": {
30436
+ "description": "\uBC30\uACBD\uC740 \uC5B8\uC81C\uB098 \uC790\uC0B0(origin=background \uCE74\uD0C8\uB85C\uADF8 \uB610\uB294 \uC62C\uB9B0 \uC774\uBBF8\uC9C0)",
30437
+ "minLength": 1,
30438
+ "title": "Background Asset Id",
30439
+ "type": "string"
30440
+ },
30441
+ "position": {
30442
+ "default": "br",
30443
+ "enum": [
30444
+ "tl",
30445
+ "tr",
30446
+ "bl",
30447
+ "br"
30448
+ ],
30449
+ "title": "Position",
30450
+ "type": "string"
30451
+ },
30452
+ "size": {
30453
+ "default": "m",
30454
+ "enum": [
30455
+ "s",
30456
+ "m",
30457
+ "l"
30458
+ ],
30459
+ "title": "Size",
30460
+ "type": "string"
30461
+ }
30462
+ },
30463
+ "required": [
30464
+ "avatar_id",
30465
+ "background_asset_id"
30466
+ ],
30467
+ "title": "PipSpec",
30468
+ "type": "object"
30469
+ },
28352
30470
  "Quote": {
28353
30471
  "additionalProperties": false,
28354
30472
  "properties": {
@@ -28437,59 +30555,6 @@ var GENERATED_TOOLS = [
28437
30555
  "title": "QuoteRow",
28438
30556
  "type": "object"
28439
30557
  },
28440
- "RelinkOp": {
28441
- "additionalProperties": false,
28442
- "properties": {
28443
- "op": {
28444
- "const": "relink",
28445
- "default": "relink",
28446
- "title": "Op",
28447
- "type": "string"
28448
- },
28449
- "cut_id": {
28450
- "title": "Cut Id",
28451
- "type": "string"
28452
- },
28453
- "after": {
28454
- "anyOf": [
28455
- {
28456
- "type": "string"
28457
- },
28458
- {
28459
- "type": "null"
28460
- }
28461
- ],
28462
- "default": null,
28463
- "description": "None = \uB9E8 \uC55E",
28464
- "title": "After"
28465
- }
28466
- },
28467
- "required": [
28468
- "cut_id"
28469
- ],
28470
- "title": "RelinkOp",
28471
- "type": "object"
28472
- },
28473
- "RemoveCutOp": {
28474
- "additionalProperties": false,
28475
- "properties": {
28476
- "op": {
28477
- "const": "remove_cut",
28478
- "default": "remove_cut",
28479
- "title": "Op",
28480
- "type": "string"
28481
- },
28482
- "cut_id": {
28483
- "title": "Cut Id",
28484
- "type": "string"
28485
- }
28486
- },
28487
- "required": [
28488
- "cut_id"
28489
- ],
28490
- "title": "RemoveCutOp",
28491
- "type": "object"
28492
- },
28493
30558
  "Timing": {
28494
30559
  "additionalProperties": false,
28495
30560
  "properties": {
@@ -28533,35 +30598,6 @@ var GENERATED_TOOLS = [
28533
30598
  "title": "Timing",
28534
30599
  "type": "object"
28535
30600
  },
28536
- "UpdateCutOp": {
28537
- "additionalProperties": false,
28538
- "properties": {
28539
- "op": {
28540
- "const": "update_cut",
28541
- "default": "update_cut",
28542
- "title": "Op",
28543
- "type": "string"
28544
- },
28545
- "cut_id": {
28546
- "title": "Cut Id",
28547
- "type": "string"
28548
- },
28549
- "fields": {
28550
- "additionalProperties": {
28551
- "$ref": "#/$defs/FieldChange"
28552
- },
28553
- "description": "json pointer \u2192 {before, after}",
28554
- "title": "Fields",
28555
- "type": "object"
28556
- }
28557
- },
28558
- "required": [
28559
- "cut_id",
28560
- "fields"
28561
- ],
28562
- "title": "UpdateCutOp",
28563
- "type": "object"
28564
- },
28565
30601
  "YoutubeAssetSource": {
28566
30602
  "additionalProperties": false,
28567
30603
  "properties": {
@@ -28774,53 +30810,18 @@ var GENERATED_TOOLS = [
28774
30810
  },
28775
30811
  "additionalProperties": false,
28776
30812
  "properties": {
28777
- "rev": {
28778
- "title": "Rev",
28779
- "type": "integer"
28780
- },
28781
- "order": {
28782
- "description": "position \uC774 \uC788\uB294 \uCEF7\uC758 id, \uC21C\uC11C\uB300\uB85C",
28783
- "items": {
28784
- "type": "string"
28785
- },
28786
- "title": "Order",
28787
- "type": "array"
28788
- },
28789
30813
  "cuts": {
28790
30814
  "items": {
28791
30815
  "$ref": "#/$defs/CutView"
28792
30816
  },
28793
30817
  "title": "Cuts",
28794
30818
  "type": "array"
28795
- },
28796
- "pending_proposal": {
28797
- "anyOf": [
28798
- {
28799
- "$ref": "#/$defs/ProposalView"
28800
- },
28801
- {
28802
- "type": "null"
28803
- }
28804
- ],
28805
- "default": null
28806
- },
28807
- "usage_bytes": {
28808
- "default": 0,
28809
- "title": "Usage Bytes",
28810
- "type": "integer"
28811
- },
28812
- "next_calls": {
28813
- "items": {
28814
- "type": "string"
28815
- },
28816
- "title": "Next Calls",
28817
- "type": "array"
28818
30819
  }
28819
30820
  },
28820
30821
  "required": [
28821
- "rev"
30822
+ "cuts"
28822
30823
  ],
28823
- "title": "StoryboardView",
30824
+ "title": "CutListResponse",
28824
30825
  "type": "object"
28825
30826
  },
28826
30827
  "annotations": {
@@ -38303,6 +40304,12 @@ var PROJECTS_MAX_LIMIT = 100;
38303
40304
  function list(baseUrl, deps = {}) {
38304
40305
  return apiRequest(baseUrl, "/api/projects", {}, deps);
38305
40306
  }
40307
+ function get(baseUrl, slug, deps = {}) {
40308
+ return apiRequest(baseUrl, `/api/projects/${encodeURIComponent(slug)}`, {}, deps);
40309
+ }
40310
+ function remove(baseUrl, slug, deps = {}) {
40311
+ return apiRequest(baseUrl, `/api/projects/${encodeURIComponent(slug)}`, { method: "DELETE" }, deps);
40312
+ }
38306
40313
  function create(baseUrl, body, deps = {}) {
38307
40314
  return apiRequest(baseUrl, "/api/projects", { method: "POST", body }, deps);
38308
40315
  }
@@ -38498,9 +40505,7 @@ function creditLedger(a = {}, deps = {}) {
38498
40505
  });
38499
40506
  }
38500
40507
  function projectLine(p) {
38501
- const parts = [p.slug ?? "?", p.title || "(\uC81C\uBAA9 \uC5C6\uC74C)"];
38502
- if (p.status) parts.push(p.status);
38503
- if (p.kind === "shorts") parts.push("shorts");
40508
+ const parts = [p.slug, p.title || "(\uC81C\uBAA9 \uC5C6\uC74C)", `\uCEF7 ${p.cut_count ?? 0}\uAC1C`];
38504
40509
  const updated = (p.updated_at ?? "").slice(0, 10);
38505
40510
  if (updated) parts.push(updated);
38506
40511
  return parts.join(" \xB7 ");
@@ -38522,14 +40527,16 @@ function listProjects(a = {}, deps = {}) {
38522
40527
  const matched = query ? all.filter(
38523
40528
  (p) => (p.slug ?? "").toLowerCase().includes(query) || (p.title ?? "").toLowerCase().includes(query)
38524
40529
  ) : all.slice();
38525
- matched.sort((x, y) => (y.updated_at ?? "").localeCompare(x.updated_at ?? ""));
40530
+ matched.sort((x, y) => (y.updated_at ?? "").localeCompare(x.updated_at ?? "") || y.slug.localeCompare(x.slug));
38526
40531
  const shown = matched.slice(0, limit);
38527
40532
  if (shown.length === 0) {
38528
40533
  return {
38529
- text: query ? `'${query}' \uC640 \uC77C\uCE58\uD558\uB294 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. (\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0 \uD504\uB85C\uC81D\uD2B8 ${total}\uAC1C) query \uB97C \uBE7C\uACE0 \uB2E4\uC2DC \uD638\uCD9C\uD574 \uC804\uCCB4\uB97C \uBCF4\uC138\uC694.` : "\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0\uB294 \uC544\uC9C1 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uC5D0\uAC8C democut.ai \uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8\uB97C \uD558\uB098 \uB9CC\uB4E0 \uB4A4 \uB2E4\uC2DC \uC694\uCCAD\uD574 \uB2EC\uB77C\uACE0 \uC54C\uB9AC\uC138\uC694 \u2014 \uB124\uAC00 \uC9C1\uC811 \uB9CC\uB4E4 \uC218\uB294 \uC5C6\uC2B5\uB2C8\uB2E4. \uC601\uC0C1 \uC0DD\uC131\uC740 \uADC0\uC18D\uC2DC\uD0AC \uD504\uB85C\uC81D\uD2B8\uAC00 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4."
40534
+ text: query ? `'${query}' \uC640 \uC77C\uCE58\uD558\uB294 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. (\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0 \uD504\uB85C\uC81D\uD2B8 ${total}\uAC1C) query \uB97C \uBE7C\uACE0 \uB2E4\uC2DC \uD638\uCD9C\uD574 \uC804\uCCB4\uB97C \uBCF4\uC138\uC694.` : "\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0\uB294 \uC544\uC9C1 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uC5D0\uAC8C democut.ai \uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8\uB97C \uD558\uB098 \uB9CC\uB4E0 \uB4A4 \uB2E4\uC2DC \uC694\uCCAD\uD574 \uB2EC\uB77C\uACE0 \uC54C\uB9AC\uC138\uC694 \u2014 \uB124\uAC00 \uC9C1\uC811 \uB9CC\uB4E4 \uC218\uB294 \uC5C6\uC2B5\uB2C8\uB2E4. \uC601\uC0C1 \uC0DD\uC131\uC740 \uADC0\uC18D\uC2DC\uD0AC \uD504\uB85C\uC81D\uD2B8\uAC00 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
40535
+ // 빈 목록도 성공이다 — 광고한 outputSchema(ProjectListResponse)를 지켜 채운다.
40536
+ structured: callableStructured({ projects: [] })
38530
40537
  };
38531
40538
  }
38532
- const lines = ["\uD504\uB85C\uC81D\uD2B8 (\uCD5C\uADFC \uC218\uC815\uC21C) \u2014 slug \xB7 \uC81C\uBAA9 \xB7 \uC0C1\uD0DC \xB7 \uC218\uC815\uC77C", ""];
40539
+ const lines = ["\uD504\uB85C\uC81D\uD2B8 (\uCD5C\uADFC \uC218\uC815\uC21C) \u2014 slug \xB7 \uC81C\uBAA9 \xB7 \uCEF7 \uC218 \xB7 \uC218\uC815\uC77C", ""];
38533
40540
  for (const p of shown) lines.push(projectLine(p));
38534
40541
  lines.push("");
38535
40542
  if (matched.length > shown.length) {
@@ -38538,9 +40545,48 @@ function listProjects(a = {}, deps = {}) {
38538
40545
  );
38539
40546
  }
38540
40547
  lines.push(
38541
- "\uD504\uB85C\uC81D\uD2B8\uB97C \uC694\uAD6C\uD558\uB294 \uB3C4\uAD6C\uC758 project_slug \uC5D0\uB294 \uC704 **slug**(\uB9E8 \uC55E \uAC12)\uB97C \uADF8\uB300\uB85C \uB123\uC73C\uC138\uC694. \uC5B4\uB290 \uAC83\uC5D0 \uADC0\uC18D\uC2DC\uD0AC\uC9C0 \uBD84\uBA85\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBB3C\uC73C\uC138\uC694."
40548
+ "\uD504\uB85C\uC81D\uD2B8\uB97C \uC694\uAD6C\uD558\uB294 \uB3C4\uAD6C\uC758 project_slug \uC5D0\uB294 \uC704 **slug**(\uB9E8 \uC55E \uAC12)\uB97C \uADF8\uB300\uB85C \uB123\uC73C\uC138\uC694. \uC5B4\uB290 \uAC83\uC5D0 \uADC0\uC18D\uC2DC\uD0AC\uC9C0 \uBD84\uBA85\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBB3C\uC73C\uC138\uC694. \uD558\uB098\uB97C \uC790\uC138\uD788 \uBCF4\uB824\uBA74 get_project."
38542
40549
  );
38543
- return { text: lines.join("\n") };
40550
+ return {
40551
+ text: callableToolNames(lines.join("\n")),
40552
+ structured: callableStructured({ projects: shown })
40553
+ };
40554
+ });
40555
+ }
40556
+ function getProject(a = {}, deps = {}) {
40557
+ return guarded(READ_ONLY, async () => {
40558
+ const slug = (a.slug ?? "").trim();
40559
+ if (!slug) return { isError: true, text: "slug \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. democut_list_projects \uB85C slug \uB97C \uBA3C\uC800 \uCC3E\uC73C\uC138\uC694." };
40560
+ const base = resolveBaseUrl(deps.baseUrl);
40561
+ const view = await get(base, slug, deps);
40562
+ const lines = [
40563
+ `\uD504\uB85C\uC81D\uD2B8 \u2014 slug: ${view.slug}`,
40564
+ `\uC81C\uBAA9: ${view.title}`,
40565
+ `\uBE44\uC728 ${view.ratio} \xB7 \uD574\uC0C1\uB3C4 ${view.resolution} (\uBE44\uC728\uC740 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4)`,
40566
+ `\uCEF7 ${view.cut_count ?? 0}\uAC1C \xB7 rev ${view.rev ?? 0} \xB7 \uC218\uC815 ${(view.updated_at ?? "").slice(0, 19)}`
40567
+ ];
40568
+ if (view.folder_id) lines.push(`\uD3F4\uB354: ${view.folder_id}`);
40569
+ lines.push("", "\uC21C\uC11C\xB7\uC0C1\uD0DC\uB294 get_storyboard \uB85C, \uB9CC\uB4E4\uB824\uBA74 estimate_cuts \u2192 make_cuts \uB85C. If-Match \uAC00 \uD544\uC694\uD55C \uD3B8\uC9D1 \uB3C4\uAD6C\uC5D0\uB294 \uC704 rev \uB97C \uB123\uC73C\uC138\uC694.");
40570
+ return {
40571
+ text: callableToolNames(lines.join("\n")),
40572
+ structured: callableStructured(view)
40573
+ };
40574
+ });
40575
+ }
40576
+ function deleteProject(a = {}, deps = {}) {
40577
+ return guarded(READ_ONLY, async () => {
40578
+ const slug = (a.slug ?? "").trim();
40579
+ if (!slug) return { isError: true, text: "slug \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. democut_list_projects \uB85C slug \uB97C \uBA3C\uC800 \uCC3E\uC73C\uC138\uC694." };
40580
+ const base = resolveBaseUrl(deps.baseUrl);
40581
+ const res = await remove(base, slug, deps) ?? { deleted: true };
40582
+ return {
40583
+ text: callableToolNames([
40584
+ `\uD504\uB85C\uC81D\uD2B8\uB97C \uC9C0\uC6E0\uC2B5\uB2C8\uB2E4 \u2014 ${slug}`,
40585
+ "\uCEF7\xB7\uBC84\uC804\xB7\uCEF7 \uC774\uBBF8\uC9C0\uC640 \uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC790\uC0B0 \uD589\uC774 \uD568\uAED8 \uC9C0\uC6CC\uC84C\uACE0, \uD06C\uB808\uB527 \uC6D0\uC7A5\uC740 \uB0A8\uC2B5\uB2C8\uB2E4. \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
40586
+ "\uBAA9\uB85D\uC744 \uB2E4\uC2DC \uBCF4\uB824\uBA74 list_projects."
40587
+ ].join("\n")),
40588
+ structured: callableStructured(res)
40589
+ };
38544
40590
  });
38545
40591
  }
38546
40592
  function createProject(a = {}, deps = {}) {
@@ -38992,6 +41038,25 @@ function getCut(a = {}, deps = {}) {
38992
41038
  return { text: lines.join("\n"), structured: callableStructured(cut) };
38993
41039
  });
38994
41040
  }
41041
+ function listCuts(a = {}, deps = {}) {
41042
+ return guarded(READ_ONLY, async () => {
41043
+ const slug = needSlug(a);
41044
+ if (typeof slug !== "string") return slug;
41045
+ const base = resolveBaseUrl(deps.baseUrl);
41046
+ const out2 = await apiRequest(base, projectPath(slug, "/cuts"), {}, deps);
41047
+ const cuts = out2.cuts ?? [];
41048
+ if (cuts.length === 0) {
41049
+ return {
41050
+ text: callableToolNames("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0\uB294 \uC544\uC9C1 \uCEF7\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uB9CC\uB4E4\uB824\uBA74 estimate_cuts \u2192 make_cuts, \uC644\uC131 \uC601\uC0C1\uC744 \uC62C\uB9AC\uB824\uBA74 import_cut."),
41051
+ structured: callableStructured(out2)
41052
+ };
41053
+ }
41054
+ const lines = [`\uCEF7 ${cuts.length}\uAC1C (\uC5F0\uACB0 \uC21C\uC11C) \u2014 id [\uC0C1\uD0DC] \uBC29\uC2DD \xB7 \uC81C\uBAA9 \xB7 \uB300\uD45C \uBC84\uC804 \xB7 \uB9C9\uD78C \uC774\uC720`];
41055
+ lines.push(...listing(cuts.map(cutLine)));
41056
+ lines.push(callableToolNames("\uC0C1\uC138\xB7\uBC84\uC804\xB7\uB0B4\uB824\uBC1B\uAE30 \uC8FC\uC18C\uB294 get_cut, \uC21C\uC11C\xB7rev \uB294 get_storyboard."));
41057
+ return { text: lines.join("\n"), structured: callableStructured(out2) };
41058
+ });
41059
+ }
38995
41060
  function mb(v) {
38996
41061
  if (v < 1024) return `${v}B`;
38997
41062
  if (v < 1024 * 1024) return `${Math.round(v / 1024)}KB`;
@@ -39316,6 +41381,26 @@ function characterLine(c) {
39316
41381
  const photos = c.photos?.length ? `\uC0AC\uC9C4 ${c.photos.length}\uC7A5` : "\uC0AC\uC9C4 \uC5C6\uC74C";
39317
41382
  return `${c.name} [${c.id}] rev=${c.rev} \xB7 ${photos}${c.current_photo_id ? " (\uB300\uD45C \uC788\uC74C)" : ""}`;
39318
41383
  }
41384
+ function listBackgrounds(_a3 = {}, deps = {}) {
41385
+ return guarded(READ_ONLY, async () => {
41386
+ const base = resolveBaseUrl(deps.baseUrl);
41387
+ const out2 = await apiRequest(base, "/api/backgrounds", {}, deps);
41388
+ if (!out2.backgrounds?.length) {
41389
+ return {
41390
+ text: "\uBC30\uACBD\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uC6F9\uC758 \uBC30\uACBD \uB77C\uC774\uBE0C\uB7EC\uB9AC(ultra)\uC5D0\uC11C \uC62C\uB9AC\uAC70\uB098, democut_upload_asset \uC73C\uB85C \uC62C\uB9B0 \uC774\uBBF8\uC9C0 \uC790\uC0B0\uC758 id \uB97C pip.background_asset_id \uC5D0 \uADF8\uB300\uB85C \uC368\uB3C4 \uB429\uB2C8\uB2E4.",
41391
+ structured: callableStructured(out2)
41392
+ };
41393
+ }
41394
+ const lines = [`\uBC30\uACBD ${out2.backgrounds.length}\uC7A5 \u2014 pip.background_asset_id \uC5D0 id \uB97C \uB123\uC73C\uC138\uC694.`];
41395
+ for (const a of out2.backgrounds.slice(0, 20)) {
41396
+ const meta2 = a.meta ?? {};
41397
+ const label = typeof meta2.label === "string" && meta2.label || typeof meta2.filename === "string" && meta2.filename || "";
41398
+ lines.push(` ${a.id}: ${label} (${a.mime}, ${a.bytes} bytes)`);
41399
+ }
41400
+ if (out2.backgrounds.length > 20) lines.push(` \u2026\uC678 ${out2.backgrounds.length - 20}\uC7A5`);
41401
+ return { text: lines.join("\n"), structured: callableStructured(out2) };
41402
+ });
41403
+ }
39319
41404
  function listCharacters(_a3 = {}, deps = {}) {
39320
41405
  return guarded(READ_ONLY, async () => {
39321
41406
  const base = resolveBaseUrl(deps.baseUrl);
@@ -39536,6 +41621,10 @@ function dispatch(name, args, deps = {}) {
39536
41621
  return creditLedger(args, deps);
39537
41622
  case "democut_list_projects":
39538
41623
  return listProjects(args, deps);
41624
+ case "democut_get_project":
41625
+ return getProject(args, deps);
41626
+ case "democut_delete_project":
41627
+ return deleteProject(args, deps);
39539
41628
  case "democut_create_project":
39540
41629
  return createProject(args, deps);
39541
41630
  case "democut_get_options":
@@ -39562,6 +41651,8 @@ function dispatch(name, args, deps = {}) {
39562
41651
  return deleteCutImage(args, deps);
39563
41652
  case "democut_get_cut":
39564
41653
  return getCut(args, deps);
41654
+ case "democut_list_cuts":
41655
+ return listCuts(args, deps);
39565
41656
  case "democut_get_storyboard":
39566
41657
  return getStoryboard(args, deps);
39567
41658
  case "democut_add_cut":
@@ -39605,6 +41696,8 @@ function dispatch(name, args, deps = {}) {
39605
41696
  return makeCharacterPhoto(args, deps);
39606
41697
  case "democut_delete_character":
39607
41698
  return deleteCharacter(args, deps);
41699
+ case "democut_list_backgrounds":
41700
+ return listBackgrounds(args, deps);
39608
41701
  default:
39609
41702
  return Promise.resolve({ isError: true, text: `\uC54C \uC218 \uC5C6\uB294 \uB3C4\uAD6C: ${name}` });
39610
41703
  }