@alisaitteke/photoshop-mcp 1.1.2 → 1.2.0

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 (279) hide show
  1. package/README.md +244 -981
  2. package/dist/api/extendscript.d.ts +41 -3
  3. package/dist/api/extendscript.d.ts.map +1 -1
  4. package/dist/api/extendscript.js +705 -130
  5. package/dist/api/extendscript.js.map +1 -1
  6. package/dist/api/photoshop-api.js +25 -0
  7. package/dist/api/photoshop-api.js.map +1 -1
  8. package/dist/core/prompt-registry.d.ts +17 -0
  9. package/dist/core/prompt-registry.d.ts.map +1 -0
  10. package/dist/core/prompt-registry.js +34 -0
  11. package/dist/core/prompt-registry.js.map +1 -0
  12. package/dist/core/server.d.ts +3 -0
  13. package/dist/core/server.d.ts.map +1 -1
  14. package/dist/core/server.js +71 -97
  15. package/dist/core/server.js.map +1 -1
  16. package/dist/errors/envelope.d.ts +16 -0
  17. package/dist/errors/envelope.d.ts.map +1 -0
  18. package/dist/errors/envelope.js +76 -0
  19. package/dist/errors/envelope.js.map +1 -0
  20. package/dist/lib/export-paths.d.ts +12 -0
  21. package/dist/lib/export-paths.d.ts.map +1 -0
  22. package/dist/lib/export-paths.js +67 -0
  23. package/dist/lib/export-paths.js.map +1 -0
  24. package/dist/platform/capabilities.d.ts +19 -0
  25. package/dist/platform/capabilities.d.ts.map +1 -0
  26. package/dist/platform/capabilities.js +43 -0
  27. package/dist/platform/capabilities.js.map +1 -0
  28. package/dist/platform/detector.d.ts +2 -0
  29. package/dist/platform/detector.d.ts.map +1 -1
  30. package/dist/platform/detector.js +14 -0
  31. package/dist/platform/detector.js.map +1 -1
  32. package/dist/platform/macos-executor.d.ts.map +1 -1
  33. package/dist/platform/macos-executor.js +5 -8
  34. package/dist/platform/macos-executor.js.map +1 -1
  35. package/dist/platform/windows-executor.d.ts.map +1 -1
  36. package/dist/platform/windows-executor.js +5 -10
  37. package/dist/platform/windows-executor.js.map +1 -1
  38. package/dist/prompts/_shared.d.ts +23 -0
  39. package/dist/prompts/_shared.d.ts.map +1 -0
  40. package/dist/prompts/_shared.js +58 -0
  41. package/dist/prompts/_shared.js.map +1 -0
  42. package/dist/prompts/instructions.d.ts +7 -0
  43. package/dist/prompts/instructions.d.ts.map +1 -0
  44. package/dist/prompts/instructions.js +134 -0
  45. package/dist/prompts/instructions.js.map +1 -0
  46. package/dist/prompts/registry.d.ts +5 -0
  47. package/dist/prompts/registry.d.ts.map +1 -0
  48. package/dist/prompts/registry.js +47 -0
  49. package/dist/prompts/registry.js.map +1 -0
  50. package/dist/prompts/templates/apply-color-grade.d.ts +3 -0
  51. package/dist/prompts/templates/apply-color-grade.d.ts.map +1 -0
  52. package/dist/prompts/templates/apply-color-grade.js +46 -0
  53. package/dist/prompts/templates/apply-color-grade.js.map +1 -0
  54. package/dist/prompts/templates/batch-mockup-replace.d.ts +3 -0
  55. package/dist/prompts/templates/batch-mockup-replace.d.ts.map +1 -0
  56. package/dist/prompts/templates/batch-mockup-replace.js +35 -0
  57. package/dist/prompts/templates/batch-mockup-replace.js.map +1 -0
  58. package/dist/prompts/templates/color-correct.d.ts +3 -0
  59. package/dist/prompts/templates/color-correct.d.ts.map +1 -0
  60. package/dist/prompts/templates/color-correct.js +36 -0
  61. package/dist/prompts/templates/color-correct.js.map +1 -0
  62. package/dist/prompts/templates/composite-blend.d.ts +3 -0
  63. package/dist/prompts/templates/composite-blend.d.ts.map +1 -0
  64. package/dist/prompts/templates/composite-blend.js +60 -0
  65. package/dist/prompts/templates/composite-blend.js.map +1 -0
  66. package/dist/prompts/templates/dodge-burn-guide.d.ts +3 -0
  67. package/dist/prompts/templates/dodge-burn-guide.d.ts.map +1 -0
  68. package/dist/prompts/templates/dodge-burn-guide.js +38 -0
  69. package/dist/prompts/templates/dodge-burn-guide.js.map +1 -0
  70. package/dist/prompts/templates/dodge-burn.d.ts +3 -0
  71. package/dist/prompts/templates/dodge-burn.d.ts.map +1 -0
  72. package/dist/prompts/templates/dodge-burn.js +31 -0
  73. package/dist/prompts/templates/dodge-burn.js.map +1 -0
  74. package/dist/prompts/templates/enhance-portrait.d.ts +3 -0
  75. package/dist/prompts/templates/enhance-portrait.d.ts.map +1 -0
  76. package/dist/prompts/templates/enhance-portrait.js +45 -0
  77. package/dist/prompts/templates/enhance-portrait.js.map +1 -0
  78. package/dist/prompts/templates/export-social-variants.d.ts +3 -0
  79. package/dist/prompts/templates/export-social-variants.d.ts.map +1 -0
  80. package/dist/prompts/templates/export-social-variants.js +45 -0
  81. package/dist/prompts/templates/export-social-variants.js.map +1 -0
  82. package/dist/prompts/templates/frequency-separation.d.ts +3 -0
  83. package/dist/prompts/templates/frequency-separation.d.ts.map +1 -0
  84. package/dist/prompts/templates/frequency-separation.js +29 -0
  85. package/dist/prompts/templates/frequency-separation.js.map +1 -0
  86. package/dist/prompts/templates/gradient-blend.d.ts +3 -0
  87. package/dist/prompts/templates/gradient-blend.d.ts.map +1 -0
  88. package/dist/prompts/templates/gradient-blend.js +43 -0
  89. package/dist/prompts/templates/gradient-blend.js.map +1 -0
  90. package/dist/prompts/templates/gradient-fade.d.ts +3 -0
  91. package/dist/prompts/templates/gradient-fade.d.ts.map +1 -0
  92. package/dist/prompts/templates/gradient-fade.js +57 -0
  93. package/dist/prompts/templates/gradient-fade.js.map +1 -0
  94. package/dist/prompts/templates/organize-layers.d.ts +3 -0
  95. package/dist/prompts/templates/organize-layers.d.ts.map +1 -0
  96. package/dist/prompts/templates/organize-layers.js +43 -0
  97. package/dist/prompts/templates/organize-layers.js.map +1 -0
  98. package/dist/prompts/templates/prepare-for-web.d.ts +3 -0
  99. package/dist/prompts/templates/prepare-for-web.d.ts.map +1 -0
  100. package/dist/prompts/templates/prepare-for-web.js +42 -0
  101. package/dist/prompts/templates/prepare-for-web.js.map +1 -0
  102. package/dist/prompts/templates/remove-background.d.ts +3 -0
  103. package/dist/prompts/templates/remove-background.d.ts.map +1 -0
  104. package/dist/prompts/templates/remove-background.js +36 -0
  105. package/dist/prompts/templates/remove-background.js.map +1 -0
  106. package/dist/prompts/templates/remove-distraction.d.ts +3 -0
  107. package/dist/prompts/templates/remove-distraction.d.ts.map +1 -0
  108. package/dist/prompts/templates/remove-distraction.js +31 -0
  109. package/dist/prompts/templates/remove-distraction.js.map +1 -0
  110. package/dist/prompts/templates/sky-blend.d.ts +3 -0
  111. package/dist/prompts/templates/sky-blend.d.ts.map +1 -0
  112. package/dist/prompts/templates/sky-blend.js +61 -0
  113. package/dist/prompts/templates/sky-blend.js.map +1 -0
  114. package/dist/prompts/templates.d.ts +8 -0
  115. package/dist/prompts/templates.d.ts.map +1 -0
  116. package/dist/prompts/templates.js +162 -0
  117. package/dist/prompts/templates.js.map +1 -0
  118. package/dist/tools/action-tools.d.ts.map +1 -1
  119. package/dist/tools/action-tools.js +8 -1
  120. package/dist/tools/action-tools.js.map +1 -1
  121. package/dist/tools/adjustment-tools.d.ts.map +1 -1
  122. package/dist/tools/adjustment-tools.js +54 -2
  123. package/dist/tools/adjustment-tools.js.map +1 -1
  124. package/dist/tools/atomic-shared.d.ts +15 -0
  125. package/dist/tools/atomic-shared.d.ts.map +1 -0
  126. package/dist/tools/atomic-shared.js +42 -0
  127. package/dist/tools/atomic-shared.js.map +1 -0
  128. package/dist/tools/document-tools.d.ts.map +1 -1
  129. package/dist/tools/document-tools.js +10 -2
  130. package/dist/tools/document-tools.js.map +1 -1
  131. package/dist/tools/image-placement-tools.d.ts.map +1 -1
  132. package/dist/tools/image-placement-tools.js +10 -2
  133. package/dist/tools/image-placement-tools.js.map +1 -1
  134. package/dist/tools/layer-tools.d.ts.map +1 -1
  135. package/dist/tools/layer-tools.js +73 -5
  136. package/dist/tools/layer-tools.js.map +1 -1
  137. package/dist/tools/mask-tools.d.ts +4 -0
  138. package/dist/tools/mask-tools.d.ts.map +1 -0
  139. package/dist/tools/mask-tools.js +107 -0
  140. package/dist/tools/mask-tools.js.map +1 -0
  141. package/dist/tools/recipe-tools.d.ts +4 -0
  142. package/dist/tools/recipe-tools.d.ts.map +1 -0
  143. package/dist/tools/recipe-tools.js +265 -0
  144. package/dist/tools/recipe-tools.js.map +1 -0
  145. package/dist/tools/recipes/_shared.d.ts +37 -0
  146. package/dist/tools/recipes/_shared.d.ts.map +1 -0
  147. package/dist/tools/recipes/_shared.js +261 -0
  148. package/dist/tools/recipes/_shared.js.map +1 -0
  149. package/dist/tools/recipes/apply-color-grade.d.ts +4 -0
  150. package/dist/tools/recipes/apply-color-grade.d.ts.map +1 -0
  151. package/dist/tools/recipes/apply-color-grade.js +98 -0
  152. package/dist/tools/recipes/apply-color-grade.js.map +1 -0
  153. package/dist/tools/recipes/batch-mockup-replace.d.ts +4 -0
  154. package/dist/tools/recipes/batch-mockup-replace.d.ts.map +1 -0
  155. package/dist/tools/recipes/batch-mockup-replace.js +185 -0
  156. package/dist/tools/recipes/batch-mockup-replace.js.map +1 -0
  157. package/dist/tools/recipes/dodge-burn.d.ts +4 -0
  158. package/dist/tools/recipes/dodge-burn.d.ts.map +1 -0
  159. package/dist/tools/recipes/dodge-burn.js +84 -0
  160. package/dist/tools/recipes/dodge-burn.js.map +1 -0
  161. package/dist/tools/recipes/enhance-portrait.d.ts +4 -0
  162. package/dist/tools/recipes/enhance-portrait.d.ts.map +1 -0
  163. package/dist/tools/recipes/enhance-portrait.js +110 -0
  164. package/dist/tools/recipes/enhance-portrait.js.map +1 -0
  165. package/dist/tools/recipes/export-social-variants.d.ts +4 -0
  166. package/dist/tools/recipes/export-social-variants.d.ts.map +1 -0
  167. package/dist/tools/recipes/export-social-variants.js +180 -0
  168. package/dist/tools/recipes/export-social-variants.js.map +1 -0
  169. package/dist/tools/recipes/frequency-separation.d.ts +4 -0
  170. package/dist/tools/recipes/frequency-separation.d.ts.map +1 -0
  171. package/dist/tools/recipes/frequency-separation.js +77 -0
  172. package/dist/tools/recipes/frequency-separation.js.map +1 -0
  173. package/dist/tools/recipes/gradient-fade.d.ts +4 -0
  174. package/dist/tools/recipes/gradient-fade.d.ts.map +1 -0
  175. package/dist/tools/recipes/gradient-fade.js +121 -0
  176. package/dist/tools/recipes/gradient-fade.js.map +1 -0
  177. package/dist/tools/recipes/index.d.ts +5 -0
  178. package/dist/tools/recipes/index.d.ts.map +1 -0
  179. package/dist/tools/recipes/index.js +43 -0
  180. package/dist/tools/recipes/index.js.map +1 -0
  181. package/dist/tools/recipes/organize-layers.d.ts +4 -0
  182. package/dist/tools/recipes/organize-layers.d.ts.map +1 -0
  183. package/dist/tools/recipes/organize-layers.js +156 -0
  184. package/dist/tools/recipes/organize-layers.js.map +1 -0
  185. package/dist/tools/recipes/prepare-for-web.d.ts +4 -0
  186. package/dist/tools/recipes/prepare-for-web.d.ts.map +1 -0
  187. package/dist/tools/recipes/prepare-for-web.js +125 -0
  188. package/dist/tools/recipes/prepare-for-web.js.map +1 -0
  189. package/dist/tools/recipes/remove-background.d.ts +4 -0
  190. package/dist/tools/recipes/remove-background.d.ts.map +1 -0
  191. package/dist/tools/recipes/remove-background.js +106 -0
  192. package/dist/tools/recipes/remove-background.js.map +1 -0
  193. package/dist/tools/recipes/remove-distraction.d.ts +4 -0
  194. package/dist/tools/recipes/remove-distraction.d.ts.map +1 -0
  195. package/dist/tools/recipes/remove-distraction.js +74 -0
  196. package/dist/tools/recipes/remove-distraction.js.map +1 -0
  197. package/dist/tools/recipes/sky-blend.d.ts +4 -0
  198. package/dist/tools/recipes/sky-blend.d.ts.map +1 -0
  199. package/dist/tools/recipes/sky-blend.js +135 -0
  200. package/dist/tools/recipes/sky-blend.js.map +1 -0
  201. package/dist/tools/selection-tools.d.ts.map +1 -1
  202. package/dist/tools/selection-tools.js +104 -2
  203. package/dist/tools/selection-tools.js.map +1 -1
  204. package/dist/tools/state-tools.d.ts +4 -0
  205. package/dist/tools/state-tools.d.ts.map +1 -0
  206. package/dist/tools/state-tools.js +133 -0
  207. package/dist/tools/state-tools.js.map +1 -0
  208. package/dist/tools/text-tools.d.ts.map +1 -1
  209. package/dist/tools/text-tools.js +60 -2
  210. package/dist/tools/text-tools.js.map +1 -1
  211. package/dist/ui/agent/api-key.d.ts +19 -0
  212. package/dist/ui/agent/api-key.d.ts.map +1 -0
  213. package/dist/ui/agent/api-key.js +113 -0
  214. package/dist/ui/agent/api-key.js.map +1 -0
  215. package/dist/ui/agent/claude-account.d.ts +16 -0
  216. package/dist/ui/agent/claude-account.d.ts.map +1 -0
  217. package/dist/ui/agent/claude-account.js +150 -0
  218. package/dist/ui/agent/claude-account.js.map +1 -0
  219. package/dist/ui/agent/gemini-account.d.ts +15 -0
  220. package/dist/ui/agent/gemini-account.d.ts.map +1 -0
  221. package/dist/ui/agent/gemini-account.js +212 -0
  222. package/dist/ui/agent/gemini-account.js.map +1 -0
  223. package/dist/ui/agent/mcp-transport.d.ts +9 -0
  224. package/dist/ui/agent/mcp-transport.d.ts.map +1 -0
  225. package/dist/ui/agent/mcp-transport.js +34 -0
  226. package/dist/ui/agent/mcp-transport.js.map +1 -0
  227. package/dist/ui/agent/shared.d.ts +30 -0
  228. package/dist/ui/agent/shared.d.ts.map +1 -0
  229. package/dist/ui/agent/shared.js +60 -0
  230. package/dist/ui/agent/shared.js.map +1 -0
  231. package/dist/ui/agent.d.ts +11 -26
  232. package/dist/ui/agent.d.ts.map +1 -1
  233. package/dist/ui/agent.js +58 -173
  234. package/dist/ui/agent.js.map +1 -1
  235. package/dist/ui/config.d.ts +7 -0
  236. package/dist/ui/config.d.ts.map +1 -1
  237. package/dist/ui/config.js +22 -0
  238. package/dist/ui/config.js.map +1 -1
  239. package/dist/ui/providers/anthropic.d.ts.map +1 -1
  240. package/dist/ui/providers/anthropic.js +24 -0
  241. package/dist/ui/providers/anthropic.js.map +1 -1
  242. package/dist/ui/providers/cli-utils.d.ts +12 -0
  243. package/dist/ui/providers/cli-utils.d.ts.map +1 -0
  244. package/dist/ui/providers/cli-utils.js +46 -0
  245. package/dist/ui/providers/cli-utils.js.map +1 -0
  246. package/dist/ui/providers/google.d.ts.map +1 -1
  247. package/dist/ui/providers/google.js +18 -0
  248. package/dist/ui/providers/google.js.map +1 -1
  249. package/dist/ui/providers/openai.d.ts.map +1 -1
  250. package/dist/ui/providers/openai.js +1 -0
  251. package/dist/ui/providers/openai.js.map +1 -1
  252. package/dist/ui/providers/openrouter.d.ts.map +1 -1
  253. package/dist/ui/providers/openrouter.js +1 -0
  254. package/dist/ui/providers/openrouter.js.map +1 -1
  255. package/dist/ui/providers/registry.d.ts +1 -1
  256. package/dist/ui/providers/registry.d.ts.map +1 -1
  257. package/dist/ui/providers/types.d.ts +11 -0
  258. package/dist/ui/providers/types.d.ts.map +1 -1
  259. package/dist/ui/server.d.ts.map +1 -1
  260. package/dist/ui/server.js +73 -11
  261. package/dist/ui/server.js.map +1 -1
  262. package/dist/utils/extendscript-file.d.ts +4 -0
  263. package/dist/utils/extendscript-file.d.ts.map +1 -0
  264. package/dist/utils/extendscript-file.js +6 -0
  265. package/dist/utils/extendscript-file.js.map +1 -0
  266. package/dist/utils/extendscript-result.d.ts +7 -0
  267. package/dist/utils/extendscript-result.d.ts.map +1 -0
  268. package/dist/utils/extendscript-result.js +42 -0
  269. package/dist/utils/extendscript-result.js.map +1 -0
  270. package/dist/utils/js-string.d.ts +2 -0
  271. package/dist/utils/js-string.d.ts.map +1 -0
  272. package/dist/utils/js-string.js +8 -0
  273. package/dist/utils/js-string.js.map +1 -0
  274. package/package.json +11 -3
  275. package/web/dist/assets/index-BN0tu4e6.css +1 -0
  276. package/web/dist/assets/index-Cf7sH5RM.js +138 -0
  277. package/web/dist/index.html +2 -2
  278. package/web/dist/assets/index-Kxyfap9w.js +0 -138
  279. package/web/dist/assets/index-Th6OF4IB.css +0 -1
