@alisaitteke/photoshop-mcp 1.7.8 → 1.7.12
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/AGENTS.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
**Prerequisites:** Photoshop running on Windows or macOS, Node.js 18+. This is unofficial and not affiliated with Adobe.
|
|
16
16
|
|
|
17
|
-
**Tool surface:**
|
|
17
|
+
**Tool surface:** 116 MCP tools — 100 atomic `photoshop_*` + 16 recipe `photoshop_recipe_*`; 23 MCP prompt templates (`ps.*`).
|
|
18
18
|
|
|
19
19
|
## Architecture (agent view)
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/analytics/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/analytics/context.ts"],"names":[],"mappings":"AAkBA,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQnE"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { loadConfig } from '../ui/config.js';
|
|
2
2
|
import { isAnalyticsEnabled, isBetaTelemetryOptIn } from './identity.js';
|
|
3
|
+
/** Default matches `DEFAULT_CONFIG.actionPlanBeta` when UI SQLite is unavailable. */
|
|
4
|
+
const DEFAULT_ACTION_PLAN_ENABLED = true;
|
|
5
|
+
/**
|
|
6
|
+
* UI Action Plan lives in SQLite. MCP stdio must still boot when native
|
|
7
|
+
* `better-sqlite3` bindings were skipped (pnpm 10, Glama, missing toolchain).
|
|
8
|
+
*/
|
|
9
|
+
function readActionPlanEnabled() {
|
|
10
|
+
try {
|
|
11
|
+
return Boolean(loadConfig().actionPlanBeta);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return DEFAULT_ACTION_PLAN_ENABLED;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
3
17
|
export function getServerAnalyticsContext() {
|
|
4
|
-
const config = loadConfig();
|
|
5
18
|
const analyticsEnabled = isAnalyticsEnabled();
|
|
6
19
|
return {
|
|
7
20
|
privacy_mode: !analyticsEnabled,
|
|
8
21
|
analytics_enabled: analyticsEnabled,
|
|
9
22
|
beta_telemetry_opt_in: isBetaTelemetryOptIn(),
|
|
10
|
-
action_plan_enabled:
|
|
23
|
+
action_plan_enabled: readActionPlanEnabled(),
|
|
11
24
|
};
|
|
12
25
|
}
|
|
13
26
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/analytics/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/analytics/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEzE,qFAAqF;AACrF,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,2BAA2B,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;IAC9C,OAAO;QACL,YAAY,EAAE,CAAC,gBAAgB;QAC/B,iBAAiB,EAAE,gBAAgB;QACnC,qBAAqB,EAAE,oBAAoB,EAAE;QAC7C,mBAAmB,EAAE,qBAAqB,EAAE;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/ui/store/db.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/ui/store/db.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWzE,wBAAgB,KAAK,IAAI,YAAY,CAepC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAM9B;AA+BD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|
package/dist/ui/store/db.js
CHANGED
|
@@ -5,22 +5,32 @@ import { getPhotoshopMcpHomeDir } from '../../lib/export-paths.js';
|
|
|
5
5
|
const DATA_DIR = getPhotoshopMcpHomeDir();
|
|
6
6
|
const DB_PATH = join(DATA_DIR, 'data.db');
|
|
7
7
|
let instance = null;
|
|
8
|
+
let loadError = null;
|
|
8
9
|
export function getDB() {
|
|
9
10
|
if (instance)
|
|
10
11
|
return instance;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
if (loadError)
|
|
13
|
+
throw loadError;
|
|
14
|
+
try {
|
|
15
|
+
mkdirSync(dirname(DB_PATH), { recursive: true, mode: 0o700 });
|
|
16
|
+
const db = new Database(DB_PATH);
|
|
17
|
+
db.pragma('journal_mode = WAL');
|
|
18
|
+
db.pragma('foreign_keys = ON');
|
|
19
|
+
migrate(db);
|
|
20
|
+
instance = db;
|
|
21
|
+
return db;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
loadError = err instanceof Error ? err : new Error(String(err));
|
|
25
|
+
throw loadError;
|
|
26
|
+
}
|
|
18
27
|
}
|
|
19
28
|
export function closeDB() {
|
|
20
29
|
if (instance) {
|
|
21
30
|
instance.close();
|
|
22
31
|
instance = null;
|
|
23
32
|
}
|
|
33
|
+
loadError = null;
|
|
24
34
|
}
|
|
25
35
|
function migrate(db) {
|
|
26
36
|
db.exec(`
|
package/dist/ui/store/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/ui/store/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAA2C,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE1C,IAAI,QAAQ,GAAwB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/ui/store/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAA2C,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE1C,IAAI,QAAQ,GAAwB,IAAI,CAAC;AACzC,IAAI,SAAS,GAAiB,IAAI,CAAC;AAEnC,MAAM,UAAU,KAAK;IACnB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,SAAS;QAAE,MAAM,SAAS,CAAC;IAC/B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,QAAQ,GAAG,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,SAAS,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,EAAgB;IAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alisaitteke/photoshop-mcp",
|
|
3
|
-
"version": "1.7.
|
|
4
|
-
"description": "MCP server for Adobe Photoshop —
|
|
3
|
+
"version": "1.7.12",
|
|
4
|
+
"description": "MCP server for Adobe Photoshop — 116 tools (generative AI + recipes), standalone web UI. Control Photoshop from Cursor, Claude, or natural language.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -114,5 +114,8 @@
|
|
|
114
114
|
"typescript": "^5.7.3",
|
|
115
115
|
"vitest": "^4.1.10"
|
|
116
116
|
},
|
|
117
|
-
"packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319"
|
|
117
|
+
"packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319",
|
|
118
|
+
"pnpm": {
|
|
119
|
+
"onlyBuiltDependencies": ["better-sqlite3", "esbuild"]
|
|
120
|
+
}
|
|
118
121
|
}
|