illustrator-mcp-server 1.0.0 → 1.1.1
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/README.ja.md +23 -19
- package/README.md +26 -20
- package/dist/executor/file-transport.d.ts.map +1 -1
- package/dist/executor/file-transport.js +20 -3
- package/dist/executor/file-transport.js.map +1 -1
- package/dist/executor/jsx-runner.d.ts +6 -0
- package/dist/executor/jsx-runner.d.ts.map +1 -1
- package/dist/executor/jsx-runner.js +29 -2
- package/dist/executor/jsx-runner.js.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/export/export-pdf.d.ts.map +1 -1
- package/dist/tools/export/export-pdf.js +2 -7
- package/dist/tools/export/export-pdf.js.map +1 -1
- package/dist/tools/export/export.d.ts.map +1 -1
- package/dist/tools/export/export.js +2 -14
- package/dist/tools/export/export.js.map +1 -1
- package/dist/tools/modify/apply-color-profile.d.ts.map +1 -1
- package/dist/tools/modify/apply-color-profile.js +2 -7
- package/dist/tools/modify/apply-color-profile.js.map +1 -1
- package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
- package/dist/tools/modify/convert-to-outlines.js +2 -7
- package/dist/tools/modify/convert-to-outlines.js.map +1 -1
- package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
- package/dist/tools/modify/create-ellipse.js +7 -55
- package/dist/tools/modify/create-ellipse.js.map +1 -1
- package/dist/tools/modify/create-line.d.ts.map +1 -1
- package/dist/tools/modify/create-line.js +6 -42
- package/dist/tools/modify/create-line.js.map +1 -1
- package/dist/tools/modify/create-path.d.ts.map +1 -1
- package/dist/tools/modify/create-path.js +7 -57
- package/dist/tools/modify/create-path.js.map +1 -1
- package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
- package/dist/tools/modify/create-rectangle.js +7 -55
- package/dist/tools/modify/create-rectangle.js.map +1 -1
- package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
- package/dist/tools/modify/create-text-frame.js +5 -35
- package/dist/tools/modify/create-text-frame.js.map +1 -1
- package/dist/tools/modify/modify-object.d.ts.map +1 -1
- package/dist/tools/modify/modify-object.js +10 -56
- package/dist/tools/modify/modify-object.js.map +1 -1
- package/dist/tools/modify/shared.d.ts +34 -0
- package/dist/tools/modify/shared.d.ts.map +1 -0
- package/dist/tools/modify/shared.js +76 -0
- package/dist/tools/modify/shared.js.map +1 -0
- package/dist/tools/read/get-effects.d.ts.map +1 -1
- package/dist/tools/read/get-effects.js +1 -3
- package/dist/tools/read/get-effects.js.map +1 -1
- package/dist/tools/read/get-images.d.ts.map +1 -1
- package/dist/tools/read/get-images.js +45 -5
- package/dist/tools/read/get-images.js.map +1 -1
- package/dist/tools/read/list-text-frames.js +3 -3
- package/dist/tools/utility/preflight-check.d.ts.map +1 -1
- package/dist/tools/utility/preflight-check.js +102 -33
- package/dist/tools/utility/preflight-check.js.map +1 -1
- package/dist/utils/image-header.d.ts +11 -0
- package/dist/utils/image-header.d.ts.map +1 -0
- package/dist/utils/image-header.js +174 -0
- package/dist/utils/image-header.js.map +1 -0
- package/package.json +4 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeJsx } from '../../executor/jsx-runner.js';
|
|
3
|
+
import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
|
|
3
4
|
const jsxCode = `
|
|
4
5
|
var preflight = preflightChecks();
|
|
5
6
|
if (preflight) {
|
|
@@ -9,26 +10,7 @@ if (preflight) {
|
|
|
9
10
|
var params = readParamsFile(PARAMS_PATH);
|
|
10
11
|
var doc = app.activeDocument;
|
|
11
12
|
var coordSystem = params.coordinate_system || "artboard-web";
|
|
12
|
-
|
|
13
|
-
function createColor(colorObj) {
|
|
14
|
-
if (!colorObj || colorObj.type === "none") return new NoColor();
|
|
15
|
-
if (colorObj.type === "cmyk") {
|
|
16
|
-
var c = new CMYKColor();
|
|
17
|
-
c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
|
|
18
|
-
c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
|
|
19
|
-
c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
|
|
20
|
-
c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
|
|
21
|
-
return c;
|
|
22
|
-
}
|
|
23
|
-
if (colorObj.type === "rgb") {
|
|
24
|
-
var c = new RGBColor();
|
|
25
|
-
c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
|
|
26
|
-
c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
|
|
27
|
-
c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
|
|
28
|
-
return c;
|
|
29
|
-
}
|
|
30
|
-
return new NoColor();
|
|
31
|
-
}
|
|
13
|
+
${COLOR_HELPERS_JSX}
|
|
32
14
|
|
|
33
15
|
var inputX = params.x;
|
|
34
16
|
var inputY = params.y;
|
|
@@ -58,20 +40,8 @@ if (preflight) {
|
|
|
58
40
|
|
|
59
41
|
var ellipse = targetLayer.pathItems.ellipse(top, left, w, h);
|
|
60
42
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
ellipse.fillColor = createColor(params.fill);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (params.stroke) {
|
|
67
|
-
ellipse.stroked = true;
|
|
68
|
-
if (params.stroke.color) {
|
|
69
|
-
ellipse.strokeColor = createColor(params.stroke.color);
|
|
70
|
-
}
|
|
71
|
-
if (typeof params.stroke.width === "number") {
|
|
72
|
-
ellipse.strokeWidth = params.stroke.width;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
43
|
+
applyOptionalFill(ellipse, params.fill);
|
|
44
|
+
applyStroke(ellipse, params.stroke, ellipse.stroked);
|
|
75
45
|
|
|
76
46
|
if (params.name) {
|
|
77
47
|
ellipse.name = params.name;
|
|
@@ -84,35 +54,17 @@ if (preflight) {
|
|
|
84
54
|
}
|
|
85
55
|
}
|
|
86
56
|
`;
|
|
87
|
-
const colorSchema = z
|
|
88
|
-
.object({
|
|
89
|
-
type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
|
|
90
|
-
c: z.number().optional(),
|
|
91
|
-
m: z.number().optional(),
|
|
92
|
-
y: z.number().optional(),
|
|
93
|
-
k: z.number().optional(),
|
|
94
|
-
r: z.number().optional(),
|
|
95
|
-
g: z.number().optional(),
|
|
96
|
-
b: z.number().optional(),
|
|
97
|
-
})
|
|
98
|
-
.optional();
|
|
99
57
|
export function register(server) {
|
|
100
58
|
server.registerTool('create_ellipse', {
|
|
101
59
|
title: 'Create Ellipse',
|
|
102
|
-
description: 'Create an ellipse',
|
|
60
|
+
description: 'Create an ellipse. Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
103
61
|
inputSchema: {
|
|
104
62
|
x: z.number().describe('Bounding box top-left X coordinate'),
|
|
105
63
|
y: z.number().describe('Bounding box top-left Y coordinate'),
|
|
106
64
|
width: z.number().describe('Width'),
|
|
107
65
|
height: z.number().describe('Height'),
|
|
108
66
|
fill: colorSchema.describe('Fill color'),
|
|
109
|
-
stroke:
|
|
110
|
-
.object({
|
|
111
|
-
color: colorSchema.describe('Stroke color'),
|
|
112
|
-
width: z.number().describe('Stroke width'),
|
|
113
|
-
})
|
|
114
|
-
.optional()
|
|
115
|
-
.describe('Stroke settings'),
|
|
67
|
+
stroke: strokeSchema.describe('Stroke settings'),
|
|
116
68
|
layer_name: z.string().optional().describe('Target layer name'),
|
|
117
69
|
name: z.string().optional().describe('Object name'),
|
|
118
70
|
coordinate_system: z
|
|
@@ -128,7 +80,7 @@ export function register(server) {
|
|
|
128
80
|
openWorldHint: false,
|
|
129
81
|
},
|
|
130
82
|
}, async (params) => {
|
|
131
|
-
const result = await executeJsx(jsxCode, params);
|
|
83
|
+
const result = await executeJsx(jsxCode, params, { activate: true });
|
|
132
84
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
133
85
|
});
|
|
134
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ellipse.js","sourceRoot":"","sources":["../../../src/tools/modify/create-ellipse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ellipse.js","sourceRoot":"","sources":["../../../src/tools/modify/create-ellipse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC5D,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-line.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-line.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6EpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ChD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeJsx } from '../../executor/jsx-runner.js';
|
|
3
|
+
import { colorSchema, COLOR_HELPERS_JSX } from './shared.js';
|
|
3
4
|
const jsxCode = `
|
|
4
5
|
var preflight = preflightChecks();
|
|
5
6
|
if (preflight) {
|
|
@@ -9,26 +10,7 @@ if (preflight) {
|
|
|
9
10
|
var params = readParamsFile(PARAMS_PATH);
|
|
10
11
|
var doc = app.activeDocument;
|
|
11
12
|
var coordSystem = params.coordinate_system || "artboard-web";
|
|
12
|
-
|
|
13
|
-
function createColor(colorObj) {
|
|
14
|
-
if (!colorObj || colorObj.type === "none") return new NoColor();
|
|
15
|
-
if (colorObj.type === "cmyk") {
|
|
16
|
-
var c = new CMYKColor();
|
|
17
|
-
c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
|
|
18
|
-
c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
|
|
19
|
-
c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
|
|
20
|
-
c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
|
|
21
|
-
return c;
|
|
22
|
-
}
|
|
23
|
-
if (colorObj.type === "rgb") {
|
|
24
|
-
var c = new RGBColor();
|
|
25
|
-
c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
|
|
26
|
-
c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
|
|
27
|
-
c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
|
|
28
|
-
return c;
|
|
29
|
-
}
|
|
30
|
-
return new NoColor();
|
|
31
|
-
}
|
|
13
|
+
${COLOR_HELPERS_JSX}
|
|
32
14
|
|
|
33
15
|
var ix1 = params.x1;
|
|
34
16
|
var iy1 = params.y1;
|
|
@@ -65,13 +47,7 @@ if (preflight) {
|
|
|
65
47
|
line.filled = false;
|
|
66
48
|
|
|
67
49
|
if (params.stroke) {
|
|
68
|
-
line.
|
|
69
|
-
if (params.stroke.color) {
|
|
70
|
-
line.strokeColor = createColor(params.stroke.color);
|
|
71
|
-
}
|
|
72
|
-
if (typeof params.stroke.width === "number") {
|
|
73
|
-
line.strokeWidth = params.stroke.width;
|
|
74
|
-
}
|
|
50
|
+
applyStroke(line, params.stroke, true);
|
|
75
51
|
if (params.stroke.cap) {
|
|
76
52
|
if (params.stroke.cap === "round") {
|
|
77
53
|
line.strokeCap = StrokeCap.ROUNDENDCAP;
|
|
@@ -96,22 +72,10 @@ if (preflight) {
|
|
|
96
72
|
}
|
|
97
73
|
}
|
|
98
74
|
`;
|
|
99
|
-
const colorSchema = z
|
|
100
|
-
.object({
|
|
101
|
-
type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
|
|
102
|
-
c: z.number().optional(),
|
|
103
|
-
m: z.number().optional(),
|
|
104
|
-
y: z.number().optional(),
|
|
105
|
-
k: z.number().optional(),
|
|
106
|
-
r: z.number().optional(),
|
|
107
|
-
g: z.number().optional(),
|
|
108
|
-
b: z.number().optional(),
|
|
109
|
-
})
|
|
110
|
-
.optional();
|
|
111
75
|
export function register(server) {
|
|
112
76
|
server.registerTool('create_line', {
|
|
113
77
|
title: 'Create Line',
|
|
114
|
-
description: 'Create a line',
|
|
78
|
+
description: 'Create a line. Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
115
79
|
inputSchema: {
|
|
116
80
|
x1: z.number().describe('Start point X coordinate'),
|
|
117
81
|
y1: z.number().describe('Start point Y coordinate'),
|
|
@@ -120,7 +84,7 @@ export function register(server) {
|
|
|
120
84
|
stroke: z
|
|
121
85
|
.object({
|
|
122
86
|
color: colorSchema.describe('Stroke color'),
|
|
123
|
-
width: z.number().describe('Stroke width'),
|
|
87
|
+
width: z.number().optional().describe('Stroke width'),
|
|
124
88
|
cap: z
|
|
125
89
|
.enum(['butt', 'round', 'projecting'])
|
|
126
90
|
.optional()
|
|
@@ -143,7 +107,7 @@ export function register(server) {
|
|
|
143
107
|
openWorldHint: false,
|
|
144
108
|
},
|
|
145
109
|
}, async (params) => {
|
|
146
|
-
const result = await executeJsx(jsxCode, params);
|
|
110
|
+
const result = await executeJsx(jsxCode, params, { activate: true });
|
|
147
111
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
148
112
|
});
|
|
149
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-line.js","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-line.js","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8FAA8F;QAC3G,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjD,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC;gBACN,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACrD,GAAG,EAAE,CAAC;qBACH,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBACrC,QAAQ,EAAE;qBACV,QAAQ,CAAC,gBAAgB,CAAC;aAC9B,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,iBAAiB,CAAC;YAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-path.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-path.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqHpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+BhD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeJsx } from '../../executor/jsx-runner.js';
|
|
3
|
+
import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
|
|
3
4
|
const jsxCode = `
|
|
4
5
|
var preflight = preflightChecks();
|
|
5
6
|
if (preflight) {
|
|
@@ -9,26 +10,7 @@ if (preflight) {
|
|
|
9
10
|
var params = readParamsFile(PARAMS_PATH);
|
|
10
11
|
var doc = app.activeDocument;
|
|
11
12
|
var coordSystem = params.coordinate_system || "artboard-web";
|
|
12
|
-
|
|
13
|
-
function createColor(colorObj) {
|
|
14
|
-
if (!colorObj || colorObj.type === "none") return new NoColor();
|
|
15
|
-
if (colorObj.type === "cmyk") {
|
|
16
|
-
var c = new CMYKColor();
|
|
17
|
-
c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
|
|
18
|
-
c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
|
|
19
|
-
c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
|
|
20
|
-
c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
|
|
21
|
-
return c;
|
|
22
|
-
}
|
|
23
|
-
if (colorObj.type === "rgb") {
|
|
24
|
-
var c = new RGBColor();
|
|
25
|
-
c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
|
|
26
|
-
c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
|
|
27
|
-
c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
|
|
28
|
-
return c;
|
|
29
|
-
}
|
|
30
|
-
return new NoColor();
|
|
31
|
-
}
|
|
13
|
+
${COLOR_HELPERS_JSX}
|
|
32
14
|
|
|
33
15
|
function webToAiCoords(x, y, artboardRect) {
|
|
34
16
|
if (artboardRect) {
|
|
@@ -92,22 +74,8 @@ if (preflight) {
|
|
|
92
74
|
}
|
|
93
75
|
}
|
|
94
76
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
path.fillColor = createColor(params.fill);
|
|
98
|
-
} else {
|
|
99
|
-
path.filled = false;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (params.stroke) {
|
|
103
|
-
path.stroked = true;
|
|
104
|
-
if (params.stroke.color) {
|
|
105
|
-
path.strokeColor = createColor(params.stroke.color);
|
|
106
|
-
}
|
|
107
|
-
if (typeof params.stroke.width === "number") {
|
|
108
|
-
path.strokeWidth = params.stroke.width;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
77
|
+
applyOptionalFill(path, params.fill);
|
|
78
|
+
applyStroke(path, params.stroke, path.stroked);
|
|
111
79
|
|
|
112
80
|
if (params.name) {
|
|
113
81
|
path.name = params.name;
|
|
@@ -120,18 +88,6 @@ if (preflight) {
|
|
|
120
88
|
}
|
|
121
89
|
}
|
|
122
90
|
`;
|
|
123
|
-
const colorSchema = z
|
|
124
|
-
.object({
|
|
125
|
-
type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
|
|
126
|
-
c: z.number().optional(),
|
|
127
|
-
m: z.number().optional(),
|
|
128
|
-
y: z.number().optional(),
|
|
129
|
-
k: z.number().optional(),
|
|
130
|
-
r: z.number().optional(),
|
|
131
|
-
g: z.number().optional(),
|
|
132
|
-
b: z.number().optional(),
|
|
133
|
-
})
|
|
134
|
-
.optional();
|
|
135
91
|
const anchorSchema = z.object({
|
|
136
92
|
x: z.number().describe('Anchor point X coordinate'),
|
|
137
93
|
y: z.number().describe('Anchor point Y coordinate'),
|
|
@@ -158,18 +114,12 @@ const anchorSchema = z.object({
|
|
|
158
114
|
export function register(server) {
|
|
159
115
|
server.registerTool('create_path', {
|
|
160
116
|
title: 'Create Path',
|
|
161
|
-
description: 'Create a custom path',
|
|
117
|
+
description: 'Create a custom path. Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
162
118
|
inputSchema: {
|
|
163
119
|
anchors: z.array(anchorSchema).describe('Array of anchor points'),
|
|
164
120
|
closed: z.boolean().optional().default(false).describe('Whether to close the path'),
|
|
165
121
|
fill: colorSchema.describe('Fill color'),
|
|
166
|
-
stroke:
|
|
167
|
-
.object({
|
|
168
|
-
color: colorSchema.describe('Stroke color'),
|
|
169
|
-
width: z.number().describe('Stroke width'),
|
|
170
|
-
})
|
|
171
|
-
.optional()
|
|
172
|
-
.describe('Stroke settings'),
|
|
122
|
+
stroke: strokeSchema.describe('Stroke settings'),
|
|
173
123
|
layer_name: z.string().optional().describe('Target layer name'),
|
|
174
124
|
name: z.string().optional().describe('Object name'),
|
|
175
125
|
coordinate_system: z
|
|
@@ -185,7 +135,7 @@ export function register(server) {
|
|
|
185
135
|
openWorldHint: false,
|
|
186
136
|
},
|
|
187
137
|
}, async (params) => {
|
|
188
|
-
const result = await executeJsx(jsxCode, params);
|
|
138
|
+
const result = await executeJsx(jsxCode, params, { activate: true });
|
|
189
139
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
190
140
|
});
|
|
191
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-path.js","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-path.js","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EtB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACnD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACnD,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;IACjD,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1B,QAAQ,EAAE;SACV,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,YAAY,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACnF,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-rectangle.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-rectangle.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiEpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkChD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeJsx } from '../../executor/jsx-runner.js';
|
|
3
|
+
import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
|
|
3
4
|
const jsxCode = `
|
|
4
5
|
var preflight = preflightChecks();
|
|
5
6
|
if (preflight) {
|
|
@@ -9,26 +10,7 @@ if (preflight) {
|
|
|
9
10
|
var params = readParamsFile(PARAMS_PATH);
|
|
10
11
|
var doc = app.activeDocument;
|
|
11
12
|
var coordSystem = params.coordinate_system || "artboard-web";
|
|
12
|
-
|
|
13
|
-
function createColor(colorObj) {
|
|
14
|
-
if (!colorObj || colorObj.type === "none") return new NoColor();
|
|
15
|
-
if (colorObj.type === "cmyk") {
|
|
16
|
-
var c = new CMYKColor();
|
|
17
|
-
c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
|
|
18
|
-
c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
|
|
19
|
-
c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
|
|
20
|
-
c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
|
|
21
|
-
return c;
|
|
22
|
-
}
|
|
23
|
-
if (colorObj.type === "rgb") {
|
|
24
|
-
var c = new RGBColor();
|
|
25
|
-
c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
|
|
26
|
-
c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
|
|
27
|
-
c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
|
|
28
|
-
return c;
|
|
29
|
-
}
|
|
30
|
-
return new NoColor();
|
|
31
|
-
}
|
|
13
|
+
${COLOR_HELPERS_JSX}
|
|
32
14
|
|
|
33
15
|
var inputX = params.x;
|
|
34
16
|
var inputY = params.y;
|
|
@@ -64,20 +46,8 @@ if (preflight) {
|
|
|
64
46
|
rect = targetLayer.pathItems.rectangle(top, left, w, h);
|
|
65
47
|
}
|
|
66
48
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
rect.fillColor = createColor(params.fill);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (params.stroke) {
|
|
73
|
-
rect.stroked = true;
|
|
74
|
-
if (params.stroke.color) {
|
|
75
|
-
rect.strokeColor = createColor(params.stroke.color);
|
|
76
|
-
}
|
|
77
|
-
if (typeof params.stroke.width === "number") {
|
|
78
|
-
rect.strokeWidth = params.stroke.width;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
49
|
+
applyOptionalFill(rect, params.fill);
|
|
50
|
+
applyStroke(rect, params.stroke, rect.stroked);
|
|
81
51
|
|
|
82
52
|
if (params.name) {
|
|
83
53
|
rect.name = params.name;
|
|
@@ -90,22 +60,10 @@ if (preflight) {
|
|
|
90
60
|
}
|
|
91
61
|
}
|
|
92
62
|
`;
|
|
93
|
-
const colorSchema = z
|
|
94
|
-
.object({
|
|
95
|
-
type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
|
|
96
|
-
c: z.number().optional(),
|
|
97
|
-
m: z.number().optional(),
|
|
98
|
-
y: z.number().optional(),
|
|
99
|
-
k: z.number().optional(),
|
|
100
|
-
r: z.number().optional(),
|
|
101
|
-
g: z.number().optional(),
|
|
102
|
-
b: z.number().optional(),
|
|
103
|
-
})
|
|
104
|
-
.optional();
|
|
105
63
|
export function register(server) {
|
|
106
64
|
server.registerTool('create_rectangle', {
|
|
107
65
|
title: 'Create Rectangle',
|
|
108
|
-
description: 'Create a rectangle',
|
|
66
|
+
description: 'Create a rectangle. Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
109
67
|
inputSchema: {
|
|
110
68
|
x: z.number().describe('Top-left X coordinate'),
|
|
111
69
|
y: z.number().describe('Top-left Y coordinate'),
|
|
@@ -113,13 +71,7 @@ export function register(server) {
|
|
|
113
71
|
height: z.number().describe('Height'),
|
|
114
72
|
corner_radius: z.number().optional().default(0).describe('Corner radius'),
|
|
115
73
|
fill: colorSchema.describe('Fill color'),
|
|
116
|
-
stroke:
|
|
117
|
-
.object({
|
|
118
|
-
color: colorSchema.describe('Stroke color'),
|
|
119
|
-
width: z.number().describe('Stroke width'),
|
|
120
|
-
})
|
|
121
|
-
.optional()
|
|
122
|
-
.describe('Stroke settings'),
|
|
74
|
+
stroke: strokeSchema.describe('Stroke settings'),
|
|
123
75
|
layer_name: z.string().optional().describe('Target layer name'),
|
|
124
76
|
name: z.string().optional().describe('Object name'),
|
|
125
77
|
coordinate_system: z
|
|
@@ -135,7 +87,7 @@ export function register(server) {
|
|
|
135
87
|
openWorldHint: false,
|
|
136
88
|
},
|
|
137
89
|
}, async (params) => {
|
|
138
|
-
const result = await executeJsx(jsxCode, params);
|
|
90
|
+
const result = await executeJsx(jsxCode, params, { activate: true });
|
|
139
91
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
140
92
|
});
|
|
141
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-rectangle.js","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-rectangle.js","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mGAAmG;QAChH,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-text-frame.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-text-frame.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwChD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeJsx } from '../../executor/jsx-runner.js';
|
|
3
|
+
import { colorSchema, COLOR_HELPERS_JSX } from './shared.js';
|
|
3
4
|
const jsxCode = `
|
|
4
5
|
var preflight = preflightChecks();
|
|
5
6
|
if (preflight) {
|
|
@@ -9,26 +10,7 @@ if (preflight) {
|
|
|
9
10
|
var params = readParamsFile(PARAMS_PATH);
|
|
10
11
|
var doc = app.activeDocument;
|
|
11
12
|
var coordSystem = params.coordinate_system || "artboard-web";
|
|
12
|
-
|
|
13
|
-
function createColor(colorObj) {
|
|
14
|
-
if (!colorObj || colorObj.type === "none") return new NoColor();
|
|
15
|
-
if (colorObj.type === "cmyk") {
|
|
16
|
-
var c = new CMYKColor();
|
|
17
|
-
c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
|
|
18
|
-
c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
|
|
19
|
-
c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
|
|
20
|
-
c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
|
|
21
|
-
return c;
|
|
22
|
-
}
|
|
23
|
-
if (colorObj.type === "rgb") {
|
|
24
|
-
var c = new RGBColor();
|
|
25
|
-
c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
|
|
26
|
-
c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
|
|
27
|
-
c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
|
|
28
|
-
return c;
|
|
29
|
-
}
|
|
30
|
-
return new NoColor();
|
|
31
|
-
}
|
|
13
|
+
${COLOR_HELPERS_JSX}
|
|
32
14
|
|
|
33
15
|
function webToAiCoords(x, y, artboardRect) {
|
|
34
16
|
if (artboardRect) {
|
|
@@ -91,7 +73,7 @@ if (preflight) {
|
|
|
91
73
|
charAttrs.size = params.font_size;
|
|
92
74
|
}
|
|
93
75
|
|
|
94
|
-
if (params.fill) {
|
|
76
|
+
if (typeof params.fill !== "undefined") {
|
|
95
77
|
charAttrs.fillColor = createColor(params.fill);
|
|
96
78
|
}
|
|
97
79
|
|
|
@@ -102,22 +84,10 @@ if (preflight) {
|
|
|
102
84
|
}
|
|
103
85
|
}
|
|
104
86
|
`;
|
|
105
|
-
const colorSchema = z
|
|
106
|
-
.object({
|
|
107
|
-
type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
|
|
108
|
-
c: z.number().optional(),
|
|
109
|
-
m: z.number().optional(),
|
|
110
|
-
y: z.number().optional(),
|
|
111
|
-
k: z.number().optional(),
|
|
112
|
-
r: z.number().optional(),
|
|
113
|
-
g: z.number().optional(),
|
|
114
|
-
b: z.number().optional(),
|
|
115
|
-
})
|
|
116
|
-
.optional();
|
|
117
87
|
export function register(server) {
|
|
118
88
|
server.registerTool('create_text_frame', {
|
|
119
89
|
title: 'Create Text Frame',
|
|
120
|
-
description: 'Create a text frame',
|
|
90
|
+
description: 'Create a text frame. Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
121
91
|
inputSchema: {
|
|
122
92
|
x: z.number().describe('X coordinate'),
|
|
123
93
|
y: z.number().describe('Y coordinate'),
|
|
@@ -147,7 +117,7 @@ export function register(server) {
|
|
|
147
117
|
openWorldHint: false,
|
|
148
118
|
},
|
|
149
119
|
}, async (params) => {
|
|
150
|
-
const result = await executeJsx(jsxCode, params);
|
|
120
|
+
const result = await executeJsx(jsxCode, params, { activate: true });
|
|
151
121
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
152
122
|
});
|
|
153
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-text-frame.js","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-text-frame.js","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9C,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBACvB,QAAQ,EAAE;iBACV,OAAO,CAAC,OAAO,CAAC;iBAChB,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC3D,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modify-object.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/modify-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"modify-object.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/modify-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoDhD"}
|