@@ -2,6 +2,16 @@
2
2
  * Helper functions for ExtendScript API
3
3
  * ExtendScript is the legacy scripting API for Photoshop
4
4
  */
5
+ /** Curves adjustment layer helper — shared by atomics and recipes (uses __mcp_s2t / __mcp_c2t). */
6
+ export declare const MCP_CURVES_ADJUSTMENT_HELPER = "\nfunction __mcp_makeCurvesAdjustmentLayer(preset) {\n var usePreset = preset || 'auto_tone';\n var desc = new ActionDescriptor();\n var ref = new ActionReference();\n ref.putClass(__mcp_s2t('adjustmentLayer'));\n desc.putReference(__mcp_s2t('null'), ref);\n var using = new ActionDescriptor();\n var curvesAdjust = new ActionDescriptor();\n var curvesAdjustments = new ActionList();\n var curvesPair = new ActionDescriptor();\n var curvesPoints = new ActionList();\n var ptBlack = new ActionDescriptor();\n var ptWhite = new ActionDescriptor();\n if (usePreset === 'neutral') {\n ptBlack.putDouble(__mcp_c2t('Hrzn'), 0);\n ptBlack.putDouble(__mcp_c2t('Vrtc'), 0);\n ptWhite.putDouble(__mcp_c2t('Hrzn'), 255);\n ptWhite.putDouble(__mcp_c2t('Vrtc'), 255);\n } else {\n ptBlack.putDouble(__mcp_c2t('Hrzn'), 12);\n ptBlack.putDouble(__mcp_c2t('Vrtc'), 0);\n ptWhite.putDouble(__mcp_c2t('Hrzn'), 243);\n ptWhite.putDouble(__mcp_c2t('Vrtc'), 255);\n }\n curvesPoints.putObject(__mcp_c2t('Pnt '), ptBlack);\n curvesPoints.putObject(__mcp_c2t('Pnt '), ptWhite);\n curvesPair.putList(__mcp_c2t('Crv '), curvesPoints);\n var channelRef = new ActionReference();\n channelRef.putEnumerated(__mcp_c2t('Chnl'), __mcp_c2t('Chnl'), __mcp_c2t('Cmps'));\n curvesPair.putReference(__mcp_c2t('Chnl'), channelRef);\n curvesAdjustments.putObject(__mcp_c2t('CrvA'), curvesPair);\n curvesAdjust.putList(__mcp_c2t('Adjs'), curvesAdjustments);\n using.putObject(__mcp_s2t('type'), __mcp_s2t('curves'), curvesAdjust);\n desc.putObject(__mcp_s2t('using'), __mcp_s2t('adjustmentLayer'), using);\n executeAction(__mcp_s2t('make'), desc, DialogModes.NO);\n return app.activeDocument.activeLayer;\n}\n";
7
+ /**
8
+ * Layer mask helpers — Adobe Community / StackSupport.jsx patterns.
9
+ * @see https://community.adobe.com/t5/photoshop-ecosystem-discussions/is-it-possible-to-make-a-layer-mask-with-the-current-selection-using-extendscript/td-p/10872052
10
+ * @see https://github.com/LeZuse/photoshop-scripts/blob/master/default/Stack%20Scripts%20Only/StackSupport.jsx
11
+ */
12
+ export declare const MCP_LAYER_MASK_HELPERS = "\nfunction __mcp_hasLayerMaskAM() {\n var ref = new ActionReference();\n var args = new ActionDescriptor();\n ref.putProperty(cTID('Prpr'), cTID('UsrM'));\n ref.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));\n args.putReference(cTID('null'), ref);\n try {\n var resultDesc = executeAction(cTID('getd'), args, DialogModes.NO);\n return resultDesc.hasKey(cTID('UsrM'));\n } catch (e) {\n return false;\n }\n}\n\nfunction __mcp_makeLayerMaskAtChannel(maskMode) {\n var desc = new ActionDescriptor();\n var atRef = new ActionReference();\n desc.putClass(sTID('new'), sTID('channel'));\n atRef.putEnumerated(sTID('channel'), sTID('channel'), sTID('mask'));\n desc.putReference(sTID('at'), atRef);\n desc.putEnumerated(sTID('using'), sTID('userMaskEnabled'), sTID(maskMode));\n executeAction(sTID('make'), desc, DialogModes.NO);\n}\n\nfunction __mcp_selectLayerMaskChannel() {\n var selRef = new ActionReference();\n selRef.putEnumerated(cTID('Chnl'), cTID('Ordn'), cTID('Trgt'));\n var selDesc = new ActionDescriptor();\n selDesc.putReference(cTID('null'), selRef);\n selDesc.putBoolean(cTID('MkVs'), true);\n executeAction(cTID('slct'), selDesc, DialogModes.NO);\n}\n\nfunction __mcp_pointDescPx(x, y) {\n var desc = new ActionDescriptor();\n desc.putUnitDouble(cTID('Hrzn'), cTID('#Pxl'), x);\n desc.putUnitDouble(cTID('Vrtc'), cTID('#Pxl'), y);\n return desc;\n}\n\nfunction __mcp_gradientStop(location, midPoint) {\n var desc = new ActionDescriptor();\n desc.putInteger(cTID('Lctn'), location);\n desc.putInteger(cTID('Mdpn'), midPoint);\n return desc;\n}\n\nfunction __mcp_grayColor(grayValue) {\n var desc = new ActionDescriptor();\n desc.putDouble(cTID('Gry '), grayValue);\n return desc;\n}\n\n/** Linear black-to-white gradient on the active mask channel (StackSupport.jsx pattern). */\nfunction __mcp_gradientFillLayerMask(fromXPx, fromYPx, toXPx, toYPx, reverseGradient) {\n var args = new ActionDescriptor();\n args.putObject(cTID('From'), cTID('Pnt '), __mcp_pointDescPx(fromXPx, fromYPx));\n args.putObject(cTID('T '), cTID('Pnt '), __mcp_pointDescPx(toXPx, toYPx));\n args.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));\n args.putEnumerated(cTID('Type'), cTID('GrdT'), cTID('Lnr '));\n args.putBoolean(cTID('Dthr'), true);\n args.putBoolean(cTID('UsMs'), true);\n args.putBoolean(cTID('Rvrs'), !!reverseGradient);\n\n var gradDesc = new ActionDescriptor();\n gradDesc.putString(cTID('Nm '), 'Black, White');\n gradDesc.putEnumerated(cTID('GrdF'), cTID('GrdF'), cTID('CstS'));\n gradDesc.putDouble(cTID('Intr'), 4096.0);\n\n var colorList = new ActionList();\n var stopWhite = __mcp_gradientStop(0, 50);\n stopWhite.putObject(cTID('Clr '), cTID('Grsc'), __mcp_grayColor(100.0));\n stopWhite.putEnumerated(cTID('Type'), cTID('Clry'), cTID('UsrS'));\n colorList.putObject(cTID('Clrt'), stopWhite);\n var stopBlack = __mcp_gradientStop(4096, 50);\n stopBlack.putObject(cTID('Clr '), cTID('Grsc'), __mcp_grayColor(0.0));\n stopBlack.putEnumerated(cTID('Type'), cTID('Clry'), cTID('UsrS'));\n colorList.putObject(cTID('Clrt'), stopBlack);\n gradDesc.putList(cTID('Clrs'), colorList);\n\n var xferList = new ActionList();\n var xferA = __mcp_gradientStop(0, 50);\n xferA.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);\n xferList.putObject(cTID('TrnS'), xferA);\n var xferB = __mcp_gradientStop(4096, 50);\n xferB.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);\n xferList.putObject(cTID('TrnS'), xferB);\n gradDesc.putList(cTID('Trns'), xferList);\n\n args.putObject(cTID('Grad'), cTID('Grdn'), gradDesc);\n executeAction(cTID('Grdn'), args, DialogModes.NO);\n}\n";
13
+ export type CurvesPreset = 'auto_tone' | 'neutral';
14
+ export type GradientMaskDirection = 'top_to_bottom' | 'bottom_to_top' | 'left_to_right' | 'right_to_left';
5
15
  /**
6
16
  * Common ExtendScript snippets
7
17
  */
