human2ai 0.1.2 → 0.1.4

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 (181) hide show
  1. package/README.en.md +36 -4
  2. package/README.md +44 -4
  3. package/dist/cli/main.js +47 -13
  4. package/dist/cli/main.js.map +1 -1
  5. package/dist/database/style-library-repository.d.ts +14 -1
  6. package/dist/database/style-library-repository.js +59 -0
  7. package/dist/database/style-library-repository.js.map +1 -1
  8. package/dist/domain/composition/analysis.d.ts +3 -0
  9. package/dist/domain/composition/analysis.js +5 -0
  10. package/dist/domain/composition/analysis.js.map +1 -1
  11. package/dist/domain/composition/draft.d.ts +2 -0
  12. package/dist/domain/composition/draft.js +126 -5
  13. package/dist/domain/composition/draft.js.map +1 -1
  14. package/dist/domain/composition/frame.d.ts +1 -0
  15. package/dist/domain/composition/frame.js +6 -0
  16. package/dist/domain/composition/frame.js.map +1 -1
  17. package/dist/domain/composition/geometry.d.ts +5 -1
  18. package/dist/domain/composition/geometry.js +40 -2
  19. package/dist/domain/composition/geometry.js.map +1 -1
  20. package/dist/domain/composition/index.d.ts +6 -3
  21. package/dist/domain/composition/index.js +6 -3
  22. package/dist/domain/composition/index.js.map +1 -1
  23. package/dist/domain/composition/planning-intersections.d.ts +20 -0
  24. package/dist/domain/composition/planning-intersections.js +119 -0
  25. package/dist/domain/composition/planning-intersections.js.map +1 -0
  26. package/dist/domain/composition/planning.d.ts +25 -0
  27. package/dist/domain/composition/planning.js +152 -0
  28. package/dist/domain/composition/planning.js.map +1 -0
  29. package/dist/domain/composition/refinement/engine.js +1 -0
  30. package/dist/domain/composition/refinement/engine.js.map +1 -1
  31. package/dist/domain/composition/render.js +14 -1
  32. package/dist/domain/composition/render.js.map +1 -1
  33. package/dist/domain/composition/states.js +6 -3
  34. package/dist/domain/composition/states.js.map +1 -1
  35. package/dist/domain/composition/types.d.ts +49 -1
  36. package/dist/domain/session/capabilities.js +1 -0
  37. package/dist/domain/session/capabilities.js.map +1 -1
  38. package/dist/domain/spatial/camera-box-sheet.d.ts +15 -0
  39. package/dist/domain/spatial/camera-box-sheet.js +24 -0
  40. package/dist/domain/spatial/camera-box-sheet.js.map +1 -0
  41. package/dist/domain/spatial/camera-box.d.ts +1 -1
  42. package/dist/domain/spatial/camera-box.js +6 -2
  43. package/dist/domain/spatial/camera-box.js.map +1 -1
  44. package/dist/domain/spatial/camera-render-key.d.ts +7 -0
  45. package/dist/domain/spatial/camera-render-key.js +63 -0
  46. package/dist/domain/spatial/camera-render-key.js.map +1 -0
  47. package/dist/domain/spatial/index.d.ts +1 -0
  48. package/dist/domain/spatial/index.js +1 -0
  49. package/dist/domain/spatial/index.js.map +1 -1
  50. package/dist/domain/spatial/lighting.js +3 -2
  51. package/dist/domain/spatial/lighting.js.map +1 -1
  52. package/dist/domain/spatial/model.d.ts +2 -0
  53. package/dist/domain/spatial/model.js +82 -27
  54. package/dist/domain/spatial/model.js.map +1 -1
  55. package/dist/domain/spatial/preview.d.ts +4 -0
  56. package/dist/domain/spatial/preview.js +23 -0
  57. package/dist/domain/spatial/preview.js.map +1 -0
  58. package/dist/domain/spatial/reference-lines.d.ts +12 -3
  59. package/dist/domain/spatial/reference-lines.js +37 -16
  60. package/dist/domain/spatial/reference-lines.js.map +1 -1
  61. package/dist/domain/spatial/render-inputs.d.ts +3 -0
  62. package/dist/domain/spatial/render-inputs.js +14 -0
  63. package/dist/domain/spatial/render-inputs.js.map +1 -0
  64. package/dist/domain/spatial/scene-cache.d.ts +13 -1
  65. package/dist/domain/spatial/scene-cache.js +90 -11
  66. package/dist/domain/spatial/scene-cache.js.map +1 -1
  67. package/dist/domain/spatial/scene-update.d.ts +6 -0
  68. package/dist/domain/spatial/scene-update.js +52 -0
  69. package/dist/domain/spatial/scene-update.js.map +1 -0
  70. package/dist/domain/spatial/scene.d.ts +3 -1
  71. package/dist/domain/spatial/scene.js +78 -20
  72. package/dist/domain/spatial/scene.js.map +1 -1
  73. package/dist/domain/spatial/types.d.ts +8 -0
  74. package/dist/domain/spatial/types.js.map +1 -1
  75. package/dist/domain/style/model-input.d.ts +3 -0
  76. package/dist/domain/style/model-input.js +36 -0
  77. package/dist/domain/style/model-input.js.map +1 -0
  78. package/dist/domain/style/types.d.ts +8 -1
  79. package/dist/domain/style/types.js +1 -1
  80. package/dist/domain/style/types.js.map +1 -1
  81. package/dist/domain/ui-sketch/clipboard.d.ts +12 -0
  82. package/dist/domain/ui-sketch/clipboard.js +55 -0
  83. package/dist/domain/ui-sketch/clipboard.js.map +1 -0
  84. package/dist/domain/ui-sketch/index.d.ts +1 -0
  85. package/dist/domain/ui-sketch/index.js +1 -0
  86. package/dist/domain/ui-sketch/index.js.map +1 -1
  87. package/dist/server/routes/spatial-sessions.js +39 -15
  88. package/dist/server/routes/spatial-sessions.js.map +1 -1
  89. package/dist/server/routes/style-library.js +39 -0
  90. package/dist/server/routes/style-library.js.map +1 -1
  91. package/dist/server/spatial-render-service.d.ts +21 -0
  92. package/dist/server/spatial-render-service.js +67 -0
  93. package/dist/server/spatial-render-service.js.map +1 -0
  94. package/dist/server/spatial-render-worker.d.ts +1 -0
  95. package/dist/server/spatial-render-worker.js +15 -0
  96. package/dist/server/spatial-render-worker.js.map +1 -0
  97. package/dist/server/spatial-render.d.ts +15 -3
  98. package/dist/server/spatial-render.js +47 -14
  99. package/dist/server/spatial-render.js.map +1 -1
  100. package/locales/en/common.json +94 -14
  101. package/migrations/0009_spatial_styles.sql +31 -0
  102. package/migrations/0010_style_preview_models.sql +8 -0
  103. package/package.json +1 -1
  104. package/schemas/composition-draft.schema.json +474 -1
  105. package/schemas/spatial-draft.schema.json +12 -0
  106. package/schemas/spatial-operations.schema.json +12 -0
  107. package/skills/human2ai/SKILL.md +23 -9
  108. package/skills/human2ai/references/composition.md +192 -1
  109. package/skills/human2ai/references/spatial-modeling.md +119 -0
  110. package/skills/human2ai/references/spatial.md +7 -2
  111. package/web/out/404/index.html +1 -1
  112. package/web/out/404.html +1 -1
  113. package/web/out/__next.__PAGE__.txt +7 -5
  114. package/web/out/__next._full.txt +7 -5
  115. package/web/out/__next._tree.txt +4 -2
  116. package/web/out/_next/static/chunks/101.6ef34adad3e9815b.js +1 -0
  117. package/web/out/_next/static/chunks/130-7e9e715a084569bb.js +1 -0
  118. package/web/out/_next/static/chunks/166-96a8c6ae1e9aed59.js +1 -0
  119. package/web/out/_next/static/chunks/218.7b89674409b344b8.js +1 -0
  120. package/web/out/_next/static/chunks/484.92b016222d6749f2.js +1 -0
  121. package/web/out/_next/static/chunks/{381-4a803b79da320e6e.js → 635-611c009924b842be.js} +54 -54
  122. package/web/out/_next/static/chunks/653-6dfb97fec9a2d91b.js +1 -0
  123. package/web/out/_next/static/chunks/678-32d3aa1859450d63.js +1 -0
  124. package/web/out/_next/static/chunks/83607670-fd2f339702a222e4.js +1 -0
  125. package/web/out/_next/static/chunks/app/_not-found/{page-59ce938ad0594022.js → page-b92817fdc4609975.js} +1 -1
  126. package/web/out/_next/static/chunks/app/composition/page-6c12ee8472715448.js +1 -0
  127. package/web/out/_next/static/chunks/app/{layout-6351ae607c4ee18d.js → layout-1dd9196cde94389c.js} +1 -1
  128. package/web/out/_next/static/chunks/app/page-741ecaf9ee8c3c07.js +1 -0
  129. package/web/out/_next/static/chunks/app/spatial/page-5ba0940650df6c7f.js +1 -0
  130. package/web/out/_next/static/chunks/app/styles/page-1ccfc2c5fbc1e646.js +1 -0
  131. package/web/out/_next/static/chunks/app/ui-sketch/page-ef4f2e531583e684.js +1 -0
  132. package/web/out/_next/static/chunks/{c3f2cda1-9e279dab137b7272.js → c3f2cda1-ef85a0897724e46b.js} +1 -1
  133. package/web/out/_next/static/chunks/main-app-cf37a257d91ce62e.js +1 -0
  134. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-33b4f58f02e82215.js +1 -0
  135. package/web/out/_next/static/chunks/webpack-d16ce1f994e98178.js +1 -0
  136. package/web/out/_next/static/css/06743b5635914999.css +5 -0
  137. package/web/out/_next/static/css/0b43ff4a0439c97e.css +1 -0
  138. package/web/out/_next/static/css/1f8501a43042a5a2.css +1 -0
  139. package/web/out/_next/static/css/39e8cace36461a15.css +1 -0
  140. package/web/out/_not-found/__next._full.txt +3 -3
  141. package/web/out/_not-found/__next._not-found.__PAGE__.txt +3 -3
  142. package/web/out/_not-found/__next._tree.txt +1 -1
  143. package/web/out/_not-found/index.html +1 -1
  144. package/web/out/_not-found/index.txt +3 -3
  145. package/web/out/composition/__next._full.txt +6 -5
  146. package/web/out/composition/__next._tree.txt +3 -2
  147. package/web/out/composition/__next.composition.__PAGE__.txt +6 -5
  148. package/web/out/composition/index.html +1 -1
  149. package/web/out/composition/index.txt +6 -5
  150. package/web/out/index.html +1 -1
  151. package/web/out/index.txt +7 -5
  152. package/web/out/spatial/__next._full.txt +6 -5
  153. package/web/out/spatial/__next._tree.txt +3 -2
  154. package/web/out/spatial/__next.spatial.__PAGE__.txt +6 -5
  155. package/web/out/spatial/index.html +1 -1
  156. package/web/out/spatial/index.txt +6 -5
  157. package/web/out/styles/__next._full.txt +6 -5
  158. package/web/out/styles/__next._tree.txt +3 -2
  159. package/web/out/styles/__next.styles.__PAGE__.txt +6 -5
  160. package/web/out/styles/index.html +1 -1
  161. package/web/out/styles/index.txt +6 -5
  162. package/web/out/ui-sketch/__next._full.txt +6 -5
  163. package/web/out/ui-sketch/__next._tree.txt +3 -2
  164. package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +6 -5
  165. package/web/out/ui-sketch/index.html +1 -1
  166. package/web/out/ui-sketch/index.txt +6 -5
  167. package/web/out/_next/static/chunks/130-f2627352fc1e1f49.js +0 -1
  168. package/web/out/_next/static/chunks/678-b0ea409290a64ff4.js +0 -1
  169. package/web/out/_next/static/chunks/728-ce64a38c9e8339e8.js +0 -1
  170. package/web/out/_next/static/chunks/83607670-bc1279370476e59f.js +0 -1
  171. package/web/out/_next/static/chunks/app/composition/page-b0a2f7370b949cf9.js +0 -1
  172. package/web/out/_next/static/chunks/app/page-a6fde4165eb4be1e.js +0 -1
  173. package/web/out/_next/static/chunks/app/spatial/page-2c3df91fd1d7d444.js +0 -1
  174. package/web/out/_next/static/chunks/app/styles/page-54b11f1945d64255.js +0 -1
  175. package/web/out/_next/static/chunks/app/ui-sketch/page-1abcd70a81ac7b30.js +0 -1
  176. package/web/out/_next/static/chunks/main-app-8946bf6a8c0dc843.js +0 -1
  177. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-5ac7248e26f2e308.js +0 -1
  178. package/web/out/_next/static/chunks/webpack-97ae63c0e0b2a512.js +0 -1
  179. package/web/out/_next/static/css/7bfa3a5c92836f5c.css +0 -5
  180. /package/web/out/_next/static/{1To86KpfZhDmNzmTIgEuy → n4UcxqMmr_2CBmSxBp52z}/_buildManifest.js +0 -0
  181. /package/web/out/_next/static/{1To86KpfZhDmNzmTIgEuy → n4UcxqMmr_2CBmSxBp52z}/_ssgManifest.js +0 -0
