@alisaitteke/photoshop-mcp 1.7.32 → 1.7.34

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
@@ -15,7 +15,7 @@
15
15
 
16
16
  **Prerequisites:** Photoshop running on Windows or macOS, Node.js 18+. This is unofficial and not affiliated with Adobe.
17
17
 
18
- **Tool surface:** 127 MCP tools — 111 atomic `photoshop_*` + 16 recipe `photoshop_recipe_*`; 23 MCP prompt templates (`ps.*`).
18
+ **Tool surface:** 128 MCP tools — 111 atomic `photoshop_*` + 17 recipe `photoshop_recipe_*`; 24 MCP prompt templates (`ps.*`).
19
19
 
20
20
  ## Architecture (agent view)
21
21
 
package/README.md CHANGED
@@ -64,7 +64,7 @@ Routes, thresholds and the off switch:
64
64
  - 🎨 **Color grade & more** — film looks, sky replacement, generative fill (Adobe account required)
65
65
  - ⏪ **Stay safe** — every multi-step "recipe" is a single undo step in Photoshop
66
66
 
67
- Under the hood: 127 tools (111 atomic + 16 one-step recipes) — full list in
67
+ Under the hood: 128 tools (111 atomic + 17 one-step recipes) — full list in
68
68
  [`docs/available-tools.md`](docs/available-tools.md).
69
69
 
70
70
  ## Try saying
@@ -153,7 +153,7 @@ next. Common fixes: [`docs/troubleshooting.md`](docs/troubleshooting.md).
153
153
 
154
154
  ## Documentation
155
155
 
156
- - [Available tools](docs/available-tools.md) — all 127 tools with parameters
156
+ - [Available tools](docs/available-tools.md) — all 128 tools with parameters
157
157
  - [Standalone UI](docs/standalone-ui.md) — providers, auth modes, Action Plan, security
158
158
  - [Prompt layer](docs/prompt-layer.md) — prompt templates and recipes
159
159
  - [Architecture](docs/architecture.md) — how the bridge works under the hood
@@ -2,6 +2,11 @@ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
2
  import type { ToolHandler } from './tool-registry.js';
3
3
  /** Tools that already manage documents themselves, or never target a document. */
4
4
  export declare const DOCUMENT_ID_SCHEMA_EXCLUDES: Set<string>;
