democut 1.0.73 → 1.0.76

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 +74 -13
  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 = "1.0.73";
6919
+ var VERSION = "1.0.76";
6920
6920
 
6921
6921
  // src/device-flow.ts
6922
6922
  var DeviceFlowError = class extends Error {
@@ -9742,7 +9742,7 @@ var GENERATED_TOOLS = [
9742
9742
  },
9743
9743
  {
9744
9744
  "name": "democut_get_brand_kit",
9745
- "description": "\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC758 \uBE0C\uB79C\uB4DC\uD0B7(\uBE0C\uB79C\uB4DC \uC774\uB984\xB7\uB300\uD45C\uC0C9\xB7\uBCF4\uC870\uC0C9\xB7\uD1A4\xB7\uD5E4\uB529/\uBCF8\uBB38 \uD3F0\uD2B8\xB7\uB85C\uACE0\xB7\uD654\uBA74 \uC2DC\uC5F0 \uBC30\uACBD/\uCEE4\uC11C/\uD0C0\uC774\uD2C0\uBC14)\uACFC \uACE0\uB97C \uC218 \uC788\uB294 \uD3F0\uD2B8(font_options \u2014 `is_default` \uAC00 \uD3F0\uD2B8\uB97C \uBE44\uC6E0\uC744 \uB54C \uC4F0\uC774\uB294 \uAC83). \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uB2E4. \uC800\uC7A5\uD55C \uC801\uC774 \uC5C6\uC73C\uBA74 \uBE48 \uBE0C\uB79C\uB4DC\uD0B7\uACFC rev 0 \uC774\uB2E4.",
9745
+ "description": "\uC774 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC758 \uBE0C\uB79C\uB4DC\uD0B7(\uBE0C\uB79C\uB4DC \uC774\uB984\xB7\uB300\uD45C\uC0C9\xB7\uBCF4\uC870\uC0C9\xB7\uBC30\uACBD\uC0C9\xB7\uD5E4\uB529/\uBCF8\uBB38 \uD3F0\uD2B8\xB7\uB85C\uACE0\xB7\uD654\uBA74 \uC2DC\uC5F0 \uBC30\uACBD/\uCEE4\uC11C/\uD0C0\uC774\uD2C0\uBC14)\uACFC \uACE0\uB97C \uC218 \uC788\uB294 \uD3F0\uD2B8(font_options \u2014 `is_default` \uAC00 \uD3F0\uD2B8\uB97C \uBE44\uC6E0\uC744 \uB54C \uC4F0\uC774\uB294 \uAC83). \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uB2E4. \uC800\uC7A5\uD55C \uC801\uC774 \uC5C6\uC73C\uBA74 \uBE48 \uBE0C\uB79C\uB4DC\uD0B7\uACFC rev 0 \uC774\uB2E4. \uB85C\uACE0\uC5D0\uC11C \uB300\uD45C\uC0C9\xB7\uBCF4\uC870\uC0C9 \uD6C4\uBCF4\uB97C \uBCF4\uB824\uBA74 democut_get_logo_palette.",
9746
9746
  "inputSchema": {
9747
9747
  "type": "object",
9748
9748
  "properties": {},
@@ -9771,9 +9771,46 @@ var GENERATED_TOOLS = [
9771
9771
  "openWorldHint": false
9772
9772
  }
9773
9773
  },
9774
+ {
9775
+ "name": "democut_get_logo_palette",
9776
+ "description": "\uB85C\uACE0 \uC774\uBBF8\uC9C0\uC5D0\uC11C \uCD94\uCC9C \uC0C9(\uCD5C\uB300 3\uAC1C, \uB9CE\uC774 \uC4F0\uC778 \uC21C\xB7\uC720\uCC44\uC0C9 \uBA3C\uC800)\uC744 \uBF51\uB294\uB2E4. \uBD80\uC791\uC6A9\uB3C4 \uACFC\uAE08\uB3C4 \uC5C6\uB2E4. democut_upload_asset \uC73C\uB85C \uC62C\uB9B0 ready \uC774\uBBF8\uC9C0\uBA74 \uBE0C\uB79C\uB4DC\uD0B7\uC5D0 \uC800\uC7A5\uD558\uAE30 \uC804\uC5D0\uB3C4 \uB41C\uB2E4. \uACE0\uB978 \uC0C9\uC744 democut_put_brand_kit \uC758 accent_hex\xB7secondary_hex \uC5D0 \uB123\uC5B4\uB77C. \uB2E4\uC74C \uD638\uCD9C: democut_put_brand_kit.",
9777
+ "inputSchema": {
9778
+ "type": "object",
9779
+ "properties": {
9780
+ "asset_id": {
9781
+ "type": "string",
9782
+ "description": "\uC790\uC0B0 id(ast_\u2026)"
9783
+ }
9784
+ },
9785
+ "required": [
9786
+ "asset_id"
9787
+ ],
9788
+ "additionalProperties": false
9789
+ },
9790
+ "outputSchema": {
9791
+ "type": "object",
9792
+ "properties": {
9793
+ "asset_id": {
9794
+ "type": "string"
9795
+ },
9796
+ "colors": {
9797
+ "type": "array"
9798
+ }
9799
+ },
9800
+ "required": [
9801
+ "asset_id"
9802
+ ]
9803
+ },
9804
+ "annotations": {
9805
+ "readOnlyHint": true,
9806
+ "destructiveHint": false,
9807
+ "idempotentHint": true,
9808
+ "openWorldHint": false
9809
+ }
9810
+ },
9774
9811
  {
9775
9812
  "name": "democut_put_brand_kit",
9776
- "description": "\uBE0C\uB79C\uB4DC\uD0B7\uC744 \uC804\uCCB4 \uAD50\uCCB4\uD55C\uB2E4(0\uC6D0, If-Match rev). democut_get_brand_kit \uC758 rev \uB97C \uADF8\uB300\uB85C \uB123\uC5B4\uB77C \u2014 \uADF8 \uC0AC\uC774 \uB204\uAC00 \uBC14\uAFE8\uC73C\uBA74 409 \uC774\uACE0 \uBCD1\uD569\uD558\uC9C0 \uC54A\uB294\uB2E4. \uC548 \uC900 \uD544\uB4DC\uB294 \uBE44\uC6CC\uC9C0\uBBC0\uB85C \uBC14\uAFB8\uC9C0 \uC54A\uC744 \uAC12\uB3C4 democut_get_brand_kit \uC758 brand \uC5D0\uC11C \uC62E\uACA8 \uB123\uC5B4\uB77C. \uD3F0\uD2B8\uB294 font_options[].id(\uBE44\uC6B0\uBA74 is_default \uD3F0\uD2B8\uB85C \uB098\uC628\uB2E4), \uB85C\uACE0\uB294 democut_upload_asset \uC73C\uB85C \uC62C\uB9B0 ready \uC774\uBBF8\uC9C0\uC758 asset_id. screen_background\xB7screen_cursor\xB7screen_titlebar \uB294 \uD654\uBA74 \uC2DC\uC5F0(layout_pattern=screen_demo) \uCEF7\uC758 \uBC30\uACBD\xB7\uCEE4\uC11C \uD504\uB9AC\uC14B\uACFC \uCC3D \uD0C0\uC774\uD2C0\uBC14(\uD2B8\uB798\uD53D \uB77C\uC774\uD2B8) \uCF2C\xB7\uB054\uC774\uB2E4(\uBE44\uC6B0\uBA74 gradient_1\xB7arrow_black\xB7\uCF2C, \uB2E4\uC74C\uC5D0 \uB9CC\uB4DC\uB294 \uCEF7\uBD80\uD130).",
9813
+ "description": "\uBE0C\uB79C\uB4DC\uD0B7\uC744 \uC804\uCCB4 \uAD50\uCCB4\uD55C\uB2E4(0\uC6D0, If-Match rev). democut_get_brand_kit \uC758 rev \uB97C \uADF8\uB300\uB85C \uB123\uC5B4\uB77C \u2014 \uADF8 \uC0AC\uC774 \uB204\uAC00 \uBC14\uAFE8\uC73C\uBA74 409 \uC774\uACE0 \uBCD1\uD569\uD558\uC9C0 \uC54A\uB294\uB2E4. \uC548 \uC900 \uD544\uB4DC\uB294 \uBE44\uC6CC\uC9C0\uBBC0\uB85C \uBC14\uAFB8\uC9C0 \uC54A\uC744 \uAC12\uB3C4 democut_get_brand_kit \uC758 brand \uC5D0\uC11C \uC62E\uACA8 \uB123\uC5B4\uB77C. \uD3F0\uD2B8\uB294 font_options[].id(\uBE44\uC6B0\uBA74 is_default \uD3F0\uD2B8\uB85C \uB098\uC628\uB2E4), \uB85C\uACE0\uB294 democut_upload_asset \uC73C\uB85C \uC62C\uB9B0 ready \uC774\uBBF8\uC9C0\uC758 asset_id. background_hex \uB294 \uBAA8\uC158\uADF8\uB798\uD53D \uBC30\uACBD\uC0C9\uC774\uB2E4(\uBE44\uC6B0\uBA74 \uC5B4\uB450\uC6C0 #09090B, \uBC1D\uC74C\uC740 #F4F4F5, \uADF8 \uBC16\uC758 \uC0C9\uB3C4 \uB41C\uB2E4) \u2014 \uAE00\uC790\xB7\uCE74\uB4DC \uC0C9\uC740 \uC11C\uBC84\uAC00 \uBC30\uACBD \uBC1D\uAE30\uB85C \uC815\uD55C\uB2E4. screen_background\xB7screen_cursor\xB7screen_titlebar \uB294 \uD654\uBA74 \uC2DC\uC5F0(layout_pattern=screen_demo) \uCEF7\uC758 \uBC30\uACBD\xB7\uCEE4\uC11C \uD504\uB9AC\uC14B\uACFC \uCC3D \uD0C0\uC774\uD2C0\uBC14(\uD2B8\uB798\uD53D \uB77C\uC774\uD2B8) \uCF2C\xB7\uB054\uC774\uB2E4(\uBE44\uC6B0\uBA74 image_2\xB7arrow_black\xB7\uCF2C, \uB2E4\uC74C\uC5D0 \uB9CC\uB4DC\uB294 \uCEF7\uBD80\uD130).",
9777
9814
  "inputSchema": {
9778
9815
  "type": "object",
9779
9816
  "properties": {
@@ -9813,20 +9850,18 @@ var GENERATED_TOOLS = [
9813
9850
  ],
9814
9851
  "default": null
9815
9852
  },
9816
- "tone": {
9853
+ "background_hex": {
9817
9854
  "anyOf": [
9818
9855
  {
9819
- "enum": [
9820
- "light",
9821
- "dark"
9822
- ],
9856
+ "pattern": "^#[0-9A-Fa-f]{6}$",
9823
9857
  "type": "string"
9824
9858
  },
9825
9859
  {
9826
9860
  "type": "null"
9827
9861
  }
9828
9862
  ],
9829
- "default": null
9863
+ "default": null,
9864
+ "description": "\uBAA8\uC158\uADF8\uB798\uD53D \uBC30\uACBD\uC0C9(\uBE44\uC6B0\uBA74 \uC5B4\uB450\uC6C0 #09090B \xB7 \uBC1D\uC74C\uC740 #F4F4F5) \u2014 \uAE00\uC790\xB7\uCE74\uB4DC \uC0C9\uC740 \uC11C\uBC84\uAC00 \uBC30\uACBD \uBC1D\uAE30\uB85C \uC815\uD55C\uB2E4"
9830
9865
  },
9831
9866
  "heading_font": {
9832
9867
  "anyOf": [
@@ -9881,7 +9916,7 @@ var GENERATED_TOOLS = [
9881
9916
  }
9882
9917
  ],
9883
9918
  "default": null,
9884
- "description": "\uD654\uBA74 \uC2DC\uC5F0 \uBC30\uACBD: black | white | gradient_1~3(CSS) | image_1~3(\uADF8\uB9BC) (\uBE44\uC6B0\uBA74 gradient_1)"
9919
+ "description": "\uD654\uBA74 \uC2DC\uC5F0 \uBC30\uACBD: black | white | gradient_1~3(CSS) | image_1~3(\uADF8\uB9BC) (\uBE44\uC6B0\uBA74 image_2)"
9885
9920
  },
9886
9921
  "screen_cursor": {
9887
9922
  "anyOf": [
@@ -12616,6 +12651,12 @@ var TOOL_META = {
12616
12651
  "method": "GET",
12617
12652
  "path": "/api/brand-kit"
12618
12653
  },
12654
+ "democut_get_logo_palette": {
12655
+ "cost": "none",
12656
+ "group": "brand",
12657
+ "method": "GET",
12658
+ "path": "/api/brand-kit/logo-palette/{asset_id}"
12659
+ },
12619
12660
  "democut_put_brand_kit": {
12620
12661
  "cost": "none",
12621
12662
  "group": "brand",
@@ -14783,7 +14824,7 @@ function brandKitLine(v) {
14783
14824
  ["\uC774\uB984", b.name],
14784
14825
  ["\uB300\uD45C\uC0C9", b.accent_hex],
14785
14826
  ["\uBCF4\uC870\uC0C9", b.secondary_hex],
14786
- ["\uD1A4", b.tone],
14827
+ ["\uBC30\uACBD\uC0C9", b.background_hex],
14787
14828
  ["\uD5E4\uB529", b.heading_font],
14788
14829
  ["\uBCF8\uBB38", b.body_font],
14789
14830
  ["\uB85C\uACE0", b.logo_asset_id],
@@ -14813,6 +14854,23 @@ ${unset}\uBC14\uAFB8\uB824\uBA74 democut_put_brand_kit \uC5D0 rev ${out4.rev} \u
14813
14854
  };
14814
14855
  });
14815
14856
  }
14857
+ function getLogoPalette(a = {}, deps = {}) {
14858
+ return guarded(READ_ONLY, async () => {
14859
+ if (!a.asset_id) {
14860
+ return { isError: true, text: "asset_id \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4 \u2014 democut_upload_asset \uC774 \uB3CC\uB824\uC900 \uC774\uBBF8\uC9C0 \uC790\uC0B0 id \uB97C \uB123\uC73C\uC138\uC694." };
14861
+ }
14862
+ const base = resolveBaseUrl(deps.baseUrl);
14863
+ const out4 = await apiRequest(
14864
+ base,
14865
+ `/api/brand-kit/logo-palette/${encodeURIComponent(a.asset_id)}`,
14866
+ {},
14867
+ deps
14868
+ );
14869
+ const colors = out4.colors ?? [];
14870
+ const text = colors.length ? `\uB85C\uACE0 \uCD94\uCC9C \uC0C9: ${colors.join(", ")}(\uB9CE\uC774 \uC4F0\uC778 \uC21C). \uACE0\uB978 \uC0C9\uC744 democut_put_brand_kit \uC758 accent_hex\xB7secondary_hex \uC5D0 \uB123\uC5B4\uB77C.` : "\uC774 \uADF8\uB9BC\uC5D0\uC11C \uCD94\uCC9C\uD560 \uC0C9\uC744 \uCC3E\uC9C0 \uBABB\uD588\uB2E4(\uBC14\uD0D5\uBFD0\uC774\uB2E4). \uB300\uD45C\uC0C9\xB7\uBCF4\uC870\uC0C9\uC740 \uC9C1\uC811 \uC815\uD558\uB77C.";
14871
+ return { text, structured: callableStructured(out4) };
14872
+ });
14873
+ }
14816
14874
  function putBrandKit(a = {}, deps = {}) {
14817
14875
  return guarded(READ_ONLY, async () => {
14818
14876
  if (a.rev === void 0 || a.rev === null) {
@@ -14822,7 +14880,6 @@ function putBrandKit(a = {}, deps = {}) {
14822
14880
  name: a.name ?? null,
14823
14881
  accent_hex: a.accent_hex ?? null,
14824
14882
  secondary_hex: a.secondary_hex ?? null,
14825
- tone: a.tone ?? null,
14826
14883
  heading_font: a.heading_font ?? null,
14827
14884
  body_font: a.body_font ?? null,
14828
14885
  logo_asset_id: a.logo_asset_id ?? null,
@@ -14831,7 +14888,9 @@ function putBrandKit(a = {}, deps = {}) {
14831
14888
  ...a.screen_background ? { screen_background: a.screen_background } : {},
14832
14889
  ...a.screen_cursor ? { screen_cursor: a.screen_cursor } : {},
14833
14890
  // ★ false(끔)는 보낸다 — 빠지면 서버가 비움(= 켬)으로 읽는다.
14834
- ...typeof a.screen_titlebar === "boolean" ? { screen_titlebar: a.screen_titlebar } : {}
14891
+ ...typeof a.screen_titlebar === "boolean" ? { screen_titlebar: a.screen_titlebar } : {},
14892
+ // ★ 배경색도 값이 있을 때만 — 먼저 게시된 CLI 가 옛 서버에 422 를 받지 않게(빠진 키 = 비움 = 기본 어두움).
14893
+ ...a.background_hex ? { background_hex: a.background_hex } : {}
14835
14894
  };
14836
14895
  const base = resolveBaseUrl(deps.baseUrl);
14837
14896
  const out4 = await apiRequest(
@@ -15542,6 +15601,8 @@ function dispatch(name, args, deps = {}) {
15542
15601
  // ── 브랜드킷(워크스페이스당 하나) ──
15543
15602
  case "democut_get_brand_kit":
15544
15603
  return getBrandKit(args, deps);
15604
+ case "democut_get_logo_palette":
15605
+ return getLogoPalette(args, deps);
15545
15606
  case "democut_put_brand_kit":
15546
15607
  return putBrandKit(args, deps);
15547
15608
  case "democut_create_character":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "democut",
3
- "version": "1.0.73",
3
+ "version": "1.0.76",
4
4
  "description": "DemoCut 에이전트 CLI — device flow 로그인(RFC 8628) + 영상 생성",
5
5
  "license": "MIT",
6
6
  "author": "InfoGrab",