illustrator-mcp-server 1.2.4 → 1.2.5

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.
Files changed (243) hide show
  1. package/README.ja.md +525 -107
  2. package/README.md +510 -89
  3. package/dist/executor/jsx-runner.d.ts +1 -0
  4. package/dist/executor/jsx-runner.d.ts.map +1 -1
  5. package/dist/executor/jsx-runner.js +33 -19
  6. package/dist/executor/jsx-runner.js.map +1 -1
  7. package/dist/jsx/helpers/common.jsx +113 -7
  8. package/dist/prompts/print-preflight-workflow.d.ts +3 -0
  9. package/dist/prompts/print-preflight-workflow.d.ts.map +1 -0
  10. package/dist/prompts/print-preflight-workflow.js +45 -0
  11. package/dist/prompts/print-preflight-workflow.js.map +1 -0
  12. package/dist/prompts/quick-layout.d.ts +3 -0
  13. package/dist/prompts/quick-layout.d.ts.map +1 -0
  14. package/dist/prompts/quick-layout.js +42 -0
  15. package/dist/prompts/quick-layout.js.map +1 -0
  16. package/dist/prompts/registry.d.ts +3 -0
  17. package/dist/prompts/registry.d.ts.map +1 -0
  18. package/dist/prompts/registry.js +7 -0
  19. package/dist/prompts/registry.js.map +1 -0
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +3 -1
  22. package/dist/server.js.map +1 -1
  23. package/dist/tools/export/export-pdf.d.ts.map +1 -1
  24. package/dist/tools/export/export-pdf.js +48 -18
  25. package/dist/tools/export/export-pdf.js.map +1 -1
  26. package/dist/tools/export/export.d.ts.map +1 -1
  27. package/dist/tools/export/export.js +41 -49
  28. package/dist/tools/export/export.js.map +1 -1
  29. package/dist/tools/modify/align-objects.d.ts +3 -0
  30. package/dist/tools/modify/align-objects.d.ts.map +1 -0
  31. package/dist/tools/modify/align-objects.js +195 -0
  32. package/dist/tools/modify/align-objects.js.map +1 -0
  33. package/dist/tools/modify/apply-color-profile.d.ts.map +1 -1
  34. package/dist/tools/modify/apply-color-profile.js +12 -10
  35. package/dist/tools/modify/apply-color-profile.js.map +1 -1
  36. package/dist/tools/modify/apply-graphic-style.d.ts +3 -0
  37. package/dist/tools/modify/apply-graphic-style.d.ts.map +1 -0
  38. package/dist/tools/modify/apply-graphic-style.js +100 -0
  39. package/dist/tools/modify/apply-graphic-style.js.map +1 -0
  40. package/dist/tools/modify/apply-text-style.d.ts +3 -0
  41. package/dist/tools/modify/apply-text-style.d.ts.map +1 -0
  42. package/dist/tools/modify/apply-text-style.js +117 -0
  43. package/dist/tools/modify/apply-text-style.js.map +1 -0
  44. package/dist/tools/modify/close-document.d.ts.map +1 -1
  45. package/dist/tools/modify/close-document.js +9 -9
  46. package/dist/tools/modify/close-document.js.map +1 -1
  47. package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
  48. package/dist/tools/modify/convert-to-outlines.js +7 -29
  49. package/dist/tools/modify/convert-to-outlines.js.map +1 -1
  50. package/dist/tools/modify/create-document.d.ts.map +1 -1
  51. package/dist/tools/modify/create-document.js +8 -6
  52. package/dist/tools/modify/create-document.js.map +1 -1
  53. package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
  54. package/dist/tools/modify/create-ellipse.js +15 -32
  55. package/dist/tools/modify/create-ellipse.js.map +1 -1
  56. package/dist/tools/modify/create-gradient.d.ts +3 -0
  57. package/dist/tools/modify/create-gradient.d.ts.map +1 -0
  58. package/dist/tools/modify/create-gradient.js +111 -0
  59. package/dist/tools/modify/create-gradient.js.map +1 -0
  60. package/dist/tools/modify/create-line.d.ts.map +1 -1
  61. package/dist/tools/modify/create-line.js +16 -36
  62. package/dist/tools/modify/create-line.js.map +1 -1
  63. package/dist/tools/modify/create-path-text.d.ts +3 -0
  64. package/dist/tools/modify/create-path-text.d.ts.map +1 -0
  65. package/dist/tools/modify/create-path-text.js +85 -0
  66. package/dist/tools/modify/create-path-text.js.map +1 -0
  67. package/dist/tools/modify/create-path.d.ts.map +1 -1
  68. package/dist/tools/modify/create-path.js +18 -38
  69. package/dist/tools/modify/create-path.js.map +1 -1
  70. package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
  71. package/dist/tools/modify/create-rectangle.js +16 -32
  72. package/dist/tools/modify/create-rectangle.js.map +1 -1
  73. package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
  74. package/dist/tools/modify/create-text-frame.js +27 -40
  75. package/dist/tools/modify/create-text-frame.js.map +1 -1
  76. package/dist/tools/modify/duplicate-objects.d.ts +3 -0
  77. package/dist/tools/modify/duplicate-objects.d.ts.map +1 -0
  78. package/dist/tools/modify/duplicate-objects.js +97 -0
  79. package/dist/tools/modify/duplicate-objects.js.map +1 -0
  80. package/dist/tools/modify/group-objects.d.ts +3 -0
  81. package/dist/tools/modify/group-objects.d.ts.map +1 -0
  82. package/dist/tools/modify/group-objects.js +79 -0
  83. package/dist/tools/modify/group-objects.js.map +1 -0
  84. package/dist/tools/modify/manage-artboards.d.ts +3 -0
  85. package/dist/tools/modify/manage-artboards.d.ts.map +1 -0
  86. package/dist/tools/modify/manage-artboards.js +142 -0
  87. package/dist/tools/modify/manage-artboards.js.map +1 -0
  88. package/dist/tools/modify/manage-datasets.d.ts +3 -0
  89. package/dist/tools/modify/manage-datasets.d.ts.map +1 -0
  90. package/dist/tools/modify/manage-datasets.js +126 -0
  91. package/dist/tools/modify/manage-datasets.js.map +1 -0
  92. package/dist/tools/modify/manage-layers.d.ts +3 -0
  93. package/dist/tools/modify/manage-layers.d.ts.map +1 -0
  94. package/dist/tools/modify/manage-layers.js +141 -0
  95. package/dist/tools/modify/manage-layers.js.map +1 -0
  96. package/dist/tools/modify/manage-linked-images.d.ts +3 -0
  97. package/dist/tools/modify/manage-linked-images.d.ts.map +1 -0
  98. package/dist/tools/modify/manage-linked-images.js +96 -0
  99. package/dist/tools/modify/manage-linked-images.js.map +1 -0
  100. package/dist/tools/modify/manage-swatches.d.ts +3 -0
  101. package/dist/tools/modify/manage-swatches.d.ts.map +1 -0
  102. package/dist/tools/modify/manage-swatches.js +78 -0
  103. package/dist/tools/modify/manage-swatches.js.map +1 -0
  104. package/dist/tools/modify/modify-object.d.ts.map +1 -1
  105. package/dist/tools/modify/modify-object.js +31 -47
  106. package/dist/tools/modify/modify-object.js.map +1 -1
  107. package/dist/tools/modify/move-to-layer.d.ts +3 -0
  108. package/dist/tools/modify/move-to-layer.d.ts.map +1 -0
  109. package/dist/tools/modify/move-to-layer.js +73 -0
  110. package/dist/tools/modify/move-to-layer.js.map +1 -0
  111. package/dist/tools/modify/open-document.d.ts +3 -0
  112. package/dist/tools/modify/open-document.d.ts.map +1 -0
  113. package/dist/tools/modify/open-document.js +72 -0
  114. package/dist/tools/modify/open-document.js.map +1 -0
  115. package/dist/tools/modify/place-color-chips.d.ts +3 -0
  116. package/dist/tools/modify/place-color-chips.d.ts.map +1 -0
  117. package/dist/tools/modify/place-color-chips.js +218 -0
  118. package/dist/tools/modify/place-color-chips.js.map +1 -0
  119. package/dist/tools/modify/place-image.d.ts.map +1 -1
  120. package/dist/tools/modify/place-image.js +26 -35
  121. package/dist/tools/modify/place-image.js.map +1 -1
  122. package/dist/tools/modify/place-symbol.d.ts +3 -0
  123. package/dist/tools/modify/place-symbol.d.ts.map +1 -0
  124. package/dist/tools/modify/place-symbol.js +96 -0
  125. package/dist/tools/modify/place-symbol.js.map +1 -0
  126. package/dist/tools/modify/replace-color.d.ts +3 -0
  127. package/dist/tools/modify/replace-color.d.ts.map +1 -0
  128. package/dist/tools/modify/replace-color.js +136 -0
  129. package/dist/tools/modify/replace-color.js.map +1 -0
  130. package/dist/tools/modify/resize-for-variation.d.ts +3 -0
  131. package/dist/tools/modify/resize-for-variation.d.ts.map +1 -0
  132. package/dist/tools/modify/resize-for-variation.js +169 -0
  133. package/dist/tools/modify/resize-for-variation.js.map +1 -0
  134. package/dist/tools/modify/save-document.d.ts +3 -0
  135. package/dist/tools/modify/save-document.d.ts.map +1 -0
  136. package/dist/tools/modify/save-document.js +63 -0
  137. package/dist/tools/modify/save-document.js.map +1 -0
  138. package/dist/tools/modify/set-z-order.d.ts +3 -0
  139. package/dist/tools/modify/set-z-order.d.ts.map +1 -0
  140. package/dist/tools/modify/set-z-order.js +60 -0
  141. package/dist/tools/modify/set-z-order.js.map +1 -0
  142. package/dist/tools/modify/shared.d.ts +49 -1
  143. package/dist/tools/modify/shared.d.ts.map +1 -1
  144. package/dist/tools/modify/shared.js +48 -4
  145. package/dist/tools/modify/shared.js.map +1 -1
  146. package/dist/tools/modify/undo.d.ts +3 -0
  147. package/dist/tools/modify/undo.d.ts.map +1 -0
  148. package/dist/tools/modify/undo.js +64 -0
  149. package/dist/tools/modify/undo.js.map +1 -0
  150. package/dist/tools/modify/ungroup-objects.d.ts +3 -0
  151. package/dist/tools/modify/ungroup-objects.d.ts.map +1 -0
  152. package/dist/tools/modify/ungroup-objects.js +67 -0
  153. package/dist/tools/modify/ungroup-objects.js.map +1 -0
  154. package/dist/tools/read/check-contrast.d.ts +3 -0
  155. package/dist/tools/read/check-contrast.d.ts.map +1 -0
  156. package/dist/tools/read/check-contrast.js +239 -0
  157. package/dist/tools/read/check-contrast.js.map +1 -0
  158. package/dist/tools/read/convert-coordinate.d.ts +3 -0
  159. package/dist/tools/read/convert-coordinate.d.ts.map +1 -0
  160. package/dist/tools/read/convert-coordinate.js +74 -0
  161. package/dist/tools/read/convert-coordinate.js.map +1 -0
  162. package/dist/tools/read/extract-design-tokens.d.ts +3 -0
  163. package/dist/tools/read/extract-design-tokens.d.ts.map +1 -0
  164. package/dist/tools/read/extract-design-tokens.js +258 -0
  165. package/dist/tools/read/extract-design-tokens.js.map +1 -0
  166. package/dist/tools/read/find-objects.d.ts.map +1 -1
  167. package/dist/tools/read/find-objects.js +16 -37
  168. package/dist/tools/read/find-objects.js.map +1 -1
  169. package/dist/tools/read/get-artboards.d.ts.map +1 -1
  170. package/dist/tools/read/get-artboards.js +15 -13
  171. package/dist/tools/read/get-artboards.js.map +1 -1
  172. package/dist/tools/read/get-colors.d.ts.map +1 -1
  173. package/dist/tools/read/get-colors.js +93 -15
  174. package/dist/tools/read/get-colors.js.map +1 -1
  175. package/dist/tools/read/get-document-info.d.ts.map +1 -1
  176. package/dist/tools/read/get-document-info.js +47 -19
  177. package/dist/tools/read/get-document-info.js.map +1 -1
  178. package/dist/tools/read/get-document-structure.d.ts.map +1 -1
  179. package/dist/tools/read/get-document-structure.js +16 -24
  180. package/dist/tools/read/get-document-structure.js.map +1 -1
  181. package/dist/tools/read/get-effects.d.ts.map +1 -1
  182. package/dist/tools/read/get-effects.js +32 -43
  183. package/dist/tools/read/get-effects.js.map +1 -1
  184. package/dist/tools/read/get-groups.d.ts.map +1 -1
  185. package/dist/tools/read/get-groups.js +22 -26
  186. package/dist/tools/read/get-groups.js.map +1 -1
  187. package/dist/tools/read/get-guidelines.d.ts.map +1 -1
  188. package/dist/tools/read/get-guidelines.js +13 -16
  189. package/dist/tools/read/get-guidelines.js.map +1 -1
  190. package/dist/tools/read/get-images.d.ts.map +1 -1
  191. package/dist/tools/read/get-images.js +43 -25
  192. package/dist/tools/read/get-images.js.map +1 -1
  193. package/dist/tools/read/get-layers.d.ts.map +1 -1
  194. package/dist/tools/read/get-layers.js +14 -15
  195. package/dist/tools/read/get-layers.js.map +1 -1
  196. package/dist/tools/read/get-overprint-info.d.ts.map +1 -1
  197. package/dist/tools/read/get-overprint-info.js +72 -63
  198. package/dist/tools/read/get-overprint-info.js.map +1 -1
  199. package/dist/tools/read/get-path-items.d.ts.map +1 -1
  200. package/dist/tools/read/get-path-items.js +26 -20
  201. package/dist/tools/read/get-path-items.js.map +1 -1
  202. package/dist/tools/read/get-selection.d.ts.map +1 -1
  203. package/dist/tools/read/get-selection.js +19 -33
  204. package/dist/tools/read/get-selection.js.map +1 -1
  205. package/dist/tools/read/get-separation-info.d.ts +3 -0
  206. package/dist/tools/read/get-separation-info.d.ts.map +1 -0
  207. package/dist/tools/read/get-separation-info.js +94 -0
  208. package/dist/tools/read/get-separation-info.js.map +1 -0
  209. package/dist/tools/read/get-symbols.d.ts.map +1 -1
  210. package/dist/tools/read/get-symbols.js +19 -23
  211. package/dist/tools/read/get-symbols.js.map +1 -1
  212. package/dist/tools/read/get-text-frame-detail.d.ts.map +1 -1
  213. package/dist/tools/read/get-text-frame-detail.js +270 -67
  214. package/dist/tools/read/get-text-frame-detail.js.map +1 -1
  215. package/dist/tools/read/list-fonts.d.ts +3 -0
  216. package/dist/tools/read/list-fonts.d.ts.map +1 -0
  217. package/dist/tools/read/list-fonts.js +78 -0
  218. package/dist/tools/read/list-fonts.js.map +1 -0
  219. package/dist/tools/read/list-text-frames.d.ts.map +1 -1
  220. package/dist/tools/read/list-text-frames.js +99 -36
  221. package/dist/tools/read/list-text-frames.js.map +1 -1
  222. package/dist/tools/registry.d.ts.map +1 -1
  223. package/dist/tools/registry.js +60 -0
  224. package/dist/tools/registry.js.map +1 -1
  225. package/dist/tools/session.d.ts +36 -0
  226. package/dist/tools/session.d.ts.map +1 -0
  227. package/dist/tools/session.js +246 -0
  228. package/dist/tools/session.js.map +1 -0
  229. package/dist/tools/utility/check-text-consistency.d.ts +3 -0
  230. package/dist/tools/utility/check-text-consistency.d.ts.map +1 -0
  231. package/dist/tools/utility/check-text-consistency.js +303 -0
  232. package/dist/tools/utility/check-text-consistency.js.map +1 -0
  233. package/dist/tools/utility/preflight-check.d.ts.map +1 -1
  234. package/dist/tools/utility/preflight-check.js +141 -43
  235. package/dist/tools/utility/preflight-check.js.map +1 -1
  236. package/dist/tools/utility/set-workflow.d.ts +3 -0
  237. package/dist/tools/utility/set-workflow.d.ts.map +1 -0
  238. package/dist/tools/utility/set-workflow.js +95 -0
  239. package/dist/tools/utility/set-workflow.js.map +1 -0
  240. package/dist/utils/image-header.d.ts.map +1 -1
  241. package/dist/utils/image-header.js +5 -1
  242. package/dist/utils/image-header.js.map +1 -1
  243. package/package.json +1 -1
