@alisaitteke/photoshop-mcp 0.1.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 (115) hide show
  1. package/.prettierrc +9 -0
  2. package/README.md +1300 -0
  3. package/dist/api/batch-play.d.ts +62 -0
  4. package/dist/api/batch-play.d.ts.map +1 -0
  5. package/dist/api/batch-play.js +131 -0
  6. package/dist/api/batch-play.js.map +1 -0
  7. package/dist/api/extendscript.d.ts +258 -0
  8. package/dist/api/extendscript.d.ts.map +1 -0
  9. package/dist/api/extendscript.js +1437 -0
  10. package/dist/api/extendscript.js.map +1 -0
  11. package/dist/api/photoshop-api.d.ts +20 -0
  12. package/dist/api/photoshop-api.d.ts.map +1 -0
  13. package/dist/api/photoshop-api.js +88 -0
  14. package/dist/api/photoshop-api.js.map +1 -0
  15. package/dist/core/server.d.ts +14 -0
  16. package/dist/core/server.d.ts.map +1 -0
  17. package/dist/core/server.js +191 -0
  18. package/dist/core/server.js.map +1 -0
  19. package/dist/core/session.d.ts +24 -0
  20. package/dist/core/session.d.ts.map +1 -0
  21. package/dist/core/session.js +83 -0
  22. package/dist/core/session.js.map +1 -0
  23. package/dist/core/tool-registry.d.ts +23 -0
  24. package/dist/core/tool-registry.d.ts.map +1 -0
  25. package/dist/core/tool-registry.js +55 -0
  26. package/dist/core/tool-registry.js.map +1 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +18 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/platform/connection.d.ts +20 -0
  32. package/dist/platform/connection.d.ts.map +1 -0
  33. package/dist/platform/connection.js +94 -0
  34. package/dist/platform/connection.js.map +1 -0
  35. package/dist/platform/detector.d.ts +19 -0
  36. package/dist/platform/detector.d.ts.map +1 -0
  37. package/dist/platform/detector.js +63 -0
  38. package/dist/platform/detector.js.map +1 -0
  39. package/dist/platform/macos-detector.d.ts +13 -0
  40. package/dist/platform/macos-detector.d.ts.map +1 -0
  41. package/dist/platform/macos-detector.js +145 -0
  42. package/dist/platform/macos-detector.js.map +1 -0
  43. package/dist/platform/macos-executor.d.ts +22 -0
  44. package/dist/platform/macos-executor.d.ts.map +1 -0
  45. package/dist/platform/macos-executor.js +161 -0
  46. package/dist/platform/macos-executor.js.map +1 -0
  47. package/dist/platform/script-executor.d.ts +23 -0
  48. package/dist/platform/script-executor.d.ts.map +1 -0
  49. package/dist/platform/script-executor.js +2 -0
  50. package/dist/platform/script-executor.js.map +1 -0
  51. package/dist/platform/windows-detector.d.ts +14 -0
  52. package/dist/platform/windows-detector.d.ts.map +1 -0
  53. package/dist/platform/windows-detector.js +173 -0
  54. package/dist/platform/windows-detector.js.map +1 -0
  55. package/dist/platform/windows-executor.d.ts +15 -0
  56. package/dist/platform/windows-executor.d.ts.map +1 -0
  57. package/dist/platform/windows-executor.js +148 -0
  58. package/dist/platform/windows-executor.js.map +1 -0
  59. package/dist/tools/action-tools.d.ts +4 -0
  60. package/dist/tools/action-tools.d.ts.map +1 -0
  61. package/dist/tools/action-tools.js +102 -0
  62. package/dist/tools/action-tools.js.map +1 -0
  63. package/dist/tools/adjustment-tools.d.ts +4 -0
  64. package/dist/tools/adjustment-tools.d.ts.map +1 -0
  65. package/dist/tools/adjustment-tools.js +274 -0
  66. package/dist/tools/adjustment-tools.js.map +1 -0
  67. package/dist/tools/document-tools.d.ts +4 -0
  68. package/dist/tools/document-tools.d.ts.map +1 -0
  69. package/dist/tools/document-tools.js +230 -0
  70. package/dist/tools/document-tools.js.map +1 -0
  71. package/dist/tools/filter-tools.d.ts +4 -0
  72. package/dist/tools/filter-tools.d.ts.map +1 -0
  73. package/dist/tools/filter-tools.js +230 -0
  74. package/dist/tools/filter-tools.js.map +1 -0
  75. package/dist/tools/history-tools.d.ts +4 -0
  76. package/dist/tools/history-tools.d.ts.map +1 -0
  77. package/dist/tools/history-tools.js +137 -0
  78. package/dist/tools/history-tools.js.map +1 -0
  79. package/dist/tools/image-placement-tools.d.ts +4 -0
  80. package/dist/tools/image-placement-tools.d.ts.map +1 -0
  81. package/dist/tools/image-placement-tools.js +109 -0
  82. package/dist/tools/image-placement-tools.js.map +1 -0
  83. package/dist/tools/image-tools.d.ts +4 -0
  84. package/dist/tools/image-tools.d.ts.map +1 -0
  85. package/dist/tools/image-tools.js +123 -0
  86. package/dist/tools/image-tools.js.map +1 -0
  87. package/dist/tools/layer-ordering-tools.d.ts +4 -0
  88. package/dist/tools/layer-ordering-tools.d.ts.map +1 -0
  89. package/dist/tools/layer-ordering-tools.js +210 -0
  90. package/dist/tools/layer-ordering-tools.js.map +1 -0
  91. package/dist/tools/layer-properties-tools.d.ts +4 -0
  92. package/dist/tools/layer-properties-tools.d.ts.map +1 -0
  93. package/dist/tools/layer-properties-tools.js +421 -0
  94. package/dist/tools/layer-properties-tools.js.map +1 -0
  95. package/dist/tools/layer-tools.d.ts +4 -0
  96. package/dist/tools/layer-tools.d.ts.map +1 -0
  97. package/dist/tools/layer-tools.js +251 -0
  98. package/dist/tools/layer-tools.js.map +1 -0
  99. package/dist/tools/layer-transform-tools.d.ts +4 -0
  100. package/dist/tools/layer-transform-tools.d.ts.map +1 -0
  101. package/dist/tools/layer-transform-tools.js +199 -0
  102. package/dist/tools/layer-transform-tools.js.map +1 -0
  103. package/dist/tools/selection-tools.d.ts +4 -0
  104. package/dist/tools/selection-tools.d.ts.map +1 -0
  105. package/dist/tools/selection-tools.js +295 -0
  106. package/dist/tools/selection-tools.js.map +1 -0
  107. package/dist/tools/text-tools.d.ts +4 -0
  108. package/dist/tools/text-tools.d.ts.map +1 -0
  109. package/dist/tools/text-tools.js +210 -0
  110. package/dist/tools/text-tools.js.map +1 -0
  111. package/dist/utils/logger.d.ts +17 -0
  112. package/dist/utils/logger.d.ts.map +1 -0
  113. package/dist/utils/logger.js +43 -0
  114. package/dist/utils/logger.js.map +1 -0
  115. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendscript.js","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,eAAe,GAAG;;;CAGvB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;;OAEG;IACH,UAAU,EAAE,GAAG,EAAE,CAAC;;;;;;GAMjB;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,qBAAqB,EAAE,EAAE,CAAC;;kBAEpF,KAAK;kBACL,MAAM;QAChB,UAAU;;QAEV,SAAS;;;GAGd;IAED;;OAEG;IACH,eAAe,EAAE,GAAG,EAAE,CAAC;MACnB,cAAc;;;;;;;;GAQjB;IAED;;OAEG;IACH,eAAe,EAAE,CAAC,IAAY,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC;MAChE,cAAc;;;;;;;;qCAQiB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;qCACzB,CAAC,KAAK,CAAC;gCACZ,QAAQ;;;;;eAKzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;uBACjB,CAAC,QAAQ,CAAC;kBACf,QAAQ;;;;GAIvB;IAED;;OAEG;IACH,UAAU,EAAE,CAAC,QAAgB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;MAC5C,eAAe;MACf,cAAc;;;;;;gCAMY,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;+CAEhB,QAAQ;;;;;;;;;2DASI,CAAC;2DACD,CAAC;;;;;;;;;mBASzC,QAAQ;uBACJ,CAAC,QAAQ,CAAC;;;;;;;;GAQ9B;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC;gCACH,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;+CAEhB,QAAQ;;;;;;;;;;GAUpD;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;;;;;+BAKA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;GAKvD;IAED;;OAEG;IACH,UAAU,EAAE,CAAC,IAAY,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC;;;;;+BAKd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;4BAE9B,OAAO;;;;GAIhC;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;;;;;+BAKA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;GAKvD;IAED;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;;;;;gBAKnB,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,8BAA8B;;GAE9E;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC;MACzB,cAAc;;;;;;;MAOd,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;;GAQ7D;IAED;;OAEG;IACH,WAAW,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUlB;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC;;;;;;sBAMrC,GAAG;wBACD,KAAK;uBACN,IAAI;;;GAGxB;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC;;;;;;kBAMhC,KAAK;kBACL,MAAM;;;;;;;;GAQrB;IAED;;OAEG;IACH,aAAa,EAAE,GAAG,EAAE,CAAC;MACjB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;GAwBjB;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;;;;;;oCAMG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;wCAKrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;GAC9D;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;MAC1C,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;UA2BV,YAAY;;;;;;;;;;;;;;;;;;;;cAoBR,YAAY;;;;;;;;;;;GAWvB;IAED;;OAEG;IACH,UAAU,EAAE,CAAC,YAAoB,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,CAAC;;;;;;;;;;;mBAW1C,YAAY,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB;mBACvE,YAAY,KAAK,YAAY;;;;iBAI/B,YAAY;;GAE1B;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE,CAAC;;;;;;;;;;;sBAW3B,MAAM,KAAK,MAAM;;;;gBAIvB,MAAM;gBACN,MAAM;;GAEnB;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;;;;mBAWjB,OAAO;;;;iBAIT,OAAO;;GAErB;IAED;;OAEG;IACH,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC;MAClC,cAAc;;;;;;;;sBAQE,OAAO;;;;;;;;;;GAU1B;IAED;;OAEG;IACH,iBAAiB,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC;MACtC,cAAc;;;;;;;;kCAQc,SAAS;;;;;;;;;;GAUxC;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC;;;;;;;sBAOtB,OAAO;;;;;;GAM1B;IAED;;OAEG;IACH,cAAc,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC;;;;;;;wBAOf,MAAM;;;;;;GAM3B;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;oBAQhB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;;GAM7C;IAED;;OAEG;IACH,cAAc,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC;;;;;;;;MAQlC,OAAO,CAAC,CAAC,CAAC,sBAAsB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;GAMxE;IAED;;OAEG;IACH,kBAAkB,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUzB;IAED;;OAEG;IACH,YAAY,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUnB;IAED;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC;MACnC,cAAc;;;;;;;;;;;;;;;;;;8BAkBU,MAAM;;;;;gBAKpB,MAAM;;;;;GAKnB;IAED;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;6BAe9C,MAAM,KAAK,MAAM,KAAK,SAAS;;;;gBAI5C,MAAM;gBACN,MAAM;mBACH,SAAS;;GAEzB;IAED;;OAEG;IACH,aAAa,EAAE,CAAC,MAAc,EAAE,YAAoB,EAAE,aAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;uCAe5C,YAAY;0BACzB,MAAM,eAAe,aAAa;;;;gBAI5C,MAAM;uBACC,YAAY;uBACZ,aAAa;;GAEjC;IAED;;OAEG;IACH,eAAe,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;4BAe1B,KAAK,KAAK,MAAM;;;;eAI7B,KAAK;gBACJ,MAAM;;GAEnB;IAED;;OAEG;IACH,wBAAwB,EAAE,CAAC,UAAkB,EAAE,QAAgB,EAAE,EAAE,CAAC;;;;;;;;;;;qCAWjC,UAAU,KAAK,QAAQ;;;;oBAIxC,UAAU;kBACZ,QAAQ;;GAEvB;IAED;;OAEG;IACH,mBAAmB,EAAE,CAAC,GAAW,EAAE,UAAkB,EAAE,SAAiB,EAAE,EAAE,CAAC;;;;;;gCAM/C,GAAG,OAAO,UAAU,OAAO,SAAS;;;;aAIvD,GAAG;oBACI,UAAU;mBACX,SAAS;;GAEzB;IAED;;OAEG;IACH,UAAU,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;GAgBjB;IAED;;OAEG;IACH,YAAY,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;GAgBnB;IAED;;OAEG;IACH,UAAU,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;GAgBjB;IAED;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;GAgBb;IAED;;OAEG;IACH,YAAY,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC;;;;;;oBAM1D,IAAI,KAAK,GAAG,KAAK,KAAK,KAAK,MAAM;;;;;;;;GAQlD;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,QAAgB,EAAE,QAAiB,EAAE,EAAE,CAAC;;;;;;;;;;6BAU3B,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;MACpD,QAAQ,CAAC,CAAC,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;GAMvD;IAED;;OAEG;IACH,YAAY,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC;;;;;;;;;;;sBAWxC,GAAG;wBACD,KAAK;uBACN,IAAI;;;;wBAIH,GAAG,aAAa,KAAK,aAAa,IAAI;;GAE3D;IAED;;OAEG;IACH,gBAAgB,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC;;;;;;;;;;mDAUQ,SAAS;;;oBAGxC,SAAS;;GAE1B;IAED;;OAEG;IACH,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;;;iCAUT,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;GAK1D;IAED;;OAEG;IACH,eAAe,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC;;;;;;qBAM5D,IAAI,KAAK,GAAG,OAAO,KAAK,KAAK,GAAG,OAAO,KAAK,KAAK,MAAM,OAAO,IAAI,KAAK,MAAM;;;;;iBAKjF,IAAI,KAAK,GAAG,KAAK,KAAK,KAAK,MAAM;;GAE/C;IAED;;OAEG;IACH,SAAS,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUhB;IAED;;OAEG;IACH,QAAQ,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUf;IAED;;OAEG;IACH,eAAe,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;GAUtB;IAED;;OAEG;IACH,eAAe,EAAE,GAAG,EAAE,CAAC;MACnB,eAAe;;;;;;;;;;;;;;;;;GAiBlB;IAED;;OAEG;IACH,eAAe,EAAE,GAAG,EAAE,CAAC;MACnB,eAAe;;;;;;;;;;;;;;;GAelB;IAED;;OAEG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC;MAClB,eAAe;;;;;;;;;;;;;;;GAelB;IAED;;OAEG;IACH,UAAU,EAAE,CAAC,UAAkB,EAAE,aAAqB,EAAE,EAAE,CAAC;oBACzC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;iBAG3E,UAAU;cACb,aAAa;;GAExB;IAED;;OAEG;IACH,mBAAmB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;MACnC,IAAI;GACP;IAED;;OAEG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;GAqBrB;IAED;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;MACjB,cAAc;;;;;;;;;;;;;;;;;;;;;mDAqB+B,KAAK;;;;;;;;;;;;;;;GAerD;IAED;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;MACjB,cAAc;;;;;;;;;;;;;;;;;;;;;8EAqB0D,KAAK;;;;;;;;;;;;;;;GAehF;IAED;;OAEG;IACH,gBAAgB,EAAE,GAAG,EAAE,CAAC;MACpB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCjB;IAED;;OAEG;IACH,mBAAmB,EAAE,CAAC,eAAuB,EAAE,QAAgB,EAAE,EAAE,CAAC;MAChE,cAAc;;;;;;;;;;;oCAWgB,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;;;iDAOvB,eAAe;;;;;WAKrD,QAAQ;;kBAED,QAAQ;;kBAER,QAAQ;;kBAER,QAAQ;;;;;;;;;;;;mBAYP,QAAQ;;;;;GAKxB;IAED;;OAEG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC;MAClB,cAAc;;;;;;;;;;;;;;;;;;;GAmBjB;IAED;;OAEG;IACH,iBAAiB,EAAE,GAAG,EAAE,CAAC;MACrB,cAAc;;;;;;;;;;;;;;;;;;;GAmBjB;IAED;;OAEG;IACH,WAAW,EAAE,GAAG,EAAE,CAAC;MACf,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCjB;IAED;;OAEG;IACH,aAAa,EAAE,GAAG,EAAE,CAAC;MACjB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCjB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO;;;MAGH,IAAI;;;;;GAKP,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { PhotoshopConnection } from '../platform/connection.js';
2
+ export type APIType = 'UXP' | 'ExtendScript';
3
+ export interface PhotoshopAPI {
4
+ /**
5
+ * Execute a script using the appropriate API
6
+ */
7
+ executeScript(script: string): Promise<unknown>;
8
+ /**
9
+ * Get the API type being used
10
+ */
11
+ getAPIType(): APIType;
12
+ }
13
+ export declare class PhotoshopAPIFactory {
14
+ private logger;
15
+ private connection;
16
+ constructor(connection: PhotoshopConnection);
17
+ createAPI(): Promise<PhotoshopAPI>;
18
+ private determineAPIType;
19
+ }
20
+ //# sourceMappingURL=photoshop-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photoshop-api.d.ts","sourceRoot":"","sources":["../../src/api/photoshop-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;CACvB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAsB;gBAE5B,UAAU,EAAE,mBAAmB;IAKrC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBxC,OAAO,CAAC,gBAAgB;CAQzB"}
@@ -0,0 +1,88 @@
1
+ import { Logger } from '../utils/logger.js';
2
+ export class PhotoshopAPIFactory {
3
+ logger;
4
+ connection;
5
+ constructor(connection) {
6
+ this.logger = new Logger('PhotoshopAPIFactory');
7
+ this.connection = connection;
8
+ }
9
+ async createAPI() {
10
+ const info = this.connection.getPhotoshopInfo();
11
+ if (!info) {
12
+ throw new Error('Photoshop info not available. Please detect Photoshop first.');
13
+ }
14
+ // Determine which API to use based on version
15
+ const apiType = this.determineAPIType(info.version);
16
+ this.logger.info(`Creating ${apiType} API for Photoshop version ${info.version}`);
17
+ if (apiType === 'UXP') {
18
+ return new UXPPhotoshopAPI(this.connection);
19
+ }
20
+ else {
21
+ return new ExtendScriptPhotoshopAPI(this.connection);
22
+ }
23
+ }
24
+ determineAPIType(version) {
25
+ // IMPORTANT: When running scripts via AppleScript/COM, we can only use ExtendScript
26
+ // UXP is only available for plugins, not for external script execution
27
+ // Therefore, we always use ExtendScript for external automation
28
+ this.logger.debug(`Using ExtendScript for version ${version} (UXP not available for external scripting)`);
29
+ return 'ExtendScript';
30
+ }
31
+ }
32
+ /**
33
+ * UXP-based API for modern Photoshop (23.5+)
34
+ * NOTE: UXP is not available for external script execution via AppleScript/COM
35
+ * This class is kept for future plugin-based implementation
36
+ */
37
+ class UXPPhotoshopAPI {
38
+ connection;
39
+ constructor(connection) {
40
+ this.connection = connection;
41
+ }
42
+ async executeScript(script) {
43
+ // UXP cannot be executed externally via AppleScript/COM
44
+ // Fall back to ExtendScript
45
+ return await this.connection.executeScript(script);
46
+ }
47
+ getAPIType() {
48
+ return 'UXP';
49
+ }
50
+ }
51
+ /**
52
+ * ExtendScript-based API for legacy Photoshop (< 23.5)
53
+ */
54
+ class ExtendScriptPhotoshopAPI {
55
+ connection;
56
+ constructor(connection) {
57
+ this.connection = connection;
58
+ }
59
+ async executeScript(script) {
60
+ // Wrap script in error handling
61
+ const wrappedScript = this.wrapInErrorHandling(script);
62
+ return await this.connection.executeScript(wrappedScript);
63
+ }
64
+ wrapInErrorHandling(script) {
65
+ // ExtendScript doesn't have JSON object, we return plain result
66
+ // The result will be converted to string by Photoshop
67
+ return `
68
+ (function() {
69
+ try {
70
+ var result = (function() {
71
+ ${script}
72
+ })();
73
+ // Convert result to string for transport
74
+ if (typeof result === 'object' && result !== null) {
75
+ return result.toSource ? result.toSource() : String(result);
76
+ }
77
+ return String(result);
78
+ } catch (error) {
79
+ return 'ERROR: ' + (error.message || String(error));
80
+ }
81
+ })();
82
+ `.trim();
83
+ }
84
+ getAPIType() {
85
+ return 'ExtendScript';
86
+ }
87
+ }
88
+ //# sourceMappingURL=photoshop-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photoshop-api.js","sourceRoot":"","sources":["../../src/api/photoshop-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiB5C,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAS;IACf,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,8CAA8C;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,8BAA8B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,oFAAoF;QACpF,uEAAuE;QACvE,gEAAgE;QAEhE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,6CAA6C,CAAC,CAAC;QAC1G,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,eAAe;IACX,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,wDAAwD;QACxD,4BAA4B;QAC5B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,wBAAwB;IACpB,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,gEAAgE;QAChE,sDAAsD;QACtD,OAAO;;;;QAIH,MAAM;;;;;;;;;;;KAWT,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACR,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ export declare class PhotoshopMCPServer {
2
+ private server;
3
+ private logger;
4
+ private toolRegistry;
5
+ private session;
6
+ constructor();
7
+ private registerTools;
8
+ private setupHandlers;
9
+ private pingPhotoshop;
10
+ private getVersion;
11
+ start(): Promise<void>;
12
+ stop(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAuBA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAU;;IAuBzB,OAAO,CAAC,aAAa;IAiGrB,OAAO,CAAC,aAAa;YAoCP,aAAa;YAeb,UAAU;IAalB,KAAK;IAWL,IAAI;CAIX"}
@@ -0,0 +1,191 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
+ import { Logger } from '../utils/logger.js';
5
+ import { ToolRegistry } from './tool-registry.js';
6
+ import { Session } from './session.js';
7
+ import { createDocumentTools } from '../tools/document-tools.js';
8
+ import { createLayerTools } from '../tools/layer-tools.js';
9
+ import { createImageTools } from '../tools/image-tools.js';
10
+ import { createImagePlacementTools } from '../tools/image-placement-tools.js';
11
+ import { createLayerTransformTools } from '../tools/layer-transform-tools.js';
12
+ import { createLayerPropertiesTools } from '../tools/layer-properties-tools.js';
13
+ import { createFilterTools } from '../tools/filter-tools.js';
14
+ import { createAdjustmentTools } from '../tools/adjustment-tools.js';
15
+ import { createTextTools } from '../tools/text-tools.js';
16
+ import { createSelectionTools } from '../tools/selection-tools.js';
17
+ import { createActionTools } from '../tools/action-tools.js';
18
+ import { createHistoryTools } from '../tools/history-tools.js';
19
+ import { createLayerOrderingTools } from '../tools/layer-ordering-tools.js';
20
+ export class PhotoshopMCPServer {
21
+ server;
22
+ logger;
23
+ toolRegistry;
24
+ session;
25
+ constructor() {
26
+ this.logger = new Logger('PhotoshopMCPServer');
27
+ this.toolRegistry = new ToolRegistry();
28
+ this.session = new Session();
29
+ this.server = new Server({
30
+ name: 'photoshop-mcp',
31
+ version: '0.1.0',
32
+ }, {
33
+ capabilities: {
34
+ tools: {},
35
+ },
36
+ });
37
+ this.registerTools();
38
+ this.setupHandlers();
39
+ }
40
+ registerTools() {
41
+ // Register basic tools
42
+ this.toolRegistry.register('photoshop_ping', {
43
+ tool: {
44
+ name: 'photoshop_ping',
45
+ description: 'Test connection to Photoshop',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {},
49
+ },
50
+ },
51
+ handler: async () => await this.pingPhotoshop(),
52
+ });
53
+ this.toolRegistry.register('photoshop_get_version', {
54
+ tool: {
55
+ name: 'photoshop_get_version',
56
+ description: 'Get Photoshop version information',
57
+ inputSchema: {
58
+ type: 'object',
59
+ properties: {},
60
+ },
61
+ },
62
+ handler: async () => await this.getVersion(),
63
+ });
64
+ // Register feature tools
65
+ const connection = this.session.getConnection();
66
+ const documentTools = createDocumentTools(connection);
67
+ documentTools.forEach((tool) => {
68
+ this.toolRegistry.register(tool.tool.name, tool);
69
+ });
70
+ const layerTools = createLayerTools(connection);
71
+ layerTools.forEach((tool) => {
72
+ this.toolRegistry.register(tool.tool.name, tool);
73
+ });
74
+ const imageTools = createImageTools(connection);
75
+ imageTools.forEach((tool) => {
76
+ this.toolRegistry.register(tool.tool.name, tool);
77
+ });
78
+ const imagePlacementTools = createImagePlacementTools(connection);
79
+ imagePlacementTools.forEach((tool) => {
80
+ this.toolRegistry.register(tool.tool.name, tool);
81
+ });
82
+ const layerTransformTools = createLayerTransformTools(connection);
83
+ layerTransformTools.forEach((tool) => {
84
+ this.toolRegistry.register(tool.tool.name, tool);
85
+ });
86
+ const layerPropertiesTools = createLayerPropertiesTools(connection);
87
+ layerPropertiesTools.forEach((tool) => {
88
+ this.toolRegistry.register(tool.tool.name, tool);
89
+ });
90
+ const filterTools = createFilterTools(connection);
91
+ filterTools.forEach((tool) => {
92
+ this.toolRegistry.register(tool.tool.name, tool);
93
+ });
94
+ const adjustmentTools = createAdjustmentTools(connection);
95
+ adjustmentTools.forEach((tool) => {
96
+ this.toolRegistry.register(tool.tool.name, tool);
97
+ });
98
+ const textTools = createTextTools(connection);
99
+ textTools.forEach((tool) => {
100
+ this.toolRegistry.register(tool.tool.name, tool);
101
+ });
102
+ const selectionTools = createSelectionTools(connection);
103
+ selectionTools.forEach((tool) => {
104
+ this.toolRegistry.register(tool.tool.name, tool);
105
+ });
106
+ const actionTools = createActionTools(connection);
107
+ actionTools.forEach((tool) => {
108
+ this.toolRegistry.register(tool.tool.name, tool);
109
+ });
110
+ const historyTools = createHistoryTools(connection);
111
+ historyTools.forEach((tool) => {
112
+ this.toolRegistry.register(tool.tool.name, tool);
113
+ });
114
+ const layerOrderingTools = createLayerOrderingTools(connection);
115
+ layerOrderingTools.forEach((tool) => {
116
+ this.toolRegistry.register(tool.tool.name, tool);
117
+ });
118
+ this.logger.info(`Registered ${this.toolRegistry.count()} tools`);
119
+ }
120
+ setupHandlers() {
121
+ // List available tools
122
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
123
+ this.logger.debug('Listing available tools');
124
+ return {
125
+ tools: this.toolRegistry.list(),
126
+ };
127
+ });
128
+ // Handle tool calls
129
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
130
+ this.logger.debug(`Tool called: ${request.params.name}`);
131
+ try {
132
+ const args = request.params.arguments || {};
133
+ const result = await this.toolRegistry.execute(request.params.name, args);
134
+ // Update session activity
135
+ this.session.updateActivity();
136
+ return result;
137
+ }
138
+ catch (error) {
139
+ this.logger.error(`Tool execution failed: ${request.params.name}`, error);
140
+ return {
141
+ content: [
142
+ {
143
+ type: 'text',
144
+ text: `Error: ${error instanceof Error ? error.message : String(error)}`,
145
+ },
146
+ ],
147
+ isError: true,
148
+ };
149
+ }
150
+ });
151
+ }
152
+ async pingPhotoshop() {
153
+ const connection = this.session.getConnection();
154
+ const isConnected = await connection.ping();
155
+ return {
156
+ content: [
157
+ {
158
+ type: 'text',
159
+ text: isConnected
160
+ ? 'Successfully connected to Photoshop'
161
+ : 'Failed to connect to Photoshop',
162
+ },
163
+ ],
164
+ };
165
+ }
166
+ async getVersion() {
167
+ const connection = this.session.getConnection();
168
+ const version = await connection.getVersion();
169
+ return {
170
+ content: [
171
+ {
172
+ type: 'text',
173
+ text: `Photoshop version: ${version}`,
174
+ },
175
+ ],
176
+ };
177
+ }
178
+ async start() {
179
+ // Initialize session
180
+ await this.session.initialize();
181
+ // Connect server transport
182
+ const transport = new StdioServerTransport();
183
+ await this.server.connect(transport);
184
+ this.logger.info('MCP Server connected via stdio');
185
+ }
186
+ async stop() {
187
+ await this.session.disconnect();
188
+ this.logger.info('MCP Server stopped');
189
+ }
190
+ }
191
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { PhotoshopConnection } from '../platform/connection.js';
2
+ export interface SessionConfig {
3
+ autoConnect?: boolean;
4
+ reconnectAttempts?: number;
5
+ reconnectDelay?: number;
6
+ }
7
+ export declare class Session {
8
+ private logger;
9
+ private connection;
10
+ private config;
11
+ private isConnected;
12
+ private lastActivity;
13
+ constructor(config?: SessionConfig);
14
+ initialize(): Promise<void>;
15
+ connect(): Promise<boolean>;
16
+ reconnect(): Promise<boolean>;
17
+ disconnect(): Promise<void>;
18
+ getConnection(): PhotoshopConnection;
19
+ getConnectionStatus(): boolean;
20
+ getLastActivity(): Date;
21
+ updateActivity(): void;
22
+ private delay;
23
+ }
24
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAO;gBAEf,MAAM,GAAE,aAAkB;IAYhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB3B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAoB7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,aAAa,IAAI,mBAAmB;IAIpC,mBAAmB,IAAI,OAAO;IAI9B,eAAe,IAAI,IAAI;IAIvB,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,KAAK;CAGd"}
@@ -0,0 +1,83 @@
1
+ import { Logger } from '../utils/logger.js';
2
+ import { PhotoshopConnection } from '../platform/connection.js';
3
+ export class Session {
4
+ logger;
5
+ connection;
6
+ config;
7
+ isConnected = false;
8
+ lastActivity;
9
+ constructor(config = {}) {
10
+ this.logger = new Logger('Session');
11
+ this.connection = new PhotoshopConnection();
12
+ this.config = {
13
+ autoConnect: true,
14
+ reconnectAttempts: 3,
15
+ reconnectDelay: 1000,
16
+ ...config,
17
+ };
18
+ this.lastActivity = new Date();
19
+ }
20
+ async initialize() {
21
+ this.logger.info('Initializing session...');
22
+ if (this.config.autoConnect) {
23
+ await this.connect();
24
+ }
25
+ }
26
+ async connect() {
27
+ try {
28
+ this.logger.info('Connecting to Photoshop...');
29
+ const connected = await this.connection.ping();
30
+ if (connected) {
31
+ this.isConnected = true;
32
+ this.updateActivity();
33
+ this.logger.info('Successfully connected to Photoshop');
34
+ return true;
35
+ }
36
+ else {
37
+ this.isConnected = false;
38
+ this.logger.warn('Failed to connect to Photoshop');
39
+ return false;
40
+ }
41
+ }
42
+ catch (error) {
43
+ this.logger.error('Connection error:', error);
44
+ this.isConnected = false;
45
+ return false;
46
+ }
47
+ }
48
+ async reconnect() {
49
+ this.logger.info('Attempting to reconnect...');
50
+ for (let attempt = 1; attempt <= (this.config.reconnectAttempts || 3); attempt++) {
51
+ this.logger.debug(`Reconnect attempt ${attempt}/${this.config.reconnectAttempts}`);
52
+ const connected = await this.connect();
53
+ if (connected) {
54
+ return true;
55
+ }
56
+ if (attempt < (this.config.reconnectAttempts || 3)) {
57
+ await this.delay(this.config.reconnectDelay || 1000);
58
+ }
59
+ }
60
+ this.logger.error('Failed to reconnect after all attempts');
61
+ return false;
62
+ }
63
+ async disconnect() {
64
+ this.logger.info('Disconnecting session...');
65
+ this.isConnected = false;
66
+ }
67
+ getConnection() {
68
+ return this.connection;
69
+ }
70
+ getConnectionStatus() {
71
+ return this.isConnected;
72
+ }
73
+ getLastActivity() {
74
+ return this.lastActivity;
75
+ }
76
+ updateActivity() {
77
+ this.lastActivity = new Date();
78
+ }
79
+ delay(ms) {
80
+ return new Promise((resolve) => setTimeout(resolve, ms));
81
+ }
82
+ }
83
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
2
+ export interface ToolHandler {
3
+ (args: Record<string, unknown>): Promise<CallToolResult>;
4
+ }
5
+ export type ToolResult = CallToolResult;
6
+ export interface ToolDefinition {
7
+ tool: Tool;
8
+ handler: ToolHandler;
9
+ }
10
+ export declare class ToolRegistry {
11
+ private logger;
12
+ private tools;
13
+ constructor();
14
+ register(name: string, definition: ToolDefinition): void;
15
+ unregister(name: string): boolean;
16
+ has(name: string): boolean;
17
+ get(name: string): ToolDefinition | undefined;
18
+ list(): Tool[];
19
+ execute(name: string, args: Record<string, unknown>): Promise<ToolResult>;
20
+ clear(): void;
21
+ count(): number;
22
+ }
23
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/core/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAG1E,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC1D;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAA8B;;IAO3C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IASxD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C,IAAI,IAAI,IAAI,EAAE;IAIR,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB/E,KAAK,IAAI,IAAI;IAKb,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,55 @@
1
+ import { Logger } from '../utils/logger.js';
2
+ export class ToolRegistry {
3
+ logger;
4
+ tools;
5
+ constructor() {
6
+ this.logger = new Logger('ToolRegistry');
7
+ this.tools = new Map();
8
+ }
9
+ register(name, definition) {
10
+ if (this.tools.has(name)) {
11
+ this.logger.warn(`Tool '${name}' already registered, overwriting`);
12
+ }
13
+ this.tools.set(name, definition);
14
+ this.logger.debug(`Registered tool: ${name}`);
15
+ }
16
+ unregister(name) {
17
+ const result = this.tools.delete(name);
18
+ if (result) {
19
+ this.logger.debug(`Unregistered tool: ${name}`);
20
+ }
21
+ return result;
22
+ }
23
+ has(name) {
24
+ return this.tools.has(name);
25
+ }
26
+ get(name) {
27
+ return this.tools.get(name);
28
+ }
29
+ list() {
30
+ return Array.from(this.tools.values()).map((def) => def.tool);
31
+ }
32
+ async execute(name, args) {
33
+ const definition = this.tools.get(name);
34
+ if (!definition) {
35
+ throw new Error(`Tool not found: ${name}`);
36
+ }
37
+ try {
38
+ this.logger.debug(`Executing tool: ${name}`);
39
+ const result = await definition.handler(args);
40
+ return result;
41
+ }
42
+ catch (error) {
43
+ this.logger.error(`Tool execution failed: ${name}`, error);
44
+ throw error;
45
+ }
46
+ }
47
+ clear() {
48
+ this.tools.clear();
49
+ this.logger.debug('All tools cleared');
50
+ }
51
+ count() {
52
+ return this.tools.size;
53
+ }
54
+ }
55
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/core/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,KAAK,CAA8B;IAE3C;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,UAA0B;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,mCAAmC,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAA6B;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import { PhotoshopMCPServer } from './core/server.js';
3
+ import { Logger } from './utils/logger.js';
4
+ const logger = new Logger('Main');
5
+ async function main() {
6
+ try {
7
+ logger.info('Starting Photoshop MCP Server...');
8
+ const server = new PhotoshopMCPServer();
9
+ await server.start();
10
+ logger.info('Photoshop MCP Server is running');
11
+ }
12
+ catch (error) {
13
+ logger.error('Failed to start server:', error);
14
+ process.exit(1);
15
+ }
16
+ }
17
+ main();
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAElC,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ export interface PhotoshopInfo {
2
+ version: string;
3
+ path: string;
4
+ isRunning: boolean;
5
+ appName?: string;
6
+ }
7
+ export declare class PhotoshopConnection {
8
+ private logger;
9
+ private detector;
10
+ private executor;
11
+ private photoshopInfo;
12
+ private macosExecutor?;
13
+ constructor();
14
+ ping(): Promise<boolean>;
15
+ getVersion(): Promise<string>;
16
+ executeScript(script: string, timeout?: number): Promise<unknown>;
17
+ getPhotoshopInfo(): PhotoshopInfo | null;
18
+ ensurePhotoshopRunning(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/platform/connection.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAAC,CAAgB;;IAkBhC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAa7B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BvE,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIlC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;CAW9C"}