@@ -21,7 +31,7 @@ export declare const ExtendScriptSnippets: {
21
31
  /**
22
32
  * Create a text layer
23
33
  */
24
- createTextLayer: (text: string, x?: number, y?: number, fontSize?: number) => string;
34
+ createTextLayer: (text: string, x?: number, y?: number, fontSize?: number, fontName?: string) => string;
25
35
  /**
26
36
  * Place an image file as a layer
27
37
  */
@@ -72,9 +82,9 @@ export declare const ExtendScriptSnippets: {
72
82
  */
73
83
  getLayerNames: () => string;
74
84
  /**
75
- * Select layer by name
85
+ * Select layer by name (recursive search including layer groups)
76
86
  */
77
- selectLayer: (name: string) => string;
87
+ selectLayerByName: (name: string) => string;
78
88
  /**
79
89
  * Scale active layer to fit document (maintain aspect ratio)
80
90
  */
@@ -160,6 +170,10 @@ export declare const ExtendScriptSnippets: {
160
170
  * Auto contrast adjustment
161
171
  */
162
172
  autoContrast: () => string;
173
+ /**
174
+ * Create a Curves adjustment layer (auto-tone S-curve or neutral identity curve).
175
+ */
176
+ adjustCurves: (preset?: CurvesPreset) => string;
163
177
  /**
164
178
  * Desaturate (convert to grayscale without changing color mode)
165
179
  */
@@ -176,6 +190,10 @@ export declare const ExtendScriptSnippets: {
176
190
  * Set text layer font
177
191
  */
178
192
  setTextFont: (fontName: string, fontSize?: number) => string;
193
+ /**
194
+ * List installed fonts (PostScript names required for TextItem.font).
195
+ */
196
+ listFonts: (query?: string, limit?: number) => string;
179
197
  /**
180
198
  * Set text color
181
199
  */
@@ -204,10 +222,22 @@ export declare const ExtendScriptSnippets: {
204
222
  * Invert selection
205
223
  */
206
224
  invertSelection: () => string;
225
+ /**
226
+ * Select the main subject on the active layer (DOM selectSubject, then autoCutout fallback).
227
+ */
228
+ selectSubject: (sampleAllLayers?: boolean) => string;
229
+ /**
230
+ * Content-aware fill on the current pixel selection.
231
+ */
232
+ contentAwareFill: () => string;
207
233
  /**
208
234
  * Create layer mask from selection
209
235
  */
210
236
  createLayerMask: () => string;
237
+ /**
238
+ * Apply a linear black-to-white gradient on the active layer's mask channel.
239
+ */
240
+ applyGradientMask: (direction?: GradientMaskDirection, startPct?: number, endPct?: number, angleDeg?: number) => string;
211
241
  /**
212
242
  * Delete layer mask
213
243
  */
@@ -260,6 +290,14 @@ export declare const ExtendScriptSnippets: {
260
290
  * Move layer down one position
261
291
  */
262
292
  moveLayerDown: () => string;
293
+ /**
294
+ * Lightweight session state snapshot (read-only).
295
+ */
296
+ getState: () => string;
297
+ /**
298
+ * Export a JPEG preview to the system temp folder. Returns filesystem path for Node to read.
299
+ */
300
+ exportPreview: (maxDimension?: number, jpegQuality?: number) => string;
263
301
  };
264
302
  /**
265
303
  * Generate ExtendScript code with error handling
@@ -1 +1 @@
1
- {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;;IASH;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAW3C;;OAEG;;IAYH;;OAEG;4BACqB,MAAM;IAwB9B;;OAEG;2BACoB,MAAM;IAwC7B;;OAEG;0BACmB,MAAM;IAe5B;;OAEG;sBACe,MAAM;IAYxB;;OAEG;uBACgB,MAAM;IAazB;;OAEG;sBACe,MAAM;IAYxB;;OAEG;;IAUH;;OAEG;sBACe,MAAM;IAkBxB;;OAEG;;IAaH;;;;;;;OAOG;qBACc,MAAM,SAAS,MAAM,QAAQ,MAAM;IAyCpD;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAiB3C;;OAEG;;IA4BH;;OAEG;wBACiB,MAAM;IAc1B;;OAEG;;IA8DH;;OAEG;+BACwB,MAAM;IAoBjC;;OAEG;wBACiB,MAAM,UAAU,MAAM;IAoB1C;;OAEG;2BACoB,MAAM;IAmB7B;;OAEG;+BACwB,MAAM;IAqBjC;;OAEG;mCAC4B,MAAM;IAqBrC;;OAEG;kCAC2B,OAAO;IAerC;;OAEG;6BACsB,OAAO;IAehC;;OAEG;2BACoB,MAAM;IAgB7B;;OAEG;+BACwB,MAAM;IAgBjC;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;gCACyB,MAAM;IA+BlC;;OAEG;+BACwB,MAAM,UAAU,MAAM,aAAa,MAAM;IAyBpE;;OAEG;4BACqB,MAAM,gBAAgB,MAAM,iBAAiB,OAAO;IA0B5E;;OAEG;6BACsB,MAAM,UAAU,MAAM;IAwB/C;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAoB/D;;;;;;;OAOG;+BACwB,MAAM,cAAc,MAAM,aAAa,MAAM;IAsCxE;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;yBACkB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAgBvE;;OAEG;4BACqB,MAAM,aAAa,MAAM;IAmBjD;;OAEG;wBACiB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAqBvD;;OAEG;kCAC2B,MAAM;IAiBpC;;OAEG;iCAC0B,MAAM;IAiBnC;;OAEG;4BACqB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAe1E;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAqBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;6BACsB,MAAM,iBAAiB,MAAM;IAStD;;OAEG;gCACyB,MAAM;IAIlC;;OAEG;;IAwBH;;OAEG;;IAwCH;;OAEG;;IAwCH;;OAEG;;IAoCH;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAiD/D;;OAEG;;IAuBH;;OAEG;;IAuBH;;OAEG;;IAuCH;;OAEG;;CAsCJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUzD"}
1
+ {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqGH,mGAAmG;AACnG,eAAO,MAAM,4BAA4B,8rDAsCxC,CAAC;AAOF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wlHA6FlC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;;IASH;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAW3C;;OAEG;;IAYH;;OAEG;4BACqB,MAAM,wDAA8C,MAAM;IAiClF;;OAEG;2BACoB,MAAM;IA6C7B;;OAEG;0BACmB,MAAM;IAe5B;;OAEG;sBACe,MAAM;IAYxB;;OAEG;uBACgB,MAAM;IAazB;;OAEG;sBACe,MAAM;IAYxB;;OAEG;;IAUH;;OAEG;sBACe,MAAM;IAkBxB;;OAEG;;IAaH;;;;;;;OAOG;qBACc,MAAM,SAAS,MAAM,QAAQ,MAAM;IAyCpD;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAiB3C;;OAEG;;IAwCH;;OAEG;8BACuB,MAAM;IA6ChC;;OAEG;;IA8DH;;OAEG;+BACwB,MAAM;IAoBjC;;OAEG;wBACiB,MAAM,UAAU,MAAM;IAoB1C;;OAEG;2BACoB,MAAM;IAmB7B;;OAEG;+BACwB,MAAM;IAqBjC;;OAEG;mCAC4B,MAAM;IAqBrC;;OAEG;kCAC2B,OAAO;IAerC;;OAEG;6BACsB,OAAO;IAehC;;OAEG;2BACoB,MAAM;IAgB7B;;OAEG;+BACwB,MAAM;IAgBjC;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;gCACyB,MAAM;IA+BlC;;OAEG;+BACwB,MAAM,UAAU,MAAM,aAAa,MAAM;IAyBpE;;OAEG;4BACqB,MAAM,gBAAgB,MAAM,iBAAiB,OAAO;IA0B5E;;OAEG;6BACsB,MAAM,UAAU,MAAM;IAwB/C;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAoB/D;;;;;;;OAOG;+BACwB,MAAM,cAAc,MAAM,aAAa,MAAM;IA2DxE;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;4BACoB,YAAY;IAmBnC;;OAEG;;IA+CH;;OAEG;;IAmBH;;OAEG;yBACkB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAgBvE;;OAEG;4BACqB,MAAM,aAAa,MAAM;IAwBjD;;OAEG;wBACiB,MAAM;IAuC1B;;OAEG;wBACiB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAqBvD;;OAEG;kCAC2B,MAAM;IAiBpC;;OAEG;iCAC0B,MAAM;IAiBnC;;OAEG;4BACqB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAe1E;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IA0CH;;OAEG;;IA2BH;;OAEG;;IA6BH;;OAEG;oCAEU,qBAAqB,iDAGrB,MAAM;IA0DnB;;OAEG;;IAwBH;;OAEG;;IA4BH;;OAEG;6BACsB,MAAM,iBAAiB,MAAM;IAStD;;OAEG;gCACyB,MAAM;IAIlC;;OAEG;;IAgDH;;OAEG;;IAwCH;;OAEG;;IAwCH;;OAEG;;IAoCH;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAiD/D;;OAEG;;IAuBH;;OAEG;;IA4BH;;OAEG;;IAuCH;;OAEG;;IAuCH;;OAEG;;IAMH;;OAEG;;CA2CJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUzD"}