illustrator-mcp-server 1.2.4 → 1.2.6

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 (251) hide show
  1. package/README.ja.md +527 -107
  2. package/README.md +512 -89
  3. package/dist/executor/jsx-runner.d.ts +1 -0
  4. package/dist/executor/jsx-runner.d.ts.map +1 -1
  5. package/dist/executor/jsx-runner.js +33 -19
  6. package/dist/executor/jsx-runner.js.map +1 -1
  7. package/dist/jsx/helpers/common.jsx +192 -7
  8. package/dist/prompts/print-preflight-workflow.d.ts +3 -0
  9. package/dist/prompts/print-preflight-workflow.d.ts.map +1 -0
  10. package/dist/prompts/print-preflight-workflow.js +45 -0
  11. package/dist/prompts/print-preflight-workflow.js.map +1 -0
  12. package/dist/prompts/quick-layout.d.ts +3 -0
  13. package/dist/prompts/quick-layout.d.ts.map +1 -0
  14. package/dist/prompts/quick-layout.js +42 -0
  15. package/dist/prompts/quick-layout.js.map +1 -0
  16. package/dist/prompts/registry.d.ts +3 -0
  17. package/dist/prompts/registry.d.ts.map +1 -0
  18. package/dist/prompts/registry.js +7 -0
  19. package/dist/prompts/registry.js.map +1 -0
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +3 -1
  22. package/dist/server.js.map +1 -1
  23. package/dist/tools/export/export-pdf.d.ts.map +1 -1
  24. package/dist/tools/export/export-pdf.js +48 -18
  25. package/dist/tools/export/export-pdf.js.map +1 -1
  26. package/dist/tools/export/export.d.ts.map +1 -1
  27. package/dist/tools/export/export.js +41 -49
  28. package/dist/tools/export/export.js.map +1 -1
  29. package/dist/tools/modify/align-objects.d.ts +3 -0
  30. package/dist/tools/modify/align-objects.d.ts.map +1 -0
  31. package/dist/tools/modify/align-objects.js +202 -0
  32. package/dist/tools/modify/align-objects.js.map +1 -0
  33. package/dist/tools/modify/apply-color-profile.d.ts.map +1 -1
  34. package/dist/tools/modify/apply-color-profile.js +16 -11
  35. package/dist/tools/modify/apply-color-profile.js.map +1 -1
  36. package/dist/tools/modify/apply-graphic-style.d.ts +3 -0
  37. package/dist/tools/modify/apply-graphic-style.d.ts.map +1 -0
  38. package/dist/tools/modify/apply-graphic-style.js +106 -0
  39. package/dist/tools/modify/apply-graphic-style.js.map +1 -0
  40. package/dist/tools/modify/apply-text-style.d.ts +3 -0
  41. package/dist/tools/modify/apply-text-style.d.ts.map +1 -0
  42. package/dist/tools/modify/apply-text-style.js +118 -0
  43. package/dist/tools/modify/apply-text-style.js.map +1 -0
  44. package/dist/tools/modify/close-document.d.ts.map +1 -1
  45. package/dist/tools/modify/close-document.js +9 -9
  46. package/dist/tools/modify/close-document.js.map +1 -1
  47. package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
  48. package/dist/tools/modify/convert-to-outlines.js +8 -30
  49. package/dist/tools/modify/convert-to-outlines.js.map +1 -1
  50. package/dist/tools/modify/create-document.d.ts.map +1 -1
  51. package/dist/tools/modify/create-document.js +8 -6
  52. package/dist/tools/modify/create-document.js.map +1 -1
  53. package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
  54. package/dist/tools/modify/create-ellipse.js +16 -33
  55. package/dist/tools/modify/create-ellipse.js.map +1 -1
  56. package/dist/tools/modify/create-gradient.d.ts +3 -0
  57. package/dist/tools/modify/create-gradient.d.ts.map +1 -0
  58. package/dist/tools/modify/create-gradient.js +119 -0
  59. package/dist/tools/modify/create-gradient.js.map +1 -0
  60. package/dist/tools/modify/create-line.d.ts.map +1 -1
  61. package/dist/tools/modify/create-line.js +17 -37
  62. package/dist/tools/modify/create-line.js.map +1 -1
  63. package/dist/tools/modify/create-path-text.d.ts +3 -0
  64. package/dist/tools/modify/create-path-text.d.ts.map +1 -0
  65. package/dist/tools/modify/create-path-text.js +85 -0
  66. package/dist/tools/modify/create-path-text.js.map +1 -0
  67. package/dist/tools/modify/create-path.d.ts.map +1 -1
  68. package/dist/tools/modify/create-path.js +19 -39
  69. package/dist/tools/modify/create-path.js.map +1 -1
  70. package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
  71. package/dist/tools/modify/create-rectangle.js +17 -33
  72. package/dist/tools/modify/create-rectangle.js.map +1 -1
  73. package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
  74. package/dist/tools/modify/create-text-frame.js +28 -41
  75. package/dist/tools/modify/create-text-frame.js.map +1 -1
  76. package/dist/tools/modify/duplicate-objects.d.ts +3 -0
  77. package/dist/tools/modify/duplicate-objects.d.ts.map +1 -0
  78. package/dist/tools/modify/duplicate-objects.js +97 -0
  79. package/dist/tools/modify/duplicate-objects.js.map +1 -0
  80. package/dist/tools/modify/group-objects.d.ts +3 -0
  81. package/dist/tools/modify/group-objects.d.ts.map +1 -0
  82. package/dist/tools/modify/group-objects.js +80 -0
  83. package/dist/tools/modify/group-objects.js.map +1 -0
  84. package/dist/tools/modify/manage-artboards.d.ts +3 -0
  85. package/dist/tools/modify/manage-artboards.d.ts.map +1 -0
  86. package/dist/tools/modify/manage-artboards.js +152 -0
  87. package/dist/tools/modify/manage-artboards.js.map +1 -0
  88. package/dist/tools/modify/manage-datasets.d.ts +3 -0
  89. package/dist/tools/modify/manage-datasets.d.ts.map +1 -0
  90. package/dist/tools/modify/manage-datasets.js +345 -0
  91. package/dist/tools/modify/manage-datasets.js.map +1 -0
  92. package/dist/tools/modify/manage-layers.d.ts +3 -0
  93. package/dist/tools/modify/manage-layers.d.ts.map +1 -0
  94. package/dist/tools/modify/manage-layers.js +147 -0
  95. package/dist/tools/modify/manage-layers.js.map +1 -0
  96. package/dist/tools/modify/manage-linked-images.d.ts +3 -0
  97. package/dist/tools/modify/manage-linked-images.d.ts.map +1 -0
  98. package/dist/tools/modify/manage-linked-images.js +105 -0
  99. package/dist/tools/modify/manage-linked-images.js.map +1 -0
  100. package/dist/tools/modify/manage-swatches.d.ts +3 -0
  101. package/dist/tools/modify/manage-swatches.d.ts.map +1 -0
  102. package/dist/tools/modify/manage-swatches.js +78 -0
  103. package/dist/tools/modify/manage-swatches.js.map +1 -0
  104. package/dist/tools/modify/modify-object.d.ts.map +1 -1
  105. package/dist/tools/modify/modify-object.js +34 -49
  106. package/dist/tools/modify/modify-object.js.map +1 -1
  107. package/dist/tools/modify/move-to-layer.d.ts +3 -0
  108. package/dist/tools/modify/move-to-layer.d.ts.map +1 -0
  109. package/dist/tools/modify/move-to-layer.js +79 -0
  110. package/dist/tools/modify/move-to-layer.js.map +1 -0
  111. package/dist/tools/modify/open-document.d.ts +3 -0
  112. package/dist/tools/modify/open-document.d.ts.map +1 -0
  113. package/dist/tools/modify/open-document.js +74 -0
  114. package/dist/tools/modify/open-document.js.map +1 -0
  115. package/dist/tools/modify/place-color-chips.d.ts +3 -0
  116. package/dist/tools/modify/place-color-chips.d.ts.map +1 -0
  117. package/dist/tools/modify/place-color-chips.js +224 -0
  118. package/dist/tools/modify/place-color-chips.js.map +1 -0
  119. package/dist/tools/modify/place-image.d.ts.map +1 -1
  120. package/dist/tools/modify/place-image.js +28 -36
  121. package/dist/tools/modify/place-image.js.map +1 -1
  122. package/dist/tools/modify/place-style-guide.d.ts +3 -0
  123. package/dist/tools/modify/place-style-guide.d.ts.map +1 -0
  124. package/dist/tools/modify/place-style-guide.js +822 -0
  125. package/dist/tools/modify/place-style-guide.js.map +1 -0
  126. package/dist/tools/modify/place-symbol.d.ts +3 -0
  127. package/dist/tools/modify/place-symbol.d.ts.map +1 -0
  128. package/dist/tools/modify/place-symbol.js +96 -0
  129. package/dist/tools/modify/place-symbol.js.map +1 -0
  130. package/dist/tools/modify/replace-color.d.ts +3 -0
  131. package/dist/tools/modify/replace-color.d.ts.map +1 -0
  132. package/dist/tools/modify/replace-color.js +137 -0
  133. package/dist/tools/modify/replace-color.js.map +1 -0
  134. package/dist/tools/modify/resize-for-variation.d.ts +3 -0
  135. package/dist/tools/modify/resize-for-variation.d.ts.map +1 -0
  136. package/dist/tools/modify/resize-for-variation.js +177 -0
  137. package/dist/tools/modify/resize-for-variation.js.map +1 -0
  138. package/dist/tools/modify/save-document.d.ts +3 -0
  139. package/dist/tools/modify/save-document.d.ts.map +1 -0
  140. package/dist/tools/modify/save-document.js +63 -0
  141. package/dist/tools/modify/save-document.js.map +1 -0
  142. package/dist/tools/modify/select-objects.d.ts +3 -0
  143. package/dist/tools/modify/select-objects.d.ts.map +1 -0
  144. package/dist/tools/modify/select-objects.js +78 -0
  145. package/dist/tools/modify/select-objects.js.map +1 -0
  146. package/dist/tools/modify/set-z-order.d.ts +3 -0
  147. package/dist/tools/modify/set-z-order.d.ts.map +1 -0
  148. package/dist/tools/modify/set-z-order.js +61 -0
  149. package/dist/tools/modify/set-z-order.js.map +1 -0
  150. package/dist/tools/modify/shared.d.ts +49 -1
  151. package/dist/tools/modify/shared.d.ts.map +1 -1
  152. package/dist/tools/modify/shared.js +48 -4
  153. package/dist/tools/modify/shared.js.map +1 -1
  154. package/dist/tools/modify/undo.d.ts +3 -0
  155. package/dist/tools/modify/undo.d.ts.map +1 -0
  156. package/dist/tools/modify/undo.js +64 -0
  157. package/dist/tools/modify/undo.js.map +1 -0
  158. package/dist/tools/modify/ungroup-objects.d.ts +3 -0
  159. package/dist/tools/modify/ungroup-objects.d.ts.map +1 -0
  160. package/dist/tools/modify/ungroup-objects.js +72 -0
  161. package/dist/tools/modify/ungroup-objects.js.map +1 -0
  162. package/dist/tools/read/check-contrast.d.ts +3 -0
  163. package/dist/tools/read/check-contrast.d.ts.map +1 -0
  164. package/dist/tools/read/check-contrast.js +239 -0
  165. package/dist/tools/read/check-contrast.js.map +1 -0
  166. package/dist/tools/read/convert-coordinate.d.ts +3 -0
  167. package/dist/tools/read/convert-coordinate.d.ts.map +1 -0
  168. package/dist/tools/read/convert-coordinate.js +74 -0
  169. package/dist/tools/read/convert-coordinate.js.map +1 -0
  170. package/dist/tools/read/extract-design-tokens.d.ts +3 -0
  171. package/dist/tools/read/extract-design-tokens.d.ts.map +1 -0
  172. package/dist/tools/read/extract-design-tokens.js +280 -0
  173. package/dist/tools/read/extract-design-tokens.js.map +1 -0
  174. package/dist/tools/read/find-objects.d.ts.map +1 -1
  175. package/dist/tools/read/find-objects.js +16 -37
  176. package/dist/tools/read/find-objects.js.map +1 -1
  177. package/dist/tools/read/get-artboards.d.ts.map +1 -1
  178. package/dist/tools/read/get-artboards.js +15 -13
  179. package/dist/tools/read/get-artboards.js.map +1 -1
  180. package/dist/tools/read/get-colors.d.ts.map +1 -1
  181. package/dist/tools/read/get-colors.js +93 -15
  182. package/dist/tools/read/get-colors.js.map +1 -1
  183. package/dist/tools/read/get-document-info.d.ts.map +1 -1
  184. package/dist/tools/read/get-document-info.js +47 -19
  185. package/dist/tools/read/get-document-info.js.map +1 -1
  186. package/dist/tools/read/get-document-structure.d.ts.map +1 -1
  187. package/dist/tools/read/get-document-structure.js +16 -24
  188. package/dist/tools/read/get-document-structure.js.map +1 -1
  189. package/dist/tools/read/get-effects.d.ts.map +1 -1
  190. package/dist/tools/read/get-effects.js +32 -43
  191. package/dist/tools/read/get-effects.js.map +1 -1
  192. package/dist/tools/read/get-groups.d.ts.map +1 -1
  193. package/dist/tools/read/get-groups.js +22 -26
  194. package/dist/tools/read/get-groups.js.map +1 -1
  195. package/dist/tools/read/get-guidelines.d.ts.map +1 -1
  196. package/dist/tools/read/get-guidelines.js +13 -16
  197. package/dist/tools/read/get-guidelines.js.map +1 -1
  198. package/dist/tools/read/get-images.d.ts.map +1 -1
  199. package/dist/tools/read/get-images.js +43 -25
  200. package/dist/tools/read/get-images.js.map +1 -1
  201. package/dist/tools/read/get-layers.d.ts.map +1 -1
  202. package/dist/tools/read/get-layers.js +14 -15
  203. package/dist/tools/read/get-layers.js.map +1 -1
  204. package/dist/tools/read/get-overprint-info.d.ts.map +1 -1
  205. package/dist/tools/read/get-overprint-info.js +72 -63
  206. package/dist/tools/read/get-overprint-info.js.map +1 -1
  207. package/dist/tools/read/get-path-items.d.ts.map +1 -1
  208. package/dist/tools/read/get-path-items.js +26 -20
  209. package/dist/tools/read/get-path-items.js.map +1 -1
  210. package/dist/tools/read/get-selection.d.ts.map +1 -1
  211. package/dist/tools/read/get-selection.js +19 -33
  212. package/dist/tools/read/get-selection.js.map +1 -1
  213. package/dist/tools/read/get-separation-info.d.ts +3 -0
  214. package/dist/tools/read/get-separation-info.d.ts.map +1 -0
  215. package/dist/tools/read/get-separation-info.js +94 -0
  216. package/dist/tools/read/get-separation-info.js.map +1 -0
  217. package/dist/tools/read/get-symbols.d.ts.map +1 -1
  218. package/dist/tools/read/get-symbols.js +19 -23
  219. package/dist/tools/read/get-symbols.js.map +1 -1
  220. package/dist/tools/read/get-text-frame-detail.d.ts.map +1 -1
  221. package/dist/tools/read/get-text-frame-detail.js +270 -67
  222. package/dist/tools/read/get-text-frame-detail.js.map +1 -1
  223. package/dist/tools/read/list-fonts.d.ts +3 -0
  224. package/dist/tools/read/list-fonts.d.ts.map +1 -0
  225. package/dist/tools/read/list-fonts.js +78 -0
  226. package/dist/tools/read/list-fonts.js.map +1 -0
  227. package/dist/tools/read/list-text-frames.d.ts.map +1 -1
  228. package/dist/tools/read/list-text-frames.js +99 -36
  229. package/dist/tools/read/list-text-frames.js.map +1 -1
  230. package/dist/tools/registry.d.ts.map +1 -1
  231. package/dist/tools/registry.js +64 -0
  232. package/dist/tools/registry.js.map +1 -1
  233. package/dist/tools/session.d.ts +36 -0
  234. package/dist/tools/session.d.ts.map +1 -0
  235. package/dist/tools/session.js +246 -0
  236. package/dist/tools/session.js.map +1 -0
  237. package/dist/tools/utility/check-text-consistency.d.ts +3 -0
  238. package/dist/tools/utility/check-text-consistency.d.ts.map +1 -0
  239. package/dist/tools/utility/check-text-consistency.js +303 -0
  240. package/dist/tools/utility/check-text-consistency.js.map +1 -0
  241. package/dist/tools/utility/preflight-check.d.ts.map +1 -1
  242. package/dist/tools/utility/preflight-check.js +141 -43
  243. package/dist/tools/utility/preflight-check.js.map +1 -1
  244. package/dist/tools/utility/set-workflow.d.ts +3 -0
  245. package/dist/tools/utility/set-workflow.d.ts.map +1 -0
  246. package/dist/tools/utility/set-workflow.js +95 -0
  247. package/dist/tools/utility/set-workflow.js.map +1 -0
  248. package/dist/utils/image-header.d.ts.map +1 -1
  249. package/dist/utils/image-header.js +5 -1
  250. package/dist/utils/image-header.js.map +1 -1
  251. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC7D,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;gBACrG,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBACjH,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACzE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzD,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACrE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBAC7D,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;aACjE,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,oBAAoB,CAAC;SAClC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/tools/export/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyPpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoDhD"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/tools/export/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqPpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+ChD"}