@@ -1,9 +1,14 @@
1
- import { z } from 'zod';
2
1
  import { executeJsx } from '../../executor/jsx-runner.js';
2
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
3
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
4
+ /**
5
+ * get_guidelines — ガイドライン情報の取得
6
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PathItem/ — guides property
7
+ */
3
8
  const jsxCode = `
4
- var err = preflightChecks();
5
- if (err) {
6
- writeResultFile(RESULT_PATH, err);
9
+ var preflight = preflightChecks();
10
+ if (preflight) {
11
+ writeResultFile(RESULT_PATH, preflight);
7
12
  } else {
8
13
  try {
9
14
  var params = readParamsFile(PARAMS_PATH);
@@ -78,20 +83,12 @@ export function register(server) {
78
83
  title: 'Get Guidelines',
79
84
  description: 'Get guide information',
80
85
  inputSchema: {
81
- coordinate_system: z
82
- .enum(['artboard-web', 'document'])
83
- .optional()
84
- .default('artboard-web')
85
- .describe('Coordinate system (artboard-web: artboard-relative Y-down, document: native Illustrator coordinates)'),
86
- },
87
- annotations: {
88
- readOnlyHint: true,
89
- destructiveHint: false,
90
- idempotentHint: true,
91
- openWorldHint: false,
86
+ coordinate_system: coordinateSystemSchema,
92
87
  },
88
+ annotations: READ_ANNOTATIONS,
93
89
  }, async (params) => {
94
- const result = await executeJsx(jsxCode, params);
90
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
91
+ const result = await executeJsx(jsxCode, resolvedParams);
95
92
  return {
96
93
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
97
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-guidelines.js","sourceRoot":"","sources":["../../../src/tools/read/get-guidelines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,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,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-guidelines.js","sourceRoot":"","sources":["../../../src/tools/read/get-guidelines.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD;;;GAGG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,iBAAiB,EAAE,sBAAsB;SAC1C;QACD,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-images.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4JpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmEhD"}
1
+ {"version":3,"file":"get-images.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8KpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqEhD"}
@@ -1,15 +1,25 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
3
4
  import { readImageDimensions } from '../../utils/image-header.js';
5
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
6
+ /**
7
+ * get_images — 配置画像(リンク/埋め込み)の情報取得
8
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PlacedItem/ — file, matrix, contentVariable
9
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/RasterItem/ — colorSpace, transparent, imageColorSpace
10
+ */
4
11
  const jsxCode = `
