illustrator-mcp-server 1.2.3 → 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 (246) 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 +3 -0
  45. package/dist/tools/modify/close-document.d.ts.map +1 -0
  46. package/dist/tools/modify/close-document.js +46 -0
  47. package/dist/tools/modify/close-document.js.map +1 -0
  48. package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
  49. package/dist/tools/modify/convert-to-outlines.js +7 -29
  50. package/dist/tools/modify/convert-to-outlines.js.map +1 -1
  51. package/dist/tools/modify/create-document.d.ts +3 -0
  52. package/dist/tools/modify/create-document.d.ts.map +1 -0
  53. package/dist/tools/modify/create-document.js +67 -0
  54. package/dist/tools/modify/create-document.js.map +1 -0
  55. package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
  56. package/dist/tools/modify/create-ellipse.js +15 -32
  57. package/dist/tools/modify/create-ellipse.js.map +1 -1
  58. package/dist/tools/modify/create-gradient.d.ts +3 -0
  59. package/dist/tools/modify/create-gradient.d.ts.map +1 -0
  60. package/dist/tools/modify/create-gradient.js +111 -0
  61. package/dist/tools/modify/create-gradient.js.map +1 -0
  62. package/dist/tools/modify/create-line.d.ts.map +1 -1
  63. package/dist/tools/modify/create-line.js +16 -36
  64. package/dist/tools/modify/create-line.js.map +1 -1
  65. package/dist/tools/modify/create-path-text.d.ts +3 -0
  66. package/dist/tools/modify/create-path-text.d.ts.map +1 -0
  67. package/dist/tools/modify/create-path-text.js +85 -0
  68. package/dist/tools/modify/create-path-text.js.map +1 -0
  69. package/dist/tools/modify/create-path.d.ts.map +1 -1
  70. package/dist/tools/modify/create-path.js +18 -38
  71. package/dist/tools/modify/create-path.js.map +1 -1
  72. package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
  73. package/dist/tools/modify/create-rectangle.js +16 -32
  74. package/dist/tools/modify/create-rectangle.js.map +1 -1
  75. package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
  76. package/dist/tools/modify/create-text-frame.js +27 -40
  77. package/dist/tools/modify/create-text-frame.js.map +1 -1
  78. package/dist/tools/modify/duplicate-objects.d.ts +3 -0
  79. package/dist/tools/modify/duplicate-objects.d.ts.map +1 -0
  80. package/dist/tools/modify/duplicate-objects.js +97 -0
  81. package/dist/tools/modify/duplicate-objects.js.map +1 -0
  82. package/dist/tools/modify/group-objects.d.ts +3 -0
  83. package/dist/tools/modify/group-objects.d.ts.map +1 -0
  84. package/dist/tools/modify/group-objects.js +79 -0
  85. package/dist/tools/modify/group-objects.js.map +1 -0
  86. package/dist/tools/modify/manage-artboards.d.ts +3 -0
  87. package/dist/tools/modify/manage-artboards.d.ts.map +1 -0
  88. package/dist/tools/modify/manage-artboards.js +142 -0
  89. package/dist/tools/modify/manage-artboards.js.map +1 -0
  90. package/dist/tools/modify/manage-datasets.d.ts +3 -0
  91. package/dist/tools/modify/manage-datasets.d.ts.map +1 -0
  92. package/dist/tools/modify/manage-datasets.js +126 -0
  93. package/dist/tools/modify/manage-datasets.js.map +1 -0
  94. package/dist/tools/modify/manage-layers.d.ts +3 -0
  95. package/dist/tools/modify/manage-layers.d.ts.map +1 -0
  96. package/dist/tools/modify/manage-layers.js +141 -0
  97. package/dist/tools/modify/manage-layers.js.map +1 -0
  98. package/dist/tools/modify/manage-linked-images.d.ts +3 -0
  99. package/dist/tools/modify/manage-linked-images.d.ts.map +1 -0
  100. package/dist/tools/modify/manage-linked-images.js +96 -0
  101. package/dist/tools/modify/manage-linked-images.js.map +1 -0
  102. package/dist/tools/modify/manage-swatches.d.ts +3 -0
  103. package/dist/tools/modify/manage-swatches.d.ts.map +1 -0
  104. package/dist/tools/modify/manage-swatches.js +78 -0
  105. package/dist/tools/modify/manage-swatches.js.map +1 -0
  106. package/dist/tools/modify/modify-object.d.ts.map +1 -1
  107. package/dist/tools/modify/modify-object.js +31 -47
  108. package/dist/tools/modify/modify-object.js.map +1 -1
  109. package/dist/tools/modify/move-to-layer.d.ts +3 -0
  110. package/dist/tools/modify/move-to-layer.d.ts.map +1 -0
  111. package/dist/tools/modify/move-to-layer.js +73 -0
  112. package/dist/tools/modify/move-to-layer.js.map +1 -0
  113. package/dist/tools/modify/open-document.d.ts +3 -0
  114. package/dist/tools/modify/open-document.d.ts.map +1 -0
  115. package/dist/tools/modify/open-document.js +72 -0
  116. package/dist/tools/modify/open-document.js.map +1 -0
  117. package/dist/tools/modify/place-color-chips.d.ts +3 -0
  118. package/dist/tools/modify/place-color-chips.d.ts.map +1 -0
  119. package/dist/tools/modify/place-color-chips.js +218 -0
  120. package/dist/tools/modify/place-color-chips.js.map +1 -0
  121. package/dist/tools/modify/place-image.d.ts +3 -0
  122. package/dist/tools/modify/place-image.d.ts.map +1 -0
  123. package/dist/tools/modify/place-image.js +113 -0
  124. package/dist/tools/modify/place-image.js.map +1 -0
  125. package/dist/tools/modify/place-symbol.d.ts +3 -0
  126. package/dist/tools/modify/place-symbol.d.ts.map +1 -0
  127. package/dist/tools/modify/place-symbol.js +96 -0
  128. package/dist/tools/modify/place-symbol.js.map +1 -0
  129. package/dist/tools/modify/replace-color.d.ts +3 -0
  130. package/dist/tools/modify/replace-color.d.ts.map +1 -0
  131. package/dist/tools/modify/replace-color.js +136 -0
  132. package/dist/tools/modify/replace-color.js.map +1 -0
  133. package/dist/tools/modify/resize-for-variation.d.ts +3 -0
  134. package/dist/tools/modify/resize-for-variation.d.ts.map +1 -0
  135. package/dist/tools/modify/resize-for-variation.js +169 -0
  136. package/dist/tools/modify/resize-for-variation.js.map +1 -0
  137. package/dist/tools/modify/save-document.d.ts +3 -0
  138. package/dist/tools/modify/save-document.d.ts.map +1 -0
  139. package/dist/tools/modify/save-document.js +63 -0
  140. package/dist/tools/modify/save-document.js.map +1 -0
  141. package/dist/tools/modify/set-z-order.d.ts +3 -0
  142. package/dist/tools/modify/set-z-order.d.ts.map +1 -0
  143. package/dist/tools/modify/set-z-order.js +60 -0
  144. package/dist/tools/modify/set-z-order.js.map +1 -0
  145. package/dist/tools/modify/shared.d.ts +49 -1
  146. package/dist/tools/modify/shared.d.ts.map +1 -1
  147. package/dist/tools/modify/shared.js +48 -4
  148. package/dist/tools/modify/shared.js.map +1 -1
  149. package/dist/tools/modify/undo.d.ts +3 -0
  150. package/dist/tools/modify/undo.d.ts.map +1 -0
  151. package/dist/tools/modify/undo.js +64 -0
  152. package/dist/tools/modify/undo.js.map +1 -0
  153. package/dist/tools/modify/ungroup-objects.d.ts +3 -0
  154. package/dist/tools/modify/ungroup-objects.d.ts.map +1 -0
  155. package/dist/tools/modify/ungroup-objects.js +67 -0
  156. package/dist/tools/modify/ungroup-objects.js.map +1 -0
  157. package/dist/tools/read/check-contrast.d.ts +3 -0
  158. package/dist/tools/read/check-contrast.d.ts.map +1 -0
  159. package/dist/tools/read/check-contrast.js +239 -0
  160. package/dist/tools/read/check-contrast.js.map +1 -0
  161. package/dist/tools/read/convert-coordinate.d.ts +3 -0
  162. package/dist/tools/read/convert-coordinate.d.ts.map +1 -0
  163. package/dist/tools/read/convert-coordinate.js +74 -0
  164. package/dist/tools/read/convert-coordinate.js.map +1 -0
  165. package/dist/tools/read/extract-design-tokens.d.ts +3 -0
  166. package/dist/tools/read/extract-design-tokens.d.ts.map +1 -0
  167. package/dist/tools/read/extract-design-tokens.js +258 -0
  168. package/dist/tools/read/extract-design-tokens.js.map +1 -0
  169. package/dist/tools/read/find-objects.d.ts.map +1 -1
  170. package/dist/tools/read/find-objects.js +16 -37
  171. package/dist/tools/read/find-objects.js.map +1 -1
  172. package/dist/tools/read/get-artboards.d.ts.map +1 -1
  173. package/dist/tools/read/get-artboards.js +15 -13
  174. package/dist/tools/read/get-artboards.js.map +1 -1
  175. package/dist/tools/read/get-colors.d.ts.map +1 -1
  176. package/dist/tools/read/get-colors.js +93 -15
  177. package/dist/tools/read/get-colors.js.map +1 -1
  178. package/dist/tools/read/get-document-info.d.ts.map +1 -1
  179. package/dist/tools/read/get-document-info.js +47 -19
  180. package/dist/tools/read/get-document-info.js.map +1 -1
  181. package/dist/tools/read/get-document-structure.d.ts.map +1 -1
  182. package/dist/tools/read/get-document-structure.js +16 -24
  183. package/dist/tools/read/get-document-structure.js.map +1 -1
  184. package/dist/tools/read/get-effects.d.ts.map +1 -1
  185. package/dist/tools/read/get-effects.js +32 -43
  186. package/dist/tools/read/get-effects.js.map +1 -1
  187. package/dist/tools/read/get-groups.d.ts.map +1 -1
  188. package/dist/tools/read/get-groups.js +22 -26
  189. package/dist/tools/read/get-groups.js.map +1 -1
  190. package/dist/tools/read/get-guidelines.d.ts.map +1 -1
  191. package/dist/tools/read/get-guidelines.js +13 -16
  192. package/dist/tools/read/get-guidelines.js.map +1 -1
  193. package/dist/tools/read/get-images.d.ts.map +1 -1
  194. package/dist/tools/read/get-images.js +43 -25
  195. package/dist/tools/read/get-images.js.map +1 -1
  196. package/dist/tools/read/get-layers.d.ts.map +1 -1
  197. package/dist/tools/read/get-layers.js +14 -15
  198. package/dist/tools/read/get-layers.js.map +1 -1
  199. package/dist/tools/read/get-overprint-info.d.ts.map +1 -1
  200. package/dist/tools/read/get-overprint-info.js +72 -63
  201. package/dist/tools/read/get-overprint-info.js.map +1 -1
  202. package/dist/tools/read/get-path-items.d.ts.map +1 -1
  203. package/dist/tools/read/get-path-items.js +26 -20
  204. package/dist/tools/read/get-path-items.js.map +1 -1
  205. package/dist/tools/read/get-selection.d.ts.map +1 -1
  206. package/dist/tools/read/get-selection.js +19 -33
  207. package/dist/tools/read/get-selection.js.map +1 -1
  208. package/dist/tools/read/get-separation-info.d.ts +3 -0
  209. package/dist/tools/read/get-separation-info.d.ts.map +1 -0
  210. package/dist/tools/read/get-separation-info.js +94 -0
  211. package/dist/tools/read/get-separation-info.js.map +1 -0
  212. package/dist/tools/read/get-symbols.d.ts.map +1 -1
  213. package/dist/tools/read/get-symbols.js +19 -23
  214. package/dist/tools/read/get-symbols.js.map +1 -1
  215. package/dist/tools/read/get-text-frame-detail.d.ts.map +1 -1
  216. package/dist/tools/read/get-text-frame-detail.js +270 -67
  217. package/dist/tools/read/get-text-frame-detail.js.map +1 -1
  218. package/dist/tools/read/list-fonts.d.ts +3 -0
  219. package/dist/tools/read/list-fonts.d.ts.map +1 -0
  220. package/dist/tools/read/list-fonts.js +78 -0
  221. package/dist/tools/read/list-fonts.js.map +1 -0
  222. package/dist/tools/read/list-text-frames.d.ts.map +1 -1
  223. package/dist/tools/read/list-text-frames.js +99 -36
  224. package/dist/tools/read/list-text-frames.js.map +1 -1
  225. package/dist/tools/registry.d.ts.map +1 -1
  226. package/dist/tools/registry.js +68 -0
  227. package/dist/tools/registry.js.map +1 -1
  228. package/dist/tools/session.d.ts +36 -0
  229. package/dist/tools/session.d.ts.map +1 -0
  230. package/dist/tools/session.js +246 -0
  231. package/dist/tools/session.js.map +1 -0
  232. package/dist/tools/utility/check-text-consistency.d.ts +3 -0
  233. package/dist/tools/utility/check-text-consistency.d.ts.map +1 -0
  234. package/dist/tools/utility/check-text-consistency.js +303 -0
  235. package/dist/tools/utility/check-text-consistency.js.map +1 -0
  236. package/dist/tools/utility/preflight-check.d.ts.map +1 -1
  237. package/dist/tools/utility/preflight-check.js +141 -43
  238. package/dist/tools/utility/preflight-check.js.map +1 -1
  239. package/dist/tools/utility/set-workflow.d.ts +3 -0
  240. package/dist/tools/utility/set-workflow.d.ts.map +1 -0
  241. package/dist/tools/utility/set-workflow.js +95 -0
  242. package/dist/tools/utility/set-workflow.js.map +1 -0
  243. package/dist/utils/image-header.d.ts.map +1 -1
  244. package/dist/utils/image-header.js +5 -1
  245. package/dist/utils/image-header.js.map +1 -1
  246. package/package.json +1 -1
