democut 0.6.37 → 0.6.39

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 +1623 -475
  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.37";
6919
+ var VERSION = "0.6.39";
6920
6920
 
6921
6921
  // src/device-flow.ts
6922
6922
  var DeviceFlowError = class extends Error {
@@ -15846,7 +15846,6 @@ var GENERATED_TOOLS = [
15846
15846
  "outputSchema": {
15847
15847
  "$defs": {
15848
15848
  "AuthWorkspace": {
15849
- "additionalProperties": false,
15850
15849
  "description": "\uC0AC\uC6A9\uC790\uAC00 \uACE0\uB97C \uC218 \uC788\uB294 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 1\uAC1C(DB \uBA64\uBC84\uC2ED + \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 \uC18D\uC131) \u2014 `X-Workspace-Id` \uC758 \uD6C4\uBCF4.",
15851
15850
  "properties": {
15852
15851
  "id": {
@@ -15881,7 +15880,6 @@ var GENERATED_TOOLS = [
15881
15880
  "type": "object"
15882
15881
  }
15883
15882
  },
15884
- "additionalProperties": false,
15885
15883
  "description": '``GET /api/auth/whoami`` \u2014 \uD604\uC7AC \uC778\uC99D \uC8FC\uCCB4 + \uC18C\uC18D \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 \uBAA9\uB85D.\n\n\u2605 2026-09-11 \uC815\uD569: \uC774 \uBAA8\uB378\uC740 **REST \uAC00 \uC2E4\uC81C\uB85C \uB0B4\uB294 \uBAA8\uC591**\uC774\uB2E4(\uACC4\uC57D \u2465 \u2014 \uCF54\uB4DC\uAC00 \uBB38\uC11C\uC640 \uC5B4\uAE0B\uB098\uBA74 \uCF54\uB4DC\uAC00 \uC633\uB2E4).\n\uC61B \uACC4\uC57D\uC758 `authenticated`\xB7`actor` \uB294 \uC5B4\uB5A4 \uBB38\uC11C\xB7\uC18C\uBE44\uC790\uC5D0\uB3C4 \uADFC\uAC70\uAC00 \uC5C6\uC5C8\uACE0, REST \uAC00 \uB0B4\uB294 `kind` \uB294 web\xB7CLI \uAC00\n\uB85C\uADF8\uC778 \uD310\uC815\uC5D0 \uC4F0\uB294 \uAC12\uC774\uB77C(`WorkspaceGate`) \uACC4\uC57D\uC774 \uADF8\uAC83\uC744 \uB530\uB978\uB2E4. \uADF8\uB798\uC57C MCP `auth_status` \uAC00 \uC774 \uBAA8\uB378\uC744\n`outputSchema` \uB85C \uAD11\uACE0\uD558\uACE0 REST \uBCF8\uBB38\uC744 \uADF8\uB300\uB85C `structuredContent` \uC5D0 \uC2E4\uC744 \uC218 \uC788\uB2E4.\n\u2605 `kind != "user"` \uC778 principal(machine\xB7anonymous)\uC740 \uC18C\uC18D \uAC1C\uB150\uC774 \uC5C6\uC5B4 `workspaces` \uAC00 \uBE48 \uBC30\uC5F4\uC774\uB2E4.',
15886
15884
  "properties": {
15887
15885
  "kind": {
@@ -15997,7 +15995,6 @@ var GENERATED_TOOLS = [
15997
15995
  "outputSchema": {
15998
15996
  "$defs": {
15999
15997
  "Brand": {
16000
- "additionalProperties": false,
16001
15998
  "properties": {
16002
15999
  "accent_hex": {
16003
16000
  "anyOf": [
@@ -16053,7 +16050,6 @@ var GENERATED_TOOLS = [
16053
16050
  "type": "object"
16054
16051
  },
16055
16052
  "ProjectDefaults": {
16056
- "additionalProperties": false,
16057
16053
  "properties": {
16058
16054
  "voice_id": {
16059
16055
  "anyOf": [
@@ -16092,7 +16088,6 @@ var GENERATED_TOOLS = [
16092
16088
  "type": "object"
16093
16089
  },
16094
16090
  "ProjectView": {
16095
- "additionalProperties": false,
16096
16091
  "properties": {
16097
16092
  "slug": {
16098
16093
  "title": "Slug",
@@ -16187,7 +16182,6 @@ var GENERATED_TOOLS = [
16187
16182
  "type": "object"
16188
16183
  }
16189
16184
  },
16190
- "additionalProperties": false,
16191
16185
  "properties": {
16192
16186
  "projects": {
16193
16187
  "items": {
@@ -16229,7 +16223,6 @@ var GENERATED_TOOLS = [
16229
16223
  "outputSchema": {
16230
16224
  "$defs": {
16231
16225
  "Brand": {
16232
- "additionalProperties": false,
16233
16226
  "properties": {
16234
16227
  "accent_hex": {
16235
16228
  "anyOf": [
@@ -16285,7 +16278,6 @@ var GENERATED_TOOLS = [
16285
16278
  "type": "object"
16286
16279
  },
16287
16280
  "ProjectDefaults": {
16288
- "additionalProperties": false,
16289
16281
  "properties": {
16290
16282
  "voice_id": {
16291
16283
  "anyOf": [
@@ -16324,7 +16316,6 @@ var GENERATED_TOOLS = [
16324
16316
  "type": "object"
16325
16317
  }
16326
16318
  },
16327
- "additionalProperties": false,
16328
16319
  "properties": {
16329
16320
  "slug": {
16330
16321
  "title": "Slug",
@@ -16426,71 +16417,28 @@ var GENERATED_TOOLS = [
16426
16417
  }
16427
16418
  },
16428
16419
  {
16429
- "name": "democut_delete_project",
16430
- "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.",
16420
+ "name": "democut_update_project",
16421
+ "description": "\uC81C\uBAA9\xB7\uD3F4\uB354\xB7\uAE30\uBCF8\uAC12\uC744 \uBC14\uAFBC\uB2E4. \uBE44\uC728\uC740 \uBABB \uBC14\uAFBC\uB2E4(RATIO_IMMUTABLE).",
16431
16422
  "inputSchema": {
16432
16423
  "type": "object",
16433
16424
  "properties": {
16434
16425
  "slug": {
16435
16426
  "type": "string",
16436
16427
  "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
16437
- }
16438
- },
16439
- "required": [
16440
- "slug"
16441
- ],
16442
- "additionalProperties": false
16443
- },
16444
- "outputSchema": {
16445
- "additionalProperties": false,
16446
- "properties": {
16447
- "deleted": {
16448
- "default": true,
16449
- "title": "Deleted",
16450
- "type": "boolean"
16451
- }
16452
- },
16453
- "title": "DeletedResponse",
16454
- "type": "object"
16455
- },
16456
- "annotations": {
16457
- "readOnlyHint": false,
16458
- "destructiveHint": true,
16459
- "idempotentHint": true,
16460
- "openWorldHint": false
16461
- }
16462
- },
16463
- {
16464
- "name": "democut_create_project",
16465
- "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.",
16466
- "inputSchema": {
16467
- "type": "object",
16468
- "properties": {
16469
- "title": {
16470
- "maxLength": 200,
16471
- "minLength": 1,
16472
- "title": "Title",
16473
- "type": "string"
16474
16428
  },
16475
- "ratio": {
16476
- "default": "16:9",
16477
- "description": "\uC0DD\uC131 \uD6C4 \uACE0\uC815(R24)",
16478
- "enum": [
16479
- "16:9",
16480
- "9:16",
16481
- "1:1"
16482
- ],
16483
- "title": "Ratio",
16484
- "type": "string"
16485
- },
16486
- "resolution": {
16487
- "default": "1080p",
16488
- "enum": [
16489
- "720p",
16490
- "1080p"
16429
+ "title": {
16430
+ "anyOf": [
16431
+ {
16432
+ "maxLength": 200,
16433
+ "minLength": 1,
16434
+ "type": "string"
16435
+ },
16436
+ {
16437
+ "type": "null"
16438
+ }
16491
16439
  ],
16492
- "title": "Resolution",
16493
- "type": "string"
16440
+ "default": null,
16441
+ "title": "Title"
16494
16442
  },
16495
16443
  "folder_id": {
16496
16444
  "anyOf": [
@@ -16517,7 +16465,7 @@ var GENERATED_TOOLS = [
16517
16465
  }
16518
16466
  },
16519
16467
  "required": [
16520
- "title"
16468
+ "slug"
16521
16469
  ],
16522
16470
  "additionalProperties": false,
16523
16471
  "$defs": {
@@ -16621,7 +16569,6 @@ var GENERATED_TOOLS = [
16621
16569
  "outputSchema": {
16622
16570
  "$defs": {
16623
16571
  "Brand": {
16624
- "additionalProperties": false,
16625
16572
  "properties": {
16626
16573
  "accent_hex": {
16627
16574
  "anyOf": [
@@ -16677,7 +16624,6 @@ var GENERATED_TOOLS = [
16677
16624
  "type": "object"
16678
16625
  },
16679
16626
  "ProjectDefaults": {
16680
- "additionalProperties": false,
16681
16627
  "properties": {
16682
16628
  "voice_id": {
16683
16629
  "anyOf": [
@@ -16716,7 +16662,6 @@ var GENERATED_TOOLS = [
16716
16662
  "type": "object"
16717
16663
  }
16718
16664
  },
16719
- "additionalProperties": false,
16720
16665
  "properties": {
16721
16666
  "slug": {
16722
16667
  "title": "Slug",
@@ -16813,13 +16758,13 @@ var GENERATED_TOOLS = [
16813
16758
  "annotations": {
16814
16759
  "readOnlyHint": false,
16815
16760
  "destructiveHint": false,
16816
- "idempotentHint": false,
16761
+ "idempotentHint": true,
16817
16762
  "openWorldHint": false
16818
16763
  }
16819
16764
  },
16820
16765
  {
16821
- "name": "democut_get_options",
16822
- "description": "\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC4F8 \uC218 \uC788\uB294 \uBC29\uC2DD\xB7\uC9C4\uD589(host)\xB7\uD544\uC218 \uD544\uB4DC\xB7BYO \uD544\uB4DC\xB7\uBCF4\uC774\uC2A4\xB7\uC544\uBC14\uD0C0\xB7\uBC30\uACBD\xB7\uB2E8\uAC00\xB7\uC794\uC561. recommended_mode=ai_video. \uB2E8\uAC00\uB294 \uCC38\uACE0\uAC12\uC774\uB2E4 \u2014 \uCCAD\uAD6C\uB294 democut_estimate_cuts \uC758 \uAC12\uC73C\uB85C. \uB2E4\uC74C \uD638\uCD9C: democut_upload_asset, democut_estimate_cuts.",
16766
+ "name": "democut_delete_project",
16767
+ "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.",
16823
16768
  "inputSchema": {
16824
16769
  "type": "object",
16825
16770
  "properties": {
@@ -16834,117 +16779,84 @@ var GENERATED_TOOLS = [
16834
16779
  "additionalProperties": false
16835
16780
  },
16836
16781
  "outputSchema": {
16837
- "$defs": {
16838
- "AssetView": {
16839
- "additionalProperties": false,
16840
- "properties": {
16841
- "id": {
16842
- "title": "Id",
16843
- "type": "string"
16844
- },
16845
- "workspace_id": {
16846
- "title": "Workspace Id",
16847
- "type": "string"
16848
- },
16849
- "project_slug": {
16850
- "anyOf": [
16851
- {
16852
- "type": "string"
16853
- },
16854
- {
16855
- "type": "null"
16856
- }
16857
- ],
16858
- "default": null,
16859
- "title": "Project Slug"
16860
- },
16861
- "kind": {
16862
- "enum": [
16863
- "image",
16864
- "video",
16865
- "audio",
16866
- "subtitle",
16867
- "code",
16868
- "archive"
16869
- ],
16870
- "title": "Kind",
16871
- "type": "string"
16872
- },
16873
- "origin": {
16874
- "description": "upload|url_fetch|render|image_gen|export|pip|from_video|thumbnail|idle_motion|background|legacy_import (\uC77D\uAE30 \uAD00\uC6A9)",
16875
- "title": "Origin",
16876
- "type": "string"
16877
- },
16878
- "mime": {
16879
- "title": "Mime",
16880
- "type": "string"
16881
- },
16882
- "bytes": {
16883
- "minimum": 0,
16884
- "title": "Bytes",
16885
- "type": "integer"
16886
- },
16887
- "sha256": {
16888
- "anyOf": [
16889
- {
16890
- "type": "string"
16891
- },
16892
- {
16893
- "type": "null"
16894
- }
16895
- ],
16896
- "default": null,
16897
- "title": "Sha256"
16898
- },
16899
- "meta": {
16900
- "additionalProperties": true,
16901
- "title": "Meta",
16902
- "type": "object"
16903
- },
16904
- "state": {
16905
- "enum": [
16906
- "pending",
16907
- "ready",
16908
- "deleted"
16909
- ],
16910
- "title": "State",
16911
- "type": "string"
16912
- },
16913
- "created_by": {
16914
- "title": "Created By",
16915
- "type": "string"
16916
- },
16917
- "created_at": {
16918
- "title": "Created At",
16782
+ "properties": {
16783
+ "deleted": {
16784
+ "default": true,
16785
+ "title": "Deleted",
16786
+ "type": "boolean"
16787
+ }
16788
+ },
16789
+ "title": "DeletedResponse",
16790
+ "type": "object"
16791
+ },
16792
+ "annotations": {
16793
+ "readOnlyHint": false,
16794
+ "destructiveHint": true,
16795
+ "idempotentHint": true,
16796
+ "openWorldHint": false
16797
+ }
16798
+ },
16799
+ {
16800
+ "name": "democut_create_project",
16801
+ "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.",
16802
+ "inputSchema": {
16803
+ "type": "object",
16804
+ "properties": {
16805
+ "title": {
16806
+ "maxLength": 200,
16807
+ "minLength": 1,
16808
+ "title": "Title",
16809
+ "type": "string"
16810
+ },
16811
+ "ratio": {
16812
+ "default": "16:9",
16813
+ "description": "\uC0DD\uC131 \uD6C4 \uACE0\uC815(R24)",
16814
+ "enum": [
16815
+ "16:9",
16816
+ "9:16",
16817
+ "1:1"
16818
+ ],
16819
+ "title": "Ratio",
16820
+ "type": "string"
16821
+ },
16822
+ "resolution": {
16823
+ "default": "1080p",
16824
+ "enum": [
16825
+ "720p",
16826
+ "1080p"
16827
+ ],
16828
+ "title": "Resolution",
16829
+ "type": "string"
16830
+ },
16831
+ "folder_id": {
16832
+ "anyOf": [
16833
+ {
16919
16834
  "type": "string"
16920
16835
  },
16921
- "download_url": {
16922
- "anyOf": [
16923
- {
16924
- "type": "string"
16925
- },
16926
- {
16927
- "type": "null"
16928
- }
16929
- ],
16930
- "default": null,
16931
- "title": "Download Url"
16836
+ {
16837
+ "type": "null"
16932
16838
  }
16933
- },
16934
- "required": [
16935
- "id",
16936
- "workspace_id",
16937
- "kind",
16938
- "origin",
16939
- "mime",
16940
- "bytes",
16941
- "state",
16942
- "created_by",
16943
- "created_at"
16944
16839
  ],
16945
- "title": "AssetView",
16946
- "type": "object"
16840
+ "default": null,
16841
+ "title": "Folder Id"
16947
16842
  },
16843
+ "defaults": {
16844
+ "anyOf": [
16845
+ {
16846
+ "$ref": "#/$defs/ProjectDefaults"
16847
+ },
16848
+ {
16849
+ "type": "null"
16850
+ }
16851
+ ],
16852
+ "default": null
16853
+ }
16854
+ },
16855
+ "required": [
16856
+ "title"
16857
+ ],
16858
+ "additionalProperties": false,
16859
+ "$defs": {
16948
16860
  "Brand": {
16949
16861
  "additionalProperties": false,
16950
16862
  "properties": {
@@ -17001,8 +16913,426 @@ var GENERATED_TOOLS = [
17001
16913
  "title": "Brand",
17002
16914
  "type": "object"
17003
16915
  },
17004
- "CharacterPhotoView": {
16916
+ "ProjectDefaults": {
17005
16917
  "additionalProperties": false,
16918
+ "properties": {
16919
+ "voice_id": {
16920
+ "anyOf": [
16921
+ {
16922
+ "type": "string"
16923
+ },
16924
+ {
16925
+ "type": "null"
16926
+ }
16927
+ ],
16928
+ "default": null,
16929
+ "title": "Voice Id"
16930
+ },
16931
+ "character_id": {
16932
+ "anyOf": [
16933
+ {
16934
+ "type": "string"
16935
+ },
16936
+ {
16937
+ "type": "null"
16938
+ }
16939
+ ],
16940
+ "default": null,
16941
+ "title": "Character Id"
16942
+ },
16943
+ "subtitles": {
16944
+ "default": false,
16945
+ "title": "Subtitles",
16946
+ "type": "boolean"
16947
+ },
16948
+ "brand": {
16949
+ "$ref": "#/$defs/Brand"
16950
+ }
16951
+ },
16952
+ "title": "ProjectDefaults",
16953
+ "type": "object"
16954
+ }
16955
+ }
16956
+ },
16957
+ "outputSchema": {
16958
+ "$defs": {
16959
+ "Brand": {
16960
+ "properties": {
16961
+ "accent_hex": {
16962
+ "anyOf": [
16963
+ {
16964
+ "pattern": "^#[0-9A-Fa-f]{6}$",
16965
+ "type": "string"
16966
+ },
16967
+ {
16968
+ "type": "null"
16969
+ }
16970
+ ],
16971
+ "default": null,
16972
+ "title": "Accent Hex"
16973
+ },
16974
+ "heading_font": {
16975
+ "anyOf": [
16976
+ {
16977
+ "type": "string"
16978
+ },
16979
+ {
16980
+ "type": "null"
16981
+ }
16982
+ ],
16983
+ "default": null,
16984
+ "title": "Heading Font"
16985
+ },
16986
+ "body_font": {
16987
+ "anyOf": [
16988
+ {
16989
+ "type": "string"
16990
+ },
16991
+ {
16992
+ "type": "null"
16993
+ }
16994
+ ],
16995
+ "default": null,
16996
+ "title": "Body Font"
16997
+ },
16998
+ "logo_asset_id": {
16999
+ "anyOf": [
17000
+ {
17001
+ "type": "string"
17002
+ },
17003
+ {
17004
+ "type": "null"
17005
+ }
17006
+ ],
17007
+ "default": null,
17008
+ "title": "Logo Asset Id"
17009
+ }
17010
+ },
17011
+ "title": "Brand",
17012
+ "type": "object"
17013
+ },
17014
+ "ProjectDefaults": {
17015
+ "properties": {
17016
+ "voice_id": {
17017
+ "anyOf": [
17018
+ {
17019
+ "type": "string"
17020
+ },
17021
+ {
17022
+ "type": "null"
17023
+ }
17024
+ ],
17025
+ "default": null,
17026
+ "title": "Voice Id"
17027
+ },
17028
+ "character_id": {
17029
+ "anyOf": [
17030
+ {
17031
+ "type": "string"
17032
+ },
17033
+ {
17034
+ "type": "null"
17035
+ }
17036
+ ],
17037
+ "default": null,
17038
+ "title": "Character Id"
17039
+ },
17040
+ "subtitles": {
17041
+ "default": false,
17042
+ "title": "Subtitles",
17043
+ "type": "boolean"
17044
+ },
17045
+ "brand": {
17046
+ "$ref": "#/$defs/Brand"
17047
+ }
17048
+ },
17049
+ "title": "ProjectDefaults",
17050
+ "type": "object"
17051
+ }
17052
+ },
17053
+ "properties": {
17054
+ "slug": {
17055
+ "title": "Slug",
17056
+ "type": "string"
17057
+ },
17058
+ "workspace_id": {
17059
+ "title": "Workspace Id",
17060
+ "type": "string"
17061
+ },
17062
+ "title": {
17063
+ "title": "Title",
17064
+ "type": "string"
17065
+ },
17066
+ "ratio": {
17067
+ "enum": [
17068
+ "16:9",
17069
+ "9:16",
17070
+ "1:1"
17071
+ ],
17072
+ "title": "Ratio",
17073
+ "type": "string"
17074
+ },
17075
+ "resolution": {
17076
+ "enum": [
17077
+ "720p",
17078
+ "1080p"
17079
+ ],
17080
+ "title": "Resolution",
17081
+ "type": "string"
17082
+ },
17083
+ "defaults": {
17084
+ "$ref": "#/$defs/ProjectDefaults"
17085
+ },
17086
+ "rev": {
17087
+ "default": 0,
17088
+ "title": "Rev",
17089
+ "type": "integer"
17090
+ },
17091
+ "folder_id": {
17092
+ "anyOf": [
17093
+ {
17094
+ "type": "string"
17095
+ },
17096
+ {
17097
+ "type": "null"
17098
+ }
17099
+ ],
17100
+ "default": null,
17101
+ "title": "Folder Id"
17102
+ },
17103
+ "cut_count": {
17104
+ "default": 0,
17105
+ "title": "Cut Count",
17106
+ "type": "integer"
17107
+ },
17108
+ "created_by": {
17109
+ "title": "Created By",
17110
+ "type": "string"
17111
+ },
17112
+ "created_at": {
17113
+ "title": "Created At",
17114
+ "type": "string"
17115
+ },
17116
+ "updated_at": {
17117
+ "title": "Updated At",
17118
+ "type": "string"
17119
+ },
17120
+ "thumbnail_url": {
17121
+ "anyOf": [
17122
+ {
17123
+ "type": "string"
17124
+ },
17125
+ {
17126
+ "type": "null"
17127
+ }
17128
+ ],
17129
+ "default": null,
17130
+ "title": "Thumbnail Url"
17131
+ }
17132
+ },
17133
+ "required": [
17134
+ "slug",
17135
+ "workspace_id",
17136
+ "title",
17137
+ "ratio",
17138
+ "resolution",
17139
+ "created_by",
17140
+ "created_at",
17141
+ "updated_at"
17142
+ ],
17143
+ "title": "ProjectView",
17144
+ "type": "object"
17145
+ },
17146
+ "annotations": {
17147
+ "readOnlyHint": false,
17148
+ "destructiveHint": false,
17149
+ "idempotentHint": false,
17150
+ "openWorldHint": false
17151
+ }
17152
+ },
17153
+ {
17154
+ "name": "democut_get_options",
17155
+ "description": "\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC4F8 \uC218 \uC788\uB294 \uBC29\uC2DD\xB7\uC9C4\uD589(host)\xB7\uD544\uC218 \uD544\uB4DC\xB7BYO \uD544\uB4DC\xB7\uBCF4\uC774\uC2A4\xB7\uC544\uBC14\uD0C0\xB7\uBC30\uACBD\xB7\uB2E8\uAC00\xB7\uC794\uC561. recommended_mode=ai_video. \uB2E8\uAC00\uB294 \uCC38\uACE0\uAC12\uC774\uB2E4 \u2014 \uCCAD\uAD6C\uB294 democut_estimate_cuts \uC758 \uAC12\uC73C\uB85C. \uB2E4\uC74C \uD638\uCD9C: democut_upload_asset, democut_estimate_cuts.",
17156
+ "inputSchema": {
17157
+ "type": "object",
17158
+ "properties": {
17159
+ "slug": {
17160
+ "type": "string",
17161
+ "description": "\uD504\uB85C\uC81D\uD2B8 \uC2AC\uB7EC\uADF8(list_projects)"
17162
+ }
17163
+ },
17164
+ "required": [
17165
+ "slug"
17166
+ ],
17167
+ "additionalProperties": false
17168
+ },
17169
+ "outputSchema": {
17170
+ "$defs": {
17171
+ "AssetView": {
17172
+ "properties": {
17173
+ "id": {
17174
+ "title": "Id",
17175
+ "type": "string"
17176
+ },
17177
+ "workspace_id": {
17178
+ "title": "Workspace Id",
17179
+ "type": "string"
17180
+ },
17181
+ "project_slug": {
17182
+ "anyOf": [
17183
+ {
17184
+ "type": "string"
17185
+ },
17186
+ {
17187
+ "type": "null"
17188
+ }
17189
+ ],
17190
+ "default": null,
17191
+ "title": "Project Slug"
17192
+ },
17193
+ "kind": {
17194
+ "enum": [
17195
+ "image",
17196
+ "video",
17197
+ "audio",
17198
+ "subtitle",
17199
+ "code",
17200
+ "archive"
17201
+ ],
17202
+ "title": "Kind",
17203
+ "type": "string"
17204
+ },
17205
+ "origin": {
17206
+ "description": "upload|url_fetch|render|image_gen|export|pip|from_video|thumbnail|idle_motion|background|legacy_import (\uC77D\uAE30 \uAD00\uC6A9)",
17207
+ "title": "Origin",
17208
+ "type": "string"
17209
+ },
17210
+ "mime": {
17211
+ "title": "Mime",
17212
+ "type": "string"
17213
+ },
17214
+ "bytes": {
17215
+ "minimum": 0,
17216
+ "title": "Bytes",
17217
+ "type": "integer"
17218
+ },
17219
+ "sha256": {
17220
+ "anyOf": [
17221
+ {
17222
+ "type": "string"
17223
+ },
17224
+ {
17225
+ "type": "null"
17226
+ }
17227
+ ],
17228
+ "default": null,
17229
+ "title": "Sha256"
17230
+ },
17231
+ "meta": {
17232
+ "additionalProperties": true,
17233
+ "title": "Meta",
17234
+ "type": "object"
17235
+ },
17236
+ "state": {
17237
+ "enum": [
17238
+ "pending",
17239
+ "ready",
17240
+ "deleted"
17241
+ ],
17242
+ "title": "State",
17243
+ "type": "string"
17244
+ },
17245
+ "created_by": {
17246
+ "title": "Created By",
17247
+ "type": "string"
17248
+ },
17249
+ "created_at": {
17250
+ "title": "Created At",
17251
+ "type": "string"
17252
+ },
17253
+ "download_url": {
17254
+ "anyOf": [
17255
+ {
17256
+ "type": "string"
17257
+ },
17258
+ {
17259
+ "type": "null"
17260
+ }
17261
+ ],
17262
+ "default": null,
17263
+ "title": "Download Url"
17264
+ }
17265
+ },
17266
+ "required": [
17267
+ "id",
17268
+ "workspace_id",
17269
+ "kind",
17270
+ "origin",
17271
+ "mime",
17272
+ "bytes",
17273
+ "state",
17274
+ "created_by",
17275
+ "created_at"
17276
+ ],
17277
+ "title": "AssetView",
17278
+ "type": "object"
17279
+ },
17280
+ "Brand": {
17281
+ "properties": {
17282
+ "accent_hex": {
17283
+ "anyOf": [
17284
+ {
17285
+ "pattern": "^#[0-9A-Fa-f]{6}$",
17286
+ "type": "string"
17287
+ },
17288
+ {
17289
+ "type": "null"
17290
+ }
17291
+ ],
17292
+ "default": null,
17293
+ "title": "Accent Hex"
17294
+ },
17295
+ "heading_font": {
17296
+ "anyOf": [
17297
+ {
17298
+ "type": "string"
17299
+ },
17300
+ {
17301
+ "type": "null"
17302
+ }
17303
+ ],
17304
+ "default": null,
17305
+ "title": "Heading Font"
17306
+ },
17307
+ "body_font": {
17308
+ "anyOf": [
17309
+ {
17310
+ "type": "string"
17311
+ },
17312
+ {
17313
+ "type": "null"
17314
+ }
17315
+ ],
17316
+ "default": null,
17317
+ "title": "Body Font"
17318
+ },
17319
+ "logo_asset_id": {
17320
+ "anyOf": [
17321
+ {
17322
+ "type": "string"
17323
+ },
17324
+ {
17325
+ "type": "null"
17326
+ }
17327
+ ],
17328
+ "default": null,
17329
+ "title": "Logo Asset Id"
17330
+ }
17331
+ },
17332
+ "title": "Brand",
17333
+ "type": "object"
17334
+ },
17335
+ "CharacterPhotoView": {
17006
17336
  "properties": {
17007
17337
  "id": {
17008
17338
  "title": "Id",
@@ -17064,7 +17394,6 @@ var GENERATED_TOOLS = [
17064
17394
  "type": "object"
17065
17395
  },
17066
17396
  "CharacterView": {
17067
- "additionalProperties": false,
17068
17397
  "properties": {
17069
17398
  "id": {
17070
17399
  "title": "Id",
@@ -17149,7 +17478,6 @@ var GENERATED_TOOLS = [
17149
17478
  "type": "object"
17150
17479
  },
17151
17480
  "ImageModelOption": {
17152
- "additionalProperties": false,
17153
17481
  "description": "\uCEF7 \uC774\uBBF8\uC9C0 \uC0DD\uC131 \uBAA8\uB378 \uD558\uB098 \u2014 \uC774\uB984\uACFC **\uC9C0\uAE08 \uACE0\uB97C \uC218 \uC788\uB294\uAC00**.\n\n\u2605\u2605 `available` \uC774 \uC788\uB294 \uC774\uC720: \uBAA9\uB85D\uC5D0 \uC788\uB2E4\uACE0 \uB2E4 \uC4F8 \uC218 \uC788\uB294 \uAC83\uC774 \uC544\uB2C8\uB2E4. \uC774\uBBF8\uC9C0 \uBAA8\uB378\uC740\n**\uD1A0\uD070 \uACFC\uAE08**\uC774\uB77C \uACAC\uC801\uC774 \uC0C1\uD55C\uC774\uACE0, \uADF8 \uC0C1\uD55C\uC744 \uC544\uC9C1 \uC7AC\uC9C0 \uC54A\uC740 \uBAA8\uB378\uC740 \uACAC\uC801 \uC790\uCCB4\uAC00 422\n(`IMAGE_MODEL_NOT_MEASURED`)\uB2E4. \uC774\uB984\uB9CC \uC8FC\uACE0 \uADF8 \uC0AC\uC2E4\uC744 \uAC10\uCD94\uBA74 \uD638\uCD9C\uC790\uB294 422 \uB97C \uBC1B\uACE0\uB3C4\n\uBB34\uC5C7\uC744 \uACE8\uB77C\uC57C \uD560\uC9C0 \uC54C \uC218 \uC5C6\uB2E4 \u2014 \uADF8\uB798\uC11C **\uAC70\uBD80\uC758 \uC774\uC720\uB97C \uBAA9\uB85D\uC774 \uBBF8\uB9AC \uB9D0\uD55C\uB2E4**.",
17154
17482
  "properties": {
17155
17483
  "name": {
@@ -17170,7 +17498,6 @@ var GENERATED_TOOLS = [
17170
17498
  "type": "object"
17171
17499
  },
17172
17500
  "ProjectDefaults": {
17173
- "additionalProperties": false,
17174
17501
  "properties": {
17175
17502
  "voice_id": {
17176
17503
  "anyOf": [
@@ -17209,7 +17536,6 @@ var GENERATED_TOOLS = [
17209
17536
  "type": "object"
17210
17537
  },
17211
17538
  "ProjectView": {
17212
- "additionalProperties": false,
17213
17539
  "properties": {
17214
17540
  "slug": {
17215
17541
  "title": "Slug",
@@ -17304,7 +17630,6 @@ var GENERATED_TOOLS = [
17304
17630
  "type": "object"
17305
17631
  },
17306
17632
  "RateView": {
17307
- "additionalProperties": false,
17308
17633
  "properties": {
17309
17634
  "ref_type": {
17310
17635
  "title": "Ref Type",
@@ -17340,7 +17665,6 @@ var GENERATED_TOOLS = [
17340
17665
  "type": "object"
17341
17666
  },
17342
17667
  "VoiceOption": {
17343
- "additionalProperties": false,
17344
17668
  "properties": {
17345
17669
  "id": {
17346
17670
  "title": "Id",
@@ -17388,7 +17712,6 @@ var GENERATED_TOOLS = [
17388
17712
  "type": "object"
17389
17713
  }
17390
17714
  },
17391
- "additionalProperties": false,
17392
17715
  "properties": {
17393
17716
  "recommended_mode": {
17394
17717
  "const": "ai_video",
@@ -17559,7 +17882,6 @@ var GENERATED_TOOLS = [
17559
17882
  ]
17560
17883
  },
17561
17884
  "outputSchema": {
17562
- "additionalProperties": false,
17563
17885
  "properties": {
17564
17886
  "id": {
17565
17887
  "title": "Id",
@@ -18526,7 +18848,6 @@ var GENERATED_TOOLS = [
18526
18848
  "outputSchema": {
18527
18849
  "$defs": {
18528
18850
  "EstimateItemResult": {
18529
- "additionalProperties": false,
18530
18851
  "properties": {
18531
18852
  "cut_id": {
18532
18853
  "anyOf": [
@@ -18578,7 +18899,6 @@ var GENERATED_TOOLS = [
18578
18899
  "type": "object"
18579
18900
  },
18580
18901
  "EstimateNote": {
18581
- "additionalProperties": false,
18582
18902
  "description": "\uACAC\uC801 \uD56D\uBAA9\uC758 **\uC8FC\uC758** \u2014 \uB9C9\uC9C0\uB294 \uC54A\uC9C0\uB9CC \uADF8\uB300\uB85C \uC9C4\uD589\uD558\uBA74 \uACB0\uACFC\uAC00 \uC758\uB3C4\uC640 \uB2E4\uB97C \uC218 \uC788\uB294 \uAC83.\n\n\u2605\u2605 `blocked_reason`(\uACAC\uC801 \uBD88\uAC00)\uACFC **\uB2E4\uB978 \uC790\uB9AC**\uB2E4: \uADF8\uCABD\uC740 \uB9CC\uB4E4 \uC218 \uC5C6\uB2E4\uB294 \uB73B\uC774\uACE0 \uC774\uCABD\uC740\n\u300C\uB9CC\uB4E4 \uC218\uB294 \uC788\uB294\uB370 \uC774\uAC78 \uC54C\uACE0 \uACE0\uB974\uB77C\u300D \uB2E4. \uCC28\uB2E8\uC73C\uB85C \uBC14\uAFB8\uBA74 \uC815\uB2F9\uD55C \uC120\uD0DD(\uB85C\uACE0\xB7\uCD94\uC0C1 \uC7A5\uBA74\uC758 t2v)\uC774\n\uB9C9\uD788\uACE0, \uC548\uB0B4\uAC00 \uC5C6\uC73C\uBA74 \uC0AC\uC6A9\uC790\uAC00 \uACE0\uB978 \uC801 \uC5C6\uB294 \uBC29\uC2DD\uC73C\uB85C **\uC870\uC6A9\uD788** \uB098\uAC04\uB2E4.\n\u2605 \uCF54\uB4DC\uC640 \uBB38\uC7A5\uC744 \uD568\uAED8 \uC2E3\uB294\uB2E4 \u2014 \uC6F9\uC740 \uCF54\uB4DC\uB85C \uC790\uAE30 \uBB38\uAD6C\uB97C \uC4F8 \uC218 \uC788\uACE0, \uC5D0\uC774\uC804\uD2B8\uB294 \uBB38\uC7A5\uC744 \uADF8\uB300\uB85C \uC77D\uB294\uB2E4.\n \u26A0\uFE0F \uBB38\uC7A5 \uC18D \uB3C4\uAD6C \uC774\uB984\uC740 **\uC804\uC1A1 \uACC4\uCE35\uC774 \uC811\uB450\uC0AC\uB97C \uBD99\uC778\uB2E4**(\uC6D0\uACA9 `upload_asset` / stdio\n `democut_upload_asset`) \u2014 \uC5EC\uAE30\uC11C \uC811\uB450\uC0AC\uB97C \uBC15\uC73C\uBA74 \uD55C\uCABD\uC5D0\uC11C \uBD80\uB97C \uC218 \uC5C6\uB294 \uC774\uB984\uC774 \uB41C\uB2E4.",
18583
18903
  "properties": {
18584
18904
  "code": {
@@ -18611,7 +18931,6 @@ var GENERATED_TOOLS = [
18611
18931
  "type": "object"
18612
18932
  },
18613
18933
  "QuoteRow": {
18614
- "additionalProperties": false,
18615
18934
  "properties": {
18616
18935
  "key": {
18617
18936
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -18659,7 +18978,6 @@ var GENERATED_TOOLS = [
18659
18978
  "type": "object"
18660
18979
  }
18661
18980
  },
18662
- "additionalProperties": false,
18663
18981
  "properties": {
18664
18982
  "items": {
18665
18983
  "items": {
@@ -19557,7 +19875,6 @@ var GENERATED_TOOLS = [
19557
19875
  "outputSchema": {
19558
19876
  "$defs": {
19559
19877
  "MakeJobRef": {
19560
- "additionalProperties": false,
19561
19878
  "properties": {
19562
19879
  "cut_id": {
19563
19880
  "title": "Cut Id",
@@ -19586,7 +19903,6 @@ var GENERATED_TOOLS = [
19586
19903
  "type": "object"
19587
19904
  },
19588
19905
  "Quote": {
19589
- "additionalProperties": false,
19590
19906
  "properties": {
19591
19907
  "rows": {
19592
19908
  "items": {
@@ -19626,7 +19942,6 @@ var GENERATED_TOOLS = [
19626
19942
  "type": "object"
19627
19943
  },
19628
19944
  "QuoteRow": {
19629
- "additionalProperties": false,
19630
19945
  "properties": {
19631
19946
  "key": {
19632
19947
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -19674,7 +19989,6 @@ var GENERATED_TOOLS = [
19674
19989
  "type": "object"
19675
19990
  }
19676
19991
  },
19677
- "additionalProperties": false,
19678
19992
  "properties": {
19679
19993
  "batch_id": {
19680
19994
  "title": "Batch Id",
@@ -19711,7 +20025,7 @@ var GENERATED_TOOLS = [
19711
20025
  },
19712
20026
  {
19713
20027
  "name": "democut_wait_jobs",
19714
- "description": "\uC7A1\uC774 \uB05D\uB0A0 \uB54C\uAE4C\uC9C0 \uAE30\uB2E4\uB9B0\uB2E4(\uC694\uCCAD\uD55C \uBAA8\uB4E0 id \uC758 \uC2A4\uB0C5\uC0F7 + all_done). all_done=false \uBA74 \uC544\uC9C1 \uC548 \uB05D\uB09C id \uB9CC \uAC19\uC740 \uB3C4\uAD6C\uB85C \uB2E4\uC2DC \uBD80\uB978\uB2E4. \uB05D\uB09C \uC7A1\uC758 result.download \uB85C \uBC14\uB85C \uB0B4\uB824\uBC1B\uB294\uB2E4. job_ids\xB7batch_id\xB7project \uC911 \uD558\uB098\uB294 \uC788\uC5B4\uC57C \uD55C\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_download, democut_get_cut.",
20028
+ "description": "\uC7A1\uC774 \uB05D\uB0A0 \uB54C\uAE4C\uC9C0 \uAE30\uB2E4\uB9B0\uB2E4(\uC694\uCCAD\uD55C \uBAA8\uB4E0 id \uC758 \uC2A4\uB0C5\uC0F7 + all_done). all_done=false \uBA74 \uC544\uC9C1 \uC548 \uB05D\uB09C id \uB9CC \uAC19\uC740 \uB3C4\uAD6C\uB85C \uB2E4\uC2DC \uBD80\uB978\uB2E4. \uB05D\uB09C \uC7A1\uC758 result.download \uB85C \uBC14\uB85C \uB0B4\uB824\uBC1B\uB294\uB2E4. state=error \uC778 \uC7A1\uC740 \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB2E4 \u2014 error.message \uAC00 \uC0AC\uC720, error.hint \uAC00 \uB2E4\uC74C \uD589\uB3D9, refunded_krw \uAC00 \uD658\uBD88\uC561\uC774\uB2C8 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC54C\uB9B0\uB2E4. job_ids\xB7batch_id\xB7project \uC911 \uD558\uB098\uB294 \uC788\uC5B4\uC57C \uD55C\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_download, democut_get_cut.",
19715
20029
  "inputSchema": {
19716
20030
  "type": "object",
19717
20031
  "properties": {
@@ -19807,7 +20121,6 @@ var GENERATED_TOOLS = [
19807
20121
  "outputSchema": {
19808
20122
  "$defs": {
19809
20123
  "DownloadUrls": {
19810
- "additionalProperties": false,
19811
20124
  "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.",
19812
20125
  "properties": {
19813
20126
  "video": {
@@ -19875,7 +20188,6 @@ var GENERATED_TOOLS = [
19875
20188
  "type": "object"
19876
20189
  },
19877
20190
  "JobError": {
19878
- "additionalProperties": false,
19879
20191
  "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
19880
20192
  "properties": {
19881
20193
  "code": {
@@ -19954,7 +20266,6 @@ var GENERATED_TOOLS = [
19954
20266
  "type": "object"
19955
20267
  },
19956
20268
  "JobProgress": {
19957
- "additionalProperties": false,
19958
20269
  "properties": {
19959
20270
  "stage": {
19960
20271
  "title": "Stage",
@@ -19988,7 +20299,6 @@ var GENERATED_TOOLS = [
19988
20299
  "type": "object"
19989
20300
  },
19990
20301
  "JobResult": {
19991
- "additionalProperties": false,
19992
20302
  "properties": {
19993
20303
  "cut_id": {
19994
20304
  "anyOf": [
@@ -20059,7 +20369,6 @@ var GENERATED_TOOLS = [
20059
20369
  "type": "object"
20060
20370
  },
20061
20371
  "JobView": {
20062
- "additionalProperties": false,
20063
20372
  "properties": {
20064
20373
  "job_id": {
20065
20374
  "title": "Job Id",
@@ -20220,7 +20529,6 @@ var GENERATED_TOOLS = [
20220
20529
  "type": "object"
20221
20530
  },
20222
20531
  "Quote": {
20223
- "additionalProperties": false,
20224
20532
  "properties": {
20225
20533
  "rows": {
20226
20534
  "items": {
@@ -20260,7 +20568,6 @@ var GENERATED_TOOLS = [
20260
20568
  "type": "object"
20261
20569
  },
20262
20570
  "QuoteRow": {
20263
- "additionalProperties": false,
20264
20571
  "properties": {
20265
20572
  "key": {
20266
20573
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -20308,7 +20615,6 @@ var GENERATED_TOOLS = [
20308
20615
  "type": "object"
20309
20616
  }
20310
20617
  },
20311
- "additionalProperties": false,
20312
20618
  "properties": {
20313
20619
  "jobs": {
20314
20620
  "description": "\uC694\uCCAD\uD55C **\uBAA8\uB4E0** id \uC758 \uC2A4\uB0C5\uC0F7(\uBCC0\uACBD\uBD84\uB9CC\uC774 \uC544\uB2C8\uB2E4)",
@@ -20339,7 +20645,7 @@ var GENERATED_TOOLS = [
20339
20645
  },
20340
20646
  {
20341
20647
  "name": "democut_get_cut",
20342
- "description": "\uCEF7 \uD558\uB098 \u2014 \uBC84\uC804 \uBAA9\uB85D\uACFC \uBC84\uC804\uB9C8\uB2E4 download{video,audio,subtitle,still} \uC11C\uBA85 URL. \uD0C0\uC774\uBC0D\uC740 versions[].timing \uC5D0 \uC778\uB77C\uC778. current_version \uC774 \uC5C6\uC73C\uBA74 \uACC4\uD68D \uCEF7\uC774\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_download, democut_make_cuts.",
20648
+ "description": "\uCEF7 \uD558\uB098 \u2014 \uBC84\uC804 \uBAA9\uB85D\uACFC \uBC84\uC804\uB9C8\uB2E4 download{video,audio,subtitle,still} \uC11C\uBA85 URL. \uD0C0\uC774\uBC0D\uC740 versions[].timing \uC5D0 \uC778\uB77C\uC778. current_version \uC774 \uC5C6\uC73C\uBA74 \uACC4\uD68D \uCEF7(state=planned)\uC774\uAC70\uB098 \uB9CC\uB4E4\uAE30\uAC00 \uC2E4\uD328\uD55C \uCEF7(state=failed \u2014 \uC0AC\uC720\xB7\uD658\uBD88\uC561\uC740 last_error)\uC774\uB2E4. \uB2E4\uC74C \uD638\uCD9C: democut_download, democut_make_cuts.",
20343
20649
  "inputSchema": {
20344
20650
  "type": "object",
20345
20651
  "properties": {
@@ -20361,7 +20667,6 @@ var GENERATED_TOOLS = [
20361
20667
  "outputSchema": {
20362
20668
  "$defs": {
20363
20669
  "AiVideoSpec": {
20364
- "additionalProperties": false,
20365
20670
  "properties": {
20366
20671
  "dialogue": {
20367
20672
  "items": {
@@ -20558,7 +20863,6 @@ var GENERATED_TOOLS = [
20558
20863
  "type": "object"
20559
20864
  },
20560
20865
  "AssetImageRef": {
20561
- "additionalProperties": false,
20562
20866
  "properties": {
20563
20867
  "kind": {
20564
20868
  "const": "asset",
@@ -20579,7 +20883,6 @@ var GENERATED_TOOLS = [
20579
20883
  "type": "object"
20580
20884
  },
20581
20885
  "CanvasPos": {
20582
- "additionalProperties": false,
20583
20886
  "properties": {
20584
20887
  "x": {
20585
20888
  "default": 0,
@@ -20596,7 +20899,6 @@ var GENERATED_TOOLS = [
20596
20899
  "type": "object"
20597
20900
  },
20598
20901
  "CutEdit": {
20599
- "additionalProperties": false,
20600
20902
  "properties": {
20601
20903
  "trim_in_ms": {
20602
20904
  "default": 0,
@@ -20634,7 +20936,6 @@ var GENERATED_TOOLS = [
20634
20936
  "type": "object"
20635
20937
  },
20636
20938
  "CutImageView": {
20637
- "additionalProperties": false,
20638
20939
  "properties": {
20639
20940
  "id": {
20640
20941
  "title": "Id",
@@ -20693,7 +20994,6 @@ var GENERATED_TOOLS = [
20693
20994
  "type": "object"
20694
20995
  },
20695
20996
  "CutVersionView": {
20696
- "additionalProperties": false,
20697
20997
  "properties": {
20698
20998
  "version": {
20699
20999
  "minimum": 1,
@@ -20801,7 +21101,6 @@ var GENERATED_TOOLS = [
20801
21101
  "type": "object"
20802
21102
  },
20803
21103
  "DialogueLine": {
20804
- "additionalProperties": false,
20805
21104
  "properties": {
20806
21105
  "id": {
20807
21106
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -20854,7 +21153,6 @@ var GENERATED_TOOLS = [
20854
21153
  "type": "object"
20855
21154
  },
20856
21155
  "DialogueTiming": {
20857
- "additionalProperties": false,
20858
21156
  "properties": {
20859
21157
  "id": {
20860
21158
  "title": "Id",
@@ -20880,7 +21178,6 @@ var GENERATED_TOOLS = [
20880
21178
  "type": "object"
20881
21179
  },
20882
21180
  "DownloadUrls": {
20883
- "additionalProperties": false,
20884
21181
  "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.",
20885
21182
  "properties": {
20886
21183
  "video": {
@@ -20948,7 +21245,6 @@ var GENERATED_TOOLS = [
20948
21245
  "type": "object"
20949
21246
  },
20950
21247
  "FromCutImageRef": {
20951
- "additionalProperties": false,
20952
21248
  "properties": {
20953
21249
  "kind": {
20954
21250
  "const": "from_cut",
@@ -20979,7 +21275,6 @@ var GENERATED_TOOLS = [
20979
21275
  "type": "object"
20980
21276
  },
20981
21277
  "FromVersionImageRef": {
20982
- "additionalProperties": false,
20983
21278
  "properties": {
20984
21279
  "kind": {
20985
21280
  "const": "from_version",
@@ -21009,8 +21304,85 @@ var GENERATED_TOOLS = [
21009
21304
  "title": "FromVersionImageRef",
21010
21305
  "type": "object"
21011
21306
  },
21307
+ "JobError": {
21308
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
21309
+ "properties": {
21310
+ "code": {
21311
+ "title": "Code",
21312
+ "type": "string"
21313
+ },
21314
+ "message": {
21315
+ "title": "Message",
21316
+ "type": "string"
21317
+ },
21318
+ "retryable": {
21319
+ "default": false,
21320
+ "title": "Retryable",
21321
+ "type": "boolean"
21322
+ },
21323
+ "refunded_krw": {
21324
+ "default": 0,
21325
+ "title": "Refunded Krw",
21326
+ "type": "integer"
21327
+ },
21328
+ "hint": {
21329
+ "anyOf": [
21330
+ {
21331
+ "type": "string"
21332
+ },
21333
+ {
21334
+ "type": "null"
21335
+ }
21336
+ ],
21337
+ "default": null,
21338
+ "title": "Hint"
21339
+ },
21340
+ "provider_job_id": {
21341
+ "anyOf": [
21342
+ {
21343
+ "type": "string"
21344
+ },
21345
+ {
21346
+ "type": "null"
21347
+ }
21348
+ ],
21349
+ "default": null,
21350
+ "title": "Provider Job Id"
21351
+ },
21352
+ "cause": {
21353
+ "anyOf": [
21354
+ {
21355
+ "type": "string"
21356
+ },
21357
+ {
21358
+ "type": "null"
21359
+ }
21360
+ ],
21361
+ "default": null,
21362
+ "title": "Cause"
21363
+ },
21364
+ "data": {
21365
+ "anyOf": [
21366
+ {
21367
+ "additionalProperties": true,
21368
+ "type": "object"
21369
+ },
21370
+ {
21371
+ "type": "null"
21372
+ }
21373
+ ],
21374
+ "default": null,
21375
+ "title": "Data"
21376
+ }
21377
+ },
21378
+ "required": [
21379
+ "code",
21380
+ "message"
21381
+ ],
21382
+ "title": "JobError",
21383
+ "type": "object"
21384
+ },
21012
21385
  "MotionGraphicSpec": {
21013
- "additionalProperties": false,
21014
21386
  "properties": {
21015
21387
  "dialogue": {
21016
21388
  "items": {
@@ -21156,7 +21528,6 @@ var GENERATED_TOOLS = [
21156
21528
  "type": "object"
21157
21529
  },
21158
21530
  "PipSpec": {
21159
- "additionalProperties": false,
21160
21531
  "properties": {
21161
21532
  "avatar_id": {
21162
21533
  "minLength": 1,
@@ -21199,7 +21570,6 @@ var GENERATED_TOOLS = [
21199
21570
  "type": "object"
21200
21571
  },
21201
21572
  "Quote": {
21202
- "additionalProperties": false,
21203
21573
  "properties": {
21204
21574
  "rows": {
21205
21575
  "items": {
@@ -21239,7 +21609,6 @@ var GENERATED_TOOLS = [
21239
21609
  "type": "object"
21240
21610
  },
21241
21611
  "QuoteRow": {
21242
- "additionalProperties": false,
21243
21612
  "properties": {
21244
21613
  "key": {
21245
21614
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -21287,7 +21656,6 @@ var GENERATED_TOOLS = [
21287
21656
  "type": "object"
21288
21657
  },
21289
21658
  "Timing": {
21290
- "additionalProperties": false,
21291
21659
  "properties": {
21292
21660
  "dialogue": {
21293
21661
  "items": {
@@ -21330,7 +21698,6 @@ var GENERATED_TOOLS = [
21330
21698
  "type": "object"
21331
21699
  },
21332
21700
  "YoutubeAssetSource": {
21333
- "additionalProperties": false,
21334
21701
  "properties": {
21335
21702
  "kind": {
21336
21703
  "const": "asset",
@@ -21378,7 +21745,6 @@ var GENERATED_TOOLS = [
21378
21745
  "type": "object"
21379
21746
  },
21380
21747
  "YoutubeClipSpec": {
21381
- "additionalProperties": false,
21382
21748
  "properties": {
21383
21749
  "dialogue": {
21384
21750
  "items": {
@@ -21505,7 +21871,6 @@ var GENERATED_TOOLS = [
21505
21871
  "type": "object"
21506
21872
  },
21507
21873
  "YoutubeUrlSource": {
21508
- "additionalProperties": false,
21509
21874
  "properties": {
21510
21875
  "kind": {
21511
21876
  "const": "url",
@@ -21539,7 +21904,6 @@ var GENERATED_TOOLS = [
21539
21904
  "type": "object"
21540
21905
  }
21541
21906
  },
21542
- "additionalProperties": false,
21543
21907
  "properties": {
21544
21908
  "id": {
21545
21909
  "title": "Id",
@@ -21711,6 +22075,31 @@ var GENERATED_TOOLS = [
21711
22075
  "default": null,
21712
22076
  "title": "Active Job Id"
21713
22077
  },
22078
+ "last_job_id": {
22079
+ "anyOf": [
22080
+ {
22081
+ "type": "string"
22082
+ },
22083
+ {
22084
+ "type": "null"
22085
+ }
22086
+ ],
22087
+ "default": null,
22088
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
22089
+ "title": "Last Job Id"
22090
+ },
22091
+ "last_error": {
22092
+ "anyOf": [
22093
+ {
22094
+ "$ref": "#/$defs/JobError"
22095
+ },
22096
+ {
22097
+ "type": "null"
22098
+ }
22099
+ ],
22100
+ "default": null,
22101
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
22102
+ },
21714
22103
  "next_calls": {
21715
22104
  "items": {
21716
22105
  "type": "string"
@@ -21788,7 +22177,6 @@ var GENERATED_TOOLS = [
21788
22177
  "additionalProperties": false
21789
22178
  },
21790
22179
  "outputSchema": {
21791
- "additionalProperties": false,
21792
22180
  "properties": {
21793
22181
  "url": {
21794
22182
  "description": "\uC11C\uBA85 URL(1\uC2DC\uAC04). stdio \uB294 output_path \uB85C \uC800\uC7A5\uD558\uACE0 \uACBD\uB85C\uB97C \uB3CC\uB824\uC900\uB2E4",
@@ -21896,7 +22284,6 @@ var GENERATED_TOOLS = [
21896
22284
  "outputSchema": {
21897
22285
  "$defs": {
21898
22286
  "Quote": {
21899
- "additionalProperties": false,
21900
22287
  "properties": {
21901
22288
  "rows": {
21902
22289
  "items": {
@@ -21936,7 +22323,6 @@ var GENERATED_TOOLS = [
21936
22323
  "type": "object"
21937
22324
  },
21938
22325
  "QuoteRow": {
21939
- "additionalProperties": false,
21940
22326
  "properties": {
21941
22327
  "key": {
21942
22328
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -21984,7 +22370,6 @@ var GENERATED_TOOLS = [
21984
22370
  "type": "object"
21985
22371
  }
21986
22372
  },
21987
- "additionalProperties": false,
21988
22373
  "properties": {
21989
22374
  "cut_id": {
21990
22375
  "title": "Cut Id",
@@ -22037,7 +22422,6 @@ var GENERATED_TOOLS = [
22037
22422
  "additionalProperties": false
22038
22423
  },
22039
22424
  "outputSchema": {
22040
- "additionalProperties": false,
22041
22425
  "properties": {
22042
22426
  "cancelled": {
22043
22427
  "items": {
@@ -22086,7 +22470,6 @@ var GENERATED_TOOLS = [
22086
22470
  "additionalProperties": false
22087
22471
  },
22088
22472
  "outputSchema": {
22089
- "additionalProperties": false,
22090
22473
  "properties": {
22091
22474
  "id": {
22092
22475
  "title": "Id",
@@ -22260,7 +22643,6 @@ var GENERATED_TOOLS = [
22260
22643
  "outputSchema": {
22261
22644
  "$defs": {
22262
22645
  "AiVideoSpec": {
22263
- "additionalProperties": false,
22264
22646
  "properties": {
22265
22647
  "dialogue": {
22266
22648
  "items": {
@@ -22457,7 +22839,6 @@ var GENERATED_TOOLS = [
22457
22839
  "type": "object"
22458
22840
  },
22459
22841
  "AssetImageRef": {
22460
- "additionalProperties": false,
22461
22842
  "properties": {
22462
22843
  "kind": {
22463
22844
  "const": "asset",
@@ -22478,7 +22859,6 @@ var GENERATED_TOOLS = [
22478
22859
  "type": "object"
22479
22860
  },
22480
22861
  "CanvasPos": {
22481
- "additionalProperties": false,
22482
22862
  "properties": {
22483
22863
  "x": {
22484
22864
  "default": 0,
@@ -22495,7 +22875,6 @@ var GENERATED_TOOLS = [
22495
22875
  "type": "object"
22496
22876
  },
22497
22877
  "CutEdit": {
22498
- "additionalProperties": false,
22499
22878
  "properties": {
22500
22879
  "trim_in_ms": {
22501
22880
  "default": 0,
@@ -22533,7 +22912,6 @@ var GENERATED_TOOLS = [
22533
22912
  "type": "object"
22534
22913
  },
22535
22914
  "CutImageView": {
22536
- "additionalProperties": false,
22537
22915
  "properties": {
22538
22916
  "id": {
22539
22917
  "title": "Id",
@@ -22592,7 +22970,6 @@ var GENERATED_TOOLS = [
22592
22970
  "type": "object"
22593
22971
  },
22594
22972
  "CutVersionView": {
22595
- "additionalProperties": false,
22596
22973
  "properties": {
22597
22974
  "version": {
22598
22975
  "minimum": 1,
@@ -22700,7 +23077,6 @@ var GENERATED_TOOLS = [
22700
23077
  "type": "object"
22701
23078
  },
22702
23079
  "DialogueLine": {
22703
- "additionalProperties": false,
22704
23080
  "properties": {
22705
23081
  "id": {
22706
23082
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -22753,7 +23129,6 @@ var GENERATED_TOOLS = [
22753
23129
  "type": "object"
22754
23130
  },
22755
23131
  "DialogueTiming": {
22756
- "additionalProperties": false,
22757
23132
  "properties": {
22758
23133
  "id": {
22759
23134
  "title": "Id",
@@ -22779,7 +23154,6 @@ var GENERATED_TOOLS = [
22779
23154
  "type": "object"
22780
23155
  },
22781
23156
  "DownloadUrls": {
22782
- "additionalProperties": false,
22783
23157
  "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.",
22784
23158
  "properties": {
22785
23159
  "video": {
@@ -22847,7 +23221,6 @@ var GENERATED_TOOLS = [
22847
23221
  "type": "object"
22848
23222
  },
22849
23223
  "FromCutImageRef": {
22850
- "additionalProperties": false,
22851
23224
  "properties": {
22852
23225
  "kind": {
22853
23226
  "const": "from_cut",
@@ -22878,7 +23251,6 @@ var GENERATED_TOOLS = [
22878
23251
  "type": "object"
22879
23252
  },
22880
23253
  "FromVersionImageRef": {
22881
- "additionalProperties": false,
22882
23254
  "properties": {
22883
23255
  "kind": {
22884
23256
  "const": "from_version",
@@ -22908,8 +23280,85 @@ var GENERATED_TOOLS = [
22908
23280
  "title": "FromVersionImageRef",
22909
23281
  "type": "object"
22910
23282
  },
23283
+ "JobError": {
23284
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
23285
+ "properties": {
23286
+ "code": {
23287
+ "title": "Code",
23288
+ "type": "string"
23289
+ },
23290
+ "message": {
23291
+ "title": "Message",
23292
+ "type": "string"
23293
+ },
23294
+ "retryable": {
23295
+ "default": false,
23296
+ "title": "Retryable",
23297
+ "type": "boolean"
23298
+ },
23299
+ "refunded_krw": {
23300
+ "default": 0,
23301
+ "title": "Refunded Krw",
23302
+ "type": "integer"
23303
+ },
23304
+ "hint": {
23305
+ "anyOf": [
23306
+ {
23307
+ "type": "string"
23308
+ },
23309
+ {
23310
+ "type": "null"
23311
+ }
23312
+ ],
23313
+ "default": null,
23314
+ "title": "Hint"
23315
+ },
23316
+ "provider_job_id": {
23317
+ "anyOf": [
23318
+ {
23319
+ "type": "string"
23320
+ },
23321
+ {
23322
+ "type": "null"
23323
+ }
23324
+ ],
23325
+ "default": null,
23326
+ "title": "Provider Job Id"
23327
+ },
23328
+ "cause": {
23329
+ "anyOf": [
23330
+ {
23331
+ "type": "string"
23332
+ },
23333
+ {
23334
+ "type": "null"
23335
+ }
23336
+ ],
23337
+ "default": null,
23338
+ "title": "Cause"
23339
+ },
23340
+ "data": {
23341
+ "anyOf": [
23342
+ {
23343
+ "additionalProperties": true,
23344
+ "type": "object"
23345
+ },
23346
+ {
23347
+ "type": "null"
23348
+ }
23349
+ ],
23350
+ "default": null,
23351
+ "title": "Data"
23352
+ }
23353
+ },
23354
+ "required": [
23355
+ "code",
23356
+ "message"
23357
+ ],
23358
+ "title": "JobError",
23359
+ "type": "object"
23360
+ },
22911
23361
  "MotionGraphicSpec": {
22912
- "additionalProperties": false,
22913
23362
  "properties": {
22914
23363
  "dialogue": {
22915
23364
  "items": {
@@ -23055,7 +23504,6 @@ var GENERATED_TOOLS = [
23055
23504
  "type": "object"
23056
23505
  },
23057
23506
  "PipSpec": {
23058
- "additionalProperties": false,
23059
23507
  "properties": {
23060
23508
  "avatar_id": {
23061
23509
  "minLength": 1,
@@ -23098,7 +23546,6 @@ var GENERATED_TOOLS = [
23098
23546
  "type": "object"
23099
23547
  },
23100
23548
  "Quote": {
23101
- "additionalProperties": false,
23102
23549
  "properties": {
23103
23550
  "rows": {
23104
23551
  "items": {
@@ -23138,7 +23585,6 @@ var GENERATED_TOOLS = [
23138
23585
  "type": "object"
23139
23586
  },
23140
23587
  "QuoteRow": {
23141
- "additionalProperties": false,
23142
23588
  "properties": {
23143
23589
  "key": {
23144
23590
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -23186,7 +23632,6 @@ var GENERATED_TOOLS = [
23186
23632
  "type": "object"
23187
23633
  },
23188
23634
  "Timing": {
23189
- "additionalProperties": false,
23190
23635
  "properties": {
23191
23636
  "dialogue": {
23192
23637
  "items": {
@@ -23229,7 +23674,6 @@ var GENERATED_TOOLS = [
23229
23674
  "type": "object"
23230
23675
  },
23231
23676
  "YoutubeAssetSource": {
23232
- "additionalProperties": false,
23233
23677
  "properties": {
23234
23678
  "kind": {
23235
23679
  "const": "asset",
@@ -23277,7 +23721,6 @@ var GENERATED_TOOLS = [
23277
23721
  "type": "object"
23278
23722
  },
23279
23723
  "YoutubeClipSpec": {
23280
- "additionalProperties": false,
23281
23724
  "properties": {
23282
23725
  "dialogue": {
23283
23726
  "items": {
@@ -23404,7 +23847,6 @@ var GENERATED_TOOLS = [
23404
23847
  "type": "object"
23405
23848
  },
23406
23849
  "YoutubeUrlSource": {
23407
- "additionalProperties": false,
23408
23850
  "properties": {
23409
23851
  "kind": {
23410
23852
  "const": "url",
@@ -23438,7 +23880,6 @@ var GENERATED_TOOLS = [
23438
23880
  "type": "object"
23439
23881
  }
23440
23882
  },
23441
- "additionalProperties": false,
23442
23883
  "properties": {
23443
23884
  "id": {
23444
23885
  "title": "Id",
@@ -23610,6 +24051,31 @@ var GENERATED_TOOLS = [
23610
24051
  "default": null,
23611
24052
  "title": "Active Job Id"
23612
24053
  },
24054
+ "last_job_id": {
24055
+ "anyOf": [
24056
+ {
24057
+ "type": "string"
24058
+ },
24059
+ {
24060
+ "type": "null"
24061
+ }
24062
+ ],
24063
+ "default": null,
24064
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
24065
+ "title": "Last Job Id"
24066
+ },
24067
+ "last_error": {
24068
+ "anyOf": [
24069
+ {
24070
+ "$ref": "#/$defs/JobError"
24071
+ },
24072
+ {
24073
+ "type": "null"
24074
+ }
24075
+ ],
24076
+ "default": null,
24077
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
24078
+ },
23613
24079
  "next_calls": {
23614
24080
  "items": {
23615
24081
  "type": "string"
@@ -23674,7 +24140,6 @@ var GENERATED_TOOLS = [
23674
24140
  "outputSchema": {
23675
24141
  "$defs": {
23676
24142
  "AiVideoSpec": {
23677
- "additionalProperties": false,
23678
24143
  "properties": {
23679
24144
  "dialogue": {
23680
24145
  "items": {
@@ -23871,7 +24336,6 @@ var GENERATED_TOOLS = [
23871
24336
  "type": "object"
23872
24337
  },
23873
24338
  "AssetImageRef": {
23874
- "additionalProperties": false,
23875
24339
  "properties": {
23876
24340
  "kind": {
23877
24341
  "const": "asset",
@@ -23892,7 +24356,6 @@ var GENERATED_TOOLS = [
23892
24356
  "type": "object"
23893
24357
  },
23894
24358
  "CanvasPos": {
23895
- "additionalProperties": false,
23896
24359
  "properties": {
23897
24360
  "x": {
23898
24361
  "default": 0,
@@ -23909,7 +24372,6 @@ var GENERATED_TOOLS = [
23909
24372
  "type": "object"
23910
24373
  },
23911
24374
  "CutEdit": {
23912
- "additionalProperties": false,
23913
24375
  "properties": {
23914
24376
  "trim_in_ms": {
23915
24377
  "default": 0,
@@ -23947,7 +24409,6 @@ var GENERATED_TOOLS = [
23947
24409
  "type": "object"
23948
24410
  },
23949
24411
  "CutImageView": {
23950
- "additionalProperties": false,
23951
24412
  "properties": {
23952
24413
  "id": {
23953
24414
  "title": "Id",
@@ -24006,7 +24467,6 @@ var GENERATED_TOOLS = [
24006
24467
  "type": "object"
24007
24468
  },
24008
24469
  "CutVersionView": {
24009
- "additionalProperties": false,
24010
24470
  "properties": {
24011
24471
  "version": {
24012
24472
  "minimum": 1,
@@ -24114,7 +24574,6 @@ var GENERATED_TOOLS = [
24114
24574
  "type": "object"
24115
24575
  },
24116
24576
  "DialogueLine": {
24117
- "additionalProperties": false,
24118
24577
  "properties": {
24119
24578
  "id": {
24120
24579
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -24167,7 +24626,6 @@ var GENERATED_TOOLS = [
24167
24626
  "type": "object"
24168
24627
  },
24169
24628
  "DialogueTiming": {
24170
- "additionalProperties": false,
24171
24629
  "properties": {
24172
24630
  "id": {
24173
24631
  "title": "Id",
@@ -24193,7 +24651,6 @@ var GENERATED_TOOLS = [
24193
24651
  "type": "object"
24194
24652
  },
24195
24653
  "DownloadUrls": {
24196
- "additionalProperties": false,
24197
24654
  "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.",
24198
24655
  "properties": {
24199
24656
  "video": {
@@ -24261,7 +24718,6 @@ var GENERATED_TOOLS = [
24261
24718
  "type": "object"
24262
24719
  },
24263
24720
  "FromCutImageRef": {
24264
- "additionalProperties": false,
24265
24721
  "properties": {
24266
24722
  "kind": {
24267
24723
  "const": "from_cut",
@@ -24292,7 +24748,6 @@ var GENERATED_TOOLS = [
24292
24748
  "type": "object"
24293
24749
  },
24294
24750
  "FromVersionImageRef": {
24295
- "additionalProperties": false,
24296
24751
  "properties": {
24297
24752
  "kind": {
24298
24753
  "const": "from_version",
@@ -24322,8 +24777,85 @@ var GENERATED_TOOLS = [
24322
24777
  "title": "FromVersionImageRef",
24323
24778
  "type": "object"
24324
24779
  },
24780
+ "JobError": {
24781
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
24782
+ "properties": {
24783
+ "code": {
24784
+ "title": "Code",
24785
+ "type": "string"
24786
+ },
24787
+ "message": {
24788
+ "title": "Message",
24789
+ "type": "string"
24790
+ },
24791
+ "retryable": {
24792
+ "default": false,
24793
+ "title": "Retryable",
24794
+ "type": "boolean"
24795
+ },
24796
+ "refunded_krw": {
24797
+ "default": 0,
24798
+ "title": "Refunded Krw",
24799
+ "type": "integer"
24800
+ },
24801
+ "hint": {
24802
+ "anyOf": [
24803
+ {
24804
+ "type": "string"
24805
+ },
24806
+ {
24807
+ "type": "null"
24808
+ }
24809
+ ],
24810
+ "default": null,
24811
+ "title": "Hint"
24812
+ },
24813
+ "provider_job_id": {
24814
+ "anyOf": [
24815
+ {
24816
+ "type": "string"
24817
+ },
24818
+ {
24819
+ "type": "null"
24820
+ }
24821
+ ],
24822
+ "default": null,
24823
+ "title": "Provider Job Id"
24824
+ },
24825
+ "cause": {
24826
+ "anyOf": [
24827
+ {
24828
+ "type": "string"
24829
+ },
24830
+ {
24831
+ "type": "null"
24832
+ }
24833
+ ],
24834
+ "default": null,
24835
+ "title": "Cause"
24836
+ },
24837
+ "data": {
24838
+ "anyOf": [
24839
+ {
24840
+ "additionalProperties": true,
24841
+ "type": "object"
24842
+ },
24843
+ {
24844
+ "type": "null"
24845
+ }
24846
+ ],
24847
+ "default": null,
24848
+ "title": "Data"
24849
+ }
24850
+ },
24851
+ "required": [
24852
+ "code",
24853
+ "message"
24854
+ ],
24855
+ "title": "JobError",
24856
+ "type": "object"
24857
+ },
24325
24858
  "MotionGraphicSpec": {
24326
- "additionalProperties": false,
24327
24859
  "properties": {
24328
24860
  "dialogue": {
24329
24861
  "items": {
@@ -24469,7 +25001,6 @@ var GENERATED_TOOLS = [
24469
25001
  "type": "object"
24470
25002
  },
24471
25003
  "PipSpec": {
24472
- "additionalProperties": false,
24473
25004
  "properties": {
24474
25005
  "avatar_id": {
24475
25006
  "minLength": 1,
@@ -24512,7 +25043,6 @@ var GENERATED_TOOLS = [
24512
25043
  "type": "object"
24513
25044
  },
24514
25045
  "Quote": {
24515
- "additionalProperties": false,
24516
25046
  "properties": {
24517
25047
  "rows": {
24518
25048
  "items": {
@@ -24552,7 +25082,6 @@ var GENERATED_TOOLS = [
24552
25082
  "type": "object"
24553
25083
  },
24554
25084
  "QuoteRow": {
24555
- "additionalProperties": false,
24556
25085
  "properties": {
24557
25086
  "key": {
24558
25087
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -24600,7 +25129,6 @@ var GENERATED_TOOLS = [
24600
25129
  "type": "object"
24601
25130
  },
24602
25131
  "Timing": {
24603
- "additionalProperties": false,
24604
25132
  "properties": {
24605
25133
  "dialogue": {
24606
25134
  "items": {
@@ -24643,7 +25171,6 @@ var GENERATED_TOOLS = [
24643
25171
  "type": "object"
24644
25172
  },
24645
25173
  "YoutubeAssetSource": {
24646
- "additionalProperties": false,
24647
25174
  "properties": {
24648
25175
  "kind": {
24649
25176
  "const": "asset",
@@ -24691,7 +25218,6 @@ var GENERATED_TOOLS = [
24691
25218
  "type": "object"
24692
25219
  },
24693
25220
  "YoutubeClipSpec": {
24694
- "additionalProperties": false,
24695
25221
  "properties": {
24696
25222
  "dialogue": {
24697
25223
  "items": {
@@ -24818,7 +25344,6 @@ var GENERATED_TOOLS = [
24818
25344
  "type": "object"
24819
25345
  },
24820
25346
  "YoutubeUrlSource": {
24821
- "additionalProperties": false,
24822
25347
  "properties": {
24823
25348
  "kind": {
24824
25349
  "const": "url",
@@ -24852,7 +25377,6 @@ var GENERATED_TOOLS = [
24852
25377
  "type": "object"
24853
25378
  }
24854
25379
  },
24855
- "additionalProperties": false,
24856
25380
  "properties": {
24857
25381
  "id": {
24858
25382
  "title": "Id",
@@ -25024,6 +25548,31 @@ var GENERATED_TOOLS = [
25024
25548
  "default": null,
25025
25549
  "title": "Active Job Id"
25026
25550
  },
25551
+ "last_job_id": {
25552
+ "anyOf": [
25553
+ {
25554
+ "type": "string"
25555
+ },
25556
+ {
25557
+ "type": "null"
25558
+ }
25559
+ ],
25560
+ "default": null,
25561
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
25562
+ "title": "Last Job Id"
25563
+ },
25564
+ "last_error": {
25565
+ "anyOf": [
25566
+ {
25567
+ "$ref": "#/$defs/JobError"
25568
+ },
25569
+ {
25570
+ "type": "null"
25571
+ }
25572
+ ],
25573
+ "default": null,
25574
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
25575
+ },
25027
25576
  "next_calls": {
25028
25577
  "items": {
25029
25578
  "type": "string"
@@ -25086,7 +25635,6 @@ var GENERATED_TOOLS = [
25086
25635
  "additionalProperties": false
25087
25636
  },
25088
25637
  "outputSchema": {
25089
- "additionalProperties": false,
25090
25638
  "properties": {
25091
25639
  "deleted": {
25092
25640
  "default": true,
@@ -25177,7 +25725,6 @@ var GENERATED_TOOLS = [
25177
25725
  "outputSchema": {
25178
25726
  "$defs": {
25179
25727
  "EstimateItemResult": {
25180
- "additionalProperties": false,
25181
25728
  "properties": {
25182
25729
  "cut_id": {
25183
25730
  "anyOf": [
@@ -25229,7 +25776,6 @@ var GENERATED_TOOLS = [
25229
25776
  "type": "object"
25230
25777
  },
25231
25778
  "EstimateNote": {
25232
- "additionalProperties": false,
25233
25779
  "description": "\uACAC\uC801 \uD56D\uBAA9\uC758 **\uC8FC\uC758** \u2014 \uB9C9\uC9C0\uB294 \uC54A\uC9C0\uB9CC \uADF8\uB300\uB85C \uC9C4\uD589\uD558\uBA74 \uACB0\uACFC\uAC00 \uC758\uB3C4\uC640 \uB2E4\uB97C \uC218 \uC788\uB294 \uAC83.\n\n\u2605\u2605 `blocked_reason`(\uACAC\uC801 \uBD88\uAC00)\uACFC **\uB2E4\uB978 \uC790\uB9AC**\uB2E4: \uADF8\uCABD\uC740 \uB9CC\uB4E4 \uC218 \uC5C6\uB2E4\uB294 \uB73B\uC774\uACE0 \uC774\uCABD\uC740\n\u300C\uB9CC\uB4E4 \uC218\uB294 \uC788\uB294\uB370 \uC774\uAC78 \uC54C\uACE0 \uACE0\uB974\uB77C\u300D \uB2E4. \uCC28\uB2E8\uC73C\uB85C \uBC14\uAFB8\uBA74 \uC815\uB2F9\uD55C \uC120\uD0DD(\uB85C\uACE0\xB7\uCD94\uC0C1 \uC7A5\uBA74\uC758 t2v)\uC774\n\uB9C9\uD788\uACE0, \uC548\uB0B4\uAC00 \uC5C6\uC73C\uBA74 \uC0AC\uC6A9\uC790\uAC00 \uACE0\uB978 \uC801 \uC5C6\uB294 \uBC29\uC2DD\uC73C\uB85C **\uC870\uC6A9\uD788** \uB098\uAC04\uB2E4.\n\u2605 \uCF54\uB4DC\uC640 \uBB38\uC7A5\uC744 \uD568\uAED8 \uC2E3\uB294\uB2E4 \u2014 \uC6F9\uC740 \uCF54\uB4DC\uB85C \uC790\uAE30 \uBB38\uAD6C\uB97C \uC4F8 \uC218 \uC788\uACE0, \uC5D0\uC774\uC804\uD2B8\uB294 \uBB38\uC7A5\uC744 \uADF8\uB300\uB85C \uC77D\uB294\uB2E4.\n \u26A0\uFE0F \uBB38\uC7A5 \uC18D \uB3C4\uAD6C \uC774\uB984\uC740 **\uC804\uC1A1 \uACC4\uCE35\uC774 \uC811\uB450\uC0AC\uB97C \uBD99\uC778\uB2E4**(\uC6D0\uACA9 `upload_asset` / stdio\n `democut_upload_asset`) \u2014 \uC5EC\uAE30\uC11C \uC811\uB450\uC0AC\uB97C \uBC15\uC73C\uBA74 \uD55C\uCABD\uC5D0\uC11C \uBD80\uB97C \uC218 \uC5C6\uB294 \uC774\uB984\uC774 \uB41C\uB2E4.",
25234
25780
  "properties": {
25235
25781
  "code": {
@@ -25262,7 +25808,6 @@ var GENERATED_TOOLS = [
25262
25808
  "type": "object"
25263
25809
  },
25264
25810
  "QuoteRow": {
25265
- "additionalProperties": false,
25266
25811
  "properties": {
25267
25812
  "key": {
25268
25813
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -25310,7 +25855,6 @@ var GENERATED_TOOLS = [
25310
25855
  "type": "object"
25311
25856
  }
25312
25857
  },
25313
- "additionalProperties": false,
25314
25858
  "properties": {
25315
25859
  "items": {
25316
25860
  "items": {
@@ -25459,7 +26003,6 @@ var GENERATED_TOOLS = [
25459
26003
  "outputSchema": {
25460
26004
  "$defs": {
25461
26005
  "Quote": {
25462
- "additionalProperties": false,
25463
26006
  "properties": {
25464
26007
  "rows": {
25465
26008
  "items": {
@@ -25499,7 +26042,6 @@ var GENERATED_TOOLS = [
25499
26042
  "type": "object"
25500
26043
  },
25501
26044
  "QuoteRow": {
25502
- "additionalProperties": false,
25503
26045
  "properties": {
25504
26046
  "key": {
25505
26047
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -25547,7 +26089,6 @@ var GENERATED_TOOLS = [
25547
26089
  "type": "object"
25548
26090
  }
25549
26091
  },
25550
- "additionalProperties": false,
25551
26092
  "properties": {
25552
26093
  "job_id": {
25553
26094
  "title": "Job Id",
@@ -25595,7 +26136,6 @@ var GENERATED_TOOLS = [
25595
26136
  "additionalProperties": false
25596
26137
  },
25597
26138
  "outputSchema": {
25598
- "additionalProperties": false,
25599
26139
  "description": "``GET /api/workspaces/{id}/credits`` \u2014 \uBA64\uBC84\uC5D0\uAC8C \uBCF4\uC774\uB294 \uC794\uC561(2026-09-11 REST \uC815\uD569, \uC124\uACC4 \xA7\uD06C\uB808\uB527 \uBAA8\uC591).\n\n\u2605 ``enabled`` \uB294 **\uCC28\uB2E8(\uACFC\uAE08) \uD65C\uC131 \uC5EC\uBD80**\uC774\uACE0 \uC794\uC561 \uD45C\uC2DC\uC640\uB294 \uBD84\uB9AC\uB2E4(2026-08-27 \uC0AC\uC6A9\uC790 \uACB0\uC815) \u2014 \uCC28\uB2E8\uC774 \uAEBC\uC838 \uC788\uC5B4\uB3C4\n DB \uC5D0 \uC794\uC561\uC774 \uC788\uC73C\uBA74 \uBCF4\uC5EC\uC900\uB2E4(\uD65C\uC131\uD654 \uC804 \uB3C4\uADF8\uD478\uB529\xB7\uC9C0\uAE09 \uD655\uC778\uC6A9). \uC124\uACC4 \uD45C\uC5D0\uB294 \uC5C6\uB358 \uD544\uB4DC\uC9C0\uB9CC MCP \uC0B0\uBB38\uC774 \u300C\uAE30\uB2A5 \uC5C6\uC74C\u300D \uACFC\n \u300C\uCC28\uB2E8\uB9CC \uAEBC\uC9D0\u300D \uC744 \uAC00\uB974\uB294 \uC720\uC77C\uD55C \uADFC\uAC70\uB77C \uACC4\uC57D\uC5D0 \uC62C\uB838\uB2E4.\n\u2605 \uC794\uC561 \uD544\uB4DC\uAC00 **\uC804\uBD80 None** \uC778 \uACBD\uC6B0\uB294 DB \uC790\uCCB4\uAC00 \uC5C6\uB294 \uBC30\uD3EC(file \uBAA8\uB4DC)\uBFD0\uC774\uB2E4 \u2014 \u300C0\uC6D0\u300D \uC774 \uC544\uB2C8\uB77C \u300C\uAC1C\uB150 \uC5C6\uC74C\u300D \uC774\uB2E4.\n \uADF8\uB798\uC11C \uC124\uACC4 \uD45C\uC758 int \uB97C Optional \uB85C \uB113\uD614\uB2E4(0 \uC73C\uB85C \uB0B4\uBA74 \uBAA8\uB378\uC774 \uC794\uC561 \uBD80\uC871\uC73C\uB85C \uC624\uD574\uD55C\uB2E4).\n\u2605 ``total_krw`` \uB294 \uC61B \uC774\uB984(= ``balance_krw``) \u2014 web\xB7CLI \uAC00 ``balance_krw`` \uB85C \uC62E\uAE34 \uB4A4 **\uD55C \uBC30\uD3EC \uC9C0\uB098** \uC9C0\uC6B4\uB2E4(\uB864\uB9C1 \uCC3D).\n\u2605 ``reserved_krw``(\uD65C\uC131 \uC7A1\uC758 \uCCAD\uAD6C \uD569)\uB294 \uC124\uACC4\uC5D0 \uC788\uC73C\uB098 **\uC544\uC9C1 \uC7AC\uC9C0 \uC54A\uB294\uB2E4** \u2014 None \uC740 \u300C\uBBF8\uCE21\uC815\u300D \uC774\uACE0 0 \uC774 \uC544\uB2C8\uB2E4\n (\uC6D0\uC7A5 ``units``/``measured_cost_usd`` \uC758 NULL \uADDC\uC57D\uACFC \uAC19\uB2E4).",
25600
26140
  "properties": {
25601
26141
  "workspace_id": {
@@ -25740,7 +26280,6 @@ var GENERATED_TOOLS = [
25740
26280
  "outputSchema": {
25741
26281
  "$defs": {
25742
26282
  "LedgerEntry": {
25743
- "additionalProperties": false,
25744
26283
  "description": '\uBA64\uBC84\uC5D0\uAC8C \uBCF4\uC774\uB294 \uC6D0\uC7A5 1\uD589 \u2014 **\uC6D0\uAC00\xB7\uB9C8\uC9C4\xB7\uB0B4\uBD80 \uD0A4\uB294 \uBE80\uB2E4**(2026-09-11 REST \uC815\uD569).\n\n\uBC31\uC624\uD53C\uC2A4\uC758 ``AdminLedgerEntry`` \uC640 \uC758\uB3C4\uC801\uC73C\uB85C \uB2E4\uB978 \uBAA8\uB378\uC774\uB2E4. \uC800\uCABD\uC5D0\uB294 ``cost_usd``\xB7``measured_cost_usd``(\uC6B0\uB9AC\uAC00\n\uC2E4\uC81C\uB85C \uB0B8 \uB3C8 = **\uB9C8\uC9C4\uC774 \uC5ED\uC0B0\uB418\uB294 \uAC12**)\uACFC ``idem_key``\xB7``rate_version``\xB7``actor_id``\xB7``ref_type``(\uB0B4\uBD80 \uC2DD\uBCC4\uC790\xB7\uC6D0\uAC00\uD45C\n\uD0A4)\uAC00 \uC2E4\uB9B0\uB2E4. \uC0AC\uC6A9\uC790 \uC751\uB2F5\uC740 \uD544\uB4DC\uB97C **\uD654\uC774\uD2B8\uB9AC\uC2A4\uD2B8**\uB85C \uC801\uB294\uB2E4 \u2014 \uC61B \uACC4\uC57D\uC774 \uC2E4\uC5C8\uB358 ``ref_type`` \uC740 \uADF8\uB798\uC11C \uBE90\uACE0,\n``job_id`` \uB294 \uC0AC\uC6A9\uC790 \uC790\uC2E0\uC758 \uC7A1\uC774\uB77C \uB0A8\uAE34\uB2E4(\uC5D0\uC774\uC804\uD2B8\uAC00 ``wait_jobs`` \uACB0\uACFC\uC640 \uB9DE\uCDB0 \uBCFC \uC218 \uC788\uB2E4).\n\n``units``/``units_label`` \uC740 \uADF8 \uD654\uC774\uD2B8\uB9AC\uC2A4\uD2B8\uC5D0 **\uB123\uAE30\uB85C \uD55C \uAC83**\uC774\uB2E4(2026-08-31 \uC0AC\uC6A9\uC790 \uACB0\uC815) \u2014 "\uB0B4\uAC00 \uC5BC\uB9C8\uB098 \uC37C\uB098" \uB294\n\uC790\uAE30 \uC0AC\uC6A9\uB7C9\uC774\uACE0, \uAC19\uC740 "\uC601\uC0C1 \uC0DD\uC131" \uC774 \uD574\uC0C1\uB3C4\xB7\uAE38\uC774\uC5D0 \uB530\uB77C 14\uBC30 \uBC8C\uC5B4\uC9C0\uB294 \uD56D\uBAA9\uC5D0\uC11C\uB294 \uADF8\uAC83 \uC5C6\uC774 \uAE08\uC561\uC744 \uC774\uD574\uD560 \uC218 \uC5C6\uB2E4.\n\u26A0\uFE0F **\uACF5\uAE09\uC790 \uB2E8\uAC00\uAC00 \uACF5\uAC1C\uB41C \uD56D\uBAA9\uC774\uB77C\uBA74 ``units`` \uC640 ``amount_krw`` \uB85C \uB9C8\uC9C4\uC774 \uC5ED\uC0B0\uB41C\uB2E4** \u2014 \uC9C0\uAE08\uC740 ``credit_markup=1.000``\n(\uC6D0\uAC00 \uCCAD\uAD6C)\uC774\uB77C \uB4DC\uB7EC\uB0A0 \uB9C8\uC9C4\uC774 \uC5C6\uC5B4\uC11C \uC131\uB9BD\uD558\uB294 \uC120\uD0DD\uC774\uACE0, \uB9C8\uC9C4\uC744 \uC62C\uB9B4 \uB54C \uC774 \uD544\uB4DC\uB97C \uB2E4\uC2DC \uD310\uB2E8\uD55C\uB2E4.\n\u2605 \uC61B \uACC4\uC57D\uC758 ``units_display`` \uB294 \uC18C\uBE44\uC790\uAC00 \uC5C6\uC5C8\uACE0 REST\xB7web\xB7CLI \uAC00 \uC4F0\uB294 \uC774\uB984\uC740 ``units_label`` \uC774\uB2E4 \u2014 \uCF54\uB4DC\uAC00 \uC633\uB2E4(\u2465).',
25745
26284
  "properties": {
25746
26285
  "id": {
@@ -25863,7 +26402,6 @@ var GENERATED_TOOLS = [
25863
26402
  "type": "object"
25864
26403
  }
25865
26404
  },
25866
- "additionalProperties": false,
25867
26405
  "description": "``GET /api/workspaces/{id}/credits/ledger`` \u2014 \uCD5C\uC2E0\uC21C keyset \uD398\uC774\uC9C0.\n\n\u2605 \uCEE4\uC11C \uC774\uB984\uC774 **\uB458\uC774\uB2E4 \u2014 \uAC19\uC740 \uAC12\uC774\uB2E4**: \uB9AC\uB274\uC5BC \uADDC\uC57D\uC740 \uBB38\uC790\uC5F4 ``cursor``/``next_cursor`` \uC774\uACE0 \uC61B \uC774\uB984\n ``next_before_id``(\uC815\uC218)\uB294 web \uC774 \uC62E\uAE34 \uB4A4 **\uD55C \uBC30\uD3EC \uC9C0\uB098** \uC9C0\uC6B4\uB2E4(\uB864\uB9C1 \uCC3D).",
25868
26406
  "properties": {
25869
26407
  "entries": {
@@ -25931,7 +26469,6 @@ var GENERATED_TOOLS = [
25931
26469
  "outputSchema": {
25932
26470
  "$defs": {
25933
26471
  "CharacterPhotoView": {
25934
- "additionalProperties": false,
25935
26472
  "properties": {
25936
26473
  "id": {
25937
26474
  "title": "Id",
@@ -25993,7 +26530,6 @@ var GENERATED_TOOLS = [
25993
26530
  "type": "object"
25994
26531
  },
25995
26532
  "CharacterView": {
25996
- "additionalProperties": false,
25997
26533
  "properties": {
25998
26534
  "id": {
25999
26535
  "title": "Id",
@@ -26078,7 +26614,6 @@ var GENERATED_TOOLS = [
26078
26614
  "type": "object"
26079
26615
  }
26080
26616
  },
26081
- "additionalProperties": false,
26082
26617
  "properties": {
26083
26618
  "characters": {
26084
26619
  "items": {
@@ -26149,7 +26684,6 @@ var GENERATED_TOOLS = [
26149
26684
  "outputSchema": {
26150
26685
  "$defs": {
26151
26686
  "CharacterPhotoView": {
26152
- "additionalProperties": false,
26153
26687
  "properties": {
26154
26688
  "id": {
26155
26689
  "title": "Id",
@@ -26211,7 +26745,6 @@ var GENERATED_TOOLS = [
26211
26745
  "type": "object"
26212
26746
  }
26213
26747
  },
26214
- "additionalProperties": false,
26215
26748
  "properties": {
26216
26749
  "id": {
26217
26750
  "title": "Id",
@@ -26321,7 +26854,6 @@ var GENERATED_TOOLS = [
26321
26854
  "outputSchema": {
26322
26855
  "$defs": {
26323
26856
  "CharacterPhotoView": {
26324
- "additionalProperties": false,
26325
26857
  "properties": {
26326
26858
  "id": {
26327
26859
  "title": "Id",
@@ -26383,7 +26915,6 @@ var GENERATED_TOOLS = [
26383
26915
  "type": "object"
26384
26916
  }
26385
26917
  },
26386
- "additionalProperties": false,
26387
26918
  "properties": {
26388
26919
  "id": {
26389
26920
  "title": "Id",
@@ -26533,7 +27064,6 @@ var GENERATED_TOOLS = [
26533
27064
  "outputSchema": {
26534
27065
  "$defs": {
26535
27066
  "CharacterPhotoView": {
26536
- "additionalProperties": false,
26537
27067
  "properties": {
26538
27068
  "id": {
26539
27069
  "title": "Id",
@@ -26595,7 +27125,6 @@ var GENERATED_TOOLS = [
26595
27125
  "type": "object"
26596
27126
  }
26597
27127
  },
26598
- "additionalProperties": false,
26599
27128
  "properties": {
26600
27129
  "id": {
26601
27130
  "title": "Id",
@@ -26703,7 +27232,6 @@ var GENERATED_TOOLS = [
26703
27232
  "additionalProperties": false
26704
27233
  },
26705
27234
  "outputSchema": {
26706
- "additionalProperties": false,
26707
27235
  "properties": {
26708
27236
  "deleted": {
26709
27237
  "default": true,
@@ -26757,7 +27285,6 @@ var GENERATED_TOOLS = [
26757
27285
  "outputSchema": {
26758
27286
  "$defs": {
26759
27287
  "CharacterPhotoView": {
26760
- "additionalProperties": false,
26761
27288
  "properties": {
26762
27289
  "id": {
26763
27290
  "title": "Id",
@@ -26819,7 +27346,6 @@ var GENERATED_TOOLS = [
26819
27346
  "type": "object"
26820
27347
  }
26821
27348
  },
26822
- "additionalProperties": false,
26823
27349
  "properties": {
26824
27350
  "id": {
26825
27351
  "title": "Id",
@@ -26934,7 +27460,6 @@ var GENERATED_TOOLS = [
26934
27460
  "outputSchema": {
26935
27461
  "$defs": {
26936
27462
  "CharacterPhotoView": {
26937
- "additionalProperties": false,
26938
27463
  "properties": {
26939
27464
  "id": {
26940
27465
  "title": "Id",
@@ -26996,7 +27521,6 @@ var GENERATED_TOOLS = [
26996
27521
  "type": "object"
26997
27522
  }
26998
27523
  },
26999
- "additionalProperties": false,
27000
27524
  "properties": {
27001
27525
  "id": {
27002
27526
  "title": "Id",
@@ -27142,7 +27666,6 @@ var GENERATED_TOOLS = [
27142
27666
  "outputSchema": {
27143
27667
  "$defs": {
27144
27668
  "EstimateItemResult": {
27145
- "additionalProperties": false,
27146
27669
  "properties": {
27147
27670
  "cut_id": {
27148
27671
  "anyOf": [
@@ -27194,7 +27717,6 @@ var GENERATED_TOOLS = [
27194
27717
  "type": "object"
27195
27718
  },
27196
27719
  "EstimateNote": {
27197
- "additionalProperties": false,
27198
27720
  "description": "\uACAC\uC801 \uD56D\uBAA9\uC758 **\uC8FC\uC758** \u2014 \uB9C9\uC9C0\uB294 \uC54A\uC9C0\uB9CC \uADF8\uB300\uB85C \uC9C4\uD589\uD558\uBA74 \uACB0\uACFC\uAC00 \uC758\uB3C4\uC640 \uB2E4\uB97C \uC218 \uC788\uB294 \uAC83.\n\n\u2605\u2605 `blocked_reason`(\uACAC\uC801 \uBD88\uAC00)\uACFC **\uB2E4\uB978 \uC790\uB9AC**\uB2E4: \uADF8\uCABD\uC740 \uB9CC\uB4E4 \uC218 \uC5C6\uB2E4\uB294 \uB73B\uC774\uACE0 \uC774\uCABD\uC740\n\u300C\uB9CC\uB4E4 \uC218\uB294 \uC788\uB294\uB370 \uC774\uAC78 \uC54C\uACE0 \uACE0\uB974\uB77C\u300D \uB2E4. \uCC28\uB2E8\uC73C\uB85C \uBC14\uAFB8\uBA74 \uC815\uB2F9\uD55C \uC120\uD0DD(\uB85C\uACE0\xB7\uCD94\uC0C1 \uC7A5\uBA74\uC758 t2v)\uC774\n\uB9C9\uD788\uACE0, \uC548\uB0B4\uAC00 \uC5C6\uC73C\uBA74 \uC0AC\uC6A9\uC790\uAC00 \uACE0\uB978 \uC801 \uC5C6\uB294 \uBC29\uC2DD\uC73C\uB85C **\uC870\uC6A9\uD788** \uB098\uAC04\uB2E4.\n\u2605 \uCF54\uB4DC\uC640 \uBB38\uC7A5\uC744 \uD568\uAED8 \uC2E3\uB294\uB2E4 \u2014 \uC6F9\uC740 \uCF54\uB4DC\uB85C \uC790\uAE30 \uBB38\uAD6C\uB97C \uC4F8 \uC218 \uC788\uACE0, \uC5D0\uC774\uC804\uD2B8\uB294 \uBB38\uC7A5\uC744 \uADF8\uB300\uB85C \uC77D\uB294\uB2E4.\n \u26A0\uFE0F \uBB38\uC7A5 \uC18D \uB3C4\uAD6C \uC774\uB984\uC740 **\uC804\uC1A1 \uACC4\uCE35\uC774 \uC811\uB450\uC0AC\uB97C \uBD99\uC778\uB2E4**(\uC6D0\uACA9 `upload_asset` / stdio\n `democut_upload_asset`) \u2014 \uC5EC\uAE30\uC11C \uC811\uB450\uC0AC\uB97C \uBC15\uC73C\uBA74 \uD55C\uCABD\uC5D0\uC11C \uBD80\uB97C \uC218 \uC5C6\uB294 \uC774\uB984\uC774 \uB41C\uB2E4.",
27199
27721
  "properties": {
27200
27722
  "code": {
@@ -27227,7 +27749,6 @@ var GENERATED_TOOLS = [
27227
27749
  "type": "object"
27228
27750
  },
27229
27751
  "QuoteRow": {
27230
- "additionalProperties": false,
27231
27752
  "properties": {
27232
27753
  "key": {
27233
27754
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -27275,7 +27796,6 @@ var GENERATED_TOOLS = [
27275
27796
  "type": "object"
27276
27797
  }
27277
27798
  },
27278
- "additionalProperties": false,
27279
27799
  "properties": {
27280
27800
  "items": {
27281
27801
  "items": {
@@ -27406,7 +27926,6 @@ var GENERATED_TOOLS = [
27406
27926
  "outputSchema": {
27407
27927
  "$defs": {
27408
27928
  "Quote": {
27409
- "additionalProperties": false,
27410
27929
  "properties": {
27411
27930
  "rows": {
27412
27931
  "items": {
@@ -27446,7 +27965,6 @@ var GENERATED_TOOLS = [
27446
27965
  "type": "object"
27447
27966
  },
27448
27967
  "QuoteRow": {
27449
- "additionalProperties": false,
27450
27968
  "properties": {
27451
27969
  "key": {
27452
27970
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -27494,7 +28012,6 @@ var GENERATED_TOOLS = [
27494
28012
  "type": "object"
27495
28013
  }
27496
28014
  },
27497
- "additionalProperties": false,
27498
28015
  "properties": {
27499
28016
  "job_id": {
27500
28017
  "title": "Job Id",
@@ -27544,7 +28061,6 @@ var GENERATED_TOOLS = [
27544
28061
  "outputSchema": {
27545
28062
  "$defs": {
27546
28063
  "AssetView": {
27547
- "additionalProperties": false,
27548
28064
  "properties": {
27549
28065
  "id": {
27550
28066
  "title": "Id",
@@ -27654,7 +28170,6 @@ var GENERATED_TOOLS = [
27654
28170
  "type": "object"
27655
28171
  }
27656
28172
  },
27657
- "additionalProperties": false,
27658
28173
  "properties": {
27659
28174
  "backgrounds": {
27660
28175
  "items": {
@@ -27696,7 +28211,6 @@ var GENERATED_TOOLS = [
27696
28211
  "outputSchema": {
27697
28212
  "$defs": {
27698
28213
  "AddCutOp": {
27699
- "additionalProperties": false,
27700
28214
  "properties": {
27701
28215
  "op": {
27702
28216
  "const": "add_cut",
@@ -27756,7 +28270,6 @@ var GENERATED_TOOLS = [
27756
28270
  "type": "object"
27757
28271
  },
27758
28272
  "AiVideoSpec": {
27759
- "additionalProperties": false,
27760
28273
  "properties": {
27761
28274
  "dialogue": {
27762
28275
  "items": {
@@ -27953,7 +28466,6 @@ var GENERATED_TOOLS = [
27953
28466
  "type": "object"
27954
28467
  },
27955
28468
  "AssetImageRef": {
27956
- "additionalProperties": false,
27957
28469
  "properties": {
27958
28470
  "kind": {
27959
28471
  "const": "asset",
@@ -27974,7 +28486,6 @@ var GENERATED_TOOLS = [
27974
28486
  "type": "object"
27975
28487
  },
27976
28488
  "CanvasPos": {
27977
- "additionalProperties": false,
27978
28489
  "properties": {
27979
28490
  "x": {
27980
28491
  "default": 0,
@@ -27991,7 +28502,6 @@ var GENERATED_TOOLS = [
27991
28502
  "type": "object"
27992
28503
  },
27993
28504
  "CutEdit": {
27994
- "additionalProperties": false,
27995
28505
  "properties": {
27996
28506
  "trim_in_ms": {
27997
28507
  "default": 0,
@@ -28029,7 +28539,6 @@ var GENERATED_TOOLS = [
28029
28539
  "type": "object"
28030
28540
  },
28031
28541
  "CutImageView": {
28032
- "additionalProperties": false,
28033
28542
  "properties": {
28034
28543
  "id": {
28035
28544
  "title": "Id",
@@ -28088,7 +28597,6 @@ var GENERATED_TOOLS = [
28088
28597
  "type": "object"
28089
28598
  },
28090
28599
  "CutVersionView": {
28091
- "additionalProperties": false,
28092
28600
  "properties": {
28093
28601
  "version": {
28094
28602
  "minimum": 1,
@@ -28196,7 +28704,6 @@ var GENERATED_TOOLS = [
28196
28704
  "type": "object"
28197
28705
  },
28198
28706
  "CutView": {
28199
- "additionalProperties": false,
28200
28707
  "properties": {
28201
28708
  "id": {
28202
28709
  "title": "Id",
@@ -28368,6 +28875,31 @@ var GENERATED_TOOLS = [
28368
28875
  "default": null,
28369
28876
  "title": "Active Job Id"
28370
28877
  },
28878
+ "last_job_id": {
28879
+ "anyOf": [
28880
+ {
28881
+ "type": "string"
28882
+ },
28883
+ {
28884
+ "type": "null"
28885
+ }
28886
+ ],
28887
+ "default": null,
28888
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
28889
+ "title": "Last Job Id"
28890
+ },
28891
+ "last_error": {
28892
+ "anyOf": [
28893
+ {
28894
+ "$ref": "#/$defs/JobError"
28895
+ },
28896
+ {
28897
+ "type": "null"
28898
+ }
28899
+ ],
28900
+ "default": null,
28901
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
28902
+ },
28371
28903
  "next_calls": {
28372
28904
  "items": {
28373
28905
  "type": "string"
@@ -28397,7 +28929,6 @@ var GENERATED_TOOLS = [
28397
28929
  "type": "object"
28398
28930
  },
28399
28931
  "DialogueLine": {
28400
- "additionalProperties": false,
28401
28932
  "properties": {
28402
28933
  "id": {
28403
28934
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -28450,7 +28981,6 @@ var GENERATED_TOOLS = [
28450
28981
  "type": "object"
28451
28982
  },
28452
28983
  "DialogueTiming": {
28453
- "additionalProperties": false,
28454
28984
  "properties": {
28455
28985
  "id": {
28456
28986
  "title": "Id",
@@ -28476,7 +29006,6 @@ var GENERATED_TOOLS = [
28476
29006
  "type": "object"
28477
29007
  },
28478
29008
  "DownloadUrls": {
28479
- "additionalProperties": false,
28480
29009
  "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.",
28481
29010
  "properties": {
28482
29011
  "video": {
@@ -28544,7 +29073,6 @@ var GENERATED_TOOLS = [
28544
29073
  "type": "object"
28545
29074
  },
28546
29075
  "FieldChange": {
28547
- "additionalProperties": false,
28548
29076
  "properties": {
28549
29077
  "before": {
28550
29078
  "default": null,
@@ -28559,7 +29087,6 @@ var GENERATED_TOOLS = [
28559
29087
  "type": "object"
28560
29088
  },
28561
29089
  "FromCutImageRef": {
28562
- "additionalProperties": false,
28563
29090
  "properties": {
28564
29091
  "kind": {
28565
29092
  "const": "from_cut",
@@ -28590,7 +29117,6 @@ var GENERATED_TOOLS = [
28590
29117
  "type": "object"
28591
29118
  },
28592
29119
  "FromVersionImageRef": {
28593
- "additionalProperties": false,
28594
29120
  "properties": {
28595
29121
  "kind": {
28596
29122
  "const": "from_version",
@@ -28620,8 +29146,85 @@ var GENERATED_TOOLS = [
28620
29146
  "title": "FromVersionImageRef",
28621
29147
  "type": "object"
28622
29148
  },
29149
+ "JobError": {
29150
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
29151
+ "properties": {
29152
+ "code": {
29153
+ "title": "Code",
29154
+ "type": "string"
29155
+ },
29156
+ "message": {
29157
+ "title": "Message",
29158
+ "type": "string"
29159
+ },
29160
+ "retryable": {
29161
+ "default": false,
29162
+ "title": "Retryable",
29163
+ "type": "boolean"
29164
+ },
29165
+ "refunded_krw": {
29166
+ "default": 0,
29167
+ "title": "Refunded Krw",
29168
+ "type": "integer"
29169
+ },
29170
+ "hint": {
29171
+ "anyOf": [
29172
+ {
29173
+ "type": "string"
29174
+ },
29175
+ {
29176
+ "type": "null"
29177
+ }
29178
+ ],
29179
+ "default": null,
29180
+ "title": "Hint"
29181
+ },
29182
+ "provider_job_id": {
29183
+ "anyOf": [
29184
+ {
29185
+ "type": "string"
29186
+ },
29187
+ {
29188
+ "type": "null"
29189
+ }
29190
+ ],
29191
+ "default": null,
29192
+ "title": "Provider Job Id"
29193
+ },
29194
+ "cause": {
29195
+ "anyOf": [
29196
+ {
29197
+ "type": "string"
29198
+ },
29199
+ {
29200
+ "type": "null"
29201
+ }
29202
+ ],
29203
+ "default": null,
29204
+ "title": "Cause"
29205
+ },
29206
+ "data": {
29207
+ "anyOf": [
29208
+ {
29209
+ "additionalProperties": true,
29210
+ "type": "object"
29211
+ },
29212
+ {
29213
+ "type": "null"
29214
+ }
29215
+ ],
29216
+ "default": null,
29217
+ "title": "Data"
29218
+ }
29219
+ },
29220
+ "required": [
29221
+ "code",
29222
+ "message"
29223
+ ],
29224
+ "title": "JobError",
29225
+ "type": "object"
29226
+ },
28623
29227
  "MotionGraphicSpec": {
28624
- "additionalProperties": false,
28625
29228
  "properties": {
28626
29229
  "dialogue": {
28627
29230
  "items": {
@@ -28767,7 +29370,6 @@ var GENERATED_TOOLS = [
28767
29370
  "type": "object"
28768
29371
  },
28769
29372
  "PipSpec": {
28770
- "additionalProperties": false,
28771
29373
  "properties": {
28772
29374
  "avatar_id": {
28773
29375
  "minLength": 1,
@@ -28810,7 +29412,6 @@ var GENERATED_TOOLS = [
28810
29412
  "type": "object"
28811
29413
  },
28812
29414
  "ProposalRequestView": {
28813
- "additionalProperties": false,
28814
29415
  "properties": {
28815
29416
  "text": {
28816
29417
  "title": "Text",
@@ -28832,7 +29433,6 @@ var GENERATED_TOOLS = [
28832
29433
  "type": "object"
28833
29434
  },
28834
29435
  "ProposalView": {
28835
- "additionalProperties": false,
28836
29436
  "properties": {
28837
29437
  "id": {
28838
29438
  "title": "Id",
@@ -28978,7 +29578,6 @@ var GENERATED_TOOLS = [
28978
29578
  "type": "object"
28979
29579
  },
28980
29580
  "Quote": {
28981
- "additionalProperties": false,
28982
29581
  "properties": {
28983
29582
  "rows": {
28984
29583
  "items": {
@@ -29018,7 +29617,6 @@ var GENERATED_TOOLS = [
29018
29617
  "type": "object"
29019
29618
  },
29020
29619
  "QuoteRow": {
29021
- "additionalProperties": false,
29022
29620
  "properties": {
29023
29621
  "key": {
29024
29622
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -29066,7 +29664,6 @@ var GENERATED_TOOLS = [
29066
29664
  "type": "object"
29067
29665
  },
29068
29666
  "RelinkOp": {
29069
- "additionalProperties": false,
29070
29667
  "properties": {
29071
29668
  "op": {
29072
29669
  "const": "relink",
@@ -29099,7 +29696,6 @@ var GENERATED_TOOLS = [
29099
29696
  "type": "object"
29100
29697
  },
29101
29698
  "RemoveCutOp": {
29102
- "additionalProperties": false,
29103
29699
  "properties": {
29104
29700
  "op": {
29105
29701
  "const": "remove_cut",
@@ -29119,7 +29715,6 @@ var GENERATED_TOOLS = [
29119
29715
  "type": "object"
29120
29716
  },
29121
29717
  "Timing": {
29122
- "additionalProperties": false,
29123
29718
  "properties": {
29124
29719
  "dialogue": {
29125
29720
  "items": {
@@ -29162,7 +29757,6 @@ var GENERATED_TOOLS = [
29162
29757
  "type": "object"
29163
29758
  },
29164
29759
  "UpdateCutOp": {
29165
- "additionalProperties": false,
29166
29760
  "properties": {
29167
29761
  "op": {
29168
29762
  "const": "update_cut",
@@ -29191,7 +29785,6 @@ var GENERATED_TOOLS = [
29191
29785
  "type": "object"
29192
29786
  },
29193
29787
  "YoutubeAssetSource": {
29194
- "additionalProperties": false,
29195
29788
  "properties": {
29196
29789
  "kind": {
29197
29790
  "const": "asset",
@@ -29239,7 +29832,6 @@ var GENERATED_TOOLS = [
29239
29832
  "type": "object"
29240
29833
  },
29241
29834
  "YoutubeClipSpec": {
29242
- "additionalProperties": false,
29243
29835
  "properties": {
29244
29836
  "dialogue": {
29245
29837
  "items": {
@@ -29366,7 +29958,6 @@ var GENERATED_TOOLS = [
29366
29958
  "type": "object"
29367
29959
  },
29368
29960
  "YoutubeUrlSource": {
29369
- "additionalProperties": false,
29370
29961
  "properties": {
29371
29962
  "kind": {
29372
29963
  "const": "url",
@@ -29400,7 +29991,6 @@ var GENERATED_TOOLS = [
29400
29991
  "type": "object"
29401
29992
  }
29402
29993
  },
29403
- "additionalProperties": false,
29404
29994
  "properties": {
29405
29995
  "rev": {
29406
29996
  "title": "Rev",
@@ -29477,7 +30067,6 @@ var GENERATED_TOOLS = [
29477
30067
  "outputSchema": {
29478
30068
  "$defs": {
29479
30069
  "AiVideoSpec": {
29480
- "additionalProperties": false,
29481
30070
  "properties": {
29482
30071
  "dialogue": {
29483
30072
  "items": {
@@ -29674,7 +30263,6 @@ var GENERATED_TOOLS = [
29674
30263
  "type": "object"
29675
30264
  },
29676
30265
  "AssetImageRef": {
29677
- "additionalProperties": false,
29678
30266
  "properties": {
29679
30267
  "kind": {
29680
30268
  "const": "asset",
@@ -29695,7 +30283,6 @@ var GENERATED_TOOLS = [
29695
30283
  "type": "object"
29696
30284
  },
29697
30285
  "CanvasPos": {
29698
- "additionalProperties": false,
29699
30286
  "properties": {
29700
30287
  "x": {
29701
30288
  "default": 0,
@@ -29712,7 +30299,6 @@ var GENERATED_TOOLS = [
29712
30299
  "type": "object"
29713
30300
  },
29714
30301
  "CutEdit": {
29715
- "additionalProperties": false,
29716
30302
  "properties": {
29717
30303
  "trim_in_ms": {
29718
30304
  "default": 0,
@@ -29750,7 +30336,6 @@ var GENERATED_TOOLS = [
29750
30336
  "type": "object"
29751
30337
  },
29752
30338
  "CutImageView": {
29753
- "additionalProperties": false,
29754
30339
  "properties": {
29755
30340
  "id": {
29756
30341
  "title": "Id",
@@ -29809,7 +30394,6 @@ var GENERATED_TOOLS = [
29809
30394
  "type": "object"
29810
30395
  },
29811
30396
  "CutVersionView": {
29812
- "additionalProperties": false,
29813
30397
  "properties": {
29814
30398
  "version": {
29815
30399
  "minimum": 1,
@@ -29917,7 +30501,6 @@ var GENERATED_TOOLS = [
29917
30501
  "type": "object"
29918
30502
  },
29919
30503
  "CutView": {
29920
- "additionalProperties": false,
29921
30504
  "properties": {
29922
30505
  "id": {
29923
30506
  "title": "Id",
@@ -30089,6 +30672,31 @@ var GENERATED_TOOLS = [
30089
30672
  "default": null,
30090
30673
  "title": "Active Job Id"
30091
30674
  },
30675
+ "last_job_id": {
30676
+ "anyOf": [
30677
+ {
30678
+ "type": "string"
30679
+ },
30680
+ {
30681
+ "type": "null"
30682
+ }
30683
+ ],
30684
+ "default": null,
30685
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
30686
+ "title": "Last Job Id"
30687
+ },
30688
+ "last_error": {
30689
+ "anyOf": [
30690
+ {
30691
+ "$ref": "#/$defs/JobError"
30692
+ },
30693
+ {
30694
+ "type": "null"
30695
+ }
30696
+ ],
30697
+ "default": null,
30698
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
30699
+ },
30092
30700
  "next_calls": {
30093
30701
  "items": {
30094
30702
  "type": "string"
@@ -30118,7 +30726,6 @@ var GENERATED_TOOLS = [
30118
30726
  "type": "object"
30119
30727
  },
30120
30728
  "DialogueLine": {
30121
- "additionalProperties": false,
30122
30729
  "properties": {
30123
30730
  "id": {
30124
30731
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -30171,7 +30778,6 @@ var GENERATED_TOOLS = [
30171
30778
  "type": "object"
30172
30779
  },
30173
30780
  "DialogueTiming": {
30174
- "additionalProperties": false,
30175
30781
  "properties": {
30176
30782
  "id": {
30177
30783
  "title": "Id",
@@ -30197,7 +30803,6 @@ var GENERATED_TOOLS = [
30197
30803
  "type": "object"
30198
30804
  },
30199
30805
  "DownloadUrls": {
30200
- "additionalProperties": false,
30201
30806
  "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.",
30202
30807
  "properties": {
30203
30808
  "video": {
@@ -30265,7 +30870,6 @@ var GENERATED_TOOLS = [
30265
30870
  "type": "object"
30266
30871
  },
30267
30872
  "FromCutImageRef": {
30268
- "additionalProperties": false,
30269
30873
  "properties": {
30270
30874
  "kind": {
30271
30875
  "const": "from_cut",
@@ -30296,7 +30900,6 @@ var GENERATED_TOOLS = [
30296
30900
  "type": "object"
30297
30901
  },
30298
30902
  "FromVersionImageRef": {
30299
- "additionalProperties": false,
30300
30903
  "properties": {
30301
30904
  "kind": {
30302
30905
  "const": "from_version",
@@ -30326,8 +30929,85 @@ var GENERATED_TOOLS = [
30326
30929
  "title": "FromVersionImageRef",
30327
30930
  "type": "object"
30328
30931
  },
30932
+ "JobError": {
30933
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
30934
+ "properties": {
30935
+ "code": {
30936
+ "title": "Code",
30937
+ "type": "string"
30938
+ },
30939
+ "message": {
30940
+ "title": "Message",
30941
+ "type": "string"
30942
+ },
30943
+ "retryable": {
30944
+ "default": false,
30945
+ "title": "Retryable",
30946
+ "type": "boolean"
30947
+ },
30948
+ "refunded_krw": {
30949
+ "default": 0,
30950
+ "title": "Refunded Krw",
30951
+ "type": "integer"
30952
+ },
30953
+ "hint": {
30954
+ "anyOf": [
30955
+ {
30956
+ "type": "string"
30957
+ },
30958
+ {
30959
+ "type": "null"
30960
+ }
30961
+ ],
30962
+ "default": null,
30963
+ "title": "Hint"
30964
+ },
30965
+ "provider_job_id": {
30966
+ "anyOf": [
30967
+ {
30968
+ "type": "string"
30969
+ },
30970
+ {
30971
+ "type": "null"
30972
+ }
30973
+ ],
30974
+ "default": null,
30975
+ "title": "Provider Job Id"
30976
+ },
30977
+ "cause": {
30978
+ "anyOf": [
30979
+ {
30980
+ "type": "string"
30981
+ },
30982
+ {
30983
+ "type": "null"
30984
+ }
30985
+ ],
30986
+ "default": null,
30987
+ "title": "Cause"
30988
+ },
30989
+ "data": {
30990
+ "anyOf": [
30991
+ {
30992
+ "additionalProperties": true,
30993
+ "type": "object"
30994
+ },
30995
+ {
30996
+ "type": "null"
30997
+ }
30998
+ ],
30999
+ "default": null,
31000
+ "title": "Data"
31001
+ }
31002
+ },
31003
+ "required": [
31004
+ "code",
31005
+ "message"
31006
+ ],
31007
+ "title": "JobError",
31008
+ "type": "object"
31009
+ },
30329
31010
  "MotionGraphicSpec": {
30330
- "additionalProperties": false,
30331
31011
  "properties": {
30332
31012
  "dialogue": {
30333
31013
  "items": {
@@ -30473,7 +31153,6 @@ var GENERATED_TOOLS = [
30473
31153
  "type": "object"
30474
31154
  },
30475
31155
  "PipSpec": {
30476
- "additionalProperties": false,
30477
31156
  "properties": {
30478
31157
  "avatar_id": {
30479
31158
  "minLength": 1,
@@ -30516,7 +31195,6 @@ var GENERATED_TOOLS = [
30516
31195
  "type": "object"
30517
31196
  },
30518
31197
  "Quote": {
30519
- "additionalProperties": false,
30520
31198
  "properties": {
30521
31199
  "rows": {
30522
31200
  "items": {
@@ -30556,7 +31234,6 @@ var GENERATED_TOOLS = [
30556
31234
  "type": "object"
30557
31235
  },
30558
31236
  "QuoteRow": {
30559
- "additionalProperties": false,
30560
31237
  "properties": {
30561
31238
  "key": {
30562
31239
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -30604,7 +31281,6 @@ var GENERATED_TOOLS = [
30604
31281
  "type": "object"
30605
31282
  },
30606
31283
  "Timing": {
30607
- "additionalProperties": false,
30608
31284
  "properties": {
30609
31285
  "dialogue": {
30610
31286
  "items": {
@@ -30647,7 +31323,6 @@ var GENERATED_TOOLS = [
30647
31323
  "type": "object"
30648
31324
  },
30649
31325
  "YoutubeAssetSource": {
30650
- "additionalProperties": false,
30651
31326
  "properties": {
30652
31327
  "kind": {
30653
31328
  "const": "asset",
@@ -30695,7 +31370,6 @@ var GENERATED_TOOLS = [
30695
31370
  "type": "object"
30696
31371
  },
30697
31372
  "YoutubeClipSpec": {
30698
- "additionalProperties": false,
30699
31373
  "properties": {
30700
31374
  "dialogue": {
30701
31375
  "items": {
@@ -30822,7 +31496,6 @@ var GENERATED_TOOLS = [
30822
31496
  "type": "object"
30823
31497
  },
30824
31498
  "YoutubeUrlSource": {
30825
- "additionalProperties": false,
30826
31499
  "properties": {
30827
31500
  "kind": {
30828
31501
  "const": "url",
@@ -30856,7 +31529,6 @@ var GENERATED_TOOLS = [
30856
31529
  "type": "object"
30857
31530
  }
30858
31531
  },
30859
- "additionalProperties": false,
30860
31532
  "properties": {
30861
31533
  "cuts": {
30862
31534
  "items": {
@@ -31689,7 +32361,6 @@ var GENERATED_TOOLS = [
31689
32361
  "outputSchema": {
31690
32362
  "$defs": {
31691
32363
  "AiVideoSpec": {
31692
- "additionalProperties": false,
31693
32364
  "properties": {
31694
32365
  "dialogue": {
31695
32366
  "items": {
@@ -31886,7 +32557,6 @@ var GENERATED_TOOLS = [
31886
32557
  "type": "object"
31887
32558
  },
31888
32559
  "AssetImageRef": {
31889
- "additionalProperties": false,
31890
32560
  "properties": {
31891
32561
  "kind": {
31892
32562
  "const": "asset",
@@ -31907,7 +32577,6 @@ var GENERATED_TOOLS = [
31907
32577
  "type": "object"
31908
32578
  },
31909
32579
  "CanvasPos": {
31910
- "additionalProperties": false,
31911
32580
  "properties": {
31912
32581
  "x": {
31913
32582
  "default": 0,
@@ -31924,7 +32593,6 @@ var GENERATED_TOOLS = [
31924
32593
  "type": "object"
31925
32594
  },
31926
32595
  "CutEdit": {
31927
- "additionalProperties": false,
31928
32596
  "properties": {
31929
32597
  "trim_in_ms": {
31930
32598
  "default": 0,
@@ -31962,7 +32630,6 @@ var GENERATED_TOOLS = [
31962
32630
  "type": "object"
31963
32631
  },
31964
32632
  "CutImageView": {
31965
- "additionalProperties": false,
31966
32633
  "properties": {
31967
32634
  "id": {
31968
32635
  "title": "Id",
@@ -32021,7 +32688,6 @@ var GENERATED_TOOLS = [
32021
32688
  "type": "object"
32022
32689
  },
32023
32690
  "CutVersionView": {
32024
- "additionalProperties": false,
32025
32691
  "properties": {
32026
32692
  "version": {
32027
32693
  "minimum": 1,
@@ -32129,7 +32795,6 @@ var GENERATED_TOOLS = [
32129
32795
  "type": "object"
32130
32796
  },
32131
32797
  "DialogueLine": {
32132
- "additionalProperties": false,
32133
32798
  "properties": {
32134
32799
  "id": {
32135
32800
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -32182,7 +32847,6 @@ var GENERATED_TOOLS = [
32182
32847
  "type": "object"
32183
32848
  },
32184
32849
  "DialogueTiming": {
32185
- "additionalProperties": false,
32186
32850
  "properties": {
32187
32851
  "id": {
32188
32852
  "title": "Id",
@@ -32208,7 +32872,6 @@ var GENERATED_TOOLS = [
32208
32872
  "type": "object"
32209
32873
  },
32210
32874
  "DownloadUrls": {
32211
- "additionalProperties": false,
32212
32875
  "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.",
32213
32876
  "properties": {
32214
32877
  "video": {
@@ -32276,7 +32939,6 @@ var GENERATED_TOOLS = [
32276
32939
  "type": "object"
32277
32940
  },
32278
32941
  "FromCutImageRef": {
32279
- "additionalProperties": false,
32280
32942
  "properties": {
32281
32943
  "kind": {
32282
32944
  "const": "from_cut",
@@ -32307,7 +32969,6 @@ var GENERATED_TOOLS = [
32307
32969
  "type": "object"
32308
32970
  },
32309
32971
  "FromVersionImageRef": {
32310
- "additionalProperties": false,
32311
32972
  "properties": {
32312
32973
  "kind": {
32313
32974
  "const": "from_version",
@@ -32337,8 +32998,85 @@ var GENERATED_TOOLS = [
32337
32998
  "title": "FromVersionImageRef",
32338
32999
  "type": "object"
32339
33000
  },
33001
+ "JobError": {
33002
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
33003
+ "properties": {
33004
+ "code": {
33005
+ "title": "Code",
33006
+ "type": "string"
33007
+ },
33008
+ "message": {
33009
+ "title": "Message",
33010
+ "type": "string"
33011
+ },
33012
+ "retryable": {
33013
+ "default": false,
33014
+ "title": "Retryable",
33015
+ "type": "boolean"
33016
+ },
33017
+ "refunded_krw": {
33018
+ "default": 0,
33019
+ "title": "Refunded Krw",
33020
+ "type": "integer"
33021
+ },
33022
+ "hint": {
33023
+ "anyOf": [
33024
+ {
33025
+ "type": "string"
33026
+ },
33027
+ {
33028
+ "type": "null"
33029
+ }
33030
+ ],
33031
+ "default": null,
33032
+ "title": "Hint"
33033
+ },
33034
+ "provider_job_id": {
33035
+ "anyOf": [
33036
+ {
33037
+ "type": "string"
33038
+ },
33039
+ {
33040
+ "type": "null"
33041
+ }
33042
+ ],
33043
+ "default": null,
33044
+ "title": "Provider Job Id"
33045
+ },
33046
+ "cause": {
33047
+ "anyOf": [
33048
+ {
33049
+ "type": "string"
33050
+ },
33051
+ {
33052
+ "type": "null"
33053
+ }
33054
+ ],
33055
+ "default": null,
33056
+ "title": "Cause"
33057
+ },
33058
+ "data": {
33059
+ "anyOf": [
33060
+ {
33061
+ "additionalProperties": true,
33062
+ "type": "object"
33063
+ },
33064
+ {
33065
+ "type": "null"
33066
+ }
33067
+ ],
33068
+ "default": null,
33069
+ "title": "Data"
33070
+ }
33071
+ },
33072
+ "required": [
33073
+ "code",
33074
+ "message"
33075
+ ],
33076
+ "title": "JobError",
33077
+ "type": "object"
33078
+ },
32340
33079
  "MotionGraphicSpec": {
32341
- "additionalProperties": false,
32342
33080
  "properties": {
32343
33081
  "dialogue": {
32344
33082
  "items": {
@@ -32484,7 +33222,6 @@ var GENERATED_TOOLS = [
32484
33222
  "type": "object"
32485
33223
  },
32486
33224
  "PipSpec": {
32487
- "additionalProperties": false,
32488
33225
  "properties": {
32489
33226
  "avatar_id": {
32490
33227
  "minLength": 1,
@@ -32527,7 +33264,6 @@ var GENERATED_TOOLS = [
32527
33264
  "type": "object"
32528
33265
  },
32529
33266
  "Quote": {
32530
- "additionalProperties": false,
32531
33267
  "properties": {
32532
33268
  "rows": {
32533
33269
  "items": {
@@ -32567,7 +33303,6 @@ var GENERATED_TOOLS = [
32567
33303
  "type": "object"
32568
33304
  },
32569
33305
  "QuoteRow": {
32570
- "additionalProperties": false,
32571
33306
  "properties": {
32572
33307
  "key": {
32573
33308
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -32615,7 +33350,6 @@ var GENERATED_TOOLS = [
32615
33350
  "type": "object"
32616
33351
  },
32617
33352
  "Timing": {
32618
- "additionalProperties": false,
32619
33353
  "properties": {
32620
33354
  "dialogue": {
32621
33355
  "items": {
@@ -32658,7 +33392,6 @@ var GENERATED_TOOLS = [
32658
33392
  "type": "object"
32659
33393
  },
32660
33394
  "YoutubeAssetSource": {
32661
- "additionalProperties": false,
32662
33395
  "properties": {
32663
33396
  "kind": {
32664
33397
  "const": "asset",
@@ -32706,7 +33439,6 @@ var GENERATED_TOOLS = [
32706
33439
  "type": "object"
32707
33440
  },
32708
33441
  "YoutubeClipSpec": {
32709
- "additionalProperties": false,
32710
33442
  "properties": {
32711
33443
  "dialogue": {
32712
33444
  "items": {
@@ -32833,7 +33565,6 @@ var GENERATED_TOOLS = [
32833
33565
  "type": "object"
32834
33566
  },
32835
33567
  "YoutubeUrlSource": {
32836
- "additionalProperties": false,
32837
33568
  "properties": {
32838
33569
  "kind": {
32839
33570
  "const": "url",
@@ -32867,7 +33598,6 @@ var GENERATED_TOOLS = [
32867
33598
  "type": "object"
32868
33599
  }
32869
33600
  },
32870
- "additionalProperties": false,
32871
33601
  "properties": {
32872
33602
  "id": {
32873
33603
  "title": "Id",
@@ -33039,6 +33769,31 @@ var GENERATED_TOOLS = [
33039
33769
  "default": null,
33040
33770
  "title": "Active Job Id"
33041
33771
  },
33772
+ "last_job_id": {
33773
+ "anyOf": [
33774
+ {
33775
+ "type": "string"
33776
+ },
33777
+ {
33778
+ "type": "null"
33779
+ }
33780
+ ],
33781
+ "default": null,
33782
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
33783
+ "title": "Last Job Id"
33784
+ },
33785
+ "last_error": {
33786
+ "anyOf": [
33787
+ {
33788
+ "$ref": "#/$defs/JobError"
33789
+ },
33790
+ {
33791
+ "type": "null"
33792
+ }
33793
+ ],
33794
+ "default": null,
33795
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
33796
+ },
33042
33797
  "next_calls": {
33043
33798
  "items": {
33044
33799
  "type": "string"
@@ -33098,7 +33853,6 @@ var GENERATED_TOOLS = [
33098
33853
  "outputSchema": {
33099
33854
  "$defs": {
33100
33855
  "AiVideoSpec": {
33101
- "additionalProperties": false,
33102
33856
  "properties": {
33103
33857
  "dialogue": {
33104
33858
  "items": {
@@ -33295,7 +34049,6 @@ var GENERATED_TOOLS = [
33295
34049
  "type": "object"
33296
34050
  },
33297
34051
  "AssetImageRef": {
33298
- "additionalProperties": false,
33299
34052
  "properties": {
33300
34053
  "kind": {
33301
34054
  "const": "asset",
@@ -33316,7 +34069,6 @@ var GENERATED_TOOLS = [
33316
34069
  "type": "object"
33317
34070
  },
33318
34071
  "CanvasPos": {
33319
- "additionalProperties": false,
33320
34072
  "properties": {
33321
34073
  "x": {
33322
34074
  "default": 0,
@@ -33333,7 +34085,6 @@ var GENERATED_TOOLS = [
33333
34085
  "type": "object"
33334
34086
  },
33335
34087
  "CutEdit": {
33336
- "additionalProperties": false,
33337
34088
  "properties": {
33338
34089
  "trim_in_ms": {
33339
34090
  "default": 0,
@@ -33371,7 +34122,6 @@ var GENERATED_TOOLS = [
33371
34122
  "type": "object"
33372
34123
  },
33373
34124
  "CutImageView": {
33374
- "additionalProperties": false,
33375
34125
  "properties": {
33376
34126
  "id": {
33377
34127
  "title": "Id",
@@ -33430,7 +34180,6 @@ var GENERATED_TOOLS = [
33430
34180
  "type": "object"
33431
34181
  },
33432
34182
  "CutVersionView": {
33433
- "additionalProperties": false,
33434
34183
  "properties": {
33435
34184
  "version": {
33436
34185
  "minimum": 1,
@@ -33538,7 +34287,6 @@ var GENERATED_TOOLS = [
33538
34287
  "type": "object"
33539
34288
  },
33540
34289
  "DialogueLine": {
33541
- "additionalProperties": false,
33542
34290
  "properties": {
33543
34291
  "id": {
33544
34292
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -33591,7 +34339,6 @@ var GENERATED_TOOLS = [
33591
34339
  "type": "object"
33592
34340
  },
33593
34341
  "DialogueTiming": {
33594
- "additionalProperties": false,
33595
34342
  "properties": {
33596
34343
  "id": {
33597
34344
  "title": "Id",
@@ -33617,7 +34364,6 @@ var GENERATED_TOOLS = [
33617
34364
  "type": "object"
33618
34365
  },
33619
34366
  "DownloadUrls": {
33620
- "additionalProperties": false,
33621
34367
  "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.",
33622
34368
  "properties": {
33623
34369
  "video": {
@@ -33685,7 +34431,6 @@ var GENERATED_TOOLS = [
33685
34431
  "type": "object"
33686
34432
  },
33687
34433
  "FromCutImageRef": {
33688
- "additionalProperties": false,
33689
34434
  "properties": {
33690
34435
  "kind": {
33691
34436
  "const": "from_cut",
@@ -33716,7 +34461,6 @@ var GENERATED_TOOLS = [
33716
34461
  "type": "object"
33717
34462
  },
33718
34463
  "FromVersionImageRef": {
33719
- "additionalProperties": false,
33720
34464
  "properties": {
33721
34465
  "kind": {
33722
34466
  "const": "from_version",
@@ -33746,8 +34490,85 @@ var GENERATED_TOOLS = [
33746
34490
  "title": "FromVersionImageRef",
33747
34491
  "type": "object"
33748
34492
  },
34493
+ "JobError": {
34494
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
34495
+ "properties": {
34496
+ "code": {
34497
+ "title": "Code",
34498
+ "type": "string"
34499
+ },
34500
+ "message": {
34501
+ "title": "Message",
34502
+ "type": "string"
34503
+ },
34504
+ "retryable": {
34505
+ "default": false,
34506
+ "title": "Retryable",
34507
+ "type": "boolean"
34508
+ },
34509
+ "refunded_krw": {
34510
+ "default": 0,
34511
+ "title": "Refunded Krw",
34512
+ "type": "integer"
34513
+ },
34514
+ "hint": {
34515
+ "anyOf": [
34516
+ {
34517
+ "type": "string"
34518
+ },
34519
+ {
34520
+ "type": "null"
34521
+ }
34522
+ ],
34523
+ "default": null,
34524
+ "title": "Hint"
34525
+ },
34526
+ "provider_job_id": {
34527
+ "anyOf": [
34528
+ {
34529
+ "type": "string"
34530
+ },
34531
+ {
34532
+ "type": "null"
34533
+ }
34534
+ ],
34535
+ "default": null,
34536
+ "title": "Provider Job Id"
34537
+ },
34538
+ "cause": {
34539
+ "anyOf": [
34540
+ {
34541
+ "type": "string"
34542
+ },
34543
+ {
34544
+ "type": "null"
34545
+ }
34546
+ ],
34547
+ "default": null,
34548
+ "title": "Cause"
34549
+ },
34550
+ "data": {
34551
+ "anyOf": [
34552
+ {
34553
+ "additionalProperties": true,
34554
+ "type": "object"
34555
+ },
34556
+ {
34557
+ "type": "null"
34558
+ }
34559
+ ],
34560
+ "default": null,
34561
+ "title": "Data"
34562
+ }
34563
+ },
34564
+ "required": [
34565
+ "code",
34566
+ "message"
34567
+ ],
34568
+ "title": "JobError",
34569
+ "type": "object"
34570
+ },
33749
34571
  "MotionGraphicSpec": {
33750
- "additionalProperties": false,
33751
34572
  "properties": {
33752
34573
  "dialogue": {
33753
34574
  "items": {
@@ -33893,7 +34714,6 @@ var GENERATED_TOOLS = [
33893
34714
  "type": "object"
33894
34715
  },
33895
34716
  "PipSpec": {
33896
- "additionalProperties": false,
33897
34717
  "properties": {
33898
34718
  "avatar_id": {
33899
34719
  "minLength": 1,
@@ -33936,7 +34756,6 @@ var GENERATED_TOOLS = [
33936
34756
  "type": "object"
33937
34757
  },
33938
34758
  "Quote": {
33939
- "additionalProperties": false,
33940
34759
  "properties": {
33941
34760
  "rows": {
33942
34761
  "items": {
@@ -33976,7 +34795,6 @@ var GENERATED_TOOLS = [
33976
34795
  "type": "object"
33977
34796
  },
33978
34797
  "QuoteRow": {
33979
- "additionalProperties": false,
33980
34798
  "properties": {
33981
34799
  "key": {
33982
34800
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -34024,7 +34842,6 @@ var GENERATED_TOOLS = [
34024
34842
  "type": "object"
34025
34843
  },
34026
34844
  "Timing": {
34027
- "additionalProperties": false,
34028
34845
  "properties": {
34029
34846
  "dialogue": {
34030
34847
  "items": {
@@ -34067,7 +34884,6 @@ var GENERATED_TOOLS = [
34067
34884
  "type": "object"
34068
34885
  },
34069
34886
  "YoutubeAssetSource": {
34070
- "additionalProperties": false,
34071
34887
  "properties": {
34072
34888
  "kind": {
34073
34889
  "const": "asset",
@@ -34115,7 +34931,6 @@ var GENERATED_TOOLS = [
34115
34931
  "type": "object"
34116
34932
  },
34117
34933
  "YoutubeClipSpec": {
34118
- "additionalProperties": false,
34119
34934
  "properties": {
34120
34935
  "dialogue": {
34121
34936
  "items": {
@@ -34242,7 +35057,6 @@ var GENERATED_TOOLS = [
34242
35057
  "type": "object"
34243
35058
  },
34244
35059
  "YoutubeUrlSource": {
34245
- "additionalProperties": false,
34246
35060
  "properties": {
34247
35061
  "kind": {
34248
35062
  "const": "url",
@@ -34276,7 +35090,6 @@ var GENERATED_TOOLS = [
34276
35090
  "type": "object"
34277
35091
  }
34278
35092
  },
34279
- "additionalProperties": false,
34280
35093
  "properties": {
34281
35094
  "id": {
34282
35095
  "title": "Id",
@@ -34448,6 +35261,31 @@ var GENERATED_TOOLS = [
34448
35261
  "default": null,
34449
35262
  "title": "Active Job Id"
34450
35263
  },
35264
+ "last_job_id": {
35265
+ "anyOf": [
35266
+ {
35267
+ "type": "string"
35268
+ },
35269
+ {
35270
+ "type": "null"
35271
+ }
35272
+ ],
35273
+ "default": null,
35274
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
35275
+ "title": "Last Job Id"
35276
+ },
35277
+ "last_error": {
35278
+ "anyOf": [
35279
+ {
35280
+ "$ref": "#/$defs/JobError"
35281
+ },
35282
+ {
35283
+ "type": "null"
35284
+ }
35285
+ ],
35286
+ "default": null,
35287
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
35288
+ },
34451
35289
  "next_calls": {
34452
35290
  "items": {
34453
35291
  "type": "string"
@@ -34505,7 +35343,6 @@ var GENERATED_TOOLS = [
34505
35343
  "additionalProperties": false
34506
35344
  },
34507
35345
  "outputSchema": {
34508
- "additionalProperties": false,
34509
35346
  "properties": {
34510
35347
  "deleted": {
34511
35348
  "default": true,
@@ -35309,7 +36146,6 @@ var GENERATED_TOOLS = [
35309
36146
  "outputSchema": {
35310
36147
  "$defs": {
35311
36148
  "AiVideoSpec": {
35312
- "additionalProperties": false,
35313
36149
  "properties": {
35314
36150
  "dialogue": {
35315
36151
  "items": {
@@ -35506,7 +36342,6 @@ var GENERATED_TOOLS = [
35506
36342
  "type": "object"
35507
36343
  },
35508
36344
  "AssetImageRef": {
35509
- "additionalProperties": false,
35510
36345
  "properties": {
35511
36346
  "kind": {
35512
36347
  "const": "asset",
@@ -35527,7 +36362,6 @@ var GENERATED_TOOLS = [
35527
36362
  "type": "object"
35528
36363
  },
35529
36364
  "CanvasPos": {
35530
- "additionalProperties": false,
35531
36365
  "properties": {
35532
36366
  "x": {
35533
36367
  "default": 0,
@@ -35544,7 +36378,6 @@ var GENERATED_TOOLS = [
35544
36378
  "type": "object"
35545
36379
  },
35546
36380
  "CutEdit": {
35547
- "additionalProperties": false,
35548
36381
  "properties": {
35549
36382
  "trim_in_ms": {
35550
36383
  "default": 0,
@@ -35582,7 +36415,6 @@ var GENERATED_TOOLS = [
35582
36415
  "type": "object"
35583
36416
  },
35584
36417
  "CutImageView": {
35585
- "additionalProperties": false,
35586
36418
  "properties": {
35587
36419
  "id": {
35588
36420
  "title": "Id",
@@ -35641,7 +36473,6 @@ var GENERATED_TOOLS = [
35641
36473
  "type": "object"
35642
36474
  },
35643
36475
  "CutVersionView": {
35644
- "additionalProperties": false,
35645
36476
  "properties": {
35646
36477
  "version": {
35647
36478
  "minimum": 1,
@@ -35749,7 +36580,6 @@ var GENERATED_TOOLS = [
35749
36580
  "type": "object"
35750
36581
  },
35751
36582
  "DialogueLine": {
35752
- "additionalProperties": false,
35753
36583
  "properties": {
35754
36584
  "id": {
35755
36585
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -35802,7 +36632,6 @@ var GENERATED_TOOLS = [
35802
36632
  "type": "object"
35803
36633
  },
35804
36634
  "DialogueTiming": {
35805
- "additionalProperties": false,
35806
36635
  "properties": {
35807
36636
  "id": {
35808
36637
  "title": "Id",
@@ -35828,7 +36657,6 @@ var GENERATED_TOOLS = [
35828
36657
  "type": "object"
35829
36658
  },
35830
36659
  "DownloadUrls": {
35831
- "additionalProperties": false,
35832
36660
  "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.",
35833
36661
  "properties": {
35834
36662
  "video": {
@@ -35896,7 +36724,6 @@ var GENERATED_TOOLS = [
35896
36724
  "type": "object"
35897
36725
  },
35898
36726
  "FromCutImageRef": {
35899
- "additionalProperties": false,
35900
36727
  "properties": {
35901
36728
  "kind": {
35902
36729
  "const": "from_cut",
@@ -35927,7 +36754,6 @@ var GENERATED_TOOLS = [
35927
36754
  "type": "object"
35928
36755
  },
35929
36756
  "FromVersionImageRef": {
35930
- "additionalProperties": false,
35931
36757
  "properties": {
35932
36758
  "kind": {
35933
36759
  "const": "from_version",
@@ -35957,8 +36783,85 @@ var GENERATED_TOOLS = [
35957
36783
  "title": "FromVersionImageRef",
35958
36784
  "type": "object"
35959
36785
  },
36786
+ "JobError": {
36787
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
36788
+ "properties": {
36789
+ "code": {
36790
+ "title": "Code",
36791
+ "type": "string"
36792
+ },
36793
+ "message": {
36794
+ "title": "Message",
36795
+ "type": "string"
36796
+ },
36797
+ "retryable": {
36798
+ "default": false,
36799
+ "title": "Retryable",
36800
+ "type": "boolean"
36801
+ },
36802
+ "refunded_krw": {
36803
+ "default": 0,
36804
+ "title": "Refunded Krw",
36805
+ "type": "integer"
36806
+ },
36807
+ "hint": {
36808
+ "anyOf": [
36809
+ {
36810
+ "type": "string"
36811
+ },
36812
+ {
36813
+ "type": "null"
36814
+ }
36815
+ ],
36816
+ "default": null,
36817
+ "title": "Hint"
36818
+ },
36819
+ "provider_job_id": {
36820
+ "anyOf": [
36821
+ {
36822
+ "type": "string"
36823
+ },
36824
+ {
36825
+ "type": "null"
36826
+ }
36827
+ ],
36828
+ "default": null,
36829
+ "title": "Provider Job Id"
36830
+ },
36831
+ "cause": {
36832
+ "anyOf": [
36833
+ {
36834
+ "type": "string"
36835
+ },
36836
+ {
36837
+ "type": "null"
36838
+ }
36839
+ ],
36840
+ "default": null,
36841
+ "title": "Cause"
36842
+ },
36843
+ "data": {
36844
+ "anyOf": [
36845
+ {
36846
+ "additionalProperties": true,
36847
+ "type": "object"
36848
+ },
36849
+ {
36850
+ "type": "null"
36851
+ }
36852
+ ],
36853
+ "default": null,
36854
+ "title": "Data"
36855
+ }
36856
+ },
36857
+ "required": [
36858
+ "code",
36859
+ "message"
36860
+ ],
36861
+ "title": "JobError",
36862
+ "type": "object"
36863
+ },
35960
36864
  "MotionGraphicSpec": {
35961
- "additionalProperties": false,
35962
36865
  "properties": {
35963
36866
  "dialogue": {
35964
36867
  "items": {
@@ -36104,7 +37007,6 @@ var GENERATED_TOOLS = [
36104
37007
  "type": "object"
36105
37008
  },
36106
37009
  "PipSpec": {
36107
- "additionalProperties": false,
36108
37010
  "properties": {
36109
37011
  "avatar_id": {
36110
37012
  "minLength": 1,
@@ -36147,7 +37049,6 @@ var GENERATED_TOOLS = [
36147
37049
  "type": "object"
36148
37050
  },
36149
37051
  "Quote": {
36150
- "additionalProperties": false,
36151
37052
  "properties": {
36152
37053
  "rows": {
36153
37054
  "items": {
@@ -36187,7 +37088,6 @@ var GENERATED_TOOLS = [
36187
37088
  "type": "object"
36188
37089
  },
36189
37090
  "QuoteRow": {
36190
- "additionalProperties": false,
36191
37091
  "properties": {
36192
37092
  "key": {
36193
37093
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -36235,7 +37135,6 @@ var GENERATED_TOOLS = [
36235
37135
  "type": "object"
36236
37136
  },
36237
37137
  "Timing": {
36238
- "additionalProperties": false,
36239
37138
  "properties": {
36240
37139
  "dialogue": {
36241
37140
  "items": {
@@ -36278,7 +37177,6 @@ var GENERATED_TOOLS = [
36278
37177
  "type": "object"
36279
37178
  },
36280
37179
  "YoutubeAssetSource": {
36281
- "additionalProperties": false,
36282
37180
  "properties": {
36283
37181
  "kind": {
36284
37182
  "const": "asset",
@@ -36326,7 +37224,6 @@ var GENERATED_TOOLS = [
36326
37224
  "type": "object"
36327
37225
  },
36328
37226
  "YoutubeClipSpec": {
36329
- "additionalProperties": false,
36330
37227
  "properties": {
36331
37228
  "dialogue": {
36332
37229
  "items": {
@@ -36453,7 +37350,6 @@ var GENERATED_TOOLS = [
36453
37350
  "type": "object"
36454
37351
  },
36455
37352
  "YoutubeUrlSource": {
36456
- "additionalProperties": false,
36457
37353
  "properties": {
36458
37354
  "kind": {
36459
37355
  "const": "url",
@@ -36487,7 +37383,6 @@ var GENERATED_TOOLS = [
36487
37383
  "type": "object"
36488
37384
  }
36489
37385
  },
36490
- "additionalProperties": false,
36491
37386
  "properties": {
36492
37387
  "id": {
36493
37388
  "title": "Id",
@@ -36659,6 +37554,31 @@ var GENERATED_TOOLS = [
36659
37554
  "default": null,
36660
37555
  "title": "Active Job Id"
36661
37556
  },
37557
+ "last_job_id": {
37558
+ "anyOf": [
37559
+ {
37560
+ "type": "string"
37561
+ },
37562
+ {
37563
+ "type": "null"
37564
+ }
37565
+ ],
37566
+ "default": null,
37567
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
37568
+ "title": "Last Job Id"
37569
+ },
37570
+ "last_error": {
37571
+ "anyOf": [
37572
+ {
37573
+ "$ref": "#/$defs/JobError"
37574
+ },
37575
+ {
37576
+ "type": "null"
37577
+ }
37578
+ ],
37579
+ "default": null,
37580
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
37581
+ },
36662
37582
  "next_calls": {
36663
37583
  "items": {
36664
37584
  "type": "string"
@@ -36762,7 +37682,6 @@ var GENERATED_TOOLS = [
36762
37682
  "outputSchema": {
36763
37683
  "$defs": {
36764
37684
  "AiVideoSpec": {
36765
- "additionalProperties": false,
36766
37685
  "properties": {
36767
37686
  "dialogue": {
36768
37687
  "items": {
@@ -36959,7 +37878,6 @@ var GENERATED_TOOLS = [
36959
37878
  "type": "object"
36960
37879
  },
36961
37880
  "AssetImageRef": {
36962
- "additionalProperties": false,
36963
37881
  "properties": {
36964
37882
  "kind": {
36965
37883
  "const": "asset",
@@ -36980,7 +37898,6 @@ var GENERATED_TOOLS = [
36980
37898
  "type": "object"
36981
37899
  },
36982
37900
  "CanvasPos": {
36983
- "additionalProperties": false,
36984
37901
  "properties": {
36985
37902
  "x": {
36986
37903
  "default": 0,
@@ -36997,7 +37914,6 @@ var GENERATED_TOOLS = [
36997
37914
  "type": "object"
36998
37915
  },
36999
37916
  "CutEdit": {
37000
- "additionalProperties": false,
37001
37917
  "properties": {
37002
37918
  "trim_in_ms": {
37003
37919
  "default": 0,
@@ -37035,7 +37951,6 @@ var GENERATED_TOOLS = [
37035
37951
  "type": "object"
37036
37952
  },
37037
37953
  "CutImageView": {
37038
- "additionalProperties": false,
37039
37954
  "properties": {
37040
37955
  "id": {
37041
37956
  "title": "Id",
@@ -37094,7 +38009,6 @@ var GENERATED_TOOLS = [
37094
38009
  "type": "object"
37095
38010
  },
37096
38011
  "CutVersionView": {
37097
- "additionalProperties": false,
37098
38012
  "properties": {
37099
38013
  "version": {
37100
38014
  "minimum": 1,
@@ -37202,7 +38116,6 @@ var GENERATED_TOOLS = [
37202
38116
  "type": "object"
37203
38117
  },
37204
38118
  "DialogueLine": {
37205
- "additionalProperties": false,
37206
38119
  "properties": {
37207
38120
  "id": {
37208
38121
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -37255,7 +38168,6 @@ var GENERATED_TOOLS = [
37255
38168
  "type": "object"
37256
38169
  },
37257
38170
  "DialogueTiming": {
37258
- "additionalProperties": false,
37259
38171
  "properties": {
37260
38172
  "id": {
37261
38173
  "title": "Id",
@@ -37281,7 +38193,6 @@ var GENERATED_TOOLS = [
37281
38193
  "type": "object"
37282
38194
  },
37283
38195
  "DownloadUrls": {
37284
- "additionalProperties": false,
37285
38196
  "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.",
37286
38197
  "properties": {
37287
38198
  "video": {
@@ -37349,7 +38260,6 @@ var GENERATED_TOOLS = [
37349
38260
  "type": "object"
37350
38261
  },
37351
38262
  "FromCutImageRef": {
37352
- "additionalProperties": false,
37353
38263
  "properties": {
37354
38264
  "kind": {
37355
38265
  "const": "from_cut",
@@ -37380,7 +38290,6 @@ var GENERATED_TOOLS = [
37380
38290
  "type": "object"
37381
38291
  },
37382
38292
  "FromVersionImageRef": {
37383
- "additionalProperties": false,
37384
38293
  "properties": {
37385
38294
  "kind": {
37386
38295
  "const": "from_version",
@@ -37410,8 +38319,85 @@ var GENERATED_TOOLS = [
37410
38319
  "title": "FromVersionImageRef",
37411
38320
  "type": "object"
37412
38321
  },
38322
+ "JobError": {
38323
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
38324
+ "properties": {
38325
+ "code": {
38326
+ "title": "Code",
38327
+ "type": "string"
38328
+ },
38329
+ "message": {
38330
+ "title": "Message",
38331
+ "type": "string"
38332
+ },
38333
+ "retryable": {
38334
+ "default": false,
38335
+ "title": "Retryable",
38336
+ "type": "boolean"
38337
+ },
38338
+ "refunded_krw": {
38339
+ "default": 0,
38340
+ "title": "Refunded Krw",
38341
+ "type": "integer"
38342
+ },
38343
+ "hint": {
38344
+ "anyOf": [
38345
+ {
38346
+ "type": "string"
38347
+ },
38348
+ {
38349
+ "type": "null"
38350
+ }
38351
+ ],
38352
+ "default": null,
38353
+ "title": "Hint"
38354
+ },
38355
+ "provider_job_id": {
38356
+ "anyOf": [
38357
+ {
38358
+ "type": "string"
38359
+ },
38360
+ {
38361
+ "type": "null"
38362
+ }
38363
+ ],
38364
+ "default": null,
38365
+ "title": "Provider Job Id"
38366
+ },
38367
+ "cause": {
38368
+ "anyOf": [
38369
+ {
38370
+ "type": "string"
38371
+ },
38372
+ {
38373
+ "type": "null"
38374
+ }
38375
+ ],
38376
+ "default": null,
38377
+ "title": "Cause"
38378
+ },
38379
+ "data": {
38380
+ "anyOf": [
38381
+ {
38382
+ "additionalProperties": true,
38383
+ "type": "object"
38384
+ },
38385
+ {
38386
+ "type": "null"
38387
+ }
38388
+ ],
38389
+ "default": null,
38390
+ "title": "Data"
38391
+ }
38392
+ },
38393
+ "required": [
38394
+ "code",
38395
+ "message"
38396
+ ],
38397
+ "title": "JobError",
38398
+ "type": "object"
38399
+ },
37413
38400
  "MotionGraphicSpec": {
37414
- "additionalProperties": false,
37415
38401
  "properties": {
37416
38402
  "dialogue": {
37417
38403
  "items": {
@@ -37557,7 +38543,6 @@ var GENERATED_TOOLS = [
37557
38543
  "type": "object"
37558
38544
  },
37559
38545
  "PipSpec": {
37560
- "additionalProperties": false,
37561
38546
  "properties": {
37562
38547
  "avatar_id": {
37563
38548
  "minLength": 1,
@@ -37600,7 +38585,6 @@ var GENERATED_TOOLS = [
37600
38585
  "type": "object"
37601
38586
  },
37602
38587
  "Quote": {
37603
- "additionalProperties": false,
37604
38588
  "properties": {
37605
38589
  "rows": {
37606
38590
  "items": {
@@ -37640,7 +38624,6 @@ var GENERATED_TOOLS = [
37640
38624
  "type": "object"
37641
38625
  },
37642
38626
  "QuoteRow": {
37643
- "additionalProperties": false,
37644
38627
  "properties": {
37645
38628
  "key": {
37646
38629
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -37688,7 +38671,6 @@ var GENERATED_TOOLS = [
37688
38671
  "type": "object"
37689
38672
  },
37690
38673
  "Timing": {
37691
- "additionalProperties": false,
37692
38674
  "properties": {
37693
38675
  "dialogue": {
37694
38676
  "items": {
@@ -37731,7 +38713,6 @@ var GENERATED_TOOLS = [
37731
38713
  "type": "object"
37732
38714
  },
37733
38715
  "YoutubeAssetSource": {
37734
- "additionalProperties": false,
37735
38716
  "properties": {
37736
38717
  "kind": {
37737
38718
  "const": "asset",
@@ -37779,7 +38760,6 @@ var GENERATED_TOOLS = [
37779
38760
  "type": "object"
37780
38761
  },
37781
38762
  "YoutubeClipSpec": {
37782
- "additionalProperties": false,
37783
38763
  "properties": {
37784
38764
  "dialogue": {
37785
38765
  "items": {
@@ -37906,7 +38886,6 @@ var GENERATED_TOOLS = [
37906
38886
  "type": "object"
37907
38887
  },
37908
38888
  "YoutubeUrlSource": {
37909
- "additionalProperties": false,
37910
38889
  "properties": {
37911
38890
  "kind": {
37912
38891
  "const": "url",
@@ -37940,7 +38919,6 @@ var GENERATED_TOOLS = [
37940
38919
  "type": "object"
37941
38920
  }
37942
38921
  },
37943
- "additionalProperties": false,
37944
38922
  "properties": {
37945
38923
  "id": {
37946
38924
  "title": "Id",
@@ -38112,6 +39090,31 @@ var GENERATED_TOOLS = [
38112
39090
  "default": null,
38113
39091
  "title": "Active Job Id"
38114
39092
  },
39093
+ "last_job_id": {
39094
+ "anyOf": [
39095
+ {
39096
+ "type": "string"
39097
+ },
39098
+ {
39099
+ "type": "null"
39100
+ }
39101
+ ],
39102
+ "default": null,
39103
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
39104
+ "title": "Last Job Id"
39105
+ },
39106
+ "last_error": {
39107
+ "anyOf": [
39108
+ {
39109
+ "$ref": "#/$defs/JobError"
39110
+ },
39111
+ {
39112
+ "type": "null"
39113
+ }
39114
+ ],
39115
+ "default": null,
39116
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
39117
+ },
38115
39118
  "next_calls": {
38116
39119
  "items": {
38117
39120
  "type": "string"
@@ -38181,7 +39184,6 @@ var GENERATED_TOOLS = [
38181
39184
  "outputSchema": {
38182
39185
  "$defs": {
38183
39186
  "AddCutOp": {
38184
- "additionalProperties": false,
38185
39187
  "properties": {
38186
39188
  "op": {
38187
39189
  "const": "add_cut",
@@ -38241,7 +39243,6 @@ var GENERATED_TOOLS = [
38241
39243
  "type": "object"
38242
39244
  },
38243
39245
  "AiVideoSpec": {
38244
- "additionalProperties": false,
38245
39246
  "properties": {
38246
39247
  "dialogue": {
38247
39248
  "items": {
@@ -38438,7 +39439,6 @@ var GENERATED_TOOLS = [
38438
39439
  "type": "object"
38439
39440
  },
38440
39441
  "AssetImageRef": {
38441
- "additionalProperties": false,
38442
39442
  "properties": {
38443
39443
  "kind": {
38444
39444
  "const": "asset",
@@ -38459,7 +39459,6 @@ var GENERATED_TOOLS = [
38459
39459
  "type": "object"
38460
39460
  },
38461
39461
  "CanvasPos": {
38462
- "additionalProperties": false,
38463
39462
  "properties": {
38464
39463
  "x": {
38465
39464
  "default": 0,
@@ -38476,7 +39475,6 @@ var GENERATED_TOOLS = [
38476
39475
  "type": "object"
38477
39476
  },
38478
39477
  "CutEdit": {
38479
- "additionalProperties": false,
38480
39478
  "properties": {
38481
39479
  "trim_in_ms": {
38482
39480
  "default": 0,
@@ -38514,7 +39512,6 @@ var GENERATED_TOOLS = [
38514
39512
  "type": "object"
38515
39513
  },
38516
39514
  "CutImageView": {
38517
- "additionalProperties": false,
38518
39515
  "properties": {
38519
39516
  "id": {
38520
39517
  "title": "Id",
@@ -38573,7 +39570,6 @@ var GENERATED_TOOLS = [
38573
39570
  "type": "object"
38574
39571
  },
38575
39572
  "CutVersionView": {
38576
- "additionalProperties": false,
38577
39573
  "properties": {
38578
39574
  "version": {
38579
39575
  "minimum": 1,
@@ -38681,7 +39677,6 @@ var GENERATED_TOOLS = [
38681
39677
  "type": "object"
38682
39678
  },
38683
39679
  "CutView": {
38684
- "additionalProperties": false,
38685
39680
  "properties": {
38686
39681
  "id": {
38687
39682
  "title": "Id",
@@ -38853,6 +39848,31 @@ var GENERATED_TOOLS = [
38853
39848
  "default": null,
38854
39849
  "title": "Active Job Id"
38855
39850
  },
39851
+ "last_job_id": {
39852
+ "anyOf": [
39853
+ {
39854
+ "type": "string"
39855
+ },
39856
+ {
39857
+ "type": "null"
39858
+ }
39859
+ ],
39860
+ "default": null,
39861
+ "description": "\uC774 \uCEF7\uC758 \uB9C8\uC9C0\uB9C9 \uC7A1(\uC9C4\uD589 \uC911\uC774\uBA74 active_job_id \uC640 \uAC19\uB2E4). wait_jobs \uC758 job_ids \uB85C \uC4F8 \uC218 \uC788\uB2E4",
39862
+ "title": "Last Job Id"
39863
+ },
39864
+ "last_error": {
39865
+ "anyOf": [
39866
+ {
39867
+ "$ref": "#/$defs/JobError"
39868
+ },
39869
+ {
39870
+ "type": "null"
39871
+ }
39872
+ ],
39873
+ "default": null,
39874
+ "description": "state=failed \uC77C \uB54C\uB9CC \u2014 \uB9C8\uC9C0\uB9C9 \uC7A1\uC758 \uC624\uB958(code\xB7message\xB7hint\xB7refunded_krw). \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uB294 \uC774\uC720"
39875
+ },
38856
39876
  "next_calls": {
38857
39877
  "items": {
38858
39878
  "type": "string"
@@ -38882,7 +39902,6 @@ var GENERATED_TOOLS = [
38882
39902
  "type": "object"
38883
39903
  },
38884
39904
  "DialogueLine": {
38885
- "additionalProperties": false,
38886
39905
  "properties": {
38887
39906
  "id": {
38888
39907
  "description": "\uC904 id ln_<6> \u2014 \uC81C\uC548 diff \uC758 \uB300\uC870 \uD0A4",
@@ -38935,7 +39954,6 @@ var GENERATED_TOOLS = [
38935
39954
  "type": "object"
38936
39955
  },
38937
39956
  "DialogueTiming": {
38938
- "additionalProperties": false,
38939
39957
  "properties": {
38940
39958
  "id": {
38941
39959
  "title": "Id",
@@ -38961,7 +39979,6 @@ var GENERATED_TOOLS = [
38961
39979
  "type": "object"
38962
39980
  },
38963
39981
  "DownloadUrls": {
38964
- "additionalProperties": false,
38965
39982
  "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.",
38966
39983
  "properties": {
38967
39984
  "video": {
@@ -39029,7 +40046,6 @@ var GENERATED_TOOLS = [
39029
40046
  "type": "object"
39030
40047
  },
39031
40048
  "FieldChange": {
39032
- "additionalProperties": false,
39033
40049
  "properties": {
39034
40050
  "before": {
39035
40051
  "default": null,
@@ -39044,7 +40060,6 @@ var GENERATED_TOOLS = [
39044
40060
  "type": "object"
39045
40061
  },
39046
40062
  "FromCutImageRef": {
39047
- "additionalProperties": false,
39048
40063
  "properties": {
39049
40064
  "kind": {
39050
40065
  "const": "from_cut",
@@ -39075,7 +40090,6 @@ var GENERATED_TOOLS = [
39075
40090
  "type": "object"
39076
40091
  },
39077
40092
  "FromVersionImageRef": {
39078
- "additionalProperties": false,
39079
40093
  "properties": {
39080
40094
  "kind": {
39081
40095
  "const": "from_version",
@@ -39105,8 +40119,85 @@ var GENERATED_TOOLS = [
39105
40119
  "title": "FromVersionImageRef",
39106
40120
  "type": "object"
39107
40121
  },
40122
+ "JobError": {
40123
+ "description": '\uC7A1 \uC2E4\uD328\uC758 \uB300\uC678 \uC5BC\uAD74. \u2605\u2605 **\uB7F0\uD0C0\uC784\uC758 \uBAA8\uB4E0 \uC2E4\uD328 \uBD84\uAE30\uAC00 \uB9CC\uB4DC\uB294 \uBD09\uD22C\uB97C \uBC1B\uC544\uB0BC \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4** \u2014\n`to_view` \uAC00 `JobError(**rec.error)` \uB85C \uBCC0\uD658\uD558\uB294\uB370 \uC774 \uBAA8\uB378\uC740 `extra="forbid"` \uB77C, \uBD09\uD22C\uC5D0\uB9CC \uC788\uACE0\n\uC5EC\uAE30 \uC5C6\uB294 \uD0A4\uAC00 \uD558\uB098\uB77C\uB3C4 \uC788\uC73C\uBA74 **\uADF8 \uC7A1\uC758 \uC870\uD68C\uAC00 500** \uC774 \uB41C\uB2E4(2026-09-10 \uC2E4\uCE21: \uB2E4\uC12F \uACBD\uB85C \uC911 \uB137).\n\n\u26A0\uFE0F \uADF8 \uACB0\uD568\uC740 \uC870\uC6A9\uD558\uB2E4 \u2014 \uBD09\uD22C\uB97C *\uB9CC\uB4DC\uB294* \uACF3(`jobs/runtime.py` \uC758 except \uBD84\uAE30)\uACFC *\uC77D\uB294* \uACF3\uC774\n\uAC08\uB824 \uC788\uC5B4 \uC5B4\uB290 \uCABD \uD14C\uC2A4\uD2B8\uB3C4 \uC655\uBCF5\uC744 \uBCF4\uC9C0 \uC54A\uC558\uB2E4. \uADF8\uB798\uC11C `cause`(\uC7AC\uC2DC\uB3C4 \uC18C\uC9C4)\uC640 `data`(FatalError\xB7\nDemoCutError)\uAC00 \uACC4\uC57D \uBC16\uC5D0 \uC788\uB294 \uCC44\uB85C \uC624\uB798 \uC0B4\uC544\uB0A8\uC558\uACE0, **\uC2E4\uD328\uD55C \uC7A1\uC77C\uC218\uB85D \uC870\uD68C\uAC00 \uC548 \uB418\uB294** \uC0C1\uD0DC\uC600\uB2E4\n(\uB3C8\uC774 \uB098\uAC04 \uC790\uB9AC\uC758 \uC548\uB0B4\uB97C \uADF8 \uC870\uD68C\uB85C \uC804\uD558\uB294\uB370 \uB9D0\uC774\uB2E4). \uAC00\uB4DC\uB294 \uB124 \uBD84\uAE30\uB97C \uC2E4\uC81C\uB85C \uD0DC\uC6CC \uC655\uBCF5\uC2DC\uD0A8\uB2E4\n(`test_every_failure_envelope_survives_the_view`).',
40124
+ "properties": {
40125
+ "code": {
40126
+ "title": "Code",
40127
+ "type": "string"
40128
+ },
40129
+ "message": {
40130
+ "title": "Message",
40131
+ "type": "string"
40132
+ },
40133
+ "retryable": {
40134
+ "default": false,
40135
+ "title": "Retryable",
40136
+ "type": "boolean"
40137
+ },
40138
+ "refunded_krw": {
40139
+ "default": 0,
40140
+ "title": "Refunded Krw",
40141
+ "type": "integer"
40142
+ },
40143
+ "hint": {
40144
+ "anyOf": [
40145
+ {
40146
+ "type": "string"
40147
+ },
40148
+ {
40149
+ "type": "null"
40150
+ }
40151
+ ],
40152
+ "default": null,
40153
+ "title": "Hint"
40154
+ },
40155
+ "provider_job_id": {
40156
+ "anyOf": [
40157
+ {
40158
+ "type": "string"
40159
+ },
40160
+ {
40161
+ "type": "null"
40162
+ }
40163
+ ],
40164
+ "default": null,
40165
+ "title": "Provider Job Id"
40166
+ },
40167
+ "cause": {
40168
+ "anyOf": [
40169
+ {
40170
+ "type": "string"
40171
+ },
40172
+ {
40173
+ "type": "null"
40174
+ }
40175
+ ],
40176
+ "default": null,
40177
+ "title": "Cause"
40178
+ },
40179
+ "data": {
40180
+ "anyOf": [
40181
+ {
40182
+ "additionalProperties": true,
40183
+ "type": "object"
40184
+ },
40185
+ {
40186
+ "type": "null"
40187
+ }
40188
+ ],
40189
+ "default": null,
40190
+ "title": "Data"
40191
+ }
40192
+ },
40193
+ "required": [
40194
+ "code",
40195
+ "message"
40196
+ ],
40197
+ "title": "JobError",
40198
+ "type": "object"
40199
+ },
39108
40200
  "MotionGraphicSpec": {
39109
- "additionalProperties": false,
39110
40201
  "properties": {
39111
40202
  "dialogue": {
39112
40203
  "items": {
@@ -39252,7 +40343,6 @@ var GENERATED_TOOLS = [
39252
40343
  "type": "object"
39253
40344
  },
39254
40345
  "PipSpec": {
39255
- "additionalProperties": false,
39256
40346
  "properties": {
39257
40347
  "avatar_id": {
39258
40348
  "minLength": 1,
@@ -39295,7 +40385,6 @@ var GENERATED_TOOLS = [
39295
40385
  "type": "object"
39296
40386
  },
39297
40387
  "ProposalRequestView": {
39298
- "additionalProperties": false,
39299
40388
  "properties": {
39300
40389
  "text": {
39301
40390
  "title": "Text",
@@ -39317,7 +40406,6 @@ var GENERATED_TOOLS = [
39317
40406
  "type": "object"
39318
40407
  },
39319
40408
  "ProposalView": {
39320
- "additionalProperties": false,
39321
40409
  "properties": {
39322
40410
  "id": {
39323
40411
  "title": "Id",
@@ -39463,7 +40551,6 @@ var GENERATED_TOOLS = [
39463
40551
  "type": "object"
39464
40552
  },
39465
40553
  "Quote": {
39466
- "additionalProperties": false,
39467
40554
  "properties": {
39468
40555
  "rows": {
39469
40556
  "items": {
@@ -39503,7 +40590,6 @@ var GENERATED_TOOLS = [
39503
40590
  "type": "object"
39504
40591
  },
39505
40592
  "QuoteRow": {
39506
- "additionalProperties": false,
39507
40593
  "properties": {
39508
40594
  "key": {
39509
40595
  "description": "\uC7A1 \uC548\uC5D0\uC11C \uC720\uC77C\uD55C \uD589 \uD0A4 \u2014 tts:<line_id> \xB7 videogen:i2v \xB7 lipsync \xB7 render:\u2026",
@@ -39551,7 +40637,6 @@ var GENERATED_TOOLS = [
39551
40637
  "type": "object"
39552
40638
  },
39553
40639
  "RelinkOp": {
39554
- "additionalProperties": false,
39555
40640
  "properties": {
39556
40641
  "op": {
39557
40642
  "const": "relink",
@@ -39584,7 +40669,6 @@ var GENERATED_TOOLS = [
39584
40669
  "type": "object"
39585
40670
  },
39586
40671
  "RemoveCutOp": {
39587
- "additionalProperties": false,
39588
40672
  "properties": {
39589
40673
  "op": {
39590
40674
  "const": "remove_cut",
@@ -39604,7 +40688,6 @@ var GENERATED_TOOLS = [
39604
40688
  "type": "object"
39605
40689
  },
39606
40690
  "Timing": {
39607
- "additionalProperties": false,
39608
40691
  "properties": {
39609
40692
  "dialogue": {
39610
40693
  "items": {
@@ -39647,7 +40730,6 @@ var GENERATED_TOOLS = [
39647
40730
  "type": "object"
39648
40731
  },
39649
40732
  "UpdateCutOp": {
39650
- "additionalProperties": false,
39651
40733
  "properties": {
39652
40734
  "op": {
39653
40735
  "const": "update_cut",
@@ -39676,7 +40758,6 @@ var GENERATED_TOOLS = [
39676
40758
  "type": "object"
39677
40759
  },
39678
40760
  "YoutubeAssetSource": {
39679
- "additionalProperties": false,
39680
40761
  "properties": {
39681
40762
  "kind": {
39682
40763
  "const": "asset",
@@ -39724,7 +40805,6 @@ var GENERATED_TOOLS = [
39724
40805
  "type": "object"
39725
40806
  },
39726
40807
  "YoutubeClipSpec": {
39727
- "additionalProperties": false,
39728
40808
  "properties": {
39729
40809
  "dialogue": {
39730
40810
  "items": {
@@ -39851,7 +40931,6 @@ var GENERATED_TOOLS = [
39851
40931
  "type": "object"
39852
40932
  },
39853
40933
  "YoutubeUrlSource": {
39854
- "additionalProperties": false,
39855
40934
  "properties": {
39856
40935
  "kind": {
39857
40936
  "const": "url",
@@ -39885,7 +40964,6 @@ var GENERATED_TOOLS = [
39885
40964
  "type": "object"
39886
40965
  }
39887
40966
  },
39888
- "additionalProperties": false,
39889
40967
  "properties": {
39890
40968
  "rev": {
39891
40969
  "title": "Rev",
@@ -39972,7 +41050,6 @@ var GENERATED_TOOLS = [
39972
41050
  "additionalProperties": false
39973
41051
  },
39974
41052
  "outputSchema": {
39975
- "additionalProperties": false,
39976
41053
  "properties": {
39977
41054
  "threshold_ms": {
39978
41055
  "title": "Threshold Ms",
@@ -40036,7 +41113,6 @@ var GENERATED_TOOLS = [
40036
41113
  "additionalProperties": false
40037
41114
  },
40038
41115
  "outputSchema": {
40039
- "additionalProperties": false,
40040
41116
  "properties": {
40041
41117
  "url": {
40042
41118
  "description": "\uC11C\uBA85 URL(1\uC2DC\uAC04). stdio \uB294 output_path \uB85C \uC800\uC7A5\uD558\uACE0 \uACBD\uB85C\uB97C \uB3CC\uB824\uC900\uB2E4",
@@ -40355,6 +41431,9 @@ function list(baseUrl, deps = {}) {
40355
41431
  function get(baseUrl, slug, deps = {}) {
40356
41432
  return apiRequest(baseUrl, `/api/projects/${encodeURIComponent(slug)}`, {}, deps);
40357
41433
  }
41434
+ function update(baseUrl, slug, body, deps = {}) {
41435
+ return apiRequest(baseUrl, `/api/projects/${encodeURIComponent(slug)}`, { method: "PUT", body }, deps);
41436
+ }
40358
41437
  function remove(baseUrl, slug, deps = {}) {
40359
41438
  return apiRequest(baseUrl, `/api/projects/${encodeURIComponent(slug)}`, { method: "DELETE" }, deps);
40360
41439
  }
@@ -40621,6 +41700,26 @@ function getProject(a = {}, deps = {}) {
40621
41700
  };
40622
41701
  });
40623
41702
  }
41703
+ function updateProject(a = {}, deps = {}) {
41704
+ return guarded(READ_ONLY, async () => {
41705
+ const slug = (a.slug ?? "").trim();
41706
+ 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." };
41707
+ const body = {};
41708
+ for (const k of ["title", "folder_id", "defaults"]) if (a[k] !== void 0) body[k] = a[k];
41709
+ for (const [k, v] of Object.entries(a)) if (!["slug", "title", "folder_id", "defaults"].includes(k) && v !== void 0) body[k] = v;
41710
+ if (Object.keys(body).length === 0) return { isError: true, text: "\uBC14\uAFC0 \uAC12\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 title, folder_id, defaults \uC911 \uD558\uB098\uB97C \uB123\uC73C\uC138\uC694." };
41711
+ const base = resolveBaseUrl(deps.baseUrl);
41712
+ const view = await update(base, slug, body, deps);
41713
+ return {
41714
+ text: callableToolNames([
41715
+ `\uD504\uB85C\uC81D\uD2B8\uB97C \uBC14\uAFE8\uC2B5\uB2C8\uB2E4 \u2014 ${view.slug} (rev ${view.rev ?? 0})`,
41716
+ `\uC81C\uBAA9: ${view.title} \xB7 \uD3F4\uB354: ${view.folder_id ?? "(\uBBF8\uBD84\uB958)"} \xB7 \uAE30\uBCF8 \uBAA9\uC18C\uB9AC: ${view.defaults?.voice_id ?? "(\uC5C6\uC74C)"}`,
41717
+ "\uBE44\uC728\uC740 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uB2E4\uB978 \uBE44\uC728\uC774 \uD544\uC694\uD558\uBA74 create_project \uB85C \uC0C8 \uD504\uB85C\uC81D\uD2B8\uB97C \uB9CC\uB4DC\uC138\uC694."
41718
+ ].join("\n")),
41719
+ structured: callableStructured(view)
41720
+ };
41721
+ });
41722
+ }
40624
41723
  function deleteProject(a = {}, deps = {}) {
40625
41724
  return guarded(READ_ONLY, async () => {
40626
41725
  const slug = (a.slug ?? "").trim();
@@ -41009,12 +42108,26 @@ function listing(lines) {
41009
42108
  return [...lines.slice(0, LIST_LINES), ` \u2026\uC678 ${lines.length - LIST_LINES}\uAC1C`];
41010
42109
  }
41011
42110
  var ACTIVE_JOB_STATES = /* @__PURE__ */ new Set(["queued", "running"]);
42111
+ function firstLine(text, limit = 240) {
42112
+ for (const line of String(text ?? "").split("\n")) {
42113
+ const head = line.trim();
42114
+ if (head) return head.length <= limit ? head : `${head.slice(0, limit - 1)}\u2026`;
42115
+ }
42116
+ return "";
42117
+ }
42118
+ function jobRank(j) {
42119
+ if (ACTIVE_JOB_STATES.has(j.state)) return 0;
42120
+ return j.state === "error" ? 1 : 2;
42121
+ }
41012
42122
  function jobLine(j) {
41013
42123
  const bits = [`${j.job_id} [${j.state}] ${j.kind}`];
41014
42124
  if (ACTIVE_JOB_STATES.has(j.state) && j.progress?.pct != null) {
41015
42125
  bits.push(`${Math.round(j.progress.pct)}%`);
41016
42126
  }
41017
- if (j.error) bits.push(`\uC624\uB958 ${j.error.code}: ${j.error.message}`);
42127
+ if (j.error) {
42128
+ bits.push(`\uC624\uB958 ${j.error.code}: ${firstLine(j.error.message)}`);
42129
+ if (j.error.refunded_krw) bits.push(`\uD658\uBD88 ${krw(j.error.refunded_krw)}`);
42130
+ }
41018
42131
  if (j.result?.version != null) bits.push(`\u2192 v${j.result.version}`);
41019
42132
  return bits.join(" \xB7 ");
41020
42133
  }
@@ -41049,17 +42162,41 @@ function waitJobs(a = {}, deps = {}) {
41049
42162
  }
41050
42163
  const jobs = [...settled.values(), ...pending];
41051
42164
  const allDone = pending.length === 0;
41052
- const ordered = [...jobs].sort(
41053
- (x, y) => Number(!ACTIVE_JOB_STATES.has(x.state)) - Number(!ACTIVE_JOB_STATES.has(y.state))
41054
- );
41055
- const lines = [`\uC7A1 ${jobs.length}\uAC1C \u2014 ${allDone ? "\uC804\uBD80 \uB05D\uB0AC\uC2B5\uB2C8\uB2E4" : "\uC544\uC9C1 \uC9C4\uD589 \uC911\uC785\uB2C8\uB2E4"}`];
42165
+ const failed = jobs.filter((j) => j.state === "error");
42166
+ const cancelled = jobs.filter((j) => j.state === "cancelled");
42167
+ const succeeded = jobs.filter((j) => j.state === "done");
42168
+ const ordered = [...jobs].sort((x, y) => jobRank(x) - jobRank(y));
42169
+ let head = `\uC7A1 ${jobs.length}\uAC1C \u2014 ${allDone ? "\uC804\uBD80 \uB05D\uB0AC\uC2B5\uB2C8\uB2E4" : "\uC544\uC9C1 \uC9C4\uD589 \uC911\uC785\uB2C8\uB2E4"}`;
42170
+ const tally = [
42171
+ ...failed.length ? [`\uC2E4\uD328 ${failed.length}\uAC1C`] : [],
42172
+ ...cancelled.length ? [`\uCDE8\uC18C ${cancelled.length}\uAC1C`] : []
42173
+ ];
42174
+ if (tally.length) head += ` (${tally.join(" \xB7 ")})`;
42175
+ const lines = [head];
41056
42176
  lines.push(...listing(ordered.map((j) => ` ${jobLine(j)}`)));
41057
42177
  if (ignoredState !== void 0) {
41058
42178
  lines.push(`(job_ids \uB97C \uC8FC\uC168\uC73C\uBBC0\uB85C state=${ignoredState} \uD544\uD130\uB294 \uC4F0\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4 \u2014 \uC694\uCCAD\uD55C id \uC804\uBD80\uB97C \uBD05\uB2C8\uB2E4.)`);
41059
42179
  }
41060
- lines.push(
41061
- allDone ? "\uB05D\uB09C \uC7A1\uC758 \uACB0\uACFC\uB294 democut_get_cut \uC758 versions \uB85C \uD655\uC778\uD558\uACE0 democut_download \uB85C \uB0B4\uB824\uBC1B\uC2B5\uB2C8\uB2E4." : "\uC544\uC9C1 \uC548 \uB05D\uB09C job_ids \uB85C democut_wait_jobs \uB97C \uB2E4\uC2DC \uBD80\uB974\uC138\uC694."
41062
- );
42180
+ if (failed.length) {
42181
+ lines.push(
42182
+ `\u2605 \uC2E4\uD328\uD55C \uC7A1 ${failed.length}\uAC1C \u2014 \uADF8 \uCEF7\uC5D0\uB294 \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uC5B4 \uB0B4\uB824\uBC1B\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4(\uD658\uBD88\uC561\uC740 \uC704 \uC624\uB958 \uC904). \uC0AC\uC720\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC54C\uB9AC\uACE0 \uB2E4\uC74C \uC548\uB0B4\uB97C \uB530\uB974\uC138\uC694:`
42183
+ );
42184
+ const seen = /* @__PURE__ */ new Set();
42185
+ for (const j of failed) {
42186
+ const hint = j.error?.hint;
42187
+ if (hint && !seen.has(hint)) {
42188
+ seen.add(hint);
42189
+ lines.push(` - ${callableToolNames(hint)}`);
42190
+ }
42191
+ }
42192
+ }
42193
+ if (allDone) {
42194
+ if (succeeded.length) {
42195
+ lines.push("\uB05D\uB09C \uC7A1\uC758 \uACB0\uACFC\uB294 democut_get_cut \uC758 versions \uB85C \uD655\uC778\uD558\uACE0 democut_download \uB85C \uB0B4\uB824\uBC1B\uC2B5\uB2C8\uB2E4.");
42196
+ }
42197
+ } else {
42198
+ lines.push("\uC544\uC9C1 \uC548 \uB05D\uB09C job_ids \uB85C democut_wait_jobs \uB97C \uB2E4\uC2DC \uBD80\uB974\uC138\uC694.");
42199
+ }
41063
42200
  return { text: lines.join("\n"), structured: callableStructured({ jobs, all_done: allDone }) };
41064
42201
  });
41065
42202
  }
@@ -41081,6 +42218,11 @@ function getCut(a = {}, deps = {}) {
41081
42218
  })
41082
42219
  )
41083
42220
  );
42221
+ if (cut.last_error) {
42222
+ const tail = versions.length ? "\uC544\uB798 \uBC84\uC804\uC740 \uADF8 \uC804\uC5D0 \uB9CC\uB4E0 \uAC83\uC785\uB2C8\uB2E4." : "\uC774 \uCEF7\uC5D0\uB294 \uB0B4\uB824\uBC1B\uC744 \uC0B0\uCD9C\uBB3C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.";
42223
+ lines.push(`\uB9C8\uC9C0\uB9C9 \uB9CC\uB4E4\uAE30(\uC7A1 ${cut.last_job_id})\uAC00 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4 \u2014 ${tail}`);
42224
+ if (cut.last_error.hint) lines.push(callableToolNames(cut.last_error.hint));
42225
+ }
41084
42226
  if (cut.next_calls?.length)
41085
42227
  lines.push(callableToolNames(`\uB2E4\uC74C \uD638\uCD9C: ${cut.next_calls.join(", ")}`));
41086
42228
  return { text: lines.join("\n"), structured: callableStructured(cut) };
@@ -41141,6 +42283,10 @@ function cutLine(cut) {
41141
42283
  if (cut.dirty_fields?.length) bits.push(`\uB2EC\uB77C\uC9C4 \uD544\uB4DC: ${cut.dirty_fields.join(", ")}`);
41142
42284
  if (cut.estimated_cost_krw != null) bits.push(`\uC608\uC0C1 ${krw(cut.estimated_cost_krw)}`);
41143
42285
  if (cut.blocked_reason) bits.push(`\uB9C9\uD798: ${callableToolNames(cut.blocked_reason)}`);
42286
+ if (cut.last_error) {
42287
+ bits.push(`\uC2E4\uD328 ${cut.last_error.code}: ${firstLine(cut.last_error.message)}`);
42288
+ if (cut.last_error.refunded_krw) bits.push(`\uD658\uBD88 ${krw(cut.last_error.refunded_krw)}`);
42289
+ }
41144
42290
  return bits.join(" \xB7 ");
41145
42291
  }
41146
42292
  function addCut(a = {}, deps = {}) {
@@ -41671,6 +42817,8 @@ function dispatch(name, args, deps = {}) {
41671
42817
  return listProjects(args, deps);
41672
42818
  case "democut_get_project":
41673
42819
  return getProject(args, deps);
42820
+ case "democut_update_project":
42821
+ return updateProject(args, deps);
41674
42822
  case "democut_delete_project":
41675
42823
  return deleteProject(args, deps);
41676
42824
  case "democut_create_project":