5
- try {
6
- var err = preflightChecks();
7
- if (err) {
8
- writeResultFile(RESULT_PATH, err);
9
- } else {
12
+ var preflight = preflightChecks();
13
+ if (preflight) {
14
+ writeResultFile(RESULT_PATH, preflight);
15
+ } else {
16
+ try {
10
17
  var params = readParamsFile(PARAMS_PATH);
11
18
  var coordSystem = (params && params.coordinate_system) ? params.coordinate_system : "artboard-web";
19
+ var includePrintInfo = (params && typeof params.include_print_info === "boolean") ? params.include_print_info : false;
12
20
  var doc = app.activeDocument;
21
+ var docColorSpace = doc.documentColorSpace;
22
+ var isCMYKDoc = (docColorSpace === DocumentColorSpace.CMYK);
13
23
  var images = [];
14
24
 
15
25
  // Linked images (PlacedItems)
@@ -18,10 +28,7 @@ try {
18
28
  var uuid = ensureUUID(item);
19
29
  var zIdx = getZIndex(item);
20
30
  var abIndex = getArtboardIndexForItem(item);
21
- var artboardRect = null;
22
- if (abIndex >= 0) {
23
- artboardRect = doc.artboards[abIndex].artboardRect;
24
- }
31
+ var artboardRect = getArtboardRectByIndex(abIndex);
25
32
  var bounds = getBounds(item, coordSystem, artboardRect);
26
33
 
27
34
  var info = {
@@ -68,10 +75,7 @@ try {
68
75
  var rUuid = ensureUUID(rItem);
69
76
  var rZIdx = getZIndex(rItem);
70
77
  var rAbIndex = getArtboardIndexForItem(rItem);
71
- var rArtboardRect = null;
72
- if (rAbIndex >= 0) {
73
- rArtboardRect = doc.artboards[rAbIndex].artboardRect;
74
- }
78
+ var rArtboardRect = getArtboardRectByIndex(rAbIndex);
75
79
  var rBounds = getBounds(rItem, coordSystem, rArtboardRect);
76
80
 
77
81
  var rInfo = {
@@ -138,6 +142,18 @@ try {
138
142
  } catch(e3) {}
139
143
  } catch (e) {}
140
144
 
145
+ // Print diagnostics
146
+ if (includePrintInfo) {
147
+ rInfo.colorSpaceMismatch = false;
148
+ if (rInfo.colorSpace) {
149
+ if (isCMYKDoc && rInfo.colorSpace === "RGB") rInfo.colorSpaceMismatch = true;
150
+ if (!isCMYKDoc && rInfo.colorSpace === "CMYK") rInfo.colorSpaceMismatch = true;
151
+ }
152
+ if (rInfo.pixelWidth && rInfo.pixelHeight && placedWidthPt > 0) {
153
+ rInfo.scaleFactor = Math.round((placedWidthPt / rInfo.pixelWidth) * 100);
154
+ }
155
+ }
156
+
141
157
  images.push(rInfo);
142
158
  }
143
159
 
@@ -146,9 +162,9 @@ try {
146
162
  coordinateSystem: coordSystem,
147
163
  images: images
148
164
  });
165
+ } catch (e) {
166
+ writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
149
167
  }
150
- } catch (e) {
151
- writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
152
168
  }
153
169
  `;
154
170
  export function register(server) {
@@ -156,19 +172,17 @@ export function register(server) {
156
172
  title: 'Get Images',
157
173
  description: 'Get embedded and linked image information',
158
174
  inputSchema: {
159
- coordinate_system: z
160
- .enum(['artboard-web', 'document'])
175
+ coordinate_system: coordinateSystemSchema,
176
+ include_print_info: z
177
+ .boolean()
161
178
  .optional()
162
- .default('artboard-web'),
163
- },
164
- annotations: {
165
- readOnlyHint: true,
166
- destructiveHint: false,
167
- idempotentHint: true,
168
- openWorldHint: false,
179
+ .default(false)
180
+ .describe('Include print diagnostics: color space mismatch flag, scale factor (%). Only available for embedded raster images.'),
169
181
  },
182
+ annotations: READ_ANNOTATIONS,
170
183
  }, async (params) => {
171
- const result = (await executeJsx(jsxCode, params));
184
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
185
+ const result = (await executeJsx(jsxCode, resolvedParams));
172
186
  // Post-process: compute pixel dimensions and DPI for linked images
173
187
  if (result?.images) {
174
188
  for (const img of result.images) {
@@ -183,6 +197,10 @@ export function register(server) {
183
197
  const ppiH = Math.round(dims.width / widthInches);
184
198
  const ppiV = Math.round(dims.height / heightInches);
185
199
  img.resolution = Math.min(ppiH, ppiV);
200
+ // Print diagnostics for linked images
201
+ if (resolvedParams.include_print_info) {
202
+ img.scaleFactor = Math.round((img.widthPt / dims.width) * 100);
203
+ }
186
204
  }
187
205
  }
188
206
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"get-images.js","sourceRoot":"","sources":["../../../src/tools/read/get-images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;SAC3B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAehD,CAAC;QAEF,mEAAmE;QACnE,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC7D,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAC/C,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;4BACxC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;4BAC5B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;4BAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;4BACrC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;4BACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;4BAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;4BACpD,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;gBACD,2BAA2B;gBAC3B,OAAO,GAAG,CAAC,OAAO,CAAC;gBACnB,OAAO,GAAG,CAAC,QAAQ,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-images.js","sourceRoot":"","sources":["../../../src/tools/read/get-images.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-layers.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqChD"}
1
+ {"version":3,"file":"get-layers.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BhD"}
@@ -1,9 +1,16 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
4
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
5
+ /**
6
+ * get_layers — レイヤー一覧の取得
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/Layers/ — Layers collection
8
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/Layer/ — name, visible, locked, color
9
+ */
3
10
  const jsxCode = `
4
- var err = preflightChecks();
5
- if (err) {
6
- writeResultFile(RESULT_PATH, err);
11
+ var preflight = preflightChecks();
12
+ if (preflight) {
13
+ writeResultFile(RESULT_PATH, preflight);
7
14
  } else {
8
15
  try {
9
16
  var params = readParamsFile(PARAMS_PATH);
@@ -90,20 +97,12 @@ export function register(server) {
90
97
  .optional()
91
98
  .default(false)
92
99
  .describe('Include items within each layer'),
93
- coordinate_system: z
94
- .enum(['artboard-web', 'document'])
95
- .optional()
96
- .default('artboard-web')
97
- .describe('Coordinate system (artboard-web: artboard-relative Y-down, document: native Illustrator coordinates)'),
98
- },
99
- annotations: {
100
- readOnlyHint: true,
101
- destructiveHint: false,
102
- idempotentHint: true,
103
- openWorldHint: false,
100
+ coordinate_system: coordinateSystemSchema,
104
101
  },
102
+ annotations: READ_ANNOTATIONS,
105
103
  }, async (params) => {
106
- const result = await executeJsx(jsxCode, params);
104
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
105
+ const result = await executeJsx(jsxCode, resolvedParams);
107
106
  return {
108
107
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
109
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-layers.js","sourceRoot":"","sources":["../../../src/tools/read/get-layers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Ef,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;iBACjB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,mBAAmB,CAAC;YAChC,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,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,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-layers.js","sourceRoot":"","sources":["../../../src/tools/read/get-layers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD;;;;GAIG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Ef,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;iBACjB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,mBAAmB,CAAC;YAChC,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,iBAAiB,EAAE,sBAAsB;SAC1C;QACD,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-overprint-info.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-overprint-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0BhD"}
1
+ {"version":3,"file":"get-overprint-info.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-overprint-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0GpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgBhD"}
@@ -1,22 +1,73 @@
1
- import { z } from 'zod';
2
1
  import { executeJsx } from '../../executor/jsx-runner.js';
2
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
3
+ /**
4
+ * get_overprint_info — オーバープリント設定の取得
5
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PathItem/ — overprintFill, overprintStroke
6
+ */
3
7
  const jsxCode = `
4
- try {
5
- var err = preflightChecks();
6
- if (err) {
7
- writeResultFile(RESULT_PATH, err);
8
- } else {
9
- var params = readParamsFile(PARAMS_PATH);
10
- var coordSystem = (params && params.coordinate_system) ? params.coordinate_system : "artboard-web";
8
+ var preflight = preflightChecks();
9
+ if (preflight) {
10
+ writeResultFile(RESULT_PATH, preflight);
11
+ } else {
12
+ try {
11
13
  var doc = app.activeDocument;
12
14
 
13
- function getParentLayerName(item) {
14
- var current = item.parent;
15
- while (current) {
16
- if (current.typename === "Layer") return current.name;
17
- current = current.parent;
15
+ function analyzeOverprintPath(pathItem, results) {
16
+ var fillOP = false;
17
+ var strokeOP = false;
18
+ try { fillOP = pathItem.fillOverprint; } catch(e) {}
19
+ try { strokeOP = pathItem.strokeOverprint; } catch(e) {}
20
+ if (!fillOP && !strokeOP) return;
21
+
22
+ var uuid = ensureUUID(pathItem);
23
+ var objName = "";
24
+ try { objName = pathItem.name || ""; } catch(e) {}
25
+ var fillColorObj = null;
26
+ var strokeColorObj = null;
27
+ var isK100 = false;
28
+ var isRichBlack = false;
29
+ var inkCoverage = 0;
30
+ var intent = "unknown";
31
+ try {
32
+ if (pathItem.filled) {
33
+ fillColorObj = colorToObject(pathItem.fillColor);
34
+ if (pathItem.fillColor.typename === "CMYKColor") {
35
+ var fc = pathItem.fillColor;
36
+ inkCoverage = fc.cyan + fc.magenta + fc.yellow + fc.black;
37
+ if (fc.black === 100 && fc.cyan === 0 && fc.magenta === 0 && fc.yellow === 0) {
38
+ isK100 = true;
39
+ }
40
+ if (fc.black >= 90 && (fc.cyan > 0 || fc.magenta > 0 || fc.yellow > 0)) {
41
+ isRichBlack = true;
42
+ }
43
+ }
44
+ }
45
+ } catch(e) {}
46
+ try {
47
+ if (pathItem.stroked) {
48
+ strokeColorObj = colorToObject(pathItem.strokeColor);
49
+ }
50
+ } catch(e) {}
51
+ if (fillOP && isK100) {
52
+ intent = "intentional_k100";
53
+ } else if (fillOP && isRichBlack) {
54
+ intent = "rich_black_overprint";
55
+ } else if (fillOP || strokeOP) {
56
+ intent = "likely_accidental";
18
57
  }
19
- return "";
58
+ results.push({
59
+ uuid: uuid,
60
+ objectName: objName,
61
+ fillOverprint: fillOP,
62
+ strokeOverprint: strokeOP,
63
+ layerName: getParentLayerName(pathItem),
64
+ fillColor: fillColorObj,
65
+ strokeColor: strokeColorObj,
66
+ isK100: isK100,
67
+ isRichBlack: isRichBlack,
68
+ inkCoverage: inkCoverage,
69
+ intent: intent
70
+ });
20
71
  }
21
72
 
22
73
  function collectOverprintItems(container, results) {
@@ -26,41 +77,10 @@ try {
26
77
  if (item.typename === "GroupItem") {
27
78
  collectOverprintItems(item, results);
28
79
  } else if (item.typename === "PathItem") {
29
- var fillOP = false;
30
- var strokeOP = false;
31
- try { fillOP = item.fillOverprint; } catch(e2) {}
32
- try { strokeOP = item.strokeOverprint; } catch(e2) {}
33
- if (fillOP || strokeOP) {
34
- var uuid = ensureUUID(item);
35
- var objName = "";
36
- try { objName = item.name || ""; } catch(e2) {}
37
- results.push({
38
- uuid: uuid,
39
- objectName: objName,
40
- fillOverprint: fillOP,
41
- strokeOverprint: strokeOP,
42
- layerName: getParentLayerName(item)
43
- });
44
- }
80
+ analyzeOverprintPath(item, results);
45
81
  } else if (item.typename === "CompoundPathItem") {
46
82
  for (var j = 0; j < item.pathItems.length; j++) {
47
- var pathItem = item.pathItems[j];
48
- var fillOP2 = false;
49
- var strokeOP2 = false;
50
- try { fillOP2 = pathItem.fillOverprint; } catch(e2) {}
51
- try { strokeOP2 = pathItem.strokeOverprint; } catch(e2) {}
52
- if (fillOP2 || strokeOP2) {
53
- var uuid2 = ensureUUID(pathItem);
54
- var objName2 = "";
55
- try { objName2 = pathItem.name || ""; } catch(e2) {}
56
- results.push({
57
- uuid: uuid2,
58
- objectName: objName2,
59
- fillOverprint: fillOP2,
60
- strokeOverprint: strokeOP2,
61
- layerName: getParentLayerName(item)
62
- });
63
- }
83
+ analyzeOverprintPath(item.pathItems[j], results);
64
84
  }
65
85
  }
66
86
  } catch(e) {}
@@ -74,31 +94,20 @@ try {
74
94
  }
75
95
 
76
96
  writeResultFile(RESULT_PATH, {
77
- coordinateSystem: coordSystem,
78
97
  overprintCount: results.length,
79
98
  items: results
80
99
  });
100
+ } catch (e) {
101
+ writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
81
102
  }
82
- } catch (e) {
83
- writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
84
103
  }
85
104
  `;
86
105
  export function register(server) {
87
106
  server.registerTool('get_overprint_info', {
88
107
  title: 'Get Overprint Info',
89
- description: 'Get overprint settings',
90
- inputSchema: {
91
- coordinate_system: z
92
- .enum(['artboard-web', 'document'])
93
- .optional()
94
- .default('artboard-web'),
95
- },
96
- annotations: {
97
- readOnlyHint: true,
98
- destructiveHint: false,
99
- idempotentHint: true,
100
- openWorldHint: false,
101
- },
108
+ description: 'Get overprint settings with K100/rich black detection and intent classification',
109
+ inputSchema: {},
110
+ annotations: READ_ANNOTATIONS,
102
111
  }, async (params) => {
103
112
  const result = await executeJsx(jsxCode, params);
104
113
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"get-overprint-info.js","sourceRoot":"","sources":["../../../src/tools/read/get-overprint-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;SAC3B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-overprint-info.js","sourceRoot":"","sources":["../../../src/tools/read/get-overprint-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD;;;GAGG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,iFAAiF;QAC9F,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-path-items.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-path-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyNpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyChD"}
1
+ {"version":3,"file":"get-path-items.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-path-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyOpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiChD"}
@@ -1,9 +1,17 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
4
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
5
+ /**
6
+ * get_path_items — パスアイテム情報の取得
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PathItems/ — PathItems collection
8
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PathItem/ — pathPoints, closed, filled, stroked
9
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/PathPoint/ — anchor, leftDirection, rightDirection
10
+ */
3
11
  const jsxCode = `
4
- var err = preflightChecks();
5
- if (err) {
6
- writeResultFile(RESULT_PATH, err);
12
+ var preflight = preflightChecks();
13
+ if (preflight) {
14
+ writeResultFile(RESULT_PATH, preflight);
7
15
  } else {
8
16
  try {
9
17
  var params = readParamsFile(PARAMS_PATH);
@@ -77,10 +85,7 @@ if (err) {
77
85
 
78
86
  function extractPathInfo(item) {
79
87
  var abIndex = getArtboardIndexForItem(item);
80
- var artboardRect = null;
81
- if (abIndex >= 0) {
82
- artboardRect = doc.artboards[abIndex].artboardRect;
83
- }
88
+ var artboardRect = getArtboardRectByIndex(abIndex);
84
89
 
85
90
  var bounds = getBounds(item, coordSystem, artboardRect);
86
91
  var uuid = ensureUUID(item);
@@ -109,6 +114,15 @@ if (err) {
109
114
  try { info.closed = item.closed; } catch (e) {}
110
115
  try { info.opacity = item.opacity; } catch (e) {}
111
116
 
117
+ // Extract rotation from transformation matrix
118
+ try {
119
+ var m = item.matrix;
120
+ if (m) {
121
+ var rad = Math.atan2(m.mValueB, m.mValueA);
122
+ info.transform.rotation = Math.round(rad * 180 / Math.PI * 100) / 100;
123
+ }
124
+ } catch (e) {}
125
+
112
126
  // fill
113
127
  // Note: ExtendScript does not expose per-fill opacity on pathItems.
114
128
  // item.opacity is the object-level opacity, exposed separately in info.opacity.
@@ -215,7 +229,7 @@ if (err) {
215
229
  export function register(server) {
216
230
  server.registerTool('get_path_items', {
217
231
  title: 'Get Path Items',
218
- description: 'Get path and shape data',
232
+ description: 'Get path and shape data. Note: fill/stroke do not include per-attribute opacity; use the item-level opacity field for transparency.',
219
233
  inputSchema: {
220
234
  layer_name: z
221
235
  .string()
@@ -231,20 +245,12 @@ export function register(server) {
231
245
  .optional()
232
246
  .default(false)
233
247
  .describe('Get selected paths only'),
234
- coordinate_system: z
235
- .enum(['artboard-web', 'document'])
236
- .optional()
237
- .default('artboard-web')
238
- .describe('Coordinate system (artboard-web: artboard-relative Y-down, document: native Illustrator coordinates)'),
239
- },
240
- annotations: {
241
- readOnlyHint: true,
242
- destructiveHint: false,
243
- idempotentHint: true,
244
- openWorldHint: false,
248
+ coordinate_system: coordinateSystemSchema,
245
249
  },
250
+ annotations: READ_ANNOTATIONS,
246
251
  }, async (params) => {
247
- const result = await executeJsx(jsxCode, params);
252
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
253
+ const result = await executeJsx(jsxCode, resolvedParams);
248
254
  return {
249
255
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
250
256
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-path-items.js","sourceRoot":"","sources":["../../../src/tools/read/get-path-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmNf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sBAAsB,CAAC;YACnC,cAAc,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,8BAA8B,CAAC;YAC3C,cAAc,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,yBAAyB,CAAC;YACtC,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,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-path-items.js","sourceRoot":"","sources":["../../../src/tools/read/get-path-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD;;;;;GAKG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyNf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,qIAAqI;QAClJ,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sBAAsB,CAAC;YACnC,cAAc,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,8BAA8B,CAAC;YAC3C,cAAc,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,yBAAyB,CAAC;YACtC,iBAAiB,EAAE,sBAAsB;SAC1C;QACD,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-selection.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4JpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0BhD"}
1
+ {"version":3,"file":"get-selection.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwJpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmBhD"}
@@ -1,11 +1,16 @@
1
- import { z } from 'zod';
2
1
  import { executeJsx } from '../../executor/jsx-runner.js';
2
+ import { coordinateSystemSchema, resolveCoordinateSystem, } from '../session.js';
3
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
4
+ /**
5
+ * get_selection — 現在の選択オブジェクト情報の取得
6
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/Document/ — Document.selection
7
+ */
3
8
  const jsxCode = `
4
- try {
5
- var err = preflightChecks();
6
- if (err) {
7
- writeResultFile(RESULT_PATH, err);
8
- } else {
9
+ var preflight = preflightChecks();
10
+ if (preflight) {
11
+ writeResultFile(RESULT_PATH, preflight);
12
+ } else {
13
+ try {
9
14
  var params = readParamsFile(PARAMS_PATH);
10
15
  var coordSystem = (params && params.coordinate_system) ? params.coordinate_system : "artboard-web";
11
16
  var doc = app.activeDocument;
@@ -24,10 +29,7 @@ try {
24
29
 
25
30
  // artboard detection for coordinate conversion
26
31
  var abIndex = getArtboardIndexForItem(item);
27
- var artboardRect = null;
28
- if (abIndex >= 0) {
29
- artboardRect = doc.artboards[abIndex].artboardRect;
30
- }
32
+ var artboardRect = getArtboardRectByIndex(abIndex);
31
33
 
32
34
  var bounds = getBounds(item, coordSystem, artboardRect);
33
35
 
@@ -62,16 +64,7 @@ try {
62
64
  info.fontSize = firstRange.characterAttributes.size;
63
65
  }
64
66
  } catch(e) {}
65
- try {
66
- var kind = item.kind;
67
- if (kind === TextType.POINTTEXT) {
68
- info.textKind = "point";
69
- } else if (kind === TextType.AREATEXT) {
70
- info.textKind = "area";
71
- } else if (kind === TextType.PATHTEXT) {
72
- info.textKind = "path";
73
- }
74
- } catch(e) {}
67
+ try { info.textKind = getTextKind(item); } catch(e) {}
75
68
  }
76
69
 
77
70
  if (itemType === "path") {
@@ -146,9 +139,9 @@ try {
146
139
  items: items
147
140
  });
148
141
  }
142
+ } catch (e) {
143
+ writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
149
144
  }
150
- } catch (e) {
151
- writeResultFile(RESULT_PATH, { error: true, message: e.message, line: e.line });
152
145
  }
153
146
  `;
154
147
  export function register(server) {
@@ -156,19 +149,12 @@ export function register(server) {
156
149
  title: 'Get Selection',
157
150
  description: 'Get detailed information about the currently selected objects',
158
151
  inputSchema: {
159
- coordinate_system: z
160
- .enum(['artboard-web', 'document'])
161
- .optional()
162
- .default('artboard-web'),
163
- },
164
- annotations: {
165
- readOnlyHint: true,
166
- destructiveHint: false,
167
- idempotentHint: true,
168
- openWorldHint: false,
152
+ coordinate_system: coordinateSystemSchema,
169
153
  },
154
+ annotations: READ_ANNOTATIONS,
170
155
  }, async (params) => {
171
- const result = await executeJsx(jsxCode, params);
156
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
157
+ const result = await executeJsx(jsxCode, resolvedParams);
172
158
  return {
173
159
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
174
160
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-selection.js","sourceRoot":"","sources":["../../../src/tools/read/get-selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;SAC3B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-selection.js","sourceRoot":"","sources":["../../../src/tools/read/get-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD;;;GAGG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0If,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE;YACX,iBAAiB,EAAE,sBAAsB;SAC1C;QACD,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=get-separation-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-separation-info.d.ts","sourceRoot":"","sources":["../../../src/tools/read/get-separation-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}