5
+ /**
6
+ * These tools create a new document. A passed id must not be resolved first:
7
+ * with nothing open, that check rejects 0 and invented ids before the file exists.
8
+ */
9
+ export declare const DOCUMENT_ID_GUARD_EXCLUDES: Set<string>;
5
10
  export declare const DOCUMENT_ID_PROPERTY: {
6
11
  readonly type: readonly ["number", "null"];
7
12
  readonly description: string;
@@ -9,7 +14,7 @@ export declare const DOCUMENT_ID_PROPERTY: {
9
14
  export declare function runWithDocumentId<T>(documentId: number | undefined, fn: () => T): T;
10
15
  export declare function getTargetDocumentId(): number | undefined;
11
16
  export declare function parseDocumentIdArg(args: Record<string, unknown> | undefined): number | undefined;
12
- export declare function wrapDocumentIdHandler(handler: ToolHandler): ToolHandler;
17
+ export declare function wrapDocumentIdHandler(toolName: string, handler: ToolHandler): ToolHandler;
13
18
  /** Inject optional `document_id` on tools that operate against the active document. */
14
19
  export declare function withOptionalDocumentId(tool: Tool): Tool;
15
20
  /** ExtendScript prepended inside the execute wrapper when a target id is set. */
@@ -1 +1 @@
1
- {"version":3,"file":"document-target.d.ts","sourceRoot":"","sources":["../../src/core/document-target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,aAOtC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;CAKvB,CAAC;AAEX,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEnF;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIhG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAKvE;AASD,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAqBvD;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB9D"}
1
+ {"version":3,"file":"document-target.d.ts","sourceRoot":"","sources":["../../src/core/document-target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,aAOtC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B,aAGrC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;CAMvB,CAAC;AAQX,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEnF;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMhG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAOzF;AASD,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAwBvD;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAmB9D"}
@@ -9,10 +9,23 @@ export const DOCUMENT_ID_SCHEMA_EXCLUDES = new Set([
9
9
  'photoshop_set_active_document',
10
10
  'photoshop_submit_feedback',
11
11
  ]);
12
+ /**
13
+ * These tools create a new document. A passed id must not be resolved first:
14
+ * with nothing open, that check rejects 0 and invented ids before the file exists.
15
+ */
16
+ export const DOCUMENT_ID_GUARD_EXCLUDES = new Set([
17
+ 'photoshop_create_document',
18
+ 'photoshop_open_image',
19
+ ]);
12
20
  export const DOCUMENT_ID_PROPERTY = {
13
21
  type: ['number', 'null'],
14
22
  description: 'Photoshop document id from photoshop_get_state / photoshop_list_documents. ' +
15
- 'Send null to use the active document. A number activates that document before the tool runs.',
23
+ 'Send null or 0 to use the active document. A positive number activates that document before the tool runs. ' +
24
+ 'When no document is open, a stale id does not block the call.',
25
+ };
26
+ const DOCUMENT_ID_IGNORED_PROPERTY = {
27
+ type: ['number', 'null'],
28
+ description: 'Ignored. photoshop_create_document and photoshop_open_image do not target an existing tab. Omit this, or send null or 0.',
16
29
  };
17
30
  export function runWithDocumentId(documentId, fn) {
18
31
  return targetDocumentId.run(documentId, fn);
@@ -24,11 +37,16 @@ export function parseDocumentIdArg(args) {
24
37
  const raw = args?.document_id;
25
38
  if (typeof raw !== 'number' || !Number.isFinite(raw))
26
39
  return undefined;
27
- return Math.trunc(raw);
40
+ const id = Math.trunc(raw);
41
+ if (id === 0)
42
+ return undefined;
43
+ return id;
28
44
  }
29
- export function wrapDocumentIdHandler(handler) {
45
+ export function wrapDocumentIdHandler(toolName, handler) {
30
46
  return async (args) => {
31
- const documentId = parseDocumentIdArg(args);
47
+ const documentId = DOCUMENT_ID_GUARD_EXCLUDES.has(toolName)
48
+ ? undefined
49
+ : parseDocumentIdArg(args);
32
50
  return runWithDocumentId(documentId, () => handler(args));
33
51
  };
34
52
  }
@@ -42,8 +60,9 @@ export function withOptionalDocumentId(tool) {
42
60
  const properties = schema.properties ?? {};
43
61
  if (properties.document_id)
44
62
  return tool;
63
+ const ignoresTarget = DOCUMENT_ID_GUARD_EXCLUDES.has(tool.name);
45
64
  const required = Array.isArray(schema.required) ? [...schema.required] : [];
46
- if (!required.includes('document_id'))
65
+ if (!ignoresTarget && !required.includes('document_id'))
47
66
  required.push('document_id');
48
67
  return {
49
68
  ...tool,
@@ -54,7 +73,9 @@ export function withOptionalDocumentId(tool) {
54
73
  required,
55
74
  properties: {
56
75
  ...properties,
57
- document_id: { ...DOCUMENT_ID_PROPERTY },
76
+ document_id: ignoresTarget
77
+ ? { ...DOCUMENT_ID_IGNORED_PROPERTY }
78
+ : { ...DOCUMENT_ID_PROPERTY },
58
79
  },
59
80
  },
60
81
  };
@@ -65,6 +86,7 @@ export function documentGuardScript(documentId) {
65
86
  return `
66
87
  (function() {
67
88
  var __mcp_targetDocId = ${id};
89
+ if (app.documents.length === 0) return;
68
90
  var __mcp_found = false;
69
91
  for (var __mcp_di = 0; __mcp_di < app.documents.length; __mcp_di++) {
70
92
  if (app.documents[__mcp_di].id === __mcp_targetDocId) {
@@ -1 +1 @@
1
- {"version":3,"file":"document-target.js","sourceRoot":"","sources":["../../src/core/document-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAsB,CAAC;AAErE,kFAAkF;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IACjD,gBAAgB;IAChB,uBAAuB;IACvB,4BAA4B;IAC5B,0BAA0B;IAC1B,+BAA+B;IAC/B,2BAA2B;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxB,WAAW,EACT,6EAA6E;QAC7E,8FAA8F;CACxF,CAAC;AAEX,MAAM,UAAU,iBAAiB,CAAI,UAA8B,EAAE,EAAW;IAC9E,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAyC;IAC1E,MAAM,GAAG,GAAG,IAAI,EAAE,WAAW,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AASD,uFAAuF;AACvF,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,IAAI,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAuC,CAAC;IAC5D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,IAAI;QACP,WAAW,EAAE;YACX,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ;YACR,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,WAAW,EAAE,EAAE,GAAG,oBAAoB,EAAE;aACzC;SACF;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO;;gCAEuB,EAAE;;;;;;;;;;;;;GAa/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"document-target.js","sourceRoot":"","sources":["../../src/core/document-target.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ export class PhotoshopMCPServer {
72
72
  const tool = withToolAnnotations(withOptionalDocumentId(definition.tool));
73
73
  this.toolRegistry.register(tool.name, {
74
74
  tool,
75
- handler: wrapToolHandler(tool.name, wrapDocumentIdHandler(definition.handler)),
75
+ handler: wrapToolHandler(tool.name, wrapDocumentIdHandler(tool.name, definition.handler)),
76
76
  });
77
77
  }
78
78
  registerToolDefinitions(definitions) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-annotations.d.ts","sourceRoot":"","sources":["../../src/core/tool-annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAC/F,CAAC;AAkBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAoJrE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CASpD"}
1
+ {"version":3,"file":"tool-annotations.d.ts","sourceRoot":"","sources":["../../src/core/tool-annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAC/F,CAAC;AAkBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAqJrE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CASpD"}
@@ -135,6 +135,7 @@ export const TOOL_ANNOTATIONS = {
135
135
  photoshop_recipe_batch_watermark: edit(false),
136
136
  photoshop_recipe_passport_photo: edit(false),
137
137
  photoshop_recipe_csv_to_cards: edit(false),
138
+ photoshop_recipe_sticker_outline: edit(true),
138
139
  };
139
140
  export function withToolAnnotations(tool) {
140
141
  const annotations = TOOL_ANNOTATIONS[tool.name];
@@ -1 +1 @@
1
- {"version":3,"file":"tool-annotations.js","sourceRoot":"","sources":["../../src/core/tool-annotations.ts"],"names":[],"mappings":"AAaA,SAAS,GAAG,CACV,YAAqB,EACrB,eAAwB,EACxB,cAAuB,EACvB,aAAa,GAAG,KAAK;IAErB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAC1E,CAAC;AAED,gCAAgC;AAChC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpC,yDAAyD;AACzD,MAAM,IAAI,GAAG,CAAC,UAAmB,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAClG,gEAAgE;AAChE,MAAM,IAAI,GAAG,CAAC,UAAmB,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1B,yBAAyB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC5C,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC;IACjC,0BAA0B,EAAE,IAAI;IAEhC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,2BAA2B,EAAE,IAAI;IACjC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC;IACpC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC;IACzC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC;IACnC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC;IAErC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;IACnC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;IACnC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC;IAChC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC;IACnC,oBAAoB,EAAE,IAAI;IAC1B,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC;IAE1C,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;IACnC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IACpC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAClC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC;IAEjC,iCAAiC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC9C,uCAAuC,EAAE,IAAI,CAAC,IAAI,CAAC;IACnD,oCAAoC,EAAE,IAAI,CAAC,KAAK,CAAC;IACjD,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC;IAEnD,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC5C,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAClC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC;IACjC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;IAEnC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC;IACvC,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1C,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1C,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC;IACtC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC;IAClC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC3C,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IAEpC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC1C,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IACpC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAClC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IAEvC,oCAAoC,EAAE,IAAI,CAAC,KAAK,CAAC;IACjD,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC5C,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAClC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IACpC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IACpC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC;IAChC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC;IAE7B,oBAAoB,EAAE,IAAI;IAC1B,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;IACnC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC;IACnC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC;IACpC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC;IACxC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC;IACzC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC;IACpC,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC;IAErC,8BAA8B,EAAE,IAAI;IACpC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC;IACrC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IACvC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC;IACzC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC;IACrC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IACvC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC;IAChC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC;IAC9B,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IACvC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IACvC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC;IACrC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC;IAEzC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC1C,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1C,+BAA+B,EAAE,IAAI,CAAC,IAAI,CAAC;IAE3C,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAClC,wBAAwB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAE3C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC;IAC3B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC;IAC3B,qBAAqB,EAAE,IAAI;IAE3B,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC7C,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC;IACvC,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1C,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC;IACpC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IAEtC,yBAAyB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC5C,2BAA2B,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9C,2BAA2B,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9C,4BAA4B,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/C,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,wBAAwB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC3C,uBAAuB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAE1C,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC;IAEvC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;IAChC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC;IACzC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC;IAEzC,uBAAuB,EAAE,IAAI;IAC7B,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC7C,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC;IAElC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;IAChC,wBAAwB,EAAE,IAAI;IAC9B,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC;IACtC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC;IACzC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IAEvC,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC/C,iCAAiC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC9C,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC7C,uCAAuC,EAAE,IAAI,CAAC,KAAK,CAAC;IACpD,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC/C,qCAAqC,EAAE,IAAI,CAAC,KAAK,CAAC;IAClD,qCAAqC,EAAE,IAAI,CAAC,KAAK,CAAC;IAClD,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC7C,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC3C,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC;IACvC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC;IACxC,mCAAmC,EAAE,IAAI,CAAC,KAAK,CAAC;IAChD,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC5C,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC;IAC7C,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC;IAC5C,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC;CAC3C,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"tool-annotations.js","sourceRoot":"","sources":["../../src/core/tool-annotations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/prompts/instructions.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QA4G/B,CAAC;AAET,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/prompts/instructions.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QA+G/B,CAAC;AAET,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
@@ -75,6 +75,9 @@ Error recovery contract
75
75
  - Common codes you should be ready to handle without asking the user:
76
76
  - \`document_not_found\` — the \`document_id\` you passed is not open;
77
77
  call \`photoshop_list_documents\` and retry with a current id.
78
+ \`photoshop_create_document\` and \`photoshop_open_image\` ignore \`document_id\`.
79
+ \`0\` and \`null\` mean the active document. When nothing is open, a stale id
80
+ does not block the call.
78
81
  - \`no_active_document\` — call \`photoshop_open_image\` or
79
82
  \`photoshop_create_document\` first.
80
83
  - \`no_active_layer\` / \`layer_not_found\` — list layers with
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/prompts/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;OAanC,4BAA4B;;yCAEM,0BAA0B,eAAe,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6F3G,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,0BAA0B;IACxC,OAAO,0BAA0B,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/prompts/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;OAanC,4BAA4B;;yCAEM,0BAA0B,eAAe,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgG3G,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,0BAA0B;IACxC,OAAO,0BAA0B,CAAC;AACpC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { PromptRegistry } from '../core/prompt-registry.js';
2
2
  export declare const PHOTOSHOP_GUIDE_PROMPT_NAMES: readonly ["ps.gradient_blend", "ps.color_correct", "ps.dodge_burn_guide", "ps.composite_blend", "ps.generative_fill", "ps.generative_remove", "ps.generative_expand"];
3
- export declare const PHOTOSHOP_PROMPT_TEMPLATES: readonly [import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate];
3
+ export declare const PHOTOSHOP_PROMPT_TEMPLATES: readonly [import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate, import("./_shared.js").PhotoshopPromptTemplate];
4
4
  export declare function registerPhotoshopPrompts(registry: PromptRegistry): void;
5
5
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA0BjE,eAAO,MAAM,4BAA4B,uKAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,2lCAwB7B,CAAC;AAEX,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAIvE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA2BjE,eAAO,MAAM,4BAA4B,uKAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,2oCAyB7B,CAAC;AAEX,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAIvE"}
@@ -22,6 +22,7 @@ import { splitCarouselTemplate } from './templates/split-carousel.js';
22
22
  import { batchWatermarkTemplate } from './templates/batch-watermark.js';
23
23
  import { passportPhotoTemplate } from './templates/passport-photo.js';
24
24
  import { csvToCardsTemplate } from './templates/csv-to-cards.js';
25
+ import { stickerOutlineTemplate } from './templates/sticker-outline.js';
25
26
  export const PHOTOSHOP_GUIDE_PROMPT_NAMES = [
26
27
  'ps.gradient_blend',
27
28
  'ps.color_correct',
@@ -55,6 +56,7 @@ export const PHOTOSHOP_PROMPT_TEMPLATES = [
55
56
  batchWatermarkTemplate,
56
57
  passportPhotoTemplate,
57
58
  csvToCardsTemplate,
59
+ stickerOutlineTemplate,
58
60
  ];
59
61
  export function registerPhotoshopPrompts(registry) {
60
62
  for (const template of PHOTOSHOP_PROMPT_TEMPLATES) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,mBAAmB;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,uBAAuB;IACvB,wBAAwB;IACxB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,kBAAkB;CACV,CAAC;AAEX,MAAM,UAAU,wBAAwB,CAAC,QAAwB;IAC/D,KAAK,MAAM,QAAQ,IAAI,0BAA0B,EAAE,CAAC;QAClD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,mBAAmB;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,uBAAuB;IACvB,wBAAwB;IACxB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,kBAAkB;IAClB,sBAAsB;CACd,CAAC;AAEX,MAAM,UAAU,wBAAwB,CAAC,QAAwB;IAC/D,KAAK,MAAM,QAAQ,IAAI,0BAA0B,EAAE,CAAC;QAClD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type PhotoshopPromptTemplate } from '../_shared.js';
2
+ export declare const stickerOutlineTemplate: PhotoshopPromptTemplate;
3
+ //# sourceMappingURL=sticker-outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticker-outline.d.ts","sourceRoot":"","sources":["../../../src/prompts/templates/sticker-outline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAKlF,eAAO,MAAM,sBAAsB,EAAE,uBA0CpC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { argEnum, userPrompt } from '../_shared.js';
2
+ const STROKE_POSITIONS = ['outside', 'inside', 'center'];
3
+ const OUTLINE_STYLES = ['single', 'die_cut'];
4
+ export const stickerOutlineTemplate = {
5
+ name: 'ps.sticker_outline',
6
+ description: 'One-shot sticker / white-border outline. single: a solid stroke plus an optional soft drop shadow. die_cut: the classic double outline — a white border with a thin dark outer line — via two stroked layer copies. Both are a single undoable step. Users often say: sticker, white border, white outline, die-cut sticker, double outline, 贴画, 白边描边, çift çizgi.',
7
+ arguments: [
8
+ {
9
+ name: 'outline_style',
10
+ description: 'single (default: white border + shadow) or die_cut (white border + thin dark outer line).',
11
+ required: false,
12
+ },
13
+ {
14
+ name: 'stroke_position',
15
+ description: 'single only — where the stroke sits: outside (default sticker look), inside, or center.',
16
+ required: false,
17
+ },
18
+ ],
19
+ handler: (args) => {
20
+ const outlineStyle = argEnum(args, 'outline_style', OUTLINE_STYLES, 'single');
21
+ const position = argEnum(args, 'stroke_position', STROKE_POSITIONS, 'outside');
22
+ const text = [
23
+ `Goal: Give the active layer a one-click sticker look in a single undoable step — either a plain white border, or a die-cut double outline (white border + thin dark outer line).`,
24
+ ``,
25
+ `Plan:`,
26
+ `1. Call \`photoshop_get_state\` to confirm there is an active document and a non-group active layer (pixel, text, or smart object).`,
27
+ `2. If the layer still has a background behind it, call \`photoshop_recipe_remove_background\` first so the outline traces the subject, not the canvas.`,
28
+ `3. Call \`photoshop_recipe_sticker_outline\` with { outline_style: "${outlineStyle}", stroke_position: "${position}" }.`,
29
+ ` - single (default): a white stroke (width 12) plus a soft drop shadow on the active layer. Tune with stroke_width, stroke_opacity, red/green/blue.`,
30
+ ` - die_cut: adds two stroked copies — "<layer> - white border" (stroke_width) over "<layer> - dark line" (stroke_width + line_width). Tune line_width and line_red/green/blue. The original layer stays on top.`,
31
+ `4. Call \`photoshop_get_preview\` once to show the result.`,
32
+ `5. For a single plain effect instead, use \`photoshop_apply_layer_style\` — but note it applies one effect at a time, so stroke and shadow cannot be combined with it.`,
33
+ ``,
34
+ `End state: single sets a stroke effect on the active layer; die_cut adds two stroked copies. One undo reverts everything.`,
35
+ ].join('\n');
36
+ return userPrompt(`Sticker outline recipe (${outlineStyle}${outlineStyle === 'single' ? `, ${position} stroke` : ''}).`, text);
37
+ },
38
+ };
39
+ //# sourceMappingURL=sticker-outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticker-outline.js","sourceRoot":"","sources":["../../../src/prompts/templates/sticker-outline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAgC,MAAM,eAAe,CAAC;AAElF,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAClE,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAU,CAAC;AAEtD,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,oWAAoW;IACtW,SAAS,EAAE;QACT;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,2FAA2F;YAC7F,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG;YACX,kLAAkL;YAClL,EAAE;YACF,OAAO;YACP,qIAAqI;YACrI,wJAAwJ;YACxJ,uEAAuE,YAAY,wBAAwB,QAAQ,MAAM;YACzH,uJAAuJ;YACvJ,mNAAmN;YACnN,4DAA4D;YAC5D,wKAAwK;YACxK,EAAE;YACF,2HAA2H;SAC5H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,UAAU,CACf,2BAA2B,YAAY,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EACrG,IAAI,CACL,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ToolDefinition } from '../../core/tool-registry.js';
2
2
  import type { PhotoshopConnection } from '../../platform/connection.js';
3
3
  export declare function createRecipeTools(connection: PhotoshopConnection): ToolDefinition[];
4
- export declare const PHOTOSHOP_RECIPE_TOOL_NAMES: readonly ["photoshop_recipe_remove_background", "photoshop_recipe_enhance_portrait", "photoshop_recipe_prepare_for_web", "photoshop_recipe_export_social_variants", "photoshop_recipe_apply_color_grade", "photoshop_recipe_frequency_separation", "photoshop_recipe_batch_mockup_replace", "photoshop_recipe_organize_layers", "photoshop_recipe_gradient_fade", "photoshop_recipe_sky_blend", "photoshop_recipe_dodge_burn", "photoshop_recipe_remove_distraction", "photoshop_recipe_split_carousel", "photoshop_recipe_batch_watermark", "photoshop_recipe_passport_photo", "photoshop_recipe_csv_to_cards"];
4
+ export declare const PHOTOSHOP_RECIPE_TOOL_NAMES: readonly ["photoshop_recipe_remove_background", "photoshop_recipe_enhance_portrait", "photoshop_recipe_prepare_for_web", "photoshop_recipe_export_social_variants", "photoshop_recipe_apply_color_grade", "photoshop_recipe_frequency_separation", "photoshop_recipe_batch_mockup_replace", "photoshop_recipe_organize_layers", "photoshop_recipe_gradient_fade", "photoshop_recipe_sky_blend", "photoshop_recipe_dodge_burn", "photoshop_recipe_remove_distraction", "photoshop_recipe_split_carousel", "photoshop_recipe_batch_watermark", "photoshop_recipe_passport_photo", "photoshop_recipe_csv_to_cards", "photoshop_recipe_sticker_outline"];
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/recipes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAkBxE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,EAAE,CAmBnF;AAED,eAAO,MAAM,2BAA2B,klBAiB9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/recipes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAmBxE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,EAAE,CAoBnF;AAED,eAAO,MAAM,2BAA2B,snBAkB9B,CAAC"}
@@ -14,6 +14,7 @@ import { bindSplitCarousel } from './split-carousel.js';
14
14
  import { bindBatchWatermark } from './batch-watermark.js';
15
15
  import { bindPassportPhoto } from './passport-photo.js';
16
16
  import { bindCsvToCards } from './csv-to-cards.js';
17
+ import { bindStickerOutline } from './sticker-outline.js';
17
18
  export function createRecipeTools(connection) {
18
19
  return [
19
20
  bindRemoveBackground(connection),
@@ -32,6 +33,7 @@ export function createRecipeTools(connection) {
32
33
  bindBatchWatermark(connection),
33
34
  bindPassportPhoto(connection),
34
35
  bindCsvToCards(connection),
36
+ bindStickerOutline(connection),
35
37
  ];
36
38
  }
37
39
  export const PHOTOSHOP_RECIPE_TOOL_NAMES = [
@@ -51,5 +53,6 @@ export const PHOTOSHOP_RECIPE_TOOL_NAMES = [
51
53
  'photoshop_recipe_batch_watermark',
52
54
  'photoshop_recipe_passport_photo',
53
55
  'photoshop_recipe_csv_to_cards',
56
+ 'photoshop_recipe_sticker_outline',
54
57
  ];
55
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/recipes/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAAC,UAA+B;IAC/D,OAAO;QACL,oBAAoB,CAAC,UAAU,CAAC;QAChC,mBAAmB,CAAC,UAAU,CAAC;QAC/B,iBAAiB,CAAC,UAAU,CAAC;QAC7B,wBAAwB,CAAC,UAAU,CAAC;QACpC,mBAAmB,CAAC,UAAU,CAAC;QAC/B,uBAAuB,CAAC,UAAU,CAAC;QACnC,sBAAsB,CAAC,UAAU,CAAC;QAClC,kBAAkB,CAAC,UAAU,CAAC;QAC9B,gBAAgB,CAAC,UAAU,CAAC;QAC5B,YAAY,CAAC,UAAU,CAAC;QACxB,aAAa,CAAC,UAAU,CAAC;QACzB,qBAAqB,CAAC,UAAU,CAAC;QACjC,iBAAiB,CAAC,UAAU,CAAC;QAC7B,kBAAkB,CAAC,UAAU,CAAC;QAC9B,iBAAiB,CAAC,UAAU,CAAC;QAC7B,cAAc,CAAC,UAAU,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,oCAAoC;IACpC,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,oCAAoC;IACpC,uCAAuC;IACvC,uCAAuC;IACvC,kCAAkC;IAClC,gCAAgC;IAChC,4BAA4B;IAC5B,6BAA6B;IAC7B,qCAAqC;IACrC,iCAAiC;IACjC,kCAAkC;IAClC,iCAAiC;IACjC,+BAA+B;CACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/recipes/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,UAA+B;IAC/D,OAAO;QACL,oBAAoB,CAAC,UAAU,CAAC;QAChC,mBAAmB,CAAC,UAAU,CAAC;QAC/B,iBAAiB,CAAC,UAAU,CAAC;QAC7B,wBAAwB,CAAC,UAAU,CAAC;QACpC,mBAAmB,CAAC,UAAU,CAAC;QAC/B,uBAAuB,CAAC,UAAU,CAAC;QACnC,sBAAsB,CAAC,UAAU,CAAC;QAClC,kBAAkB,CAAC,UAAU,CAAC;QAC9B,gBAAgB,CAAC,UAAU,CAAC;QAC5B,YAAY,CAAC,UAAU,CAAC;QACxB,aAAa,CAAC,UAAU,CAAC;QACzB,qBAAqB,CAAC,UAAU,CAAC;QACjC,iBAAiB,CAAC,UAAU,CAAC;QAC7B,kBAAkB,CAAC,UAAU,CAAC;QAC9B,iBAAiB,CAAC,UAAU,CAAC;QAC7B,cAAc,CAAC,UAAU,CAAC;QAC1B,kBAAkB,CAAC,UAAU,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,oCAAoC;IACpC,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,oCAAoC;IACpC,uCAAuC;IACvC,uCAAuC;IACvC,kCAAkC;IAClC,gCAAgC;IAChC,4BAA4B;IAC5B,6BAA6B;IAC7B,qCAAqC;IACrC,iCAAiC;IACjC,kCAAkC;IAClC,iCAAiC;IACjC,+BAA+B;IAC/B,kCAAkC;CAC1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ToolDefinition } from '../../core/tool-registry.js';
2
+ import { PhotoshopConnection } from '../../platform/connection.js';
3
+ export declare function bindStickerOutline(connection: PhotoshopConnection): ToolDefinition;
4
+ //# sourceMappingURL=sticker-outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticker-outline.d.ts","sourceRoot":"","sources":["../../../src/tools/recipes/sticker-outline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAkBnE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,CAsIlF"}
@@ -0,0 +1,366 @@
1
+ import { clampInt, executeRecipe } from './_shared.js';
2
+ const TOOL_NAME = 'photoshop_recipe_sticker_outline';
3
+ const STROKE_POSITIONS = ['outside', 'inside', 'center'];
4
+ const OUTLINE_STYLES = ['single', 'die_cut'];
5
+ /** Maps the user-facing position onto the Photoshop `frameStyle` enum value. */
6
+ const FRAME_STYLE_BY_POSITION = {
7
+ outside: 'outsetFrame',
8
+ inside: 'insetFrame',
9
+ center: 'centeredFrame',
10
+ };
11
+ export function bindStickerOutline(connection) {
12
+ return {
13
+ tool: {
14
+ name: TOOL_NAME,
15
+ description: 'One-shot sticker / white-border outline. single: applies a solid stroke plus (optionally) a soft drop shadow to the active layer. die_cut: the classic double outline — a white border with a thin dark outer line — built by adding two stroked copies of the active layer. Both run in one undoable history step.\n' +
16
+ '\n' +
17
+ 'Users often say: sticker, white border, white outline, cut-out border, die-cut sticker, double outline, 贴画, 白边描边, 一键白边, sticker effect, kontur ekle, beyaz çerçeve, çift çizgi.\n' +
18
+ '\n' +
19
+ 'Use when: the user wants a sticker-style white outline around the active layer, optionally with a drop shadow, without assembling multiple layer styles by hand. Use outline_style="die_cut" when they ask for a die-cut / double-line sticker.\n' +
20
+ 'Do NOT use when: the user wants a single plain effect — use photoshop_apply_layer_style. Do NOT use when: the layer must first be isolated — use photoshop_recipe_remove_background first when there is still a background.\n' +
21
+ '\n' +
22
+ 'Returns: { ok, summary, undo_history_states_consumed, details: { outline_style, layer_name, stroke_width, stroke_position, stroke_rgb, shadow, border_layer?, line_layer? } }.\n' +
23
+ '\n' +
24
+ 'Preconditions: active document with a non-group active layer (pixel, text, or smart object). The white stroke defaults to 12px outside. die_cut forces the stroke outside and adds two layers named "<layer> - white border" and "<layer> - dark line".\n' +
25
+ 'Side effects: single sets the stroke (and adds/removes the drop shadow) on the active layer, preserving other existing effects. die_cut adds two stroked copies (original layer untouched on top). One undo reverts everything.',
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: {
29
+ red: {
30
+ type: 'number',
31
+ description: 'Stroke color red (0-255, default 255 = white)',
32
+ minimum: 0,
33
+ maximum: 255,
34
+ default: 255,
35
+ },
36
+ green: {
37
+ type: 'number',
38
+ description: 'Stroke color green (0-255, default 255 = white)',
39
+ minimum: 0,
40
+ maximum: 255,
41
+ default: 255,
42
+ },
43
+ blue: {
44
+ type: 'number',
45
+ description: 'Stroke color blue (0-255, default 255 = white)',
46
+ minimum: 0,
47
+ maximum: 255,
48
+ default: 255,
49
+ },
50
+ stroke_width: {
51
+ type: 'number',
52
+ description: 'Stroke width in pixels (default 12)',
53
+ minimum: 0,
54
+ maximum: 250,
55
+ default: 12,
56
+ },
57
+ stroke_opacity: {
58
+ type: 'number',
59
+ description: 'Stroke opacity (0-100, default 100)',
60
+ minimum: 0,
61
+ maximum: 100,
62
+ default: 100,
63
+ },
64
+ stroke_position: {
65
+ type: 'string',
66
+ description: 'Where the stroke sits relative to the layer edge: outside (default sticker look), inside, or center.',
67
+ enum: [...STROKE_POSITIONS],
68
+ default: 'outside',
69
+ },
70
+ shadow: {
71
+ type: 'boolean',
72
+ description: 'Add a soft drop shadow under the sticker (default true).',
73
+ default: true,
74
+ },
75
+ shadow_opacity: {
76
+ type: 'number',
77
+ description: 'Drop shadow opacity (0-100, default 40)',
78
+ minimum: 0,
79
+ maximum: 100,
80
+ default: 40,
81
+ },
82
+ shadow_size: {
83
+ type: 'number',
84
+ description: 'Drop shadow blur in pixels (default 12)',
85
+ minimum: 0,
86
+ maximum: 250,
87
+ default: 12,
88
+ },
89
+ shadow_distance: {
90
+ type: 'number',
91
+ description: 'Drop shadow offset distance in pixels (default 6)',
92
+ minimum: 0,
93
+ maximum: 250,
94
+ default: 6,
95
+ },
96
+ shadow_angle: {
97
+ type: 'number',
98
+ description: 'Drop shadow light angle in degrees (default 120)',
99
+ minimum: -360,
100
+ maximum: 360,
101
+ default: 120,
102
+ },
103
+ outline_style: {
104
+ type: 'string',
105
+ description: "single (default): white border + optional shadow on the active layer. die_cut: the classic double outline — a white border plus a thin dark outer line — built by adding two stroked copies of the active layer (the original stays on top; stroke_position is forced to 'outside').",
106
+ enum: [...OUTLINE_STYLES],
107
+ default: 'single',
108
+ },
109
+ line_width: {
110
+ type: 'number',
111
+ description: 'die_cut only: thickness of the dark outer line in pixels (default 3)',
112
+ minimum: 0,
113
+ maximum: 100,
114
+ default: 3,
115
+ },
116
+ line_red: {
117
+ type: 'number',
118
+ description: 'die_cut only: dark line color red (0-255, default 0 = black)',
119
+ minimum: 0,
120
+ maximum: 255,
121
+ default: 0,
122
+ },
123
+ line_green: {
124
+ type: 'number',
125
+ description: 'die_cut only: dark line color green (0-255, default 0 = black)',
126
+ minimum: 0,
127
+ maximum: 255,
128
+ default: 0,
129
+ },
130
+ line_blue: {
131
+ type: 'number',
132
+ description: 'die_cut only: dark line color blue (0-255, default 0 = black)',
133
+ minimum: 0,
134
+ maximum: 255,
135
+ default: 0,
136
+ },
137
+ },
138
+ },
139
+ },
140
+ handler: async (args) => runStickerOutline(connection, args),
141
+ };
142
+ }
143
+ async function runStickerOutline(connection, args) {
144
+ const red = clampInt(args.red, 0, 255, 255);
145
+ const green = clampInt(args.green, 0, 255, 255);
146
+ const blue = clampInt(args.blue, 0, 255, 255);
147
+ const strokeWidth = clampInt(args.stroke_width, 0, 250, 12);
148
+ const strokeOpacity = clampInt(args.stroke_opacity, 0, 100, 100);
149
+ const position = parseStrokePosition(args.stroke_position);
150
+ const frameStyle = FRAME_STYLE_BY_POSITION[position];
151
+ const shadow = args.shadow === undefined ? true : Boolean(args.shadow);
152
+ const shadowOpacity = clampInt(args.shadow_opacity, 0, 100, 40);
153
+ const shadowSize = clampInt(args.shadow_size, 0, 250, 12);
154
+ const shadowDistance = clampInt(args.shadow_distance, 0, 250, 6);
155
+ const shadowAngle = clampInt(args.shadow_angle, -360, 360, 120);
156
+ const outlineStyle = parseOutlineStyle(args.outline_style);
157
+ const lineWidth = clampInt(args.line_width, 0, 100, 3);
158
+ const lineRed = clampInt(args.line_red, 0, 255, 0);
159
+ const lineGreen = clampInt(args.line_green, 0, 255, 0);
160
+ const lineBlue = clampInt(args.line_blue, 0, 255, 0);
161
+ const body = `
162
+ var doc = app.activeDocument;
163
+ var layer = doc.activeLayer;
164
+ if (!layer) {
165
+ return { ok: false, code: 'no_active_layer', message: 'No active layer', suggested_next_tool: 'photoshop_get_state' };
166
+ }
167
+ if (layer.typename === 'LayerSet') {
168
+ return { ok: false, code: 'active_is_group', message: 'Active item is a layer group — select a pixel, text, or smart-object layer first.', suggested_next_tool: 'photoshop_get_state' };
169
+ }
170
+
171
+ // ---- die_cut: white border + thin dark outer line via two stroked copies ----
172
+ if ('${outlineStyle}' === 'die_cut') {
173
+ app.displayDialogs = DialogModes.NO;
174
+
175
+ function __mcp_dc_rgb(r, g, b) {
176
+ var c = new ActionDescriptor();
177
+ c.putDouble(cTID('Rd '), r);
178
+ c.putDouble(cTID('Grn '), g);
179
+ c.putDouble(cTID('Bl '), b);
180
+ return c;
181
+ }
182
+ function __mcp_dc_stroke(width, r, g, b, opacity) {
183
+ var fx = new ActionDescriptor();
184
+ fx.putBoolean(cTID('enab'), true);
185
+ fx.putEnumerated(sTID('style'), sTID('frameStyle'), sTID('outsetFrame'));
186
+ fx.putEnumerated(sTID('paintType'), sTID('frameFill'), sTID('solidColor'));
187
+ fx.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
188
+ fx.putUnitDouble(cTID('Opct'), cTID('#Prc'), opacity);
189
+ fx.putUnitDouble(cTID('Sz '), cTID('#Pxl'), width);
190
+ fx.putObject(cTID('Clr '), cTID('RGBC'), __mcp_dc_rgb(r, g, b));
191
+ fx.putBoolean(sTID('overprint'), false);
192
+ return fx;
193
+ }
194
+ function __mcp_dc_shadow(opacity, size, distance, angle) {
195
+ var sh = new ActionDescriptor();
196
+ sh.putBoolean(cTID('enab'), true);
197
+ sh.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Mltp'));
198
+ sh.putObject(cTID('Clr '), cTID('RGBC'), __mcp_dc_rgb(0, 0, 0));
199
+ sh.putUnitDouble(cTID('Opct'), cTID('#Prc'), opacity);
200
+ sh.putBoolean(cTID('uglg'), false);
201
+ sh.putUnitDouble(cTID('lagl'), cTID('#Ang'), angle);
202
+ sh.putUnitDouble(cTID('Dstn'), cTID('#Pxl'), distance);
203
+ sh.putUnitDouble(cTID('Ckmt'), cTID('#Pxl'), 0);
204
+ sh.putUnitDouble(cTID('blur'), cTID('#Pxl'), size);
205
+ sh.putUnitDouble(cTID('Nose'), cTID('#Prc'), 0);
206
+ sh.putBoolean(cTID('AntA'), false);
207
+ sh.putBoolean(sTID('layerConceals'), true);
208
+ return sh;
209
+ }
210
+ function __mcp_dc_apply(effects) {
211
+ var desc = new ActionDescriptor();
212
+ var setRef = new ActionReference();
213
+ setRef.putProperty(cTID('Prpr'), cTID('Lefx'));
214
+ setRef.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
215
+ desc.putReference(cTID('null'), setRef);
216
+ desc.putObject(cTID('T '), cTID('Lefx'), effects);
217
+ executeAction(cTID('setd'), desc, DialogModes.NO);
218
+ }
219
+
220
+ var original = layer;
221
+ var whiteCopy = original.duplicate();
222
+ whiteCopy.name = original.name + ' - white border';
223
+ var darkCopy = original.duplicate();
224
+ darkCopy.name = original.name + ' - dark line';
225
+
226
+ // Stack top -> bottom: original, whiteCopy (white border), darkCopy (thick dark line).
227
+ try { darkCopy.move(original, ElementPlacement.PLACEAFTER); } catch (eDcMove1) {}
228
+ try { whiteCopy.move(original, ElementPlacement.PLACEAFTER); } catch (eDcMove2) {}
229
+
230
+ var whiteFx = new ActionDescriptor();
231
+ whiteFx.putUnitDouble(cTID('Scl '), cTID('#Prc'), 100);
232
+ whiteFx.putObject(sTID('frameFX'), sTID('frameFX'), __mcp_dc_stroke(${strokeWidth}, ${red}, ${green}, ${blue}, ${strokeOpacity}));
233
+ doc.activeLayer = whiteCopy;
234
+ __mcp_dc_apply(whiteFx);
235
+
236
+ var darkFx = new ActionDescriptor();
237
+ darkFx.putUnitDouble(cTID('Scl '), cTID('#Prc'), 100);
238
+ darkFx.putObject(sTID('frameFX'), sTID('frameFX'), __mcp_dc_stroke(${strokeWidth + lineWidth}, ${lineRed}, ${lineGreen}, ${lineBlue}, ${strokeOpacity}));
239
+ if (${shadow ? 'true' : 'false'}) {
240
+ darkFx.putObject(cTID('DrSh'), cTID('DrSh'), __mcp_dc_shadow(${shadowOpacity}, ${shadowSize}, ${shadowDistance}, ${shadowAngle}));
241
+ }
242
+ doc.activeLayer = darkCopy;
243
+ __mcp_dc_apply(darkFx);
244
+
245
+ doc.activeLayer = original;
246
+
247
+ return {
248
+ ok: true,
249
+ summary: 'Die-cut sticker applied: ${strokeWidth}px white border + ${lineWidth}px dark line' + (${shadow ? 'true' : 'false'} ? ' + drop shadow' : ''),
250
+ undo_history_states_consumed: 1,
251
+ next_suggested_tool: 'photoshop_get_preview',
252
+ details: {
253
+ outline_style: 'die_cut',
254
+ layer_name: original.name,
255
+ stroke_width: ${strokeWidth},
256
+ stroke_position: 'outside',
257
+ stroke_rgb: [${red}, ${green}, ${blue}],
258
+ line_width: ${lineWidth},
259
+ line_rgb: [${lineRed}, ${lineGreen}, ${lineBlue}],
260
+ shadow: ${shadow ? 'true' : 'false'},
261
+ border_layer: whiteCopy.name,
262
+ line_layer: darkCopy.name
263
+ }
264
+ };
265
+ }
266
+
267
+ app.displayDialogs = DialogModes.NO;
268
+
269
+ function __mcp_sticker_rgb(r, g, b) {
270
+ var c = new ActionDescriptor();
271
+ c.putDouble(cTID('Rd '), r);
272
+ c.putDouble(cTID('Grn '), g);
273
+ c.putDouble(cTID('Bl '), b);
274
+ return c;
275
+ }
276
+
277
+ // Build a fresh Lefx descriptor (reliable) and carry over any unrelated effects the layer
278
+ // already had (glow, bevel, color overlay…). Only the stroke and the drop shadow are owned
279
+ // by this recipe — a pre-existing drop shadow is intentionally replaced.
280
+ var existing = new ActionDescriptor();
281
+ var getRef = new ActionReference();
282
+ getRef.putProperty(cTID('Prpr'), cTID('Lefx'));
283
+ getRef.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
284
+ var currentEffects = executeActionGet(getRef);
285
+ if (currentEffects.hasKey(cTID('Lefx'))) {
286
+ existing = currentEffects.getObjectValue(cTID('Lefx'));
287
+ }
288
+
289
+ var effects = new ActionDescriptor();
290
+ effects.putUnitDouble(cTID('Scl '), cTID('#Prc'), 100);
291
+
292
+ var __mcp_preserve = ['IrSh', 'OrGl', 'IrGl', 'ebbl', 'SoFi', 'ClrO', 'GrFl', 'PtFl'];
293
+ for (var __mcp_i = 0; __mcp_i < __mcp_preserve.length; __mcp_i++) {
294
+ var __mcp_pid = cTID(__mcp_preserve[__mcp_i]);
295
+ if (existing.hasKey(__mcp_pid)) {
296
+ effects.putObject(__mcp_pid, __mcp_pid, existing.getObjectValue(__mcp_pid));
297
+ }
298
+ }
299
+
300
+ var strokeFx = new ActionDescriptor();
301
+ strokeFx.putBoolean(cTID('enab'), true);
302
+ strokeFx.putEnumerated(sTID('style'), sTID('frameStyle'), sTID('${frameStyle}'));
303
+ strokeFx.putEnumerated(sTID('paintType'), sTID('frameFill'), sTID('solidColor'));
304
+ strokeFx.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
305
+ strokeFx.putUnitDouble(cTID('Opct'), cTID('#Prc'), ${strokeOpacity});
306
+ strokeFx.putUnitDouble(cTID('Sz '), cTID('#Pxl'), ${strokeWidth});
307
+ strokeFx.putObject(cTID('Clr '), cTID('RGBC'), __mcp_sticker_rgb(${red}, ${green}, ${blue}));
308
+ strokeFx.putBoolean(sTID('overprint'), false);
309
+ effects.putObject(sTID('frameFX'), sTID('frameFX'), strokeFx);
310
+
311
+ if (${shadow ? 'true' : 'false'}) {
312
+ var sh = new ActionDescriptor();
313
+ sh.putBoolean(cTID('enab'), true);
314
+ sh.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Mltp'));
315
+ sh.putObject(cTID('Clr '), cTID('RGBC'), __mcp_sticker_rgb(0, 0, 0));
316
+ sh.putUnitDouble(cTID('Opct'), cTID('#Prc'), ${shadowOpacity});
317
+ sh.putBoolean(cTID('uglg'), false);
318
+ sh.putUnitDouble(cTID('lagl'), cTID('#Ang'), ${shadowAngle});
319
+ sh.putUnitDouble(cTID('Dstn'), cTID('#Pxl'), ${shadowDistance});
320
+ sh.putUnitDouble(cTID('Ckmt'), cTID('#Pxl'), 0);
321
+ sh.putUnitDouble(cTID('blur'), cTID('#Pxl'), ${shadowSize});
322
+ sh.putUnitDouble(cTID('Nose'), cTID('#Prc'), 0);
323
+ sh.putBoolean(cTID('AntA'), false);
324
+ sh.putBoolean(sTID('layerConceals'), true);
325
+ effects.putObject(cTID('DrSh'), cTID('DrSh'), sh);
326
+ }
327
+ // shadow=false: DrSh is simply not carried over, so any pre-existing drop shadow is removed.
328
+
329
+ var desc = new ActionDescriptor();
330
+ var setRef = new ActionReference();
331
+ setRef.putProperty(cTID('Prpr'), cTID('Lefx'));
332
+ setRef.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
333
+ desc.putReference(cTID('null'), setRef);
334
+ desc.putObject(cTID('T '), cTID('Lefx'), effects);
335
+ executeAction(cTID('setd'), desc, DialogModes.NO);
336
+
337
+ return {
338
+ ok: true,
339
+ summary: 'Sticker outline applied: ${strokeWidth}px ${position} stroke' + (${shadow ? 'true' : 'false'} ? ' + drop shadow' : ''),
340
+ undo_history_states_consumed: 1,
341
+ next_suggested_tool: 'photoshop_get_preview',
342
+ details: {
343
+ outline_style: 'single',
344
+ layer_name: layer.name,
345
+ stroke_width: ${strokeWidth},
346
+ stroke_position: '${position}',
347
+ stroke_rgb: [${red}, ${green}, ${blue}],
348
+ shadow: ${shadow ? 'true' : 'false'}
349
+ }
350
+ };
351
+ `;
352
+ return executeRecipe(connection, 'Sticker Outline', body);
353
+ }
354
+ function parseStrokePosition(raw) {
355
+ if (typeof raw !== 'string')
356
+ return 'outside';
357
+ const v = raw.trim().toLowerCase();
358
+ return STROKE_POSITIONS.find((o) => o === v) ?? 'outside';
359
+ }
360
+ function parseOutlineStyle(raw) {
361
+ if (typeof raw !== 'string')
362
+ return 'single';
363
+ const v = raw.trim().toLowerCase();
364
+ return OUTLINE_STYLES.find((o) => o === v) ?? 'single';
365
+ }
366
+ //# sourceMappingURL=sticker-outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticker-outline.js","sourceRoot":"","sources":["../../../src/tools/recipes/sticker-outline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alisaitteke/photoshop-mcp",
3
- "version": "1.7.32",
4
- "description": "MCP server for Adobe Photoshop — 127 tools (generative AI + recipes), standalone web UI. Control Photoshop from Cursor, Claude, or natural language.",
3
+ "version": "1.7.34",
4
+ "description": "MCP server for Adobe Photoshop — 128 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": {
@@ -41,6 +41,7 @@
41
41
  "verify:photoshop-prompts": "tsx scripts/verify-photoshop-prompt-coverage.ts",
42
42
  "verify:pack": "node scripts/verify-pack.mjs",
43
43
  "test:mcp-local": "tsx scripts/test-mcp-local.ts",
44
+ "test:sticker-outline": "tsx scripts/test-sticker-outline.ts",
44
45
  "test:ui-auth": "tsx scripts/test-ui-auth.ts",
45
46
  "test:mcp-all": "tsx scripts/test-all-mcp-tools.ts",
46
47
  "test:intent-expansion": "tsx scripts/test-intent-expansion-local.ts",