@@ -0,0 +1,78 @@
1
+ import { z } from 'zod';
2
+ import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { READ_ANNOTATIONS } from '../modify/shared.js';
4
+ /**
5
+ * list_fonts — Illustrator で利用可能なフォント一覧
6
+ *
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/TextFonts/ — TextFonts, TextFont
8
+ *
9
+ * JSX API:
10
+ * Application.textFonts → TextFonts コレクション
11
+ * TextFont.name → String (PostScript名)
12
+ * TextFont.family → String (ファミリー名)
13
+ * TextFont.style → String (スタイル名)
14
+ *
15
+ * ドキュメント不要。checkIllustratorVersion() のみ使用。
16
+ */
17
+ const jsxCode = `
18
+ try {
19
+ var verErr = checkIllustratorVersion();
20
+ if (verErr) {
21
+ writeResultFile(RESULT_PATH, verErr);
22
+ } else {
23
+ var params = readParamsFile(PARAMS_PATH);
24
+ var filterStr = (params.filter || "").toLowerCase();
25
+ var limit = params.limit || 100;
26
+ var fonts = [];
27
+
28
+ for (var i = 0; i < app.textFonts.length; i++) {
29
+ var tf = app.textFonts[i];
30
+ if (filterStr) {
31
+ var nameL = tf.name.toLowerCase();
32
+ var familyL = tf.family ? tf.family.toLowerCase() : "";
33
+ if (nameL.indexOf(filterStr) === -1 && familyL.indexOf(filterStr) === -1) {
34
+ continue;
35
+ }
36
+ }
37
+ fonts.push({
38
+ name: tf.name,
39
+ family: tf.family,
40
+ style: tf.style
41
+ });
42
+ if (fonts.length >= limit) break;
43
+ }
44
+
45
+ writeResultFile(RESULT_PATH, {
46
+ count: fonts.length,
47
+ totalAvailable: app.textFonts.length,
48
+ fonts: fonts
49
+ });
50
+ }
51
+ } catch (e) {
52
+ writeResultFile(RESULT_PATH, { error: true, message: "list_fonts failed: " + e.message, line: e.line });
53
+ }
54
+ `;
55
+ export function register(server) {
56
+ server.registerTool('list_fonts', {
57
+ title: 'List Fonts',
58
+ description: 'List fonts available in Illustrator. Does not require an open document.',
59
+ inputSchema: {
60
+ filter: z
61
+ .string()
62
+ .optional()
63
+ .describe('Filter by family or name (case-insensitive partial match)'),
64
+ limit: z
65
+ .number()
66
+ .int()
67
+ .min(1)
68
+ .optional()
69
+ .default(100)
70
+ .describe('Max fonts to return (default 100)'),
71
+ },
72
+ annotations: READ_ANNOTATIONS,
73
+ }, async (params) => {
74
+ const result = await executeJsx(jsxCode, params);
75
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
76
+ });
77
+ }
78
+ //# sourceMappingURL=list-fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-fonts.js","sourceRoot":"","sources":["../../../src/tools/read/list-fonts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,mCAAmC,CAAC;SACjD;QACD,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,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":"list-text-frames.d.ts","sourceRoot":"","sources":["../../../src/tools/read/list-text-frames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2JpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BhD"}
1
+ {"version":3,"file":"list-text-frames.d.ts","sourceRoot":"","sources":["../../../src/tools/read/list-text-frames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgOpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuBhD"}
@@ -1,5 +1,12 @@
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, coerceBoolean } from '../modify/shared.js';
5
+ /**
6
+ * list_text_frames — テキストフレーム一覧の取得
7
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/TextFrameItems/ — TextFrameItems collection
8
+ * @see https://ai-scripting.docsforadobe.dev/jsobjref/TextFrameItem/ — contents, kind, textRange
9
+ */
3
10
  const jsxCode = `
4
11
  var preflight = preflightChecks();
5
12
  if (preflight) {
@@ -11,6 +18,10 @@ if (preflight) {
11
18
  var coordSystem = (params && params.coordinate_system) ? params.coordinate_system : "artboard-web";
12
19
  var filterLayer = (params && params.layer_name) ? params.layer_name : null;
13
20
  var filterArtboard = (params && typeof params.artboard_index === "number") ? params.artboard_index : null;
21
+ var sortMode = (params && params.sort) ? params.sort : null;
22
+ var contentsOnly = (params && params.contents_only === true) ? true : false;
23
+ var paramOffset = (params && typeof params.offset === "number") ? params.offset : 0;
24
+ var paramLimit = (params && typeof params.limit === "number") ? params.limit : null;
14
25
 
15
26
  // アートボードインデックスの範囲チェック
16
27
  if (filterArtboard !== null && (filterArtboard < 0 || filterArtboard >= doc.artboards.length)) {
@@ -44,38 +55,57 @@ if (preflight) {
44
55
  }
45
56
 
46
57
  if (sourceFrames !== null) {
47
- // アートボード矩形の取得(座標変換用)
48
- var artboardRect = null;
49
- if (filterArtboard !== null) {
50
- artboardRect = doc.artboards[filterArtboard].artboardRect;
51
- }
58
+ var artboardRect = (filterArtboard !== null) ? getArtboardRectByIndex(filterArtboard) : null;
52
59
 
53
60
  var textFrames = [];
61
+ var canPaginateEarly = contentsOnly && sortMode !== "reading-order";
62
+ var earlySkipped = 0;
63
+ var earlyCollected = 0;
64
+
54
65
  for (var i = 0; i < sourceFrames.length; i++) {
55
66
  var tf = sourceFrames[i];
56
67
 
68
+ // アートボードインデックスを取得
69
+ var itemArtboardIndex = getArtboardIndexForItem(tf);
70
+
57
71
  // アートボードフィルタリング
58
72
  if (filterArtboard !== null) {
59
- var abIdx = getArtboardIndexForItem(tf);
60
- if (abIdx !== filterArtboard) continue;
73
+ if (itemArtboardIndex !== filterArtboard) continue;
74
+ }
75
+
76
+ // contentsOnly + sortなし: ループ内でページネーション適用
77
+ if (canPaginateEarly) {
78
+ if (earlySkipped < paramOffset) { earlySkipped++; continue; }
79
+ if (paramLimit !== null && earlyCollected >= paramLimit) break;
61
80
  }
62
81
 
63
- // テキスト種別
64
- var textKind = "unknown";
65
- if (tf.kind === TextType.POINTTEXT) {
66
- textKind = "point";
67
- } else if (tf.kind === TextType.AREATEXT) {
68
- textKind = "area";
69
- } else if (tf.kind === TextType.PATHTEXT) {
70
- textKind = "path";
82
+ if (contentsOnly) {
83
+ var contentsItem = {
84
+ uuid: ensureUUID(tf),
85
+ contents: tf.contents,
86
+ artboardIndex: itemArtboardIndex
87
+ };
88
+ if (sortMode === "reading-order") {
89
+ var sortAbRect = null;
90
+ if (coordSystem === "artboard-web" && itemArtboardIndex >= 0) {
91
+ sortAbRect = getArtboardRectByIndex(itemArtboardIndex);
92
+ }
93
+ var sortBounds = getBounds(tf, coordSystem, sortAbRect);
94
+ contentsItem.x = sortBounds.x;
95
+ contentsItem.y = sortBounds.y;
96
+ }
97
+ textFrames.push(contentsItem);
98
+ if (canPaginateEarly) { earlyCollected++; }
99
+ continue;
71
100
  }
72
101
 
102
+ var textKind = getTextKind(tf);
103
+
73
104
  // 座標変換用のアートボード矩形
74
105
  var boundsAbRect = artboardRect;
75
106
  if (!boundsAbRect && coordSystem === "artboard-web") {
76
- var itemAbIdx = getArtboardIndexForItem(tf);
77
- if (itemAbIdx >= 0) {
78
- boundsAbRect = doc.artboards[itemAbIdx].artboardRect;
107
+ if (itemArtboardIndex >= 0) {
108
+ boundsAbRect = getArtboardRectByIndex(itemArtboardIndex);
79
109
  }
80
110
  }
81
111
 
@@ -124,6 +154,7 @@ if (preflight) {
124
154
  uuid: ensureUUID(tf),
125
155
  zIndex: getZIndex(tf),
126
156
  contents: tf.contents,
157
+ artboardIndex: itemArtboardIndex,
127
158
  x: bounds.x,
128
159
  y: bounds.y,
129
160
  width: bounds.width,
@@ -138,11 +169,47 @@ if (preflight) {
138
169
  textFrames.push(info);
139
170
  }
140
171
 
141
- writeResultFile(RESULT_PATH, {
142
- coordinateSystem: coordSystem,
143
- count: textFrames.length,
144
- textFrames: textFrames
145
- });
172
+ if (sortMode === "reading-order") {
173
+ // document座標はY軸上向き正なので降順、artboard-web座標はY軸下向き正なので昇順
174
+ var yDir = (coordSystem === "document") ? -1 : 1;
175
+ textFrames.sort(function(a, b) {
176
+ if (a.artboardIndex !== b.artboardIndex) return a.artboardIndex - b.artboardIndex;
177
+ // y差が5pt以内なら同一行とみなしx座標で比較
178
+ if (Math.abs(a.y - b.y) > 5) return (a.y - b.y) * yDir;
179
+ return a.x - b.x;
180
+ });
181
+ if (contentsOnly) {
182
+ for (var si = 0; si < textFrames.length; si++) {
183
+ delete textFrames[si].x;
184
+ delete textFrames[si].y;
185
+ }
186
+ }
187
+ }
188
+
189
+ // totalCount: 早期ページネーション時はbreakで途切れた残りを加算
190
+ var totalCount;
191
+ if (canPaginateEarly && paramLimit !== null && earlyCollected >= paramLimit) {
192
+ if (filterArtboard === null) {
193
+ totalCount = sourceFrames.length;
194
+ } else {
195
+ totalCount = earlySkipped + earlyCollected;
196
+ for (var ri = i; ri < sourceFrames.length; ri++) {
197
+ if (getArtboardIndexForItem(sourceFrames[ri]) === filterArtboard) totalCount++;
198
+ }
199
+ }
200
+ } else if (canPaginateEarly) {
201
+ totalCount = earlySkipped + earlyCollected;
202
+ } else {
203
+ totalCount = textFrames.length;
204
+ if (paramOffset > 0 || paramLimit !== null) {
205
+ textFrames = textFrames.slice(paramOffset, paramLimit !== null ? paramOffset + paramLimit : textFrames.length);
206
+ }
207
+ }
208
+
209
+ var payload = { totalCount: totalCount, count: textFrames.length, textFrames: textFrames };
210
+ if (!contentsOnly) { payload.coordinateSystem = coordSystem; }
211
+ if (paramOffset > 0 || paramLimit !== null) { payload.offset = paramOffset; }
212
+ writeResultFile(RESULT_PATH, payload);
146
213
  }
147
214
  }
148
215
  } catch (e) {
@@ -153,24 +220,20 @@ if (preflight) {
153
220
  export function register(server) {
154
221
  server.registerTool('list_text_frames', {
155
222
  title: 'List Text Frames',
156
- description: 'List text frames with summary-level information',
223
+ description: 'List text frames with summary-level information. Supports reading-order sort, pagination, and a lightweight contents-only mode.',
157
224
  inputSchema: {
158
225
  layer_name: z.string().optional().describe('Filter by layer name'),
159
226
  artboard_index: z.number().int().min(0).optional().describe('Filter by artboard index (0-based integer)'),
160
- coordinate_system: z
161
- .enum(['artboard-web', 'document'])
162
- .optional()
163
- .default('artboard-web')
164
- .describe('Coordinate system (artboard-web: artboard-relative Y-down, document: native Illustrator coordinates)'),
165
- },
166
- annotations: {
167
- readOnlyHint: true,
168
- destructiveHint: false,
169
- idempotentHint: true,
170
- openWorldHint: false,
227
+ sort: z.enum(['reading-order']).optional().describe('Sort order. "reading-order" sorts by artboardIndex asc → y asc → x asc (rows within ~5pt tolerance are treated as the same line)'),
228
+ contents_only: coerceBoolean.optional().describe('When true, return only uuid, contents, and artboardIndex (no position/font/style info). Useful for text proofreading.'),
229
+ offset: z.number().int().min(0).optional().describe('Number of items to skip (for pagination). Applied after sort.'),
230
+ limit: z.number().int().min(1).optional().describe('Maximum number of items to return (for pagination). Applied after sort.'),
231
+ coordinate_system: coordinateSystemSchema,
171
232
  },
233
+ annotations: READ_ANNOTATIONS,
172
234
  }, async (params) => {
173
- const result = await executeJsx(jsxCode, params);
235
+ const resolvedParams = { ...params, coordinate_system: await resolveCoordinateSystem(params.coordinate_system) };
236
+ const result = await executeJsx(jsxCode, resolvedParams);
174
237
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
175
238
  });
176
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-text-frames.js","sourceRoot":"","sources":["../../../src/tools/read/list-text-frames.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACzG,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,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
+ {"version":3,"file":"list-text-frames.js","sourceRoot":"","sources":["../../../src/tools/read/list-text-frames.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,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE;;;;GAIG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiNf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,iIAAiI;QAC9I,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACzG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kIAAkI,CAAC;YACvL,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uHAAuH,CAAC;YACzK,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YACpH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;YAC7H,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,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":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqCpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmCxD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyEpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuExD"}
@@ -15,11 +15,16 @@ import { register as registerGetImages } from './read/get-images.js';
15
15
  import { register as registerGetSymbols } from './read/get-symbols.js';
16
16
  import { register as registerGetDocumentStructure } from './read/get-document-structure.js';
17
17
  import { register as registerFindObjects } from './read/find-objects.js';
18
+ import { register as registerCheckContrast } from './read/check-contrast.js';
19
+ import { register as registerExtractDesignTokens } from './read/extract-design-tokens.js';
18
20
  // Phase 3: 書き出し + 印刷向け読み取り
19
21
  import { register as registerExport } from './export/export.js';
20
22
  import { register as registerExportPdf } from './export/export-pdf.js';
21
23
  import { register as registerGetOverprintInfo } from './read/get-overprint-info.js';
24
+ import { register as registerGetSeparationInfo } from './read/get-separation-info.js';
22
25
  import { register as registerPreflightCheck } from './utility/preflight-check.js';
26
+ import { register as registerCheckTextConsistency } from './utility/check-text-consistency.js';
27
+ import { register as registerSetWorkflow } from './utility/set-workflow.js';
23
28
  // Phase 4: 操作系ツール
24
29
  import { register as registerCreateRectangle } from './modify/create-rectangle.js';
25
30
  import { register as registerCreateEllipse } from './modify/create-ellipse.js';
@@ -29,6 +34,35 @@ import { register as registerCreatePath } from './modify/create-path.js';
29
34
  import { register as registerModifyObject } from './modify/modify-object.js';
30
35
  import { register as registerConvertToOutlines } from './modify/convert-to-outlines.js';
31
36
  import { register as registerApplyColorProfile } from './modify/apply-color-profile.js';
37
+ import { register as registerPlaceImage } from './modify/place-image.js';
38
+ import { register as registerResizeForVariation } from './modify/resize-for-variation.js';
39
+ import { register as registerAlignObjects } from './modify/align-objects.js';
40
+ import { register as registerReplaceColor } from './modify/replace-color.js';
41
+ import { register as registerManageLayers } from './modify/manage-layers.js';
42
+ import { register as registerPlaceColorChips } from './modify/place-color-chips.js';
43
+ // Phase 5: ドキュメント管理ツール
44
+ import { register as registerCreateDocument } from './modify/create-document.js';
45
+ import { register as registerCloseDocument } from './modify/close-document.js';
46
+ // Phase 6: 新規ツール
47
+ import { register as registerSaveDocument } from './modify/save-document.js';
48
+ import { register as registerOpenDocument } from './modify/open-document.js';
49
+ import { register as registerGroupObjects } from './modify/group-objects.js';
50
+ import { register as registerUngroupObjects } from './modify/ungroup-objects.js';
51
+ import { register as registerDuplicateObjects } from './modify/duplicate-objects.js';
52
+ import { register as registerListFonts } from './read/list-fonts.js';
53
+ import { register as registerManageArtboards } from './modify/manage-artboards.js';
54
+ import { register as registerSetZOrder } from './modify/set-z-order.js';
55
+ import { register as registerMoveToLayer } from './modify/move-to-layer.js';
56
+ import { register as registerApplyGraphicStyle } from './modify/apply-graphic-style.js';
57
+ import { register as registerManageSwatches } from './modify/manage-swatches.js';
58
+ import { register as registerApplyTextStyle } from './modify/apply-text-style.js';
59
+ import { register as registerCreateGradient } from './modify/create-gradient.js';
60
+ import { register as registerManageLinkedImages } from './modify/manage-linked-images.js';
61
+ import { register as registerUndo } from './modify/undo.js';
62
+ import { register as registerManageDatasets } from './modify/manage-datasets.js';
63
+ import { register as registerPlaceSymbol } from './modify/place-symbol.js';
64
+ import { register as registerCreatePathText } from './modify/create-path-text.js';
65
+ import { register as registerConvertCoordinate } from './read/convert-coordinate.js';
32
66
  export function registerAllTools(server) {
33
67
  // Phase 1: 基本読み取りツール
34
68
  registerGetDocumentInfo(server);
@@ -47,11 +81,16 @@ export function registerAllTools(server) {
47
81
  registerGetSymbols(server);
48
82
  registerGetDocumentStructure(server);
49
83
  registerFindObjects(server);
84
+ registerCheckContrast(server);
85
+ registerExtractDesignTokens(server);
50
86
  // Phase 3: 書き出し + 印刷向け
51
87
  registerExport(server);
52
88
  registerExportPdf(server);
53
89
  registerGetOverprintInfo(server);
90
+ registerGetSeparationInfo(server);
54
91
  registerPreflightCheck(server);
92
+ registerCheckTextConsistency(server);
93
+ registerSetWorkflow(server);
55
94
  // Phase 4: 操作系
56
95
  registerCreateRectangle(server);
57
96
  registerCreateEllipse(server);
@@ -61,5 +100,34 @@ export function registerAllTools(server) {
61
100
  registerModifyObject(server);
62
101
  registerConvertToOutlines(server);
63
102
  registerApplyColorProfile(server);
103
+ registerPlaceImage(server);
104
+ registerResizeForVariation(server);
105
+ registerAlignObjects(server);
106
+ registerReplaceColor(server);
107
+ registerManageLayers(server);
108
+ registerPlaceColorChips(server);
109
+ // Phase 5: ドキュメント管理
110
+ registerCreateDocument(server);
111
+ registerCloseDocument(server);
112
+ // Phase 6: 新規ツール
113
+ registerSaveDocument(server);
114
+ registerOpenDocument(server);
115
+ registerGroupObjects(server);
116
+ registerUngroupObjects(server);
117
+ registerDuplicateObjects(server);
118
+ registerListFonts(server);
119
+ registerManageArtboards(server);
120
+ registerSetZOrder(server);
121
+ registerMoveToLayer(server);
122
+ registerApplyGraphicStyle(server);
123
+ registerManageSwatches(server);
124
+ registerApplyTextStyle(server);
125
+ registerCreateGradient(server);
126
+ registerManageLinkedImages(server);
127
+ registerUndo(server);
128
+ registerManageDatasets(server);
129
+ registerPlaceSymbol(server);
130
+ registerCreatePathText(server);
131
+ registerConvertCoordinate(server);
64
132
  }
65
133
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,OAAO,EAAE,QAAQ,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEhF,6BAA6B;AAC7B,OAAO,EAAE,QAAQ,IAAI,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEzE,2BAA2B;AAC3B,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAElF,kBAAkB;AAClB,OAAO,EAAE,QAAQ,IAAI,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,QAAQ,IAAI,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,QAAQ,IAAI,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAExF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,qBAAqB;IACrB,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,oBAAoB;IACpB,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,uBAAuB;IACvB,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,eAAe;IACf,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export type WorkflowType = 'web' | 'print' | 'video' | 'unknown';
3
+ export type CoordinateSystem = 'artboard-web' | 'document';
4
+ export declare function getSessionCoordinateSystem(): CoordinateSystem | null;
5
+ export declare function getSessionWorkflow(): WorkflowType | null;
6
+ export declare function setSession(workflow: WorkflowType, coordinateSystem: CoordinateSystem): void;
7
+ export declare function clearSession(): void;
8
+ /** ドキュメント切替時(create/close/open)に自動検出キャッシュのみ無効化 */
9
+ export declare function invalidateAutoDetectCache(): void;
10
+ /**
11
+ * Resolve coordinate_system:
12
+ * 1. explicit param (per-tool call)
13
+ * 2. session default (set via set_workflow)
14
+ * 3. auto-detect from document signals (cached, invalidated on document switch)
15
+ * 4. fallback: 'artboard-web'
16
+ */
17
+ export declare function resolveCoordinateSystem(explicit?: CoordinateSystem): Promise<CoordinateSystem>;
18
+ export declare const coordinateSystemSchema: z.ZodOptional<z.ZodEnum<{
19
+ "artboard-web": "artboard-web";
20
+ document: "document";
21
+ }>>;
22
+ interface DocumentSignals {
23
+ colorMode: string;
24
+ rulerUnits: string;
25
+ rasterEffectResolution: number;
26
+ colorProfile: string;
27
+ }
28
+ export interface WorkflowHint {
29
+ detectedWorkflow: WorkflowType;
30
+ recommendedCoordinateSystem: CoordinateSystem;
31
+ reasoning: string;
32
+ signals: DocumentSignals;
33
+ }
34
+ export declare function detectWorkflow(signals: DocumentSignals): WorkflowHint;
35
+ export {};
36
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,UAAU,CAAC;AAS3D,wBAAgB,0BAA0B,IAAI,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAExD;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,GACjC,IAAI,CAIN;AAED,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED,kDAAkD;AAClD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAoGD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAID,eAAO,MAAM,sBAAsB;;;GAKhC,CAAC;AAIJ,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,2BAA2B,EAAE,gBAAgB,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,CAqFrE"}