indesign-cli 0.2.0__py3-none-any.whl
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.
- cli_anything/indesign/README.md +32 -0
- cli_anything/indesign/__init__.py +1 -0
- cli_anything/indesign/__main__.py +5 -0
- cli_anything/indesign/core/artifacts.py +57 -0
- cli_anything/indesign/core/catalog.py +405 -0
- cli_anything/indesign/core/domains.py +178 -0
- cli_anything/indesign/core/envelope.py +65 -0
- cli_anything/indesign/core/errors.py +30 -0
- cli_anything/indesign/core/health.py +46 -0
- cli_anything/indesign/core/hidden_backend.py +116 -0
- cli_anything/indesign/core/hidden_handler_schemas.py +223 -0
- cli_anything/indesign/core/mcp_backend.py +152 -0
- cli_anything/indesign/core/node_setup.py +35 -0
- cli_anything/indesign/core/paths.py +41 -0
- cli_anything/indesign/core/plugins/__init__.py +2 -0
- cli_anything/indesign/core/plugins/backend.py +90 -0
- cli_anything/indesign/core/plugins/discovery.py +69 -0
- cli_anything/indesign/core/plugins/host_actions.py +76 -0
- cli_anything/indesign/core/plugins/install.py +38 -0
- cli_anything/indesign/core/plugins/manifest.py +279 -0
- cli_anything/indesign/core/plugins/validate.py +181 -0
- cli_anything/indesign/core/router.py +217 -0
- cli_anything/indesign/core/runtime.py +59 -0
- cli_anything/indesign/core/scripts.py +44 -0
- cli_anything/indesign/core/session.py +68 -0
- cli_anything/indesign/indesign_cli.py +320 -0
- cli_anything/indesign/node/hidden_handler_bridge.mjs +111 -0
- cli_anything/indesign/server/package-lock.json +168 -0
- cli_anything/indesign/server/package.json +45 -0
- cli_anything/indesign/server/src/advanced/index.js +76 -0
- cli_anything/indesign/server/src/core/InDesignMCPServer.js +273 -0
- cli_anything/indesign/server/src/core/scriptExecutor.js +271 -0
- cli_anything/indesign/server/src/core/sessionManager.js +545 -0
- cli_anything/indesign/server/src/handlers/advancedTemplateHandlers.js +1072 -0
- cli_anything/indesign/server/src/handlers/bookHandlers.js +490 -0
- cli_anything/indesign/server/src/handlers/documentHandlers.js +1472 -0
- cli_anything/indesign/server/src/handlers/exportHandlers.js +208 -0
- cli_anything/indesign/server/src/handlers/graphicsHandlers.js +605 -0
- cli_anything/indesign/server/src/handlers/groupHandlers.js +358 -0
- cli_anything/indesign/server/src/handlers/helpHandlers.js +347 -0
- cli_anything/indesign/server/src/handlers/index.js +77 -0
- cli_anything/indesign/server/src/handlers/layerHandlers.js +75 -0
- cli_anything/indesign/server/src/handlers/masterSpreadHandlers.js +451 -0
- cli_anything/indesign/server/src/handlers/pageHandlers.js +698 -0
- cli_anything/indesign/server/src/handlers/pageItemHandlers.js +704 -0
- cli_anything/indesign/server/src/handlers/presentationHandlers.js +220 -0
- cli_anything/indesign/server/src/handlers/spreadHandlers.js +348 -0
- cli_anything/indesign/server/src/handlers/styleHandlers.js +458 -0
- cli_anything/indesign/server/src/handlers/textHandlers.js +431 -0
- cli_anything/indesign/server/src/handlers/utilityHandlers.js +83 -0
- cli_anything/indesign/server/src/index.js +17 -0
- cli_anything/indesign/server/src/types/index.js +106 -0
- cli_anything/indesign/server/src/types/toolDefinitionsAdvancedTemplates.js +144 -0
- cli_anything/indesign/server/src/types/toolDefinitionsBook.js +224 -0
- cli_anything/indesign/server/src/types/toolDefinitionsContent.js +353 -0
- cli_anything/indesign/server/src/types/toolDefinitionsDocument.js +409 -0
- cli_anything/indesign/server/src/types/toolDefinitionsExport.js +65 -0
- cli_anything/indesign/server/src/types/toolDefinitionsLayer.js +40 -0
- cli_anything/indesign/server/src/types/toolDefinitionsMasterSpread.js +160 -0
- cli_anything/indesign/server/src/types/toolDefinitionsPage.js +271 -0
- cli_anything/indesign/server/src/types/toolDefinitionsPageItemGroup.js +437 -0
- cli_anything/indesign/server/src/types/toolDefinitionsPresentation.js +83 -0
- cli_anything/indesign/server/src/types/toolDefinitionsSpread.js +158 -0
- cli_anything/indesign/server/src/types/toolDefinitionsUtility.js +40 -0
- cli_anything/indesign/server/src/utils/stringUtils.js +107 -0
- cli_anything/indesign/skills/SKILL.md +198 -0
- indesign_cli-0.2.0.dist-info/METADATA +267 -0
- indesign_cli-0.2.0.dist-info/RECORD +72 -0
- indesign_cli-0.2.0.dist-info/WHEEL +5 -0
- indesign_cli-0.2.0.dist-info/entry_points.txt +3 -0
- indesign_cli-0.2.0.dist-info/licenses/LICENSE +21 -0
- indesign_cli-0.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content tool definitions for InDesign MCP Server
|
|
3
|
+
* Text, graphics, styling, and content management functionality
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export const contentToolDefinitions = [
|
|
7
|
+
// =================== TEXT MANAGEMENT ===================
|
|
8
|
+
{
|
|
9
|
+
name: 'create_text_frame',
|
|
10
|
+
description: 'Create a text frame on the active page',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
content: { type: 'string', description: 'Text content for the frame' },
|
|
15
|
+
x: { type: 'number', description: 'X position in mm', default: 10 },
|
|
16
|
+
y: { type: 'number', description: 'Y position in mm', default: 10 },
|
|
17
|
+
width: { type: 'number', description: 'Width in mm', default: 100 },
|
|
18
|
+
height: { type: 'number', description: 'Height in mm', default: 50 },
|
|
19
|
+
fontSize: { type: 'number', description: 'Font size in points', default: 12 },
|
|
20
|
+
fontName: { type: 'string', description: 'Font name (use format: FontName\\tStyle)', default: 'Arial\\tRegular' },
|
|
21
|
+
textColor: { type: 'string', description: 'Text color (RGB hex or name)', default: 'Black' },
|
|
22
|
+
alignment: { type: 'string', enum: ['LEFT', 'CENTER', 'RIGHT', 'JUSTIFY'], default: 'LEFT' },
|
|
23
|
+
paragraphStyle: { type: 'string', description: 'Paragraph style name to apply during creation' },
|
|
24
|
+
characterStyle: { type: 'string', description: 'Character style name to apply during creation' },
|
|
25
|
+
},
|
|
26
|
+
required: ['content'],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'edit_text_frame',
|
|
31
|
+
description: 'Edit an existing text frame',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: 'object',
|
|
34
|
+
properties: {
|
|
35
|
+
frameIndex: { type: 'number', description: 'Index of the text frame to edit' },
|
|
36
|
+
content: { type: 'string', description: 'New text content' },
|
|
37
|
+
fontSize: { type: 'number', description: 'Font size in points' },
|
|
38
|
+
fontName: { type: 'string', description: 'Font name' },
|
|
39
|
+
textColor: { type: 'string', description: 'Text color (RGB hex or name)' },
|
|
40
|
+
alignment: { type: 'string', enum: ['LEFT', 'CENTER', 'RIGHT', 'JUSTIFY'] },
|
|
41
|
+
},
|
|
42
|
+
required: ['frameIndex'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'find_replace_text',
|
|
47
|
+
description: 'Find and replace text in the document',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: 'object',
|
|
50
|
+
properties: {
|
|
51
|
+
findText: { type: 'string', description: 'Text to find' },
|
|
52
|
+
replaceText: { type: 'string', description: 'Text to replace with' },
|
|
53
|
+
caseSensitive: { type: 'boolean', description: 'Case sensitive search', default: false },
|
|
54
|
+
wholeWord: { type: 'boolean', description: 'Whole word search', default: false },
|
|
55
|
+
},
|
|
56
|
+
required: ['findText', 'replaceText'],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'create_table',
|
|
61
|
+
description: 'Create a table on the active page',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
type: 'object',
|
|
64
|
+
properties: {
|
|
65
|
+
rows: { type: 'number', description: 'Number of rows', default: 3 },
|
|
66
|
+
columns: { type: 'number', description: 'Number of columns', default: 3 },
|
|
67
|
+
x: { type: 'number', description: 'X position in mm' },
|
|
68
|
+
y: { type: 'number', description: 'Y position in mm' },
|
|
69
|
+
width: { type: 'number', description: 'Table width in mm' },
|
|
70
|
+
height: { type: 'number', description: 'Table height in mm' },
|
|
71
|
+
headerRows: { type: 'number', description: 'Number of header rows', default: 1 },
|
|
72
|
+
headerColumns: { type: 'number', description: 'Number of header columns', default: 0 },
|
|
73
|
+
},
|
|
74
|
+
required: ['rows', 'columns'],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'populate_table',
|
|
79
|
+
description: 'Populate a table with data',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
properties: {
|
|
83
|
+
tableIndex: { type: 'number', description: 'Table index', default: 0 },
|
|
84
|
+
data: { type: 'array', description: 'Array of arrays containing table data' },
|
|
85
|
+
startRow: { type: 'number', description: 'Starting row index', default: 0 },
|
|
86
|
+
startColumn: { type: 'number', description: 'Starting column index', default: 0 },
|
|
87
|
+
},
|
|
88
|
+
required: ['data'],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
// =================== GRAPHICS MANAGEMENT ===================
|
|
93
|
+
{
|
|
94
|
+
name: 'place_image',
|
|
95
|
+
description: 'Place an image on the active page with scaling and fitting options',
|
|
96
|
+
inputSchema: {
|
|
97
|
+
type: 'object',
|
|
98
|
+
properties: {
|
|
99
|
+
filePath: { type: 'string', description: 'Path to the image file' },
|
|
100
|
+
x: { type: 'number', description: 'X position in mm', default: 10 },
|
|
101
|
+
y: { type: 'number', description: 'Y position in mm', default: 10 },
|
|
102
|
+
width: { type: 'number', description: 'Width in mm' },
|
|
103
|
+
height: { type: 'number', description: 'Height in mm' },
|
|
104
|
+
linkImage: { type: 'boolean', description: 'Link the image', default: true },
|
|
105
|
+
scale: { type: 'number', description: 'Scale percentage (1-1000)', default: 100 },
|
|
106
|
+
fitMode: {
|
|
107
|
+
type: 'string',
|
|
108
|
+
description: 'Image fitting mode',
|
|
109
|
+
enum: ['PROPORTIONALLY', 'FILL_FRAME', 'FIT_CONTENT', 'FIT_FRAME'],
|
|
110
|
+
default: 'PROPORTIONALLY'
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
required: ['filePath'],
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'help',
|
|
118
|
+
description: 'Get help information about available tools and their usage',
|
|
119
|
+
inputSchema: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
properties: {
|
|
122
|
+
tool: {
|
|
123
|
+
type: 'string',
|
|
124
|
+
description: 'Specific tool name to get help for (optional)',
|
|
125
|
+
default: null
|
|
126
|
+
},
|
|
127
|
+
category: {
|
|
128
|
+
type: 'string',
|
|
129
|
+
description: 'Category of tools to list (optional)',
|
|
130
|
+
enum: ['document', 'page', 'text', 'graphics', 'styles', 'layout', 'export', 'all'],
|
|
131
|
+
default: 'all'
|
|
132
|
+
},
|
|
133
|
+
format: {
|
|
134
|
+
type: 'string',
|
|
135
|
+
description: 'Output format',
|
|
136
|
+
enum: ['summary', 'detailed', 'examples'],
|
|
137
|
+
default: 'summary'
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
required: [],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: 'create_rectangle',
|
|
145
|
+
description: 'Create a rectangle on the active page',
|
|
146
|
+
inputSchema: {
|
|
147
|
+
type: 'object',
|
|
148
|
+
properties: {
|
|
149
|
+
x: { type: 'number', description: 'X position in mm' },
|
|
150
|
+
y: { type: 'number', description: 'Y position in mm' },
|
|
151
|
+
width: { type: 'number', description: 'Width in mm' },
|
|
152
|
+
height: { type: 'number', description: 'Height in mm' },
|
|
153
|
+
fillColor: { type: 'string', description: 'Fill color (RGB hex or swatch name)' },
|
|
154
|
+
strokeColor: { type: 'string', description: 'Stroke color' },
|
|
155
|
+
strokeWidth: { type: 'number', description: 'Stroke width in points', default: 1 },
|
|
156
|
+
cornerRadius: { type: 'number', description: 'Corner radius in mm', default: 0 },
|
|
157
|
+
},
|
|
158
|
+
required: ['x', 'y', 'width', 'height'],
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
name: 'create_ellipse',
|
|
163
|
+
description: 'Create an ellipse on the active page',
|
|
164
|
+
inputSchema: {
|
|
165
|
+
type: 'object',
|
|
166
|
+
properties: {
|
|
167
|
+
x: { type: 'number', description: 'X position in mm' },
|
|
168
|
+
y: { type: 'number', description: 'Y position in mm' },
|
|
169
|
+
width: { type: 'number', description: 'Width in mm' },
|
|
170
|
+
height: { type: 'number', description: 'Height in mm' },
|
|
171
|
+
fillColor: { type: 'string', description: 'Fill color (RGB hex or swatch name)' },
|
|
172
|
+
strokeColor: { type: 'string', description: 'Stroke color' },
|
|
173
|
+
strokeWidth: { type: 'number', description: 'Stroke width in points', default: 1 },
|
|
174
|
+
},
|
|
175
|
+
required: ['x', 'y', 'width', 'height'],
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: 'create_polygon',
|
|
180
|
+
description: 'Create a polygon on the active page',
|
|
181
|
+
inputSchema: {
|
|
182
|
+
type: 'object',
|
|
183
|
+
properties: {
|
|
184
|
+
x: { type: 'number', description: 'X position in mm' },
|
|
185
|
+
y: { type: 'number', description: 'Y position in mm' },
|
|
186
|
+
width: { type: 'number', description: 'Width in mm' },
|
|
187
|
+
height: { type: 'number', description: 'Height in mm' },
|
|
188
|
+
sides: { type: 'number', description: 'Number of sides', default: 6 },
|
|
189
|
+
fillColor: { type: 'string', description: 'Fill color (RGB hex or swatch name)' },
|
|
190
|
+
strokeColor: { type: 'string', description: 'Stroke color' },
|
|
191
|
+
strokeWidth: { type: 'number', description: 'Stroke width in points', default: 1 },
|
|
192
|
+
},
|
|
193
|
+
required: ['x', 'y', 'width', 'height'],
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'create_object_style',
|
|
198
|
+
description: 'Create an object style for consistent formatting',
|
|
199
|
+
inputSchema: {
|
|
200
|
+
type: 'object',
|
|
201
|
+
properties: {
|
|
202
|
+
name: { type: 'string', description: 'Object style name' },
|
|
203
|
+
fillColor: { type: 'string', description: 'Fill color (swatch name)' },
|
|
204
|
+
strokeColor: { type: 'string', description: 'Stroke color (swatch name)' },
|
|
205
|
+
strokeWeight: { type: 'number', description: 'Stroke weight in points', default: 1 },
|
|
206
|
+
cornerRadius: { type: 'number', description: 'Corner radius in mm', default: 0 },
|
|
207
|
+
transparency: { type: 'number', description: 'Transparency percentage (0-100)', default: 100 },
|
|
208
|
+
},
|
|
209
|
+
required: ['name'],
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: 'list_object_styles',
|
|
214
|
+
description: 'List all object styles in the document',
|
|
215
|
+
inputSchema: { type: 'object', properties: {},
|
|
216
|
+
additionalProperties: false
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: 'apply_object_style',
|
|
221
|
+
description: 'Apply an object style to a page item',
|
|
222
|
+
inputSchema: {
|
|
223
|
+
type: 'object',
|
|
224
|
+
properties: {
|
|
225
|
+
styleName: { type: 'string', description: 'Object style name' },
|
|
226
|
+
itemType: { type: 'string', enum: ['rectangle', 'ellipse', 'polygon'], default: 'rectangle' },
|
|
227
|
+
itemIndex: { type: 'number', description: 'Item index', default: 0 },
|
|
228
|
+
},
|
|
229
|
+
required: ['styleName'],
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: 'get_image_info',
|
|
234
|
+
description: 'Get detailed information about an image',
|
|
235
|
+
inputSchema: {
|
|
236
|
+
type: 'object',
|
|
237
|
+
properties: {
|
|
238
|
+
itemIndex: { type: 'number', description: 'Image index', default: 0 },
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
|
|
243
|
+
// =================== STYLES MANAGEMENT ===================
|
|
244
|
+
{
|
|
245
|
+
name: 'create_paragraph_style',
|
|
246
|
+
description: 'Create a paragraph style',
|
|
247
|
+
inputSchema: {
|
|
248
|
+
type: 'object',
|
|
249
|
+
properties: {
|
|
250
|
+
name: { type: 'string', description: 'Style name' },
|
|
251
|
+
fontFamily: { type: 'string', description: 'Font family (use format: FontName\\tStyle)', default: 'Arial\\tRegular' },
|
|
252
|
+
fontSize: { type: 'number', description: 'Font size in points', default: 12 },
|
|
253
|
+
textColor: { type: 'string', description: 'Text color', default: 'Black' },
|
|
254
|
+
alignment: { type: 'string', enum: ['LEFT_ALIGN', 'CENTER_ALIGN', 'RIGHT_ALIGN', 'JUSTIFY'], default: 'LEFT_ALIGN' },
|
|
255
|
+
leading: { type: 'number', description: 'Line spacing in points' },
|
|
256
|
+
spaceBefore: { type: 'number', description: 'Space before paragraph in points' },
|
|
257
|
+
spaceAfter: { type: 'number', description: 'Space after paragraph in points' },
|
|
258
|
+
},
|
|
259
|
+
required: ['name'],
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: 'create_character_style',
|
|
264
|
+
description: 'Create a character style',
|
|
265
|
+
inputSchema: {
|
|
266
|
+
type: 'object',
|
|
267
|
+
properties: {
|
|
268
|
+
name: { type: 'string', description: 'Style name' },
|
|
269
|
+
fontFamily: { type: 'string', description: 'Font family (use format: FontName\\tStyle)', default: 'Arial\\tRegular' },
|
|
270
|
+
fontSize: { type: 'number', description: 'Font size in points', default: 12 },
|
|
271
|
+
textColor: { type: 'string', description: 'Text color', default: 'Black' },
|
|
272
|
+
bold: { type: 'boolean', description: 'Bold text', default: false },
|
|
273
|
+
italic: { type: 'boolean', description: 'Italic text', default: false },
|
|
274
|
+
underline: { type: 'boolean', description: 'Underline text', default: false },
|
|
275
|
+
},
|
|
276
|
+
required: ['name'],
|
|
277
|
+
},
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: 'apply_paragraph_style',
|
|
281
|
+
description: 'Apply a paragraph style to text',
|
|
282
|
+
inputSchema: {
|
|
283
|
+
type: 'object',
|
|
284
|
+
properties: {
|
|
285
|
+
styleName: { type: 'string', description: 'Paragraph style name' },
|
|
286
|
+
frameIndex: { type: 'number', description: 'Text frame index', default: 0 },
|
|
287
|
+
paragraphIndex: { type: 'number', description: 'Paragraph index within the frame (0-based)', default: 0 },
|
|
288
|
+
},
|
|
289
|
+
required: ['styleName'],
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
name: 'apply_character_style',
|
|
294
|
+
description: 'Apply a character style to text',
|
|
295
|
+
inputSchema: {
|
|
296
|
+
type: 'object',
|
|
297
|
+
properties: {
|
|
298
|
+
styleName: { type: 'string', description: 'Character style name' },
|
|
299
|
+
frameIndex: { type: 'number', description: 'Text frame index (0-based)', default: 0 },
|
|
300
|
+
startIndex: { type: 'number', description: 'Start character index', default: 0 },
|
|
301
|
+
endIndex: { type: 'number', description: 'End character index (-1 for all)', default: -1 },
|
|
302
|
+
},
|
|
303
|
+
required: ['styleName'],
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: 'list_styles',
|
|
308
|
+
description: 'List all paragraph and character styles',
|
|
309
|
+
inputSchema: {
|
|
310
|
+
type: 'object',
|
|
311
|
+
properties: {
|
|
312
|
+
styleType: { type: 'string', enum: ['PARAGRAPH', 'CHARACTER', 'ALL'], default: 'ALL' },
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
|
|
317
|
+
// =================== COLORS MANAGEMENT ===================
|
|
318
|
+
{
|
|
319
|
+
name: 'create_color_swatch',
|
|
320
|
+
description: 'Create a color swatch',
|
|
321
|
+
inputSchema: {
|
|
322
|
+
type: 'object',
|
|
323
|
+
properties: {
|
|
324
|
+
name: { type: 'string', description: 'Swatch name' },
|
|
325
|
+
colorType: { type: 'string', enum: ['PROCESS', 'SPOT'], default: 'PROCESS' },
|
|
326
|
+
red: { type: 'number', description: 'Red value (0-255)' },
|
|
327
|
+
green: { type: 'number', description: 'Green value (0-255)' },
|
|
328
|
+
blue: { type: 'number', description: 'Blue value (0-255)' },
|
|
329
|
+
},
|
|
330
|
+
required: ['name', 'red', 'green', 'blue'],
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: 'list_color_swatches',
|
|
335
|
+
description: 'List all color swatches',
|
|
336
|
+
inputSchema: { type: 'object', properties: {},
|
|
337
|
+
additionalProperties: false
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
name: 'apply_color',
|
|
342
|
+
description: 'Apply color to an object',
|
|
343
|
+
inputSchema: {
|
|
344
|
+
type: 'object',
|
|
345
|
+
properties: {
|
|
346
|
+
objectIndex: { type: 'number', description: 'Object index' },
|
|
347
|
+
colorName: { type: 'string', description: 'Color swatch name' },
|
|
348
|
+
colorType: { type: 'string', enum: ['FILL', 'STROKE'], default: 'FILL' },
|
|
349
|
+
},
|
|
350
|
+
required: ['objectIndex', 'colorName'],
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
];
|