@@ -4,6 +4,7 @@ import { mkdir, rm, unlink, writeFile } from "node:fs/promises";
4
4
  import { basename, dirname, join, resolve, sep } from "node:path";
5
5
  import { STYLE_CATEGORIES, STYLE_CREATOR_TYPES, } from "../domain/style/index.js";
6
6
  import { defaultStylePromptSummary, MAX_STYLE_PROMPT_SUMMARY_LENGTH } from "../domain/style/prompt-summary.js";
7
+ import { validStyleModel } from "../domain/style/model-input.js";
7
8
  import { inspectImageInput, MAX_IMAGE_ASSET_BYTES } from "./image-input.js";
8
9
  import { ProjectSessionRepository, RevisionConflictError } from "./project-session-repository.js";
9
10
  export class StyleNotFoundError extends Error {
@@ -181,11 +182,66 @@ export class StyleLibraryRepository {
181
182
  throw new StyleReferenceNotFoundError(styleId, referenceId);
182
183
  return { reference: mapReference(row), filePath };
183
184
  }
185
+ async setPreviewModel(styleId, input) {
186
+ const style = this.getStyle(styleId);
187
+ assertRevision(input.expectedRevision, style.revision);
188
+ if (!validStyleModel(input.data))
189
+ throw new InvalidStyleReferenceError("Use a self-contained GLB 2.0 model up to 10 MB, with embedded geometry and textures and no external decoder dependencies.");
190
+ const previous = this.previewModelRow(styleId);
191
+ const id = randomUUID();
192
+ const relativePath = join("styles", styleId, `${id}.glb`);
193
+ const filePath = this.filePath(relativePath);
194
+ const now = new Date().toISOString();
195
+ await mkdir(dirname(filePath), { recursive: true, mode: 0o700 });
196
+ await writeFile(filePath, input.data, { flag: "wx", mode: 0o600 });
197
+ try {
198
+ this.database.transaction(() => {
199
+ this.incrementRevision(styleId, input.expectedRevision, now);
200
+ this.database.prepare(`INSERT INTO style_preview_models (style_id, id, relative_path, original_filename, byte_size, created_at)
201
+ VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(style_id) DO UPDATE SET
202
+ id = excluded.id, relative_path = excluded.relative_path, original_filename = excluded.original_filename,
203
+ byte_size = excluded.byte_size, created_at = excluded.created_at
204
+ `).run(styleId, id, relativePath, safeFilename(input.filename), input.data.length, now);
205
+ })();
206
+ }
207
+ catch (error) {
208
+ await unlink(filePath).catch(() => undefined);
209
+ throw error;
210
+ }
211
+ if (previous)
212
+ await unlink(this.filePath(previous.relative_path)).catch(() => undefined);
213
+ return this.getStyle(styleId);
214
+ }
215
+ async deletePreviewModel(styleId, input) {
216
+ const style = this.getStyle(styleId);
217
+ assertRevision(input.expectedRevision, style.revision);
218
+ const previous = this.previewModelRow(styleId);
219
+ if (!previous)
220
+ return style;
221
+ this.database.transaction(() => {
222
+ this.incrementRevision(styleId, input.expectedRevision, new Date().toISOString());
223
+ this.database.prepare("DELETE FROM style_preview_models WHERE style_id = ?").run(styleId);
224
+ })();
225
+ await unlink(this.filePath(previous.relative_path)).catch(() => undefined);
226
+ return this.getStyle(styleId);
227
+ }
228
+ getPreviewModel(styleId, modelId) {
229
+ this.getStyle(styleId);
230
+ const row = this.previewModelRow(styleId);
231
+ if (!row || row.id !== modelId || !existsSync(this.filePath(row.relative_path)))
232
+ throw new StyleReferenceNotFoundError(styleId, modelId);
233
+ return { model: mapPreviewModel(row), filePath: this.filePath(row.relative_path) };
234
+ }
235
+ previewModelRow(styleId) {
236
+ return this.database.prepare("SELECT * FROM style_preview_models WHERE style_id = ?").get(styleId);
237
+ }
184
238
  mapStyle(row) {
185
239
  const references = this.database.prepare(`${REFERENCE_SELECT}
186
240
  WHERE style_id = ?
187
241
  ORDER BY position, id`).all(row.id);
242
+ const model = this.previewModelRow(row.id);
188
243
  return {
244
+ ...(model ? { previewModel: mapPreviewModel(model) } : {}),
189
245
  id: row.id,
190
246
  name: row.name,
191
247
  category: row.category,
@@ -287,4 +343,7 @@ function mapReference(row) {
287
343
  createdAt: row.created_at,
288
344
  };
289
345
  }
346
+ function mapPreviewModel(row) {
347
+ return { id: row.id, originalFilename: row.original_filename, byteSize: row.byte_size, createdAt: row.created_at };
348
+ }
290
349
  //# sourceMappingURL=style-library-repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style-library-repository.js","sourceRoot":"","sources":["../../src/database/style-library-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAMpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AA2BlG,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGtB;IAFZ,IAAI,GAAG,iBAAiB,CAAC;IAElC,YAAqB,OAAe;QAClC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QADlB,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAG/B;IAA0B;IAFtC,IAAI,GAAG,2BAA2B,CAAC;IAE5C,YAAqB,OAAe,EAAW,WAAmB;QAChE,KAAK,CAAC,mBAAmB,WAAW,2BAA2B,OAAO,EAAE,CAAC,CAAC;QADvD,YAAO,GAAP,OAAO,CAAQ;QAAW,gBAAW,GAAX,WAAW,CAAQ;IAElE,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,eAAe,CAAC;CACjC;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAIxC;IACA;IAJF,IAAI,GAAG,yBAAyB,CAAC;IAE1C,YACW,gBAAwB,EACxB,cAAsB;QAE/B,KAAK,CAAC,2BAA2B,gBAAgB,cAAc,cAAc,EAAE,CAAC,CAAC;QAHxE,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,mBAAc,GAAd,cAAc,CAAQ;IAGjC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,yBAAyB,CAAC;CAC3C;AAED,MAAM,OAAO,sBAAsB;IAId;IAHF,aAAa,CAAS;IAEvC,YACmB,QAA4B,EAC7C,kBAA0B;QADT,aAAQ,GAAR,QAAQ,CAAoB;QAG7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAoB,GAAG,YAAY;;KAEpE,CAAC,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAA0B,GAAG,YAAY;;KAEzE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,gBAAgB,CACd,SAAiB,EACjB,KAA2D;QAE3D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAChD,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB;yCAC+B,CAChC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,WAAW,CAAC,KAMX;QACC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,aAAa,IAAI,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7G,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB;;0CAEoC,CACrC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,WAAW,CACT,OAAe,EACf,KAMC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS;YACnC,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC3C,CAAC,CAAC,KAAK,CAAC,QAAQ;YAChB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS;YACjD,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,KAAK,SAAS;YACrD,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9C,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBAC/B,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;QAC1B,IACE,IAAI,KAAK,KAAK,CAAC,IAAI;eAChB,QAAQ,KAAK,KAAK,CAAC,QAAQ;eAC3B,WAAW,KAAK,KAAK,CAAC,WAAW;eACjC,aAAa,KAAK,KAAK,CAAC,aAAa,EACxC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB;;qCAE+B,CAChC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,KAAmC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,iGAAiG,CAClG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,yDAAyD,CAC1D,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,KAIC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CACpC;;8BAEoB,CACrB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB;;;iDAGuC,CACxC,CAAC,GAAG,CACH,EAAE,EACF,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,IAAI,CAAC,UAAU,EACrB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,EACZ,QAAQ,EACR,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,WAAmB,EACnB,KAAmC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,kEAAkE,CACnE,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CACf,OAAe,EACf,WAAmB;QAEnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACvF,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IAEO,QAAQ,CAAC,GAAkB;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CACtC,GAAG,gBAAgB;;6BAEI,CACxB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/E,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,WAAmB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAC/B,GAAG,gBAAgB;qCACY,CAChC,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACtE,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,iBAAiB,CACvB,OAAe,EACf,gBAAwB,EACxB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAClC;;qCAE+B,CAChC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;YACvD,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,YAAoB;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC3D,IACE,QAAQ,KAAK,IAAI,CAAC,aAAa;eAC5B,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,EACtD,CAAC;YACD,MAAM,IAAI,0BAA0B,CAClC,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,YAAY,GAAG;;;CAGpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;CAIxB,CAAC;AAEF,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,0BAA0B,CAClC,SAAS,CAAC,KAAK,KAAK,MAAM;YACxB,CAAC,CAAC,+CAA+C,qBAAqB,SAAS;YAC/E,CAAC,CAAC,gEAAgE,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,iBAAiB,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAiB,CAAC,GAAG,KAAK,kBAAkB,SAAS,aAAa,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,sBAAsB,EAAE,+BAA+B,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,gBAAwB,EAAE,cAAsB;IACtE,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxC,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,KAAK,IAAI,iBAAiB,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B;IAC/C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"style-library-repository.js","sourceRoot":"","sources":["../../src/database/style-library-repository.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { visibleAreaMetrics } from "./draft.ts";
2
+ import { type CompositionPlanIntersection } from "./planning-intersections.ts";
2
3
  import type { CompositionArea, CompositionDraft, CompositionVisualWeight, Point } from "./types.ts";
3
4
  export type ClippedSide = "top" | "right" | "bottom" | "left";
4
5
  export interface CompositionAxisFact {
@@ -40,6 +41,8 @@ export interface CompositionLayoutFacts {
40
41
  }>;
41
42
  }
42
43
  export interface CompositionInspection {
44
+ plans?: CompositionDraft["plans"];
45
+ planningIntersections: CompositionPlanIntersection[];
43
46
  version: 1;
44
47
  kind: "composition-inspection";
45
48
  sourceFingerprint: string;
@@ -1,6 +1,7 @@
1
1
  import { validateDraft, visibleAreaMetrics } from "./draft.js";
2
2
  import { COMPOSITION_CANVAS, canvasPointToFrame, frameBoundsInCanvas, } from "./frame.js";
3
3
  import { areaGeometry, compositionImageBounds, geometryBounds } from "./geometry.js";
4
+ import { compositionPlanningIntersections } from "./planning-intersections.js";
4
5
  import { fingerprintText } from "../fingerprint.js";
5
6
  export function draftFingerprint(input) {
6
7
  const draft = validateDraft(input);
@@ -64,6 +65,8 @@ export function inspectComposition(input) {
64
65
  return {
65
66
  version: 1,
66
67
  kind: "composition-inspection",
68
+ ...(draft.plans ? { plans: structuredClone(draft.plans) } : {}),
69
+ planningIntersections: compositionPlanningIntersections(draft),
67
70
  sourceFingerprint: draftFingerprint(draft),
68
71
  processingSemantic: draft.processingSemantic,
69
72
  frame: structuredClone(draft.frame),
@@ -257,6 +260,7 @@ function inspectedPoint(point, frame) {
257
260
  }
258
261
  function canonicalDraftJson(draft) {
259
262
  return JSON.stringify({
263
+ ...(draft.plans ? { plans: draft.plans } : {}),
260
264
  ...(draft.states ? {
261
265
  activeStateId: draft.activeStateId,
262
266
  states: draft.states.map(({ id, number, name, layout }) => ({ id, number, name, layout })),
@@ -307,6 +311,7 @@ function canonicalDraftJson(draft) {
307
311
  ...(area.rotation === undefined ? {} : { rotation: area.rotation }),
308
312
  ...(area.width === undefined ? {} : { width: area.width }),
309
313
  ...(area.height === undefined ? {} : { height: area.height }),
314
+ ...(area.corners === undefined ? {} : { corners: area.corners }),
310
315
  })),
311
316
  images: draft.images.map((image) => ({
312
317
  id: image.id,
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/domain/composition/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/domain/composition/analysis.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export declare function addDirectionLine(input: CompositionDraft): {
31
31
  export declare function copyCompositionItems(input: CompositionDraft, ids: readonly string[]): CompositionClipboardItem[];
32
32
  export declare function pasteCompositionItems(input: CompositionDraft, clipboard: readonly CompositionClipboardItem[], offset: Point): PasteCompositionItemsResult;
33
33
  export declare function moveItem(input: CompositionDraft, id: string, point: Point): CompositionDraft;
34
+ export declare function moveTextRegionCorner(input: CompositionDraft, id: string, index: number, point: Point): CompositionDraft;
34
35
  export declare function resizeArea(input: CompositionDraft, id: string, nextArea: number): CompositionDraft;
35
36
  export declare function resizeFreeArea(input: CompositionDraft, id: string, width: number, height: number): CompositionDraft;
36
37
  export declare function rotateArea(input: CompositionDraft, id: string, rotation: number): CompositionDraft;
@@ -48,3 +49,4 @@ export declare function moveFrame(input: CompositionDraft, point: Point): Compos
48
49
  export declare function resizeFrame(input: CompositionDraft, scale: number, corner?: CompositionFrameCorner): CompositionDraft;
49
50
  export declare function resizeFrameToBounds(input: CompositionDraft, bounds: CompositionFrameBounds): CompositionDraft;
50
51
  export declare function visibleAreaMetrics(input: CompositionDraft): VisibleAreaMetrics;
52
+ export declare function normalizeCompositionSymmetryRotation(value: number, frame: CompositionFrameSize): number;
@@ -5,8 +5,8 @@ import compositionDraftSchema from "../../../schemas/composition-draft.schema.js
5
5
  type: "json"
6
6
  };
7
7
  import { createHuman2AiCanvasNodeMetadata, normalizeHuman2AiCanvasNodeMetadata, } from "../canvas-node-metadata.js";
8
- import { calculateVisibleAreaMetrics, freeDimensionsFromArea, } from "./geometry.js";
9
- import { COMPOSITION_CANVAS, changeCompositionFrameSize, createCompositionFrame, isCompositionFrameRatioSupported, moveCompositionFrame, resizeCompositionFrame, resizeCompositionFrameToBounds, } from "./frame.js";
8
+ import { calculateVisibleAreaMetrics, freeDimensionsFromArea, areaGeometry, isConvexTextOutline, polygonArea, } from "./geometry.js";
9
+ import { COMPOSITION_CANVAS, changeCompositionFrameSize, compositionSymmetryRotations, createCompositionFrame, isCompositionFrameRatioSupported, moveCompositionFrame, resizeCompositionFrame, resizeCompositionFrameToBounds, } from "./frame.js";
10
10
  export const MAX_FOCUS_POINTS = 3;
11
11
  export const PRIMITIVES = ["circle", "triangle", "quadrilateral"];
12
12
  export const ASPECTS = ["square", "free", "landscape", "portrait"];
@@ -35,10 +35,11 @@ export function createDraft(frame = { width: 1600, height: 900 }) {
35
35
  directionLine: null,
36
36
  areas: [],
37
37
  images: [],
38
+ plans: [{ id: "plan-1", type: "thirds", axes: "both", visible: true }],
38
39
  });
39
40
  }
40
41
  export function validateDraft(input) {
41
- const normalizedInput = normalizeCompositionItemMetadata(input);
42
+ const normalizedInput = normalizeCompositionItemMetadata(normalizeLegacyCompositionPlanning(input));
42
43
  if (!validateSchema(normalizedInput)) {
43
44
  throw new Error(formatValidationErrors(validateSchema.errors));
44
45
  }
@@ -51,6 +52,26 @@ export function validateDraft(input) {
51
52
  : structuredClone(validatedInput.frame);
52
53
  if (legacyFrame)
53
54
  migrateLegacyDraftCoordinates(draft);
55
+ if (draft.plans && new Set(draft.plans.map((plan) => plan.id)).size !== draft.plans.length) {
56
+ throw new Error("Composition planning ids must be unique within a state.");
57
+ }
58
+ if (draft.plans)
59
+ draft.plans = draft.plans.map((plan) => {
60
+ const base = { id: plan.id, visible: plan.visible };
61
+ if (plan.type === "triangle")
62
+ return { ...base, type: plan.type, x: plan.x, y: plan.y, rotation: normalizeRotation(plan.rotation), width: plan.width, height: plan.height };
63
+ if (plan.type === "radial")
64
+ return plan.mode === "free"
65
+ ? { ...base, type: plan.type, x: plan.x, y: plan.y, mode: plan.mode, angles: plan.angles.map(normalizeRotation) }
66
+ : { ...base, type: plan.type, x: plan.x, y: plan.y, mode: plan.mode, rotation: normalizeRotation(plan.rotation), rayCount: plan.rayCount, spread: plan.spread };
67
+ if (plan.type === "symmetry")
68
+ return { ...base, type: plan.type, x: 0.5, y: 0.5, rotation: normalizeCompositionSymmetryRotation(plan.rotation, draft.frame) };
69
+ if (plan.type === "golden-spiral") {
70
+ const transform = { x: plan.x, y: plan.y, rotation: normalizeRotation(plan.rotation) };
71
+ return { ...base, type: plan.type, ...transform, scale: plan.scale, mirrored: plan.mirrored };
72
+ }
73
+ return { ...base, type: plan.type, axes: plan.axes };
74
+ });
54
75
  const ids = new Set();
55
76
  for (const item of [
56
77
  ...draft.focusPoints,
@@ -66,6 +87,16 @@ export function validateDraft(input) {
66
87
  ? { ...draft.directionLine, rotation: normalizeRotation(draft.directionLine.rotation) }
67
88
  : null;
68
89
  draft.areas.forEach((area) => {
90
+ if (area.corners) {
91
+ if (!isConvexTextOutline(area.corners))
92
+ throw new Error("Text region corners must form a convex quadrilateral.");
93
+ const xs = area.corners.map((point) => point.x), ys = area.corners.map((point) => point.y);
94
+ if (Math.min(...xs) > 1e-8 || Math.min(...ys) > 1e-8
95
+ || Math.max(...xs) < 1 - 1e-8 || Math.max(...ys) < 1 - 1e-8) {
96
+ throw new Error("Text region corners must span their normalized bounding box.");
97
+ }
98
+ area.area = area.width * area.height * polygonArea(area.corners);
99
+ }
69
100
  if (area.primitive === "circle" && area.aspect !== "free")
70
101
  area.rotation = 0;
71
102
  if (area.primitive === "quadrilateral" &&
@@ -267,13 +298,51 @@ export function moveItem(input, id, point) {
267
298
  item.y = point.y;
268
299
  return draft;
269
300
  }
301
+ export function moveTextRegionCorner(input, id, index, point) {
302
+ const draft = validateDraft(input);
303
+ const area = findArea(draft, id);
304
+ if (!isCompositionTextRegion(area) || !Number.isInteger(index) || index < 0 || index > 3)
305
+ return input;
306
+ if (!Number.isFinite(point.x) || !Number.isFinite(point.y))
307
+ return input;
308
+ const geometry = areaGeometry({ ...area, x: 0, y: 0, rotation: 0 }, COMPOSITION_CANVAS);
309
+ if (geometry.type !== "polygon")
310
+ return input;
311
+ const angle = (area.rotation ?? 0) * Math.PI / 180;
312
+ const dx = (point.x - area.x) * COMPOSITION_CANVAS.width;
313
+ const dy = (point.y - area.y) * COMPOSITION_CANVAS.height;
314
+ geometry.points[index] = {
315
+ x: dx * Math.cos(angle) + dy * Math.sin(angle),
316
+ y: -dx * Math.sin(angle) + dy * Math.cos(angle),
317
+ };
318
+ const xs = geometry.points.map((point) => point.x);
319
+ const ys = geometry.points.map((point) => point.y);
320
+ const left = Math.min(...xs), top = Math.min(...ys);
321
+ const width = Math.max(...xs) - left, height = Math.max(...ys) - top;
322
+ if (width < 8 || height < 8)
323
+ return input;
324
+ const corners = geometry.points.map((point) => ({
325
+ x: (point.x - left) / width, y: (point.y - top) / height,
326
+ }));
327
+ if (!isConvexTextOutline(corners))
328
+ return input;
329
+ const offsetX = left + width / 2, offsetY = top + height / 2;
330
+ area.x += (offsetX * Math.cos(angle) - offsetY * Math.sin(angle)) / COMPOSITION_CANVAS.width;
331
+ area.y += (offsetX * Math.sin(angle) + offsetY * Math.cos(angle)) / COMPOSITION_CANVAS.height;
332
+ area.width = width / COMPOSITION_CANVAS.width;
333
+ area.height = height / COMPOSITION_CANVAS.height;
334
+ area.aspect = "free";
335
+ area.corners = corners;
336
+ area.area = area.width * area.height * polygonArea(corners);
337
+ return draft;
338
+ }
270
339
  export function resizeArea(input, id, nextArea) {
271
340
  const draft = validateDraft(input);
272
341
  const area = findArea(draft, id);
273
342
  if (!Number.isFinite(nextArea) || nextArea <= 0)
274
343
  return draft;
275
344
  if (area.aspect === "free") {
276
- const scale = Math.sqrt(nextArea / (area.width * area.height));
345
+ const scale = Math.sqrt(nextArea / (area.corners ? area.area : area.width * area.height));
277
346
  area.width *= scale;
278
347
  area.height *= scale;
279
348
  }
@@ -291,7 +360,8 @@ export function resizeFreeArea(input, id, width, height) {
291
360
  area.width = width;
292
361
  area.height = height;
293
362
  area.aspect = "free";
294
- const areaFactor = area.primitive === "circle" ? Math.PI / 4 : area.primitive === "triangle" ? 0.5 : 1;
363
+ const areaFactor = area.corners ? polygonArea(area.corners)
364
+ : area.primitive === "circle" ? Math.PI / 4 : area.primitive === "triangle" ? 0.5 : 1;
295
365
  area.area = width * height * areaFactor;
296
366
  return draft;
297
367
  }
@@ -336,6 +406,7 @@ export function setAreaAspect(input, id, aspect) {
336
406
  Object.assign(area, freeDimensionsFromArea(area.area, COMPOSITION_CANVAS, 1.6, area.primitive));
337
407
  }
338
408
  else if (aspect !== "free") {
409
+ delete area.corners;
339
410
  delete area.width;
340
411
  delete area.height;
341
412
  }
@@ -408,6 +479,17 @@ export function changeFrame(input, frame) {
408
479
  const draft = validateDraft(input);
409
480
  validateFrame(frame);
410
481
  draft.frame = changeCompositionFrameSize(draft.frame, frame);
482
+ if (draft.plans)
483
+ draft.plans = draft.plans.map((plan) => {
484
+ if (plan.type !== "symmetry")
485
+ return plan;
486
+ // Corner-aligned axes follow the new ratio; the original eight directions stay fixed.
487
+ if (Math.abs(plan.rotation / 45 - Math.round(plan.rotation / 45)) < 1e-8)
488
+ return plan;
489
+ const angle = plan.rotation * Math.PI / 180;
490
+ const rotation = Math.atan2(Math.sin(angle) * frame.height / input.frame.height, Math.cos(angle) * frame.width / input.frame.width) * 180 / Math.PI;
491
+ return { ...plan, rotation: normalizeCompositionSymmetryRotation(rotation, draft.frame) };
492
+ });
411
493
  return draft;
412
494
  }
413
495
  export function moveFrame(input, point) {
@@ -453,6 +535,40 @@ function validateFrame(frame) {
453
535
  if (values.bounds !== undefined)
454
536
  validateFrameBounds(values.bounds, ratio);
455
537
  }
538
+ function normalizeLegacyCompositionPlanning(input) {
539
+ if (!input || typeof input !== "object" || Array.isArray(input))
540
+ return input;
541
+ const source = input;
542
+ const frame = source.frame;
543
+ const plans = Array.isArray(source.plans) ? source.plans.map((inputPlan) => {
544
+ if (!inputPlan || typeof inputPlan !== "object" || Array.isArray(inputPlan))
545
+ return inputPlan;
546
+ const { enabled: _enabled, note: _note, ...plan } = inputPlan;
547
+ if (plan.type === "radial" && plan.mode === undefined)
548
+ return { ...plan, mode: "uniform" };
549
+ if (plan?.type !== "triangle" || !Array.isArray(plan.points) || plan.points.length !== 3
550
+ || !plan.points.every((p) => p && Number.isFinite(p.x) && Number.isFinite(p.y))
551
+ || !frame || !Number.isFinite(frame.width) || !Number.isFinite(frame.height) || frame.width <= 0 || frame.height <= 0)
552
+ return plan;
553
+ const [apex, left, right] = plan.points.map((p) => ({ x: p.x * frame.width, y: p.y * frame.height }));
554
+ const dx = right.x - left.x, dy = right.y - left.y;
555
+ const width = Math.hypot(dx, dy);
556
+ if (width === 0)
557
+ return plan;
558
+ const mid = { x: (left.x + right.x) / 2, y: (left.y + right.y) / 2 };
559
+ const height = ((mid.x - apex.x) * -dy + (mid.y - apex.y) * dx) / width;
560
+ if (height === 0)
561
+ return plan;
562
+ const { points: _points, ...base } = plan;
563
+ return { ...base, x: (mid.x + dy / width * height / 2) / frame.width,
564
+ y: (mid.y - dx / width * height / 2) / frame.height,
565
+ rotation: Math.atan2(dy, dx) * 180 / Math.PI + (height < 0 ? 180 : 0),
566
+ width: width / frame.width, height: Math.abs(height) / frame.height };
567
+ }) : undefined;
568
+ const states = Array.isArray(source.states) ? source.states.map((state) => state && typeof state === "object"
569
+ ? { ...state, layout: normalizeLegacyCompositionPlanning(state.layout) } : state) : undefined;
570
+ return { ...source, ...(plans ? { plans } : {}), ...(states ? { states } : {}) };
571
+ }
456
572
  function normalizeCompositionItemMetadata(input) {
457
573
  if (!input || typeof input !== "object" || Array.isArray(input))
458
574
  return input;
@@ -593,6 +709,11 @@ function validateImageCrop(crop) {
593
709
  throw new Error("Image crop must stay inside the source image.");
594
710
  }
595
711
  }
712
+ export function normalizeCompositionSymmetryRotation(value, frame) {
713
+ const rotation = normalizeRotation(value);
714
+ const distance = (angle) => Math.abs(((angle - rotation + 540) % 360) - 180);
715
+ return compositionSymmetryRotations(frame).reduce((closest, angle) => distance(angle) < distance(closest) ? angle : closest);
716
+ }
596
717
  function normalizeRotation(value) {
597
718
  return ((value % 360) + 360) % 360;
598
719
  }