@@ -1,5 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsxHeavy } from '../../executor/jsx-runner.js';
3
+ import { WRITE_IDEMPOTENT_ANNOTATIONS, coerceBoolean } from '../modify/shared.js';
4
+ /**
5
+ * export — SVG/PNG/JPG/WebP 書き出し
6
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/Document/ — exportFile()
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/ExportOptionsPNG24/
8
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/ExportOptionsSVG/
9
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/ExportOptionsJPEG/
10
+ *
11
+ * 注意: SVGIdType / idType はリファレンスに記載がないが try/catch で安全に処理。
12
+ */
3
13
  const jsxCode = `
4
14
  var preflight = preflightChecks();
5
15
  if (preflight) {
@@ -39,27 +49,7 @@ if (preflight) {
39
49
  } else {
40
50
  // UUID target — find and select (UUID は item.note に格納)
41
51
  targetType = "uuid";
42
- function findByUUID(items, uuid) {
43
- for (var i = 0; i < items.length; i++) {
44
- var item = items[i];
45
- try {
46
- if (item.note === uuid) return item;
47
- } catch(ex) {}
48
- if (item.typename === "GroupItem") {
49
- try {
50
- var child = findByUUID(item.pageItems, uuid);
51
- if (child) return child;
52
- } catch(ex2) {}
53
- }
54
- }
55
- return null;
56
- }
57
- // 全レイヤーを走査
58
- var targetItem = null;
59
- for (var li = 0; li < doc.layers.length; li++) {
60
- targetItem = findByUUID(doc.layers[li].pageItems, target);
61
- if (targetItem) break;
62
- }
52
+ var targetItem = findItemByUUID(target);
63
53
  if (!targetItem) {
64
54
  writeResultFile(RESULT_PATH, { error: true, message: "No object found matching UUID: " + target });
65
55
  targetType = "error";
@@ -70,8 +60,9 @@ if (preflight) {
70
60
  }
71
61
  }
72
62
 
63
+ var outFile = null;
73
64
  if (targetType !== "error") {
74
- var outFile = new File(outputPath);
65
+ outFile = new File(outputPath);
75
66
  var parentFolder = outFile.parent;
76
67
  if (!parentFolder.exists) {
77
68
  writeResultFile(RESULT_PATH, { error: true, message: "Output directory does not exist: " + parentFolder.fsName });
@@ -80,10 +71,9 @@ if (preflight) {
80
71
  }
81
72
 
82
73
  if (targetType !== "error") {
83
- var outFile = new File(outputPath);
84
-
85
74
  // UUID指定かつラスタ形式の場合、一時ドキュメントにコピーして書き出す
86
- var useIsolatedExport = (targetType === "selection" && typeof targetItem !== "undefined" && targetItem !== null && (format === "png" || format === "jpg"));
75
+ var isUUIDTarget = (targetType === "selection" && target !== "selection");
76
+ var useIsolatedExport = (isUUIDTarget && (format === "png" || format === "jpg"));
87
77
 
88
78
  if (useIsolatedExport) {
89
79
  // 選択オブジェクトをコピー
@@ -96,6 +86,7 @@ if (preflight) {
96
86
 
97
87
  // 一時ドキュメントを作成
98
88
  var tempDoc = app.documents.add(doc.documentColorSpace, objW, objH);
89
+ try {
99
90
  tempDoc.artboards[0].artboardRect = [0, objH, objW, 0];
100
91
 
101
92
  // ペースト
@@ -142,8 +133,10 @@ if (preflight) {
142
133
  tempDoc.exportFile(outFile, ExportType.JPEG, jpgOpts);
143
134
  }
144
135
 
145
- // 一時ドキュメントを閉じる(保存しない)
136
+ } finally {
137
+ // 一時ドキュメントを閉じる(エクスポート失敗時もリーク防止)
146
138
  tempDoc.close(SaveOptions.DONOTSAVECHANGES);
139
+ }
147
140
 
148
141
  } else {
149
142
  // 従来の書き出しロジック(artboard / selection / SVG)
@@ -162,13 +155,15 @@ if (preflight) {
162
155
  if (typeof svgOpts.embed_images !== "undefined") {
163
156
  opts.embedRasterImages = svgOpts.embed_images;
164
157
  }
165
- if (svgOpts.id_naming === "layer") {
166
- opts.idType = SVGIdType.SVGIDMINIMAL;
167
- } else if (svgOpts.id_naming === "object") {
168
- opts.idType = SVGIdType.SVGIDUNIQUE;
169
- } else {
170
- opts.idType = SVGIdType.SVGIDREGULAR;
171
- }
158
+ try {
159
+ if (svgOpts.id_naming === "layer") {
160
+ opts.idType = SVGIdType.SVGIDMINIMAL;
161
+ } else if (svgOpts.id_naming === "object") {
162
+ opts.idType = SVGIdType.SVGIDUNIQUE;
163
+ } else {
164
+ opts.idType = SVGIdType.SVGIDREGULAR;
165
+ }
166
+ } catch (_) { /* SVGIdType may not exist in some ExtendScript versions */ }
172
167
  if (typeof svgOpts.decimal_places === "number") {
173
168
  opts.coordinatePrecision = svgOpts.decimal_places;
174
169
  }
@@ -199,8 +194,6 @@ if (preflight) {
199
194
  if (targetType === "artboard") {
200
195
  doc.artboards.setActiveArtboardIndex(artboardIndex);
201
196
  pngOpts.artBoardClipping = true;
202
- pngOpts.saveMultipleArtboards = true;
203
- pngOpts.artboardRange = String(artboardIndex + 1);
204
197
  } else if (targetType === "selection") {
205
198
  pngOpts.artBoardClipping = false;
206
199
  }
@@ -218,8 +211,6 @@ if (preflight) {
218
211
  if (targetType === "artboard") {
219
212
  doc.artboards.setActiveArtboardIndex(artboardIndex);
220
213
  jpgOpts.artBoardClipping = true;
221
- jpgOpts.saveMultipleArtboards = true;
222
- jpgOpts.artboardRange = String(artboardIndex + 1);
223
214
  } else if (targetType === "selection") {
224
215
  jpgOpts.artBoardClipping = false;
225
216
  }
@@ -234,7 +225,13 @@ if (preflight) {
234
225
  if (!verifyFile.exists) {
235
226
  writeResultFile(RESULT_PATH, { error: true, message: "Export completed but output file was not created. The path may not be writable: " + outputPath });
236
227
  } else {
237
- writeResultFile(RESULT_PATH, { success: true, output_path: outputPath });
228
+ var resultInfo = { success: true, output_path: outputPath, format: format };
229
+ if (format === "png" || format === "jpg") {
230
+ var effectiveDpi = (rasterOpts.dpi || 72) * scale;
231
+ resultInfo.dpi = effectiveDpi;
232
+ resultInfo.scale = scale;
233
+ }
234
+ writeResultFile(RESULT_PATH, resultInfo);
238
235
  }
239
236
  }
240
237
 
@@ -251,7 +248,7 @@ export function register(server) {
251
248
  inputSchema: {
252
249
  target: z
253
250
  .string()
254
- .describe('UUID, "artboard:<index>", or "selection"'),
251
+ .describe('UUID, "artboard:<index>", or "selection". When exporting a UUID target as PNG/JPG, a temporary document is created internally (selection state may change).'),
255
252
  // WebP is not supported by ExtendScript API
256
253
  // format: z.enum(['svg', 'png', 'webp', 'jpg']).describe('Export format'),
257
254
  format: z.enum(['svg', 'png', 'jpg']).describe('Export format'),
@@ -259,9 +256,9 @@ export function register(server) {
259
256
  scale: z.number().optional().default(1).describe('Scale factor'),
260
257
  svg_options: z
261
258
  .object({
262
- text_outline: z.boolean().optional().describe('Convert text to outlines'),
263
- css_properties: z.boolean().optional().describe('Export as CSS properties'),
264
- embed_images: z.boolean().optional().describe('Embed raster images'),
259
+ text_outline: coerceBoolean.optional().describe('Convert text to outlines'),
260
+ css_properties: coerceBoolean.optional().describe('Export as CSS properties'),
261
+ embed_images: coerceBoolean.optional().describe('Embed raster images'),
265
262
  id_naming: z
266
263
  .enum(['layer', 'object', 'auto'])
267
264
  .optional()
@@ -277,17 +274,12 @@ export function register(server) {
277
274
  .string()
278
275
  .optional()
279
276
  .describe('"transparent", "white", or color code'),
280
- antialiasing: z.boolean().optional().describe('Anti-aliasing'),
277
+ antialiasing: coerceBoolean.optional().describe('Anti-aliasing'),
281
278
  })
282
279
  .optional()
283
280
  .describe('Raster export options'),
284
281
  },
285
- annotations: {
286
- readOnlyHint: false,
287
- destructiveHint: false,
288
- idempotentHint: true,
289
- openWorldHint: false,
290
- },
282
+ annotations: WRITE_IDEMPOTENT_ANNOTATIONS,
291
283
  }, async (params) => {
292
284
  const result = await executeJsxHeavy(jsxCode, params);
293
285
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/tools/export/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/tools/export/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClF;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsOf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gIAAgI;QAC7I,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,6JAA6J,CAAC;YAC1K,4CAA4C;YAC5C,2EAA2E;YAC3E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YAChE,WAAW,EAAE,CAAC;iBACX,MAAM,CAAC;gBACN,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAC3E,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAC7E,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACrE,SAAS,EAAE,CAAC;qBACT,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;qBACjC,QAAQ,EAAE;qBACV,QAAQ,CAAC,kBAAkB,CAAC;gBAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aACjE,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,oBAAoB,CAAC;YAClC,cAAc,EAAE,CAAC;iBACd,MAAM,CAAC;gBACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACvD,UAAU,EAAE,CAAC;qBACV,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,uCAAuC,CAAC;gBACnD,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;aACjE,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,uBAAuB,CAAC;SACrC;QACD,WAAW,EAAE,4BAA4B;KAC3C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=align-objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"align-objects.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/align-objects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgLpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkChD"}
@@ -0,0 +1,202 @@
1
+ import { z } from 'zod';
2
+ import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
4
+ import { WRITE_ANNOTATIONS } from './shared.js';
5
+ /**
6
+ * align_objects — オブジェクトの整列・均等配置
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PageItem/ — geometricBounds, position, translate()
8
+ */
9
+ const jsxCode = `
10
+ var preflight = preflightChecks();
11
+ if (preflight) {
12
+ writeResultFile(RESULT_PATH, preflight);
13
+ } else {
14
+ try {
15
+ var params = readParamsFile(PARAMS_PATH);
16
+ var doc = app.activeDocument;
17
+ var uuids = params.uuids;
18
+ var alignment = params.alignment;
19
+ var distribute = params.distribute || null;
20
+ var reference = params.reference || "selection";
21
+
22
+ if (!alignment && !distribute) {
23
+ writeResultFile(RESULT_PATH, { error: true, message: "At least one of alignment or distribute must be specified" });
24
+ } else if (!uuids || uuids.length < 2) {
25
+ writeResultFile(RESULT_PATH, { error: true, message: "At least 2 UUIDs are required" });
26
+ } else {
27
+ // Collect items by UUID
28
+ var items = [];
29
+ for (var i = 0; i < uuids.length; i++) {
30
+ var found = findItemByUUID(uuids[i]);
31
+ if (found) {
32
+ items.push(found);
33
+ }
34
+ }
35
+
36
+ if (items.length < 2) {
37
+ writeResultFile(RESULT_PATH, { error: true, message: "Could not find at least 2 objects with the given UUIDs" });
38
+ } else {
39
+ // Pre-cache all bounds (1回のDOM アクセスで済ませる)
40
+ var boundsCache = [];
41
+ for (var bi = 0; bi < items.length; bi++) {
42
+ boundsCache.push(items[bi].geometricBounds);
43
+ }
44
+
45
+ // Get reference bounds
46
+ var refLeft, refRight, refTop, refBottom;
47
+ if (reference === "artboard") {
48
+ var abIdx = doc.artboards.getActiveArtboardIndex();
49
+ var abRect = getArtboardRectByIndex(abIdx);
50
+ if (!abRect) {
51
+ writeResultFile(RESULT_PATH, { error: true, message: "Could not resolve active artboard" });
52
+ items = []; // alignment/distribution をスキップ
53
+ } else {
54
+ refLeft = abRect[0];
55
+ refTop = abRect[1];
56
+ refRight = abRect[2];
57
+ refBottom = abRect[3];
58
+ }
59
+ } else {
60
+ refLeft = Infinity;
61
+ refTop = -Infinity;
62
+ refRight = -Infinity;
63
+ refBottom = Infinity;
64
+ for (var si = 0; si < boundsCache.length; si++) {
65
+ var sb = boundsCache[si];
66
+ if (sb[0] < refLeft) refLeft = sb[0];
67
+ if (sb[1] > refTop) refTop = sb[1];
68
+ if (sb[2] > refRight) refRight = sb[2];
69
+ if (sb[3] < refBottom) refBottom = sb[3];
70
+ }
71
+ }
72
+
73
+ // Alignment
74
+ if (alignment) {
75
+ for (var ai = 0; ai < items.length; ai++) {
76
+ var b = boundsCache[ai];
77
+ var w = b[2] - b[0];
78
+ var h = b[1] - b[3];
79
+
80
+ if (alignment === "left") {
81
+ items[ai].position = [refLeft, b[1]];
82
+ } else if (alignment === "right") {
83
+ items[ai].position = [refRight - w, b[1]];
84
+ } else if (alignment === "center_h") {
85
+ var cx = (refLeft + refRight) / 2;
86
+ items[ai].position = [cx - w / 2, b[1]];
87
+ } else if (alignment === "top") {
88
+ items[ai].position = [b[0], refTop];
89
+ } else if (alignment === "bottom") {
90
+ items[ai].position = [b[0], refBottom + h];
91
+ } else if (alignment === "center_v") {
92
+ var cy = (refTop + refBottom) / 2;
93
+ items[ai].position = [b[0], cy + h / 2];
94
+ }
95
+ }
96
+ }
97
+
98
+ // Distribution (bounds を再取得 — alignment で位置が変わっている可能性あり)
99
+ if (distribute) {
100
+ // 整列後の bounds を再取得
101
+ var distBounds = [];
102
+ for (var dbi = 0; dbi < items.length; dbi++) {
103
+ distBounds.push(items[dbi].geometricBounds);
104
+ }
105
+
106
+ // ソート用のインデックス配列を構築(bounds と item の対応を維持)
107
+ var indices = [];
108
+ for (var ii = 0; ii < items.length; ii++) { indices.push(ii); }
109
+
110
+ if (distribute === "horizontal") {
111
+ indices.sort(function(a, b) { return distBounds[a][0] - distBounds[b][0]; });
112
+ var totalWidth = 0;
113
+ for (var di = 0; di < indices.length; di++) {
114
+ var db = distBounds[indices[di]];
115
+ totalWidth += (db[2] - db[0]);
116
+ }
117
+ var firstLeft = distBounds[indices[0]][0];
118
+ var lastRight = distBounds[indices[indices.length - 1]][2];
119
+ var totalSpace = (lastRight - firstLeft) - totalWidth;
120
+ var gap = totalSpace / (indices.length - 1);
121
+ var currentX = firstLeft;
122
+ for (var di2 = 0; di2 < indices.length; di2++) {
123
+ var idx = indices[di2];
124
+ var itemW = distBounds[idx][2] - distBounds[idx][0];
125
+ items[idx].position = [currentX, distBounds[idx][1]];
126
+ currentX += itemW + gap;
127
+ }
128
+ } else if (distribute === "vertical") {
129
+ indices.sort(function(a, b) { return distBounds[b][1] - distBounds[a][1]; });
130
+ var totalHeight = 0;
131
+ for (var dj = 0; dj < indices.length; dj++) {
132
+ var dbv = distBounds[indices[dj]];
133
+ totalHeight += (dbv[1] - dbv[3]);
134
+ }
135
+ var firstTop = distBounds[indices[0]][1];
136
+ var lastBottom = distBounds[indices[indices.length - 1]][3];
137
+ var totalSpaceV = (firstTop - lastBottom) - totalHeight;
138
+ var gapV = totalSpaceV / (indices.length - 1);
139
+ var currentY = firstTop;
140
+ for (var dj2 = 0; dj2 < indices.length; dj2++) {
141
+ var idxV = indices[dj2];
142
+ var itemH = distBounds[idxV][1] - distBounds[idxV][3];
143
+ items[idxV].position = [distBounds[idxV][0], currentY];
144
+ currentY -= itemH + gapV;
145
+ }
146
+ }
147
+ }
148
+
149
+ if (items.length > 0) {
150
+ var coordSystem = params.coordinate_system || "artboard-web";
151
+ var verifyAbRect = (coordSystem === "artboard-web") ? getActiveArtboardRect() : null;
152
+ var verifiedItems = [];
153
+ for (var vi = 0; vi < items.length; vi++) {
154
+ verifiedItems.push(verifyItem(items[vi], coordSystem, verifyAbRect));
155
+ }
156
+ writeResultFile(RESULT_PATH, {
157
+ success: true,
158
+ alignedCount: items.length,
159
+ alignment: alignment || null,
160
+ distribute: distribute,
161
+ verified: verifiedItems
162
+ });
163
+ }
164
+ }
165
+ }
166
+ } catch (e) {
167
+ writeResultFile(RESULT_PATH, { error: true, message: "Align failed: " + e.message, line: e.line });
168
+ }
169
+ }
170
+ `;
171
+ export function register(server) {
172
+ server.registerTool('align_objects', {
173
+ title: 'Align Objects',
174
+ description: 'Align and/or distribute multiple objects by their UUIDs',
175
+ inputSchema: {
176
+ uuids: z
177
+ .array(z.string())
178
+ .min(2)
179
+ .describe('UUIDs of objects to align (minimum 2)'),
180
+ alignment: z
181
+ .enum(['left', 'center_h', 'right', 'top', 'center_v', 'bottom'])
182
+ .optional()
183
+ .describe('Alignment direction'),
184
+ distribute: z
185
+ .enum(['horizontal', 'vertical'])
186
+ .optional()
187
+ .describe('Distribute objects evenly'),
188
+ reference: z
189
+ .enum(['selection', 'artboard'])
190
+ .optional()
191
+ .default('selection')
192
+ .describe('Align relative to selection bounding box or active artboard'),
193
+ coordinate_system: coordinateSystemSchema,
194
+ },
195
+ annotations: WRITE_ANNOTATIONS,
196
+ }, async (params) => {
197
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
198
+ const result = await executeJsx(jsxCode, resolvedParams);
199
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
200
+ });
201
+ }
202
+ //# sourceMappingURL=align-objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"align-objects.js","sourceRoot":"","sources":["../../../src/tools/modify/align-objects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiKf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,uCAAuC,CAAC;YACpD,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;iBAChE,QAAQ,EAAE;iBACV,QAAQ,CAAC,qBAAqB,CAAC;YAClC,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBAChC,QAAQ,EAAE;iBACV,QAAQ,CAAC,2BAA2B,CAAC;YACxC,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;iBAC/B,QAAQ,EAAE;iBACV,OAAO,CAAC,WAAW,CAAC;iBACpB,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,iBAAiB,EAAE,sBAAsB;SAC1C;QACD,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-color-profile.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/apply-color-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgDpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
1
+ {"version":3,"file":"apply-color-profile.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/apply-color-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0DpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgBhD"}
@@ -1,5 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { DESTRUCTIVE_ANNOTATIONS } from './shared.js';
4
+ /**
5
+ * assign_color_profile — カラープロファイルの割り当て
6
+ *
7
+ * 注意: Document.colorProfileName はリファレンスに記載がないが、実際のIllustratorでは動作する。
8
+ */
3
9
  const jsxCode = `
4
10
  var preflight = preflightChecks();
5
11
  if (preflight) {
@@ -31,11 +37,15 @@ if (preflight) {
31
37
  }
32
38
 
33
39
  if (!hasError) {
40
+ var actualProfile = "";
41
+ try { actualProfile = doc.colorProfileName; } catch(e2) { actualProfile = "(unavailable)"; }
34
42
  writeResultFile(RESULT_PATH, {
35
- success: true,
43
+ assigned: true,
44
+ converted: false,
36
45
  previousProfile: oldProfile,
37
46
  newProfile: profile,
38
- note: note
47
+ note: note,
48
+ verified: { actualProfile: actualProfile }
39
49
  });
40
50
  }
41
51
  } catch (e) {
@@ -44,18 +54,13 @@ if (preflight) {
44
54
  }
45
55
  `;
46
56
  export function register(server) {
47
- server.registerTool('apply_color_profile', {
48
- title: 'Apply Color Profile',
49
- description: 'Apply or convert color profile. Note: Illustrator will be activated (brought to foreground) during execution.',
57
+ server.registerTool('assign_color_profile', {
58
+ title: 'Assign Color Profile',
59
+ description: 'Assign (tag) a color profile to the document. WARNING: This only changes the profile tag — it does NOT convert color values (ICC conversion). For full conversion, use Edit > Convert to Profile in Illustrator. Note: Illustrator will be activated (brought to foreground) during execution.',
50
60
  inputSchema: {
51
61
  profile: z.string().describe('Color profile name or path'),
52
62
  },
53
- annotations: {
54
- readOnlyHint: false,
55
- destructiveHint: true,
56
- idempotentHint: true,
57
- openWorldHint: false,
58
- },
63
+ annotations: DESTRUCTIVE_ANNOTATIONS,
59
64
  }, async (params) => {
60
65
  const result = await executeJsx(jsxCode, params, { activate: true });
61
66
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
@@ -1 +1 @@
1
- {"version":3,"file":"apply-color-profile.js","sourceRoot":"","sources":["../../../src/tools/modify/apply-color-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,+GAA+G;QAC5H,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC3D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"apply-color-profile.js","sourceRoot":"","sources":["../../../src/tools/modify/apply-color-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;GAIG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,gSAAgS;QAC7S,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC3D;QACD,WAAW,EAAE,uBAAuB;KACrC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=apply-graphic-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-graphic-style.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/apply-graphic-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoChD"}
@@ -0,0 +1,106 @@
1
+ import { z } from 'zod';
2
+ import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { READ_ANNOTATIONS, WRITE_ANNOTATIONS, coerceBoolean } from './shared.js';
4
+ /**
5
+ * apply_graphic_style / list_graphic_styles
6
+ *
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/GraphicStyle/ — GraphicStyle.applyTo(), mergeTo()
8
+ *
9
+ * JSX API:
10
+ * Document.graphicStyles → GraphicStyles コレクション
11
+ * GraphicStyles.getByName(name: String) → GraphicStyle
12
+ * GraphicStyle.applyTo(artItem: PageItem) → void
13
+ * GraphicStyle.mergeTo(artItem: PageItem) → void
14
+ */
15
+ const applyJsxCode = `
16
+ var preflight = preflightChecks();
17
+ if (preflight) {
18
+ writeResultFile(RESULT_PATH, preflight);
19
+ } else {
20
+ try {
21
+ var params = readParamsFile(PARAMS_PATH);
22
+ var doc = app.activeDocument;
23
+
24
+ var style = null;
25
+ try {
26
+ style = doc.graphicStyles.getByName(params.style_name);
27
+ } catch(e) {
28
+ writeResultFile(RESULT_PATH, { error: true, message: "Graphic style not found: " + params.style_name });
29
+ }
30
+
31
+ if (style) {
32
+ var appliedCount = 0;
33
+ for (var i = 0; i < params.uuids.length; i++) {
34
+ var item = findItemByUUID(params.uuids[i]);
35
+ if (item) {
36
+ if (params.merge === true) {
37
+ style.mergeTo(item);
38
+ } else {
39
+ style.applyTo(item);
40
+ }
41
+ appliedCount++;
42
+ }
43
+ }
44
+ var verifiedItems = [];
45
+ for (var vi = 0; vi < params.uuids.length; vi++) {
46
+ var vItem = findItemByUUID(params.uuids[vi]);
47
+ if (vItem) verifiedItems.push(verifyItem(vItem));
48
+ }
49
+ writeResultFile(RESULT_PATH, {
50
+ success: true,
51
+ styleName: params.style_name,
52
+ appliedCount: appliedCount,
53
+ merge: params.merge === true,
54
+ verified: verifiedItems
55
+ });
56
+ }
57
+ } catch (e) {
58
+ writeResultFile(RESULT_PATH, { error: true, message: "apply_graphic_style failed: " + e.message, line: e.line });
59
+ }
60
+ }
61
+ `;
62
+ const listJsxCode = `
63
+ var preflight = preflightChecks();
64
+ if (preflight) {
65
+ writeResultFile(RESULT_PATH, preflight);
66
+ } else {
67
+ try {
68
+ var doc = app.activeDocument;
69
+ var styles = [];
70
+ for (var i = 0; i < doc.graphicStyles.length; i++) {
71
+ styles.push({ index: i, name: doc.graphicStyles[i].name });
72
+ }
73
+ writeResultFile(RESULT_PATH, { count: styles.length, styles: styles });
74
+ } catch (e) {
75
+ writeResultFile(RESULT_PATH, { error: true, message: "list_graphic_styles failed: " + e.message, line: e.line });
76
+ }
77
+ }
78
+ `;
79
+ export function register(server) {
80
+ server.registerTool('apply_graphic_style', {
81
+ title: 'Apply Graphic Style',
82
+ description: 'Apply a graphic style to objects. Note: Illustrator will be activated (brought to foreground) during execution.',
83
+ inputSchema: {
84
+ style_name: z.string().describe('Name of the graphic style to apply'),
85
+ uuids: z.array(z.string()).min(1).describe('UUIDs of target objects'),
86
+ merge: coerceBoolean
87
+ .optional()
88
+ .default(false)
89
+ .describe('true = merge with existing appearance, false = replace'),
90
+ },
91
+ annotations: WRITE_ANNOTATIONS,
92
+ }, async (params) => {
93
+ const result = await executeJsx(applyJsxCode, params, { activate: true });
94
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
95
+ });
96
+ server.registerTool('list_graphic_styles', {
97
+ title: 'List Graphic Styles',
98
+ description: 'List all graphic styles in the active document.',
99
+ inputSchema: {},
100
+ annotations: READ_ANNOTATIONS,
101
+ }, async (params) => {
102
+ const result = await executeJsx(listJsxCode, params);
103
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
104
+ });
105
+ }
106
+ //# sourceMappingURL=apply-graphic-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-graphic-style.js","sourceRoot":"","sources":["../../../src/tools/modify/apply-graphic-style.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CpB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;CAgBnB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,iHAAiH;QACnH,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACrE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACrE,KAAK,EAAE,aAAa;iBACjB,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,wDAAwD,CAAC;SACtE;QACD,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=apply-text-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-text-style.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/apply-text-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6FpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqChD"}