@alisaitteke/photoshop-mcp 1.7.34 → 1.7.36
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.
- package/dist/api/photoshop-api.d.ts +9 -0
- package/dist/api/photoshop-api.d.ts.map +1 -1
- package/dist/api/photoshop-api.js +61 -17
- package/dist/api/photoshop-api.js.map +1 -1
- package/dist/core/ping-engine.d.ts.map +1 -1
- package/dist/core/ping-engine.js +8 -5
- package/dist/core/ping-engine.js.map +1 -1
- package/dist/errors/envelope.d.ts +1 -1
- package/dist/errors/envelope.d.ts.map +1 -1
- package/dist/errors/envelope.js +82 -11
- package/dist/errors/envelope.js.map +1 -1
- package/dist/feedback/nudge.d.ts +4 -0
- package/dist/feedback/nudge.d.ts.map +1 -1
- package/dist/feedback/nudge.js +11 -0
- package/dist/feedback/nudge.js.map +1 -1
- package/dist/platform/capabilities.d.ts +6 -1
- package/dist/platform/capabilities.d.ts.map +1 -1
- package/dist/platform/capabilities.js +6 -1
- package/dist/platform/capabilities.js.map +1 -1
- package/dist/platform/connection.d.ts +4 -5
- package/dist/platform/connection.d.ts.map +1 -1
- package/dist/platform/connection.js +10 -9
- package/dist/platform/connection.js.map +1 -1
- package/dist/platform/macos-app.d.ts +41 -0
- package/dist/platform/macos-app.d.ts.map +1 -0
- package/dist/platform/macos-app.js +71 -0
- package/dist/platform/macos-app.js.map +1 -0
- package/dist/platform/macos-detector.d.ts.map +1 -1
- package/dist/platform/macos-detector.js +6 -13
- package/dist/platform/macos-detector.js.map +1 -1
- package/dist/platform/macos-executor.d.ts +5 -2
- package/dist/platform/macos-executor.d.ts.map +1 -1
- package/dist/platform/macos-executor.js +17 -18
- package/dist/platform/macos-executor.js.map +1 -1
- package/dist/platform/uxp-bridge-client.d.ts +11 -0
- package/dist/platform/uxp-bridge-client.d.ts.map +1 -1
- package/dist/platform/uxp-bridge-client.js +12 -1
- package/dist/platform/uxp-bridge-client.js.map +1 -1
- package/dist/platform/uxp-bridge-server.d.ts +13 -0
- package/dist/platform/uxp-bridge-server.d.ts.map +1 -1
- package/dist/platform/uxp-bridge-server.js +60 -1
- package/dist/platform/uxp-bridge-server.js.map +1 -1
- package/dist/tools/neural-tools.d.ts.map +1 -1
- package/dist/tools/neural-tools.js +2 -2
- package/dist/tools/neural-tools.js.map +1 -1
- package/dist/tools/session-tools.js +1 -1
- package/dist/tools/session-tools.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +19 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +4 -2
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { PhotoshopConnection } from '../platform/connection.js';
|
|
2
2
|
export type APIType = 'UXP' | 'ExtendScript';
|
|
3
|
+
/**
|
|
4
|
+
* Force the execution path regardless of detection.
|
|
5
|
+
* - `uxp`: route through the UXP bridge plugin (fails fast with a clear
|
|
6
|
+
* error until the plugin supports script execution — see UXPPhotoshopAPI).
|
|
7
|
+
* - `extendscript`: always use the AppleScript/COM path.
|
|
8
|
+
* - `auto` (default, or any other value): use ExtendScript for script
|
|
9
|
+
* execution, and report UXP bridge status truthfully in logs.
|
|
10
|
+
*/
|
|
11
|
+
export declare const API_OVERRIDE_ENV = "PHOTOSHOP_MCP_API";
|
|
3
12
|
export interface PhotoshopAPI {
|
|
4
13
|
/**
|
|
5
14
|
* Execute a script using the appropriate API
|
|
@@ -1 +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;
|
|
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;AAIhE,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;CACvB;AAoBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAsB;gBAE5B,UAAU,EAAE,mBAAmB;IAKrC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;YAmB1B,gBAAgB;CAiC/B"}
|
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
import { Logger } from '../utils/logger.js';
|
|
2
2
|
import { documentGuardScript, getTargetDocumentId } from '../core/document-target.js';
|
|
3
|
+
import { isUxpBridgeReachable } from '../platform/uxp-bridge-client.js';
|
|
4
|
+
/**
|
|
5
|
+
* Force the execution path regardless of detection.
|
|
6
|
+
* - `uxp`: route through the UXP bridge plugin (fails fast with a clear
|
|
7
|
+
* error until the plugin supports script execution — see UXPPhotoshopAPI).
|
|
8
|
+
* - `extendscript`: always use the AppleScript/COM path.
|
|
9
|
+
* - `auto` (default, or any other value): use ExtendScript for script
|
|
10
|
+
* execution, and report UXP bridge status truthfully in logs.
|
|
11
|
+
*/
|
|
12
|
+
export const API_OVERRIDE_ENV = 'PHOTOSHOP_MCP_API';
|
|
13
|
+
/**
|
|
14
|
+
* createAPI() runs per tool call, and in auto mode the bridge probe exists
|
|
15
|
+
* only to pick truthful log wording (the outcome is always ExtendScript).
|
|
16
|
+
* Cache it briefly so the hot path does not pay a self-HTTP roundtrip on
|
|
17
|
+
* every call.
|
|
18
|
+
*/
|
|
19
|
+
const PROBE_CACHE_TTL_MS = 5000;
|
|
20
|
+
let cachedPluginProbe = null;
|
|
21
|
+
async function probePluginOnce() {
|
|
22
|
+
if (cachedPluginProbe && Date.now() - cachedPluginProbe.at < PROBE_CACHE_TTL_MS) {
|
|
23
|
+
return cachedPluginProbe.value;
|
|
24
|
+
}
|
|
25
|
+
const value = await isUxpBridgeReachable();
|
|
26
|
+
cachedPluginProbe = { at: Date.now(), value };
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
3
29
|
export class PhotoshopAPIFactory {
|
|
4
30
|
logger;
|
|
5
31
|
connection;
|
|
@@ -13,37 +39,55 @@ export class PhotoshopAPIFactory {
|
|
|
13
39
|
throw new Error('Photoshop info not available. Please detect Photoshop first.');
|
|
14
40
|
}
|
|
15
41
|
// Determine which API to use based on version
|
|
16
|
-
const apiType = this.determineAPIType(info.version);
|
|
42
|
+
const apiType = await this.determineAPIType(info.version);
|
|
17
43
|
this.logger.info(`Creating ${apiType} API for Photoshop version ${info.version}`);
|
|
18
44
|
if (apiType === 'UXP') {
|
|
19
|
-
return new UXPPhotoshopAPI(
|
|
45
|
+
return new UXPPhotoshopAPI();
|
|
20
46
|
}
|
|
21
47
|
else {
|
|
22
48
|
return new ExtendScriptPhotoshopAPI(this.connection);
|
|
23
49
|
}
|
|
24
50
|
}
|
|
25
|
-
determineAPIType(version) {
|
|
26
|
-
// IMPORTANT:
|
|
27
|
-
// UXP is
|
|
28
|
-
//
|
|
29
|
-
|
|
51
|
+
async determineAPIType(version) {
|
|
52
|
+
// IMPORTANT: script execution via AppleScript/COM can only use ExtendScript.
|
|
53
|
+
// UXP is a plugin runtime: the companion plugin can run batchPlay commands
|
|
54
|
+
// (neural filters), but it cannot execute arbitrary ExtendScript, so tool
|
|
55
|
+
// scripts still need the ExtendScript path even when the plugin is loaded.
|
|
56
|
+
//
|
|
57
|
+
// PHOTOSHOP_MCP_API=uxp forces the UXP path so the bridge can be tested
|
|
58
|
+
// end-to-end instead of silently falling through to ExtendScript.
|
|
59
|
+
const override = process.env[API_OVERRIDE_ENV]?.trim().toLowerCase() || 'auto';
|
|
60
|
+
if (override === 'uxp' || override === 'extendscript') {
|
|
61
|
+
this.logger.debug(`Using ${override} API for version ${version} (${API_OVERRIDE_ENV}=${override})`);
|
|
62
|
+
return override === 'uxp' ? 'UXP' : 'ExtendScript';
|
|
63
|
+
}
|
|
64
|
+
if (override !== 'auto') {
|
|
65
|
+
this.logger.warn(`Unrecognized ${API_OVERRIDE_ENV}="${override}"; expected uxp, extendscript or auto. Falling back to auto.`);
|
|
66
|
+
}
|
|
67
|
+
const pluginPolling = await probePluginOnce();
|
|
68
|
+
if (pluginPolling) {
|
|
69
|
+
this.logger.debug(`Using ExtendScript for version ${version}; UXP bridge plugin detected and polling — neural filters available, but tool scripts still require ExtendScript`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.logger.debug(`Using ExtendScript for version ${version} (UXP plugin not polling the bridge)`);
|
|
73
|
+
}
|
|
30
74
|
return 'ExtendScript';
|
|
31
75
|
}
|
|
32
76
|
}
|
|
33
77
|
/**
|
|
34
78
|
* UXP-based API for modern Photoshop (23.5+)
|
|
35
|
-
*
|
|
36
|
-
*
|
|
79
|
+
* The companion UXP plugin polls the bridge but cannot execute arbitrary
|
|
80
|
+
* ExtendScript, so script calls fail fast with an actionable error rather
|
|
81
|
+
* than silently degrading to the ExtendScript path (which on UXP-only
|
|
82
|
+
* Photoshop builds hangs until the tool timeout and surfaces as an
|
|
83
|
+
* unexplained extendscript_timeout).
|
|
37
84
|
*/
|
|
38
85
|
class UXPPhotoshopAPI {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// UXP cannot be executed externally via AppleScript/COM
|
|
45
|
-
// Fall back to ExtendScript
|
|
46
|
-
return await this.connection.executeScript(script, timeoutMs, options);
|
|
86
|
+
async executeScript(_script, _timeoutMs, _options) {
|
|
87
|
+
const pluginPolling = await isUxpBridgeReachable();
|
|
88
|
+
throw new Error(pluginPolling
|
|
89
|
+
? 'UXP bridge plugin is connected and polling, but the plugin cannot execute ExtendScript tool scripts. Set PHOTOSHOP_MCP_API=extendscript (or unset it) to use the scripting path.'
|
|
90
|
+
: 'UXP API selected via PHOTOSHOP_MCP_API=uxp, but the UXP bridge plugin is not polling. Load uxp-plugin/manifest.json via UXP Developer Tools and open the MCP Bridge panel, or set PHOTOSHOP_MCP_API=extendscript.');
|
|
47
91
|
}
|
|
48
92
|
getAPIType() {
|
|
49
93
|
return 'UXP';
|
|
@@ -1 +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;AAE5C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"photoshop-api.js","sourceRoot":"","sources":["../../src/api/photoshop-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIxE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAkBpD;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,IAAI,iBAAiB,GAA0C,IAAI,CAAC;AAEpE,KAAK,UAAU,eAAe;IAC5B,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAChF,OAAO,iBAAiB,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC3C,iBAAiB,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,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,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1D,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,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC5C,6EAA6E;QAC7E,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;QACF,wEAAwE;QACxE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC;QAC/E,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,QAAQ,oBAAoB,OAAO,KAAK,gBAAgB,IAAI,QAAQ,GAAG,CACjF,CAAC;YACF,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;QACrD,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,gBAAgB,KAAK,QAAQ,8DAA8D,CAC5G,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,eAAe,EAAE,CAAC;QAC9C,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,OAAO,kHAAkH,CAC5J,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,OAAO,sCAAsC,CAChF,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,eAAe;IACnB,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,UAAmB,EACnB,QAA+B;QAE/B,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,aAAa;YACX,CAAC,CAAC,kLAAkL;YACpL,CAAC,CAAC,mNAAmN,CACxN,CAAC;IACJ,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,CACjB,MAAc,EACd,SAAkB,EAClB,OAA8B;QAE9B,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,mEAAmE;QACnE,mEAAmE;QACnE,6DAA6D;QAC7D,EAAE;QACF,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,iDAAiD;QACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgCL,aAAa;;;QAGX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BT,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACR,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping-engine.d.ts","sourceRoot":"","sources":["../../src/core/ping-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"ping-engine.d.ts","sourceRoot":"","sources":["../../src/core/ping-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAQzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iCAAiC,CAAC;AAKhE,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAczB"}
|
package/dist/core/ping-engine.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PhotoshopAPIFactory } from '../api/photoshop-api.js';
|
|
2
|
-
import { buildPingToolResult } from '../feedback/nudge.js';
|
|
2
|
+
import { buildPingFailureResult, buildPingToolResult, PING_NOT_FOUND_REASON, PING_NOT_RUNNING_REASON, } from '../feedback/nudge.js';
|
|
3
3
|
import { DEFAULT_SCRIPT_TIMEOUT_MS } from '../platform/script-timeout.js';
|
|
4
4
|
/**
|
|
5
5
|
* Tiny read. Success means Photoshop accepted and finished a script on the
|
|
@@ -7,11 +7,12 @@ import { DEFAULT_SCRIPT_TIMEOUT_MS } from '../platform/script-timeout.js';
|
|
|
7
7
|
* so a busy engine fails here instead of inside get_state / get_layers.
|
|
8
8
|
*/
|
|
9
9
|
export const PING_PROBE_SCRIPT = 'return app.documents.length;';
|
|
10
|
-
const
|
|
10
|
+
const NOT_RUNNING = /photoshop is not running/i;
|
|
11
|
+
const NOT_FOUND = /photoshop not found|photoshop info not available/i;
|
|
11
12
|
export async function probePhotoshopEngine(connection) {
|
|
12
13
|
const installed = await connection.ping();
|
|
13
14
|
if (!installed)
|
|
14
|
-
return
|
|
15
|
+
return buildPingFailureResult(PING_NOT_FOUND_REASON);
|
|
15
16
|
try {
|
|
16
17
|
const api = await new PhotoshopAPIFactory(connection).createAPI();
|
|
17
18
|
await api.executeScript(PING_PROBE_SCRIPT, DEFAULT_SCRIPT_TIMEOUT_MS, { launch: false });
|
|
@@ -19,8 +20,10 @@ export async function probePhotoshopEngine(connection) {
|
|
|
19
20
|
}
|
|
20
21
|
catch (error) {
|
|
21
22
|
const message = error instanceof Error ? error.message : String(error);
|
|
22
|
-
if (
|
|
23
|
-
return
|
|
23
|
+
if (NOT_RUNNING.test(message))
|
|
24
|
+
return buildPingFailureResult(PING_NOT_RUNNING_REASON);
|
|
25
|
+
if (NOT_FOUND.test(message))
|
|
26
|
+
return buildPingFailureResult(PING_NOT_FOUND_REASON);
|
|
24
27
|
throw error;
|
|
25
28
|
}
|
|
26
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping-engine.js","sourceRoot":"","sources":["../../src/core/ping-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"ping-engine.js","sourceRoot":"","sources":["../../src/core/ping-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAEhE,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,SAAS,GAAG,mDAAmD,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;QAClE,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzF,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;QACtF,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;QAClF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import type { ToolHandler } from '../core/tool-registry.js';
|
|
3
|
-
export type PhotoshopErrorCode = 'no_active_document' | 'no_active_layer' | 'layer_not_found' | 'document_not_found' | 'ambiguous_name' | 'invalid_arguments' | 'selection_required' | 'version_unsupported' | 'generative_unavailable' | 'generative_timeout' | 'extendscript_timeout' | 'scratch_disk_full' | 'artboard_not_found' | 'generative_credits_exhausted' | 'generative_no_selection' | 'uxp_bridge_unavailable' | 'extendscript_runtime_error' | 'file_not_found' | 'font_not_found' | 'not_text_layer' | 'unsupported_color_mode' | 'no_base_layer_below' | 'not_clipping' | 'unknown';
|
|
3
|
+
export type PhotoshopErrorCode = 'no_active_document' | 'no_active_layer' | 'layer_not_found' | 'document_not_found' | 'ambiguous_name' | 'invalid_arguments' | 'selection_required' | 'version_unsupported' | 'generative_unavailable' | 'generative_timeout' | 'extendscript_timeout' | 'scratch_disk_full' | 'artboard_not_found' | 'generative_credits_exhausted' | 'generative_no_selection' | 'uxp_bridge_unavailable' | 'extendscript_runtime_error' | 'file_not_found' | 'font_not_found' | 'not_text_layer' | 'unsupported_color_mode' | 'no_base_layer_below' | 'not_clipping' | 'photoshop_unreachable' | 'automation_permission_denied' | 'photoshop_app_not_resolved' | 'unknown';
|
|
4
4
|
export interface PhotoshopErrorEnvelope {
|
|
5
5
|
ok: false;
|
|
6
6
|
code: PhotoshopErrorCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,GACpB,8BAA8B,GAC9B,yBAAyB,GACzB,wBAAwB,GACxB,4BAA4B,GAC5B,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,wBAAwB,GACxB,qBAAqB,GACrB,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,GACpB,8BAA8B,GAC9B,yBAAyB,GACzB,wBAAwB,GACxB,4BAA4B,GAC5B,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,wBAAwB,GACxB,qBAAqB,GACrB,cAAc,GACd,uBAAuB,GACvB,8BAA8B,GAC9B,4BAA4B,GAC5B,SAAS,CAAC;AAEd,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AA0ED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAA0B,CAAC;AAmBhE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAM9E;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,sBAAsB,GAAG,IAAI,CAMlG;AAiCD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAoCrE;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,sBAAsB,GAC/B,sBAAsB,CAsBxB;AAmBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,cAAc,CAKrF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAqBxE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAGrE;AAyBD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAmB/F;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CA6BnF"}
|
package/dist/errors/envelope.js
CHANGED
|
@@ -2,16 +2,52 @@ import { recordMcpToolCall } from '../analytics/mcp-session.js';
|
|
|
2
2
|
import { readOsDriveFreeBytes } from '../platform/os-free-space.js';
|
|
3
3
|
import { EXECUTE_SCRIPT_RETRY_TIMEOUT_MS } from '../platform/script-timeout.js';
|
|
4
4
|
const ERROR_PATTERNS = [
|
|
5
|
-
{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{
|
|
11
|
-
|
|
5
|
+
{
|
|
6
|
+
pattern: /document_not_found/i,
|
|
7
|
+
code: 'document_not_found',
|
|
8
|
+
suggested_next_tool: 'photoshop_list_documents',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
pattern: /no active document/i,
|
|
12
|
+
code: 'no_active_document',
|
|
13
|
+
suggested_next_tool: 'photoshop_get_state',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
pattern: /no documents/i,
|
|
17
|
+
code: 'no_active_document',
|
|
18
|
+
suggested_next_tool: 'photoshop_get_state',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
pattern: /no active layer/i,
|
|
22
|
+
code: 'no_active_layer',
|
|
23
|
+
suggested_next_tool: 'photoshop_get_layers',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
pattern: /layer not found/i,
|
|
27
|
+
code: 'layer_not_found',
|
|
28
|
+
suggested_next_tool: 'photoshop_get_layers',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
pattern: /no base layer below|nothing to clip into/i,
|
|
32
|
+
code: 'no_base_layer_below',
|
|
33
|
+
suggested_next_tool: 'photoshop_get_layers',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
pattern: /not clipping|not a clipping mask/i,
|
|
37
|
+
code: 'not_clipping',
|
|
38
|
+
suggested_next_tool: 'photoshop_get_layers',
|
|
39
|
+
},
|
|
12
40
|
{ pattern: /selection/i, code: 'selection_required', suggested_next_tool: 'photoshop_get_state' },
|
|
13
|
-
{
|
|
14
|
-
|
|
41
|
+
{
|
|
42
|
+
pattern: /version_unsupported|not supported.*version/i,
|
|
43
|
+
code: 'version_unsupported',
|
|
44
|
+
suggested_next_tool: 'photoshop_get_capabilities',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
pattern: /generative.*credit|quota|sign in/i,
|
|
48
|
+
code: 'generative_credits_exhausted',
|
|
49
|
+
suggested_next_tool: 'photoshop_get_capabilities',
|
|
50
|
+
},
|
|
15
51
|
{
|
|
16
52
|
pattern: /script execution timeout|script timed out|waiting in the execution queue|appleevent timed out|ETIMEDOUT/i,
|
|
17
53
|
code: 'extendscript_timeout',
|
|
@@ -25,7 +61,11 @@ const ERROR_PATTERNS = [
|
|
|
25
61
|
{ pattern: /syntax error|error 8:/i, code: 'extendscript_runtime_error', suggested_next_tool: 'photoshop_get_state' },
|
|
26
62
|
{ pattern: /not a text layer/i, code: 'not_text_layer', suggested_next_tool: 'photoshop_create_text_layer' },
|
|
27
63
|
{ pattern: /file not found|does not exist/i, code: 'file_not_found' },
|
|
28
|
-
{
|
|
64
|
+
{
|
|
65
|
+
pattern: /color mode/i,
|
|
66
|
+
code: 'unsupported_color_mode',
|
|
67
|
+
suggested_next_tool: 'photoshop_get_document_info',
|
|
68
|
+
},
|
|
29
69
|
];
|
|
30
70
|
/**
|
|
31
71
|
* Photoshop's minimum available hard-disk space.
|
|
@@ -59,6 +99,31 @@ export function diagnoseScratchDiskTimeout(freeBytes) {
|
|
|
59
99
|
const freeGb = (freeBytes / (1024 * 1024 * 1024)).toFixed(1);
|
|
60
100
|
return scratchDiskFullEnvelope(`Scripting timed out. The OS drive, Photoshop's default scratch disk, has ${freeGb} GB free, below the 10 GB minimum.`);
|
|
61
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* macOS osascript failures. Matched on the numeric AppleEvent / Launch Services
|
|
104
|
+
* code in parentheses, which stays the same when macOS localizes the message.
|
|
105
|
+
* The raw osascript text is kept in the message so the cause is not lost (#72).
|
|
106
|
+
*/
|
|
107
|
+
const APPLE_EVENT_ERRORS = [
|
|
108
|
+
{
|
|
109
|
+
pattern: /\(-1743\)/,
|
|
110
|
+
code: 'automation_permission_denied',
|
|
111
|
+
hint: 'macOS blocked Apple events to Photoshop. Open System Settings > Privacy & Security > Automation, allow the app that runs this MCP server (for example Claude, Cursor or Terminal) to control Adobe Photoshop, then call photoshop_ping.',
|
|
112
|
+
suggested_next_tool: 'photoshop_ping',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
pattern: /\((?:-600|-609|-10810|-10822|-10827)\)/,
|
|
116
|
+
code: 'photoshop_unreachable',
|
|
117
|
+
hint: 'Apple events could not reach Photoshop. Make sure Photoshop is open in the same macOS user session as this MCP server. If the server runs inside a sandbox (an agent sandbox, a Seatbelt profile or a container), allow it to send Apple events or run it outside the sandbox.',
|
|
118
|
+
suggested_next_tool: 'photoshop_ping',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
pattern: /\((?:-1728|-2741|-10814)\)/,
|
|
122
|
+
code: 'photoshop_app_not_resolved',
|
|
123
|
+
hint: 'AppleScript could not resolve the Photoshop application. Set PHOTOSHOP_PATH to the full .app path, for example "/Applications/Adobe Photoshop 2026/Adobe Photoshop 2026.app", then restart the MCP server.',
|
|
124
|
+
suggested_next_tool: 'photoshop_get_capabilities',
|
|
125
|
+
},
|
|
126
|
+
];
|
|
62
127
|
export function classifyError(message) {
|
|
63
128
|
if (SCRATCH_DISK_FULL_PATTERN.test(message)) {
|
|
64
129
|
return scratchDiskFullEnvelope(message);
|
|
@@ -71,6 +136,11 @@ export function classifyError(message) {
|
|
|
71
136
|
suggested_next_tool: 'photoshop_list_fonts',
|
|
72
137
|
};
|
|
73
138
|
}
|
|
139
|
+
for (const { pattern, code, hint, suggested_next_tool } of APPLE_EVENT_ERRORS) {
|
|
140
|
+
if (pattern.test(message)) {
|
|
141
|
+
return { ok: false, code, message: `${message.trim()} ${hint}`, suggested_next_tool };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
74
144
|
for (const { pattern, code, suggested_next_tool } of ERROR_PATTERNS) {
|
|
75
145
|
if (pattern.test(message)) {
|
|
76
146
|
return {
|
|
@@ -88,7 +158,8 @@ export function classifyError(message) {
|
|
|
88
158
|
suggested_next_tool: 'photoshop_get_state',
|
|
89
159
|
};
|
|
90
160
|
}
|
|
91
|
-
const TIMEOUT_BUSY_HINT = 'The MCP wait ended; Photoshop may still be running that script. Call photoshop_ping until it succeeds before more edits.'
|
|
161
|
+
const TIMEOUT_BUSY_HINT = 'The MCP wait ended; Photoshop may still be running that script. Call photoshop_ping until it succeeds before more edits. ' +
|
|
162
|
+
'If every tool call times out, including photoshop_ping, the scripting path itself is not responding (a modal dialog in Photoshop, or on Windows COM starting a different Photoshop version). The UXP bridge panel cannot carry tool scripts.';
|
|
92
163
|
/**
|
|
93
164
|
* Timeouts are classified without knowing which tool failed. Once the wrapper
|
|
94
165
|
* has the tool name, point the agent at ping (Photoshop is often still busy)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/feedback/nudge.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export declare const FEEDBACK_NUDGE_QUESTION_TR = "Sizin i\u00E7in bu MCP'yi dah
|
|
|
9
9
|
export declare const FEEDBACK_NUDGE_LANGUAGE_RULE = "MUST ask the user in the language they are using in this conversation. Detect it from their messages; if mixed, use their latest message. Never default to English. Translate Q1 into that language and show only that translation. English and Turkish below are meaning-only examples \u2014 do not paste them unless the user is actually speaking that language.";
|
|
10
10
|
export declare const PING_CONNECTED_TEXT = "Successfully connected to Photoshop";
|
|
11
11
|
export declare const PING_FAILED_TEXT = "Failed to connect to Photoshop";
|
|
12
|
+
export declare const PING_NOT_FOUND_REASON = "Photoshop was not found. Set PHOTOSHOP_PATH to the Photoshop app (macOS: the .app bundle, Windows: Photoshop.exe), then restart the MCP server.";
|
|
13
|
+
export declare const PING_NOT_RUNNING_REASON = "Photoshop is not running. Open Photoshop, wait until it finishes starting, then call photoshop_ping again. Ping never launches Photoshop.";
|
|
12
14
|
export type FeedbackChoice = 'yes' | 'not_now' | 'dont_ask';
|
|
13
15
|
export type FeedbackNudgeStatus = 'shown' | 'yes' | 'dont_ask';
|
|
14
16
|
export interface FeedbackNudgeStore {
|
|
@@ -39,4 +41,6 @@ export declare function buildFeedbackNudgeBlock(): string;
|
|
|
39
41
|
*/
|
|
40
42
|
export declare function buildPingToolResult(connected: boolean, now?: number): CallToolResult;
|
|
41
43
|
export declare function submitFeedbackFromArgs(args: Record<string, unknown>): CallToolResult;
|
|
44
|
+
/** Failed ping: PING_FAILED_TEXT stays the first block so existing clients still match it. */
|
|
45
|
+
export declare function buildPingFailureResult(reason: string): CallToolResult;
|
|
42
46
|
//# sourceMappingURL=nudge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nudge.d.ts","sourceRoot":"","sources":["../../src/feedback/nudge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AASzE,eAAO,MAAM,0BAA0B,QAA0B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AACxD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4GACoE,CAAC;AAC5G,eAAO,MAAM,0BAA0B,wNACgG,CAAC;AACxI,eAAO,MAAM,4BAA4B,yWAC0T,CAAC;AACpW,eAAO,MAAM,mBAAmB,wCAAwC,CAAC;AACzE,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"nudge.d.ts","sourceRoot":"","sources":["../../src/feedback/nudge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AASzE,eAAO,MAAM,0BAA0B,QAA0B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AACxD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4GACoE,CAAC;AAC5G,eAAO,MAAM,0BAA0B,wNACgG,CAAC;AACxI,eAAO,MAAM,4BAA4B,yWAC0T,CAAC;AACpW,eAAO,MAAM,mBAAmB,wCAAwC,CAAC;AACzE,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AACjE,eAAO,MAAM,qBAAqB,oJACiH,CAAC;AACpJ,eAAO,MAAM,uBAAuB,8IACyG,CAAC;AAE9I,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AASD,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE5E;AAOD,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEpF;AAkBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKxF;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,SAAa,GAAG,OAAO,CAY5D;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,GAAG,SAAa,GAAG,IAAI,CAO5D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAa,GAAG,IAAI,CAQ7D;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CA0CrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,cAAc,CAsBxF;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CA0BpF;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAOrE"}
|
package/dist/feedback/nudge.js
CHANGED
|
@@ -17,6 +17,8 @@ export const FEEDBACK_NUDGE_QUESTION_TR = "Sizin için bu MCP'yi daha hızlı ve
|
|
|
17
17
|
export const FEEDBACK_NUDGE_LANGUAGE_RULE = "MUST ask the user in the language they are using in this conversation. Detect it from their messages; if mixed, use their latest message. Never default to English. Translate Q1 into that language and show only that translation. English and Turkish below are meaning-only examples — do not paste them unless the user is actually speaking that language.";
|
|
18
18
|
export const PING_CONNECTED_TEXT = 'Successfully connected to Photoshop';
|
|
19
19
|
export const PING_FAILED_TEXT = 'Failed to connect to Photoshop';
|
|
20
|
+
export const PING_NOT_FOUND_REASON = 'Photoshop was not found. Set PHOTOSHOP_PATH to the Photoshop app (macOS: the .app bundle, Windows: Photoshop.exe), then restart the MCP server.';
|
|
21
|
+
export const PING_NOT_RUNNING_REASON = 'Photoshop is not running. Open Photoshop, wait until it finishes starting, then call photoshop_ping again. Ping never launches Photoshop.';
|
|
20
22
|
const STORE_FILE = 'feedback-nudge.json';
|
|
21
23
|
const TRUNCATION_SUFFIX = '…[truncated]';
|
|
22
24
|
function getStorePath() {
|
|
@@ -216,4 +218,13 @@ export function submitFeedbackFromArgs(args) {
|
|
|
216
218
|
],
|
|
217
219
|
};
|
|
218
220
|
}
|
|
221
|
+
/** Failed ping: PING_FAILED_TEXT stays the first block so existing clients still match it. */
|
|
222
|
+
export function buildPingFailureResult(reason) {
|
|
223
|
+
return {
|
|
224
|
+
content: [
|
|
225
|
+
{ type: 'text', text: PING_FAILED_TEXT },
|
|
226
|
+
{ type: 'text', text: reason },
|
|
227
|
+
],
|
|
228
|
+
};
|
|
229
|
+
}
|
|
219
230
|
//# sourceMappingURL=nudge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nudge.js","sourceRoot":"","sources":["../../src/feedback/nudge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,0BAA0B,GACrC,yGAAyG,CAAC;AAC5G,MAAM,CAAC,MAAM,0BAA0B,GACrC,qIAAqI,CAAC;AACxI,MAAM,CAAC,MAAM,4BAA4B,GACvC,iWAAiW,CAAC;AACpW,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"nudge.js","sourceRoot":"","sources":["../../src/feedback/nudge.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ export interface PhotoshopCapabilities {
|
|
|
21
21
|
}
|
|
22
22
|
export declare function parsePhotoshopVersion(version: string): ParsedPhotoshopVersion;
|
|
23
23
|
export declare function getPhotoshopCapabilities(version: string): PhotoshopCapabilities;
|
|
24
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Merge runtime UXP bridge reachability into version-derived capabilities.
|
|
26
|
+
* `uxp_bridge_reachable` is true only when the companion plugin is actively
|
|
27
|
+
* polling the bridge (not merely that the bridge HTTP server is listening),
|
|
28
|
+
* so `neural_filters` reflects a plugin that can actually pick up commands.
|
|
29
|
+
*/
|
|
25
30
|
export declare function resolvePhotoshopCapabilities(version: string): Promise<PhotoshopCapabilities>;
|
|
26
31
|
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/platform/capabilities.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO,CAAC;QAC3B,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,sBAAsB,EAAE,OAAO,CAAC;QAChC,cAAc,EAAE,OAAO,CAAC;QACxB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,wBAAwB,EAAE,OAAO,CAAC;QAClC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAsB7E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CA8B/E;AAED
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/platform/capabilities.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO,CAAC;QAC3B,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,sBAAsB,EAAE,OAAO,CAAC;QAChC,cAAc,EAAE,OAAO,CAAC;QACxB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,wBAAwB,EAAE,OAAO,CAAC;QAClC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAsB7E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CA8B/E;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
|
|
@@ -49,7 +49,12 @@ export function getPhotoshopCapabilities(version) {
|
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Merge runtime UXP bridge reachability into version-derived capabilities.
|
|
54
|
+
* `uxp_bridge_reachable` is true only when the companion plugin is actively
|
|
55
|
+
* polling the bridge (not merely that the bridge HTTP server is listening),
|
|
56
|
+
* so `neural_filters` reflects a plugin that can actually pick up commands.
|
|
57
|
+
*/
|
|
53
58
|
export async function resolvePhotoshopCapabilities(version) {
|
|
54
59
|
const base = getPhotoshopCapabilities(version);
|
|
55
60
|
const bridgeUp = await isUxpBridgeReachable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/platform/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAyB9D,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,KAAK,EAAE,CAAC;YACR,IAAI;YACJ,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAErE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,cAAc,CAAC;IACxC,MAAM,gBAAgB,GAAG,cAAc,CAAC;IACxC,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IAC9E,MAAM,oBAAoB,GAAG,cAAc,CAAC;IAC5C,MAAM,cAAc,GAAG,cAAc,CAAC;IAEtC,OAAO;QACL,OAAO;QACP,QAAQ,EAAE;YACR,iBAAiB,EAAE,eAAe;YAClC,eAAe,EAAE,cAAc;YAC/B,iBAAiB,EAAE,gBAAgB;YACnC,iBAAiB,EAAE,gBAAgB;YACnC,kBAAkB,EAAE,iBAAiB;YACrC,sBAAsB,EAAE,oBAAoB;YAC5C,cAAc,EAAE,KAAK;YACrB,oBAAoB,EAAE,KAAK;YAC3B,wBAAwB,EAAE,cAAc;YACxC,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/platform/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,13 +29,12 @@ export declare class PhotoshopConnection {
|
|
|
29
29
|
getPhotoshopInfo(): PhotoshopInfo | null;
|
|
30
30
|
ensurePhotoshopRunning(): Promise<void>;
|
|
31
31
|
/**
|
|
32
|
-
* Point the macOS executor at the detected
|
|
32
|
+
* Point the macOS executor at the detected install. Must run after
|
|
33
33
|
* getExecutor(): the executor is created lazily, and before this ordering fix
|
|
34
34
|
* the first script of every session ran against the hard-coded default
|
|
35
|
-
* ("Adobe Photoshop 2025")
|
|
36
|
-
* as
|
|
37
|
-
* to compile `do javascript` (-2741) because the app name did not resolve.
|
|
35
|
+
* ("Adobe Photoshop 2025"). The bundle path is the AppleScript target; the
|
|
36
|
+
* name stays for logs and as a fallback when the path is not a bundle (#72).
|
|
38
37
|
*/
|
|
39
|
-
private
|
|
38
|
+
private applyMacOSTarget;
|
|
40
39
|
}
|
|
41
40
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/platform/connection.ts"],"names":[],"mappings":"AAQA,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,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAwB;;IAU9C,oEAAoE;IACpE,OAAO,CAAC,WAAW;IAenB,qEAAqE;IACrE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIvD,8DAA8D;IAC9D,gBAAgB,IAAI,OAAO;IAc3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;YAST,oBAAoB;IA4B5B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,OAAO,CAAC;IA2BnB,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIlC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7C
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/platform/connection.ts"],"names":[],"mappings":"AAQA,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,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAwB;;IAU9C,oEAAoE;IACpE,OAAO,CAAC,WAAW;IAenB,qEAAqE;IACrE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIvD,8DAA8D;IAC9D,gBAAgB,IAAI,OAAO;IAc3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;YAST,oBAAoB;IA4B5B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,OAAO,CAAC;IA2BnB,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIlC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7C;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -121,7 +121,7 @@ export class PhotoshopConnection {
|
|
|
121
121
|
throw new Error('Photoshop not found on this system');
|
|
122
122
|
}
|
|
123
123
|
const executor = this.getExecutor();
|
|
124
|
-
this.
|
|
124
|
+
this.applyMacOSTarget();
|
|
125
125
|
const isRunning = await executor.isPhotoshopRunning();
|
|
126
126
|
if (!isRunning) {
|
|
127
127
|
if (options?.launch === false) {
|
|
@@ -147,7 +147,7 @@ export class PhotoshopConnection {
|
|
|
147
147
|
throw new Error('Photoshop not found on this system');
|
|
148
148
|
}
|
|
149
149
|
const executor = this.getExecutor();
|
|
150
|
-
this.
|
|
150
|
+
this.applyMacOSTarget();
|
|
151
151
|
const isRunning = await executor.isPhotoshopRunning();
|
|
152
152
|
if (!isRunning) {
|
|
153
153
|
this.logger.info('Launching Photoshop...');
|
|
@@ -155,17 +155,18 @@ export class PhotoshopConnection {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
|
-
* Point the macOS executor at the detected
|
|
158
|
+
* Point the macOS executor at the detected install. Must run after
|
|
159
159
|
* getExecutor(): the executor is created lazily, and before this ordering fix
|
|
160
160
|
* the first script of every session ran against the hard-coded default
|
|
161
|
-
* ("Adobe Photoshop 2025")
|
|
162
|
-
* as
|
|
163
|
-
* to compile `do javascript` (-2741) because the app name did not resolve.
|
|
161
|
+
* ("Adobe Photoshop 2025"). The bundle path is the AppleScript target; the
|
|
162
|
+
* name stays for logs and as a fallback when the path is not a bundle (#72).
|
|
164
163
|
*/
|
|
165
|
-
|
|
166
|
-
if (this.macosExecutor
|
|
164
|
+
applyMacOSTarget() {
|
|
165
|
+
if (!this.macosExecutor || !this.photoshopInfo)
|
|
166
|
+
return;
|
|
167
|
+
if (this.photoshopInfo.appName)
|
|
167
168
|
this.macosExecutor.setAppName(this.photoshopInfo.appName);
|
|
168
|
-
|
|
169
|
+
this.macosExecutor.setAppPath(this.photoshopInfo.path);
|
|
169
170
|
}
|
|
170
171
|
}
|
|
171
172
|
//# sourceMappingURL=connection.js.map
|