@pinepaper.studio/mcp-server 1.6.6 → 1.6.8

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 (178) hide show
  1. package/README.de.md +24 -1
  2. package/README.es.md +24 -1
  3. package/README.fr.md +24 -1
  4. package/README.hi.md +21 -1
  5. package/README.ja.md +22 -1
  6. package/README.ko.md +22 -1
  7. package/README.md +329 -14
  8. package/README.pt-BR.md +24 -1
  9. package/README.zh-CN.md +20 -1
  10. package/assets/edit-whenever.svg +75 -0
  11. package/dist/agent/export-manager.d.ts.map +1 -1
  12. package/dist/agent/export-manager.js +2 -2
  13. package/dist/agent/export-manager.js.map +1 -1
  14. package/dist/agent/session-manager.d.ts.map +1 -1
  15. package/dist/agent/session-manager.js.map +1 -1
  16. package/dist/assets/repositories/fontawesome.d.ts.map +1 -1
  17. package/dist/assets/repositories/fontawesome.js.map +1 -1
  18. package/dist/assets/repositories/openclipart.d.ts.map +1 -1
  19. package/dist/character/data/concepts.json +1 -0
  20. package/dist/character/data/depictions.json +1 -0
  21. package/dist/character/data/styles.json +1 -0
  22. package/dist/character/duration-scale.d.ts +13 -0
  23. package/dist/character/duration-scale.d.ts.map +1 -0
  24. package/dist/character/duration-scale.js +13 -0
  25. package/dist/character/duration-scale.js.map +1 -0
  26. package/dist/character/path-bbox.d.ts +82 -0
  27. package/dist/character/path-bbox.d.ts.map +1 -0
  28. package/dist/character/path-bbox.js +496 -0
  29. package/dist/character/path-bbox.js.map +1 -0
  30. package/dist/character/perform.d.ts +149 -0
  31. package/dist/character/perform.d.ts.map +1 -0
  32. package/dist/character/perform.js +626 -0
  33. package/dist/character/perform.js.map +1 -0
  34. package/dist/character/resolve.d.ts +51 -0
  35. package/dist/character/resolve.d.ts.map +1 -0
  36. package/dist/character/resolve.js +239 -0
  37. package/dist/character/resolve.js.map +1 -0
  38. package/dist/design/design-systems.d.ts +126 -0
  39. package/dist/design/design-systems.d.ts.map +1 -0
  40. package/dist/design/design-systems.js +240 -0
  41. package/dist/design/design-systems.js.map +1 -0
  42. package/dist/execution/canvas-state.d.ts +7 -0
  43. package/dist/execution/canvas-state.d.ts.map +1 -1
  44. package/dist/execution/canvas-state.js +20 -8
  45. package/dist/execution/canvas-state.js.map +1 -1
  46. package/dist/index.d.ts +20 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +12 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/ontology/design-graph.d.ts +9 -0
  51. package/dist/ontology/design-graph.d.ts.map +1 -1
  52. package/dist/ontology/design-graph.js +98 -4
  53. package/dist/ontology/design-graph.js.map +1 -1
  54. package/dist/ontology/types.d.ts +42 -0
  55. package/dist/ontology/types.d.ts.map +1 -1
  56. package/dist/ontology/vocabulary.d.ts.map +1 -1
  57. package/dist/ontology/vocabulary.js +139 -0
  58. package/dist/ontology/vocabulary.js.map +1 -1
  59. package/dist/taxonomy/classifier.js +1 -1
  60. package/dist/taxonomy/classifier.js.map +1 -1
  61. package/dist/taxonomy/error-recovery.d.ts.map +1 -1
  62. package/dist/taxonomy/matcher.d.ts.map +1 -1
  63. package/dist/taxonomy/matcher.js.map +1 -1
  64. package/dist/tools/compact-descriptions.d.ts.map +1 -1
  65. package/dist/tools/compact-descriptions.js +25 -0
  66. package/dist/tools/compact-descriptions.js.map +1 -1
  67. package/dist/tools/definitions.d.ts +1 -1
  68. package/dist/tools/definitions.d.ts.map +1 -1
  69. package/dist/tools/definitions.js +1236 -45
  70. package/dist/tools/definitions.js.map +1 -1
  71. package/dist/tools/engine-methods.d.ts +18 -0
  72. package/dist/tools/engine-methods.d.ts.map +1 -0
  73. package/dist/tools/engine-methods.js +239 -0
  74. package/dist/tools/engine-methods.js.map +1 -0
  75. package/dist/tools/handlers/character.d.ts +121 -0
  76. package/dist/tools/handlers/character.d.ts.map +1 -0
  77. package/dist/tools/handlers/character.js +315 -0
  78. package/dist/tools/handlers/character.js.map +1 -0
  79. package/dist/tools/handlers.d.ts +2 -0
  80. package/dist/tools/handlers.d.ts.map +1 -1
  81. package/dist/tools/handlers.js +386 -22
  82. package/dist/tools/handlers.js.map +1 -1
  83. package/dist/tools/minimal-descriptions.d.ts.map +1 -1
  84. package/dist/tools/minimal-descriptions.js +24 -4
  85. package/dist/tools/minimal-descriptions.js.map +1 -1
  86. package/dist/tools/toolkits.d.ts.map +1 -1
  87. package/dist/tools/toolkits.js +21 -0
  88. package/dist/tools/toolkits.js.map +1 -1
  89. package/dist/types/code-generator.d.ts +141 -2
  90. package/dist/types/code-generator.d.ts.map +1 -1
  91. package/dist/types/code-generator.js +2246 -78
  92. package/dist/types/code-generator.js.map +1 -1
  93. package/dist/types/schemas.d.ts +9295 -603
  94. package/dist/types/schemas.d.ts.map +1 -1
  95. package/dist/types/schemas.js +1134 -61
  96. package/dist/types/schemas.js.map +1 -1
  97. package/dist/vendor/design/art-deco-generator.d.ts +52 -0
  98. package/dist/vendor/design/art-deco-generator.d.ts.map +1 -0
  99. package/dist/vendor/design/art-deco-generator.js +144 -0
  100. package/dist/vendor/design/art-deco-generator.js.map +1 -0
  101. package/dist/vendor/design/art-nouveau-generator.d.ts +46 -0
  102. package/dist/vendor/design/art-nouveau-generator.d.ts.map +1 -0
  103. package/dist/vendor/design/art-nouveau-generator.js +134 -0
  104. package/dist/vendor/design/art-nouveau-generator.js.map +1 -0
  105. package/dist/vendor/design/bauhaus-generator.d.ts +53 -0
  106. package/dist/vendor/design/bauhaus-generator.d.ts.map +1 -0
  107. package/dist/vendor/design/bauhaus-generator.js +126 -0
  108. package/dist/vendor/design/bauhaus-generator.js.map +1 -0
  109. package/dist/vendor/design/brutalist-generator.d.ts +53 -0
  110. package/dist/vendor/design/brutalist-generator.d.ts.map +1 -0
  111. package/dist/vendor/design/brutalist-generator.js +148 -0
  112. package/dist/vendor/design/brutalist-generator.js.map +1 -0
  113. package/dist/vendor/design/claymorphism-generator.d.ts +46 -0
  114. package/dist/vendor/design/claymorphism-generator.d.ts.map +1 -0
  115. package/dist/vendor/design/claymorphism-generator.js +135 -0
  116. package/dist/vendor/design/claymorphism-generator.js.map +1 -0
  117. package/dist/vendor/design/corporate-memphis-generator.d.ts +47 -0
  118. package/dist/vendor/design/corporate-memphis-generator.d.ts.map +1 -0
  119. package/dist/vendor/design/corporate-memphis-generator.js +144 -0
  120. package/dist/vendor/design/corporate-memphis-generator.js.map +1 -0
  121. package/dist/vendor/design/cyberpunk-generator.d.ts +52 -0
  122. package/dist/vendor/design/cyberpunk-generator.d.ts.map +1 -0
  123. package/dist/vendor/design/cyberpunk-generator.js +162 -0
  124. package/dist/vendor/design/cyberpunk-generator.js.map +1 -0
  125. package/dist/vendor/design/de-stijl-generator.d.ts +50 -0
  126. package/dist/vendor/design/de-stijl-generator.d.ts.map +1 -0
  127. package/dist/vendor/design/de-stijl-generator.js +154 -0
  128. package/dist/vendor/design/de-stijl-generator.js.map +1 -0
  129. package/dist/vendor/design/design-style.d.ts +3 -0
  130. package/dist/vendor/design/design-style.d.ts.map +1 -0
  131. package/dist/vendor/design/design-style.js +12 -0
  132. package/dist/vendor/design/design-style.js.map +1 -0
  133. package/dist/vendor/design/design-systems-dtcg.d.ts +59 -0
  134. package/dist/vendor/design/design-systems-dtcg.d.ts.map +1 -0
  135. package/dist/vendor/design/design-systems-dtcg.js +571 -0
  136. package/dist/vendor/design/design-systems-dtcg.js.map +1 -0
  137. package/dist/vendor/design/frutiger-aero-generator.d.ts +46 -0
  138. package/dist/vendor/design/frutiger-aero-generator.d.ts.map +1 -0
  139. package/dist/vendor/design/frutiger-aero-generator.js +133 -0
  140. package/dist/vendor/design/frutiger-aero-generator.js.map +1 -0
  141. package/dist/vendor/design/memphis-generator.d.ts +56 -0
  142. package/dist/vendor/design/memphis-generator.d.ts.map +1 -0
  143. package/dist/vendor/design/memphis-generator.js +158 -0
  144. package/dist/vendor/design/memphis-generator.js.map +1 -0
  145. package/dist/vendor/design/mid-century-upa-generator.d.ts +46 -0
  146. package/dist/vendor/design/mid-century-upa-generator.d.ts.map +1 -0
  147. package/dist/vendor/design/mid-century-upa-generator.js +137 -0
  148. package/dist/vendor/design/mid-century-upa-generator.js.map +1 -0
  149. package/dist/vendor/design/neumorphic-generator.d.ts +53 -0
  150. package/dist/vendor/design/neumorphic-generator.d.ts.map +1 -0
  151. package/dist/vendor/design/neumorphic-generator.js +182 -0
  152. package/dist/vendor/design/neumorphic-generator.js.map +1 -0
  153. package/dist/vendor/design/op-art-generator.d.ts +45 -0
  154. package/dist/vendor/design/op-art-generator.d.ts.map +1 -0
  155. package/dist/vendor/design/op-art-generator.js +116 -0
  156. package/dist/vendor/design/op-art-generator.js.map +1 -0
  157. package/dist/vendor/design/pixel-art-generator.d.ts +45 -0
  158. package/dist/vendor/design/pixel-art-generator.d.ts.map +1 -0
  159. package/dist/vendor/design/pixel-art-generator.js +143 -0
  160. package/dist/vendor/design/pixel-art-generator.js.map +1 -0
  161. package/dist/vendor/design/pop-art-generator.d.ts +53 -0
  162. package/dist/vendor/design/pop-art-generator.d.ts.map +1 -0
  163. package/dist/vendor/design/pop-art-generator.js +164 -0
  164. package/dist/vendor/design/pop-art-generator.js.map +1 -0
  165. package/dist/vendor/design/risograph-generator.d.ts +53 -0
  166. package/dist/vendor/design/risograph-generator.d.ts.map +1 -0
  167. package/dist/vendor/design/risograph-generator.js +170 -0
  168. package/dist/vendor/design/risograph-generator.js.map +1 -0
  169. package/dist/vendor/design/swiss-style-generator.d.ts +55 -0
  170. package/dist/vendor/design/swiss-style-generator.d.ts.map +1 -0
  171. package/dist/vendor/design/swiss-style-generator.js +147 -0
  172. package/dist/vendor/design/swiss-style-generator.js.map +1 -0
  173. package/dist/vendor/design/vaporwave-generator.d.ts +51 -0
  174. package/dist/vendor/design/vaporwave-generator.d.ts.map +1 -0
  175. package/dist/vendor/design/vaporwave-generator.js +139 -0
  176. package/dist/vendor/design/vaporwave-generator.js.map +1 -0
  177. package/manifest.json +65 -1
  178. package/package.json +18 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform.js","sourceRoot":"","sources":["../../src/character/perform.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhE,gFAAgF;AAChF,MAAM,cAAc,GAAG,CAAC,EAAU,EAAU,EAAE,CAC5C,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAE,CAAC,CAAC;AAsIpI;0DAC0D;AAC1D,SAAS,IAAI,CAAC,GAAS;IACrB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAc,CAAC;IACrC,6EAA6E;IAC7E,mEAAmE;IACnE,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;wEACwE;AACxE,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAA6B,CAAC;IAC7G,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;mDACmD;AACnD,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACnF,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,wFAAwF;IACxF,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3D,oEAAoE;YACpE,sEAAsE;YACtE,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS;YACxC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC7D,IAAI,SAAS,CAAC,IAAI,CAAC;oBAAE,SAAS;YAChC,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnD,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE;;;;;;;OAOG;IACH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,KAAK,GAAG,CAAC,GAAS,EAAE,OAAe,EAAE,KAAa,EAAE,QAAgB,EAAQ,EAAE;QAClF,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,GAAG,CAAC;QACxC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;gBACL,GAAG,EAAE;gBACL,QAAQ,EAAE,GAAG;gBACb,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE;gBAC3B,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAY,EAAE;QACxD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,SAAS;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,wEAAwE;QACxE,wCAAwC;QACxC,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;IAClE,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F;;;;;;;;;;;;OAYG;IACH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,cAAc;IACd,MAAM,QAAQ,GAAG,CAAC,IAAgC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IAEF,yEAAyE;IACzE,MAAM,SAAS,GAAG,CAAC,GAAW,EAA0B,EAAE;QACxD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,SAAS;YAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACxB,UAAU,EAAE;oBACV,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE;oBAClB,kEAAkE;oBAClE,mEAAmE;oBACnE,mEAAmE;oBACnE,kDAAkD;oBAClD,oEAAoE;oBACpE,+DAA+D;oBAC/D,gCAAgC;oBAChC,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjF,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;oBACxB,sEAAsE;oBACtE,iEAAiE;oBACjE,EAAE;oBACF,mEAAmE;oBACnE,8DAA8D;oBAC9D,qEAAqE;oBACrE,oEAAoE;oBACpE,oEAAoE;oBACpE,mDAAmD;oBACnD,EAAE;oBACF,sEAAsE;oBACtE,gEAAgE;oBAChE,EAAE;oBACF,qEAAqE;oBACrE,mEAAmE;oBACnE,eAAe;oBACf,kEAAkE;oBAClE,kEAAkE;oBAClE,qCAAqC;oBACrC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,kEAAkE;oBAClE,oEAAoE;oBACpE,mEAAmE;oBACnE,uCAAuC;oBACvC,GAAG,CAAC,GAAG,CAAC,GAAG;2BACN,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;2BACpD,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC;2BACpC,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5C,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK;wBAC1B,iEAAiE;wBACjE,kEAAkE;wBAClE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;wBAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACnD,CAAC,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,oEAAoE;oBACpE,EAAE;oBACF,sEAAsE;oBACtE,qEAAqE;oBACrE,mEAAmE;oBACnE,iEAAiE;oBACjE,sEAAsE;oBACtE,sEAAsE;oBACtE,GAAG,SAAS,CAAC,GAAG,CAAC;iBAClB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IACtC;wDACoD;IACpD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/F,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;QACnE,0EAA0E;QAC1E,gDAAgD;QAChD,MAAM,CAAC,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7M,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9M,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC;;;;;;;;;;;;;WAaG;QACH,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,eAAe,CAAC,IAAI,CAClB,cAAc,EAAE,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,OAAO,0CAA0C;gBACzG,cAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CACpE,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAClE;;;;;;;;;;;;;;;;;;eAkBG;YACH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YACnE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,MAAM,IAAI,GAAG,CAAC,CAAC,kBAAkB,IAAI,GAAG,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC;gBACjB,wEAAwE;gBACxE,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,GAAG,GAAG,IAAI;oBAAE,MAAM;gBACtB,qEAAqE;gBACrE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;gBAClD,CAAC,IAAI,GAAG,CAAC;gBAAC,CAAC,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACnC,oEAAoE;YACpE,+DAA+D;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM;gBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1D;;;;;;;;;;;;;eAaG;YACH,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;YAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YAChF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;YACzF,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC;YACrC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAS,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjG,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,CAAC;oBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtD;;;;;;;;;;;;;;;;eAgBG;YACH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC;YACrC;;;;;;;;;;;;;;eAcG;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAC3D,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,oEAAoE;gBACpE,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;oBACzD,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,GAAG,GAAS,EAAE,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBACpD;;;;;;;;mBAQG;gBACH,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B;;;;;;;;;;;;;;eAcG;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,KAAK;gBAAE,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAS,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,GAAI,CAAC,CAAC,EAAa,EAAE,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,2EAA2E;QAC3E,0EAA0E;QAC1E,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/E,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ;gBAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ;gBAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,SAAS;QAC1B,8BAA8B;QAC9B,EAAE;QACF,2EAA2E;QAC3E,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,4BAA4B;QAC5B,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,mBAAmB;QACnB,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,SAAS;YAC/D,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACjF,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACnF,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,+DAA+D;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACvF;;;;;;;;;;;;WAYG;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;YAChC,MAAM,IAAI,GAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YAC3C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ;wBAAE,SAAS;oBAC7C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAW,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE;SAC9E,CAAC,CAAC;QACH,MAAM,EAAE,CAAC;IACX,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACnF,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type Beat, type Channel } from './perform.js';
2
+ /** Every concept with a drawing here, for a refusal that names the alternatives. */
3
+ export declare function drawableConcepts(): string[];
4
+ /** The variants that exist for one concept, in the style asked for. */
5
+ export declare function variantsOf(conceptId: string, style?: string): string[];
6
+ export interface CharacterArgs {
7
+ concept: string;
8
+ at?: {
9
+ x?: number;
10
+ y?: number;
11
+ };
12
+ position?: {
13
+ x?: number;
14
+ y?: number;
15
+ };
16
+ height?: number;
17
+ scale?: number;
18
+ id?: string;
19
+ style?: string;
20
+ variant?: string;
21
+ durationSeconds?: number;
22
+ beats?: Beat[];
23
+ timings?: Array<{
24
+ at: number;
25
+ until?: number;
26
+ }>;
27
+ palette?: Record<string, string>;
28
+ ink?: string;
29
+ }
30
+ export type CharacterResult = {
31
+ ok: true;
32
+ ops: Array<{
33
+ tool: string;
34
+ args: Record<string, unknown>;
35
+ }>;
36
+ parts: string[];
37
+ tracks: number;
38
+ notes: string[];
39
+ } | {
40
+ ok: false;
41
+ reason: string;
42
+ };
43
+ /**
44
+ * Resolve and perform. Every failure names what WOULD have worked, because the
45
+ * caller cannot see the graph and a bare refusal leaves it guessing — which is
46
+ * how a model came to ask for a concept that has never had a drawing.
47
+ */
48
+ export declare function resolveCharacter(args: CharacterArgs): CharacterResult;
49
+ /** The channels a concept declares — what `beats` may name. */
50
+ export declare function channelsOf(conceptId: string): Channel[];
51
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/character/resolve.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAoB,KAAK,IAAI,EAAE,KAAK,OAAO,EAA2B,MAAM,cAAc,CAAC;AAwClG,oFAAoF;AACpF,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAKtE;AA6FD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,QAAQ,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3H;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe,CAmFrE;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAQvD"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Concept id → a composed drawing and its channels, so `pinepaper_character`
3
+ * can turn a symbol and some beats into ops.
4
+ *
5
+ * PORTED from mcp-cloud/src/services/replay-handlers/character.ts @ a3557b7.
6
+ * The cloud's copy ends by pushing ops into its replay context; this one just
7
+ * returns them, because this package's job is to EMIT CODE rather than to
8
+ * replay. Everything above that — ancestry, the variant fallback, the z-order,
9
+ * the palette override — is the same logic and must stay the same, or a figure
10
+ * drawn through the MCP server and the same figure drawn in the cloud are two
11
+ * different figures with one name.
12
+ *
13
+ * WHY THIS EXPANDS HERE AT ALL. The knowledge of how a pigeon is built is data
14
+ * in the graph, and the graph is shipped in this package. `pinepaper_character`
15
+ * was DEFINED here and dispatched nowhere (b06fcde) — advertised in tools/list,
16
+ * counted in the manifest, and answering every call with UNKNOWN_TOOL. That is
17
+ * a phantom, which is worse than a missing tool: the model plans around it.
18
+ *
19
+ * WHAT THIS PACKAGE CARRIES, AND WHAT IT DOES NOT. The vendored depiction set
20
+ * is the compact concepts plus pp:Character. The pp:Doodle and pp:Peep variant
21
+ * libraries are 1.46 MB of a 1.48 MB source file and stay in the cloud, which
22
+ * is the higher-fidelity path by design. They are refused BY NAME here — never
23
+ * substituted with a different drawing, because a figure that silently is not
24
+ * the one you asked for is the failure this layer exists to end.
25
+ */
26
+ import CONCEPTS from './data/concepts.json' with { type: 'json' };
27
+ import DEPICTIONS from './data/depictions.json' with { type: 'json' };
28
+ import STYLES from './data/styles.json' with { type: 'json' };
29
+ import { performCharacter } from './perform.js';
30
+ const concepts = CONCEPTS.concepts;
31
+ const depictions = DEPICTIONS.depictions;
32
+ const styles = STYLES.styles;
33
+ /**
34
+ * Concepts the CLOUD can draw that this package deliberately does not carry.
35
+ * Named so a refusal can say "in the cloud" instead of "unknown", which are
36
+ * very different facts to act on.
37
+ */
38
+ const CLOUD_ONLY = ['pp:Doodle', 'pp:Peep'];
39
+ /** Nearest first: the concept, then what it is a kind of, and so on up. */
40
+ function ancestry(id) {
41
+ const out = [];
42
+ let cur = id;
43
+ const seen = new Set();
44
+ while (cur && !seen.has(cur)) {
45
+ seen.add(cur);
46
+ out.push(cur);
47
+ cur = concepts.find((c) => c.id === cur)?.['pp:isA'];
48
+ }
49
+ return out;
50
+ }
51
+ /** Every concept with a drawing here, for a refusal that names the alternatives. */
52
+ export function drawableConcepts() {
53
+ return [...new Set(depictions.map((d) => d.concept))].sort();
54
+ }
55
+ /** The variants that exist for one concept, in the style asked for. */
56
+ export function variantsOf(conceptId, style) {
57
+ return depictions
58
+ .filter((d) => d.concept === conceptId && (!style || d.style === style))
59
+ .map((d) => d.variant)
60
+ .sort();
61
+ }
62
+ /**
63
+ * The drawing, composed across the ancestry — farthest ancestor first, so a
64
+ * nearer concept's parts and colours overwrite. A pigeon is a bird: the tail,
65
+ * wing, beak, legs and eye are declared on pp:Bird and only the body, head and
66
+ * collar on pp:Pigeon, so a figure assembled from the nearest one alone is a
67
+ * bird with no wings.
68
+ */
69
+ function composeDepiction(conceptId, style, variant, notes) {
70
+ const line = ancestry(conceptId);
71
+ let height = 0;
72
+ const palette = {};
73
+ const parts = {};
74
+ for (const cid of [...line].reverse()) {
75
+ const want = cid === conceptId ? variant : 'default';
76
+ // A CONCEPT NEED NOT HAVE A VARIANT CALLED "default" — pp:Character ships
77
+ // only named drawings. So for the concept ITSELF the fallback is: the
78
+ // variant asked for, else "default", else the first that exists,
79
+ // alphabetically, which is stable across repeat calls. Ancestors still take
80
+ // only "default": a named pose is a statement about the concept, not about
81
+ // the class it belongs to. The fallback NEVER crosses styles.
82
+ const own = (v) => depictions.find((x) => x.concept === cid && (!style || x.style === style) && x.variant === v);
83
+ let d = own(want) ?? own('default');
84
+ if (!d && cid === conceptId) {
85
+ const first = variantsOf(cid, style)[0];
86
+ if (first) {
87
+ d = own(first);
88
+ // An advisory, not a refusal: the caller got a figure and is being told
89
+ // which one, because it did not choose.
90
+ notes.push(`note: ${cid} has no variant "${variant}" — drew "${first}". Available: ${variantsOf(cid, style).join(', ')}.`);
91
+ }
92
+ }
93
+ if (!d)
94
+ continue;
95
+ height = d.height || height;
96
+ Object.assign(palette, d.palette);
97
+ for (const [pid, p] of Object.entries(d.parts)) {
98
+ parts[pid] = {
99
+ at: p.at,
100
+ path: p.path,
101
+ ...(p.fill != null ? { fill: p.fill } : {}),
102
+ ...(p.carriedBy ? { carriedBy: p.carriedBy } : {}),
103
+ ...(typeof p.inkWeight === 'number' ? { inkWeight: p.inkWeight } : {}),
104
+ };
105
+ }
106
+ // A drawing may SUPERSEDE an ancestor's anatomy, not only override it — a
107
+ // floating body has no legs, and the inherited ones stand under it
108
+ // belonging to nothing.
109
+ for (const pid of d.omits ?? [])
110
+ delete parts[pid];
111
+ }
112
+ if (!Object.keys(parts).length)
113
+ return null;
114
+ // DRAW ORDER IS THE GRAPH'S, NOT THE FILE'S. `z` is declared on the concept's
115
+ // parts; composing ancestors in file order loses it and the body paints over
116
+ // the wing, the legs and the eye.
117
+ const z = new Map();
118
+ for (const cid of line) {
119
+ for (const p of concepts.find((c) => c.id === cid)?.['pp:hasPart'] ?? []) {
120
+ if (!z.has(p.id))
121
+ z.set(p.id, p.z);
122
+ }
123
+ }
124
+ const ordered = {};
125
+ for (const pid of Object.keys(parts).sort((a, b) => (z.get(a) ?? 0) - (z.get(b) ?? 0))) {
126
+ ordered[pid] = parts[pid];
127
+ }
128
+ // The ink comes from the STYLE the drawing names, not from the drawing — and
129
+ // the drawing is whichever ANCESTOR actually supplied the parts, not the
130
+ // concept that was asked for. Keyed on the request, an inherited depiction
131
+ // found no style row, so `pp:Bus` drew 0 stroked parts where `pp:Vehicle` —
132
+ // the same geometry — drew 3. That is the "flat art dropped into an inked
133
+ // scene reads as pasted in from somewhere else" failure this ink exists to
134
+ // avoid, and it hit exactly the concepts that inherit rather than declare.
135
+ const composedFrom = ancestry(conceptId).find((cid) => depictions.some((x) => x.concept === cid));
136
+ const styleId = String(depictions.find((x) => x.concept === conceptId)?.style
137
+ ?? (composedFrom ? depictions.find((x) => x.concept === composedFrom)?.style : undefined)
138
+ ?? style
139
+ ?? '');
140
+ const st = styles.find((x) => x.id === styleId);
141
+ return { concept: conceptId, height: height || 100, palette, parts: ordered, ...(st?.ink ? { ink: st.ink } : {}) };
142
+ }
143
+ /**
144
+ * Resolve and perform. Every failure names what WOULD have worked, because the
145
+ * caller cannot see the graph and a bare refusal leaves it guessing — which is
146
+ * how a model came to ask for a concept that has never had a drawing.
147
+ */
148
+ export function resolveCharacter(args) {
149
+ const conceptId = String(args.concept ?? '');
150
+ const concept = concepts.find((c) => c.id === conceptId);
151
+ if (!concept) {
152
+ const cloudOnly = CLOUD_ONLY.includes(conceptId);
153
+ return {
154
+ ok: false,
155
+ reason: cloudOnly
156
+ ? `${conceptId} is drawn by the cloud, not by this package: its variant library is 1.46 MB and is not vendored here. Drawable locally: ${drawableConcepts().join(', ')}.`
157
+ : `no concept "${conceptId}" in the design graph. Drawable: ${drawableConcepts().join(', ')}.`,
158
+ };
159
+ }
160
+ if (CLOUD_ONLY.includes(conceptId)) {
161
+ return {
162
+ ok: false,
163
+ reason: `${conceptId} is declared here but its drawings live in the cloud (a 1.46 MB variant library, deliberately not vendored). Drawable locally: ${drawableConcepts().join(', ')}.`,
164
+ };
165
+ }
166
+ const notes = [];
167
+ const style = args.style ? String(args.style) : undefined;
168
+ const dep = composeDepiction(conceptId, style, args.variant ? String(args.variant) : 'default', notes);
169
+ if (!dep) {
170
+ const has = variantsOf(conceptId, style);
171
+ return {
172
+ ok: false,
173
+ reason: has.length
174
+ ? `${conceptId} has no drawing composed from variants [${has.join(', ')}] in style "${style ?? 'any'}".`
175
+ : `${conceptId} is declared but has no drawing${style ? ` in style "${style}"` : ''}. Drawable: ${drawableConcepts().join(', ')}.`,
176
+ };
177
+ }
178
+ // A part's `fill` is a palette ROLE, so a piece with its own colours can take
179
+ // the figure in without minting a second depiction — the GEOMETRY stays the
180
+ // graph's, which is what keeps it the same character in every shot.
181
+ if (args.palette && typeof args.palette === 'object') {
182
+ for (const [role, colour] of Object.entries(args.palette)) {
183
+ if (typeof colour === 'string' && colour)
184
+ dep.palette[role] = colour;
185
+ }
186
+ }
187
+ if (typeof args.ink === 'string' && args.ink && dep.ink)
188
+ dep.ink = { ...dep.ink, color: args.ink };
189
+ // `at` OR `position`, and `scale` as well as `height`: every other placing
190
+ // tool in this surface takes `position` and sizes with `scale`, so a call
191
+ // written the way the rest of the vocabulary reads must not land dead-centre
192
+ // at the default size.
193
+ const pos = args.at ?? args.position ?? {};
194
+ const beats = Array.isArray(args.beats) ? [...args.beats] : [];
195
+ // WORD TIMINGS ARE BEATS — a voice track's timings are exactly a list of
196
+ // instants a mouth should open, so they become `say` beats rather than a
197
+ // second mechanism.
198
+ for (const t of Array.isArray(args.timings) ? args.timings : []) {
199
+ if (typeof t?.at !== 'number')
200
+ continue;
201
+ beats.push({ at: t.at, channel: 'say', ...(typeof t.until === 'number' ? { until: t.until } : {}) });
202
+ }
203
+ // CHANNELS ARE INHERITED, and reading them off the concept alone is how a
204
+ // drawable figure came to perform nothing. `pp:Bus` composes `pp:Vehicle`'s
205
+ // parts and inherits its `jounce` and `travel`; keyed on the concept itself
206
+ // it declared none, so every beat was reported ignored and the call returned
207
+ // ZERO tracks while claiming success. `channelsOf` already walks the chain —
208
+ // it existed and only a test was calling it.
209
+ const inherited = channelsOf(conceptId);
210
+ const declared = new Set(inherited.map((c) => c.name));
211
+ for (const b of beats) {
212
+ if (b?.channel && !declared.has(b.channel)) {
213
+ notes.push(`note: ${conceptId} declares no channel "${b.channel}" — that beat is ignored. Declared: ${[...declared].join(', ') || '(none)'}.`);
214
+ }
215
+ }
216
+ const charId = String(args.id ?? conceptId.replace(/^pp:/, '').toLowerCase());
217
+ const r = performCharacter({
218
+ id: charId,
219
+ depiction: dep,
220
+ at: { x: Number(pos.x ?? 400), y: Number(pos.y ?? 300) },
221
+ height: Number(args.height ?? (args.scale != null ? 300 * Number(args.scale) : 300)),
222
+ channels: inherited,
223
+ beats,
224
+ durationSeconds: Number(args.durationSeconds ?? 5),
225
+ });
226
+ return { ok: true, ops: r.ops, parts: r.parts, tracks: r.tracks, notes };
227
+ }
228
+ /** The channels a concept declares — what `beats` may name. */
229
+ export function channelsOf(conceptId) {
230
+ const out = [];
231
+ for (const cid of ancestry(conceptId)) {
232
+ for (const ch of concepts.find((c) => c.id === cid)?.channels ?? []) {
233
+ if (!out.some((x) => x.name === ch.name))
234
+ out.push(ch);
235
+ }
236
+ }
237
+ return out;
238
+ }
239
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/character/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * The design vocabulary, answered in this server.
3
+ *
4
+ * Everything here is a pure function over vendored data — no browser, no
5
+ * engine call. That is the point of where it lives: a design system's tokens
6
+ * and a style's composition are decisions, and a decision does not need the
7
+ * canvas to be open. `compose` is the only one that produces anything to draw,
8
+ * and even that returns items the caller may inspect instead.
9
+ *
10
+ * The data itself is vendored from mcp-cloud by scripts/sync-design-systems.mjs
11
+ * and must not be edited here — see src/vendor/design/.
12
+ */
13
+ import { type DTCGDesignSystem, type DTCGTokenType } from '../vendor/design/design-systems-dtcg.js';
14
+ import type { DesignStyle } from '../vendor/design/design-style.js';
15
+ /**
16
+ * TWO UPSTREAM SHAPES, normalised here.
17
+ *
18
+ * Seven generators return a DesignScene — `{ width, height, backgroundHex,
19
+ * elements[] }` with `fillHex` on each element. Eleven return a LayoutResult —
20
+ * `{ canvas: {width, height}, items[], palette[] }` with `fill` and `text`.
21
+ * Same idea, different vocabulary, and nothing upstream reconciles them.
22
+ *
23
+ * Reading only the first shape is what a hurried mirror does: it works for
24
+ * seven styles and silently returns an empty scene for the other eleven, which
25
+ * is the failure this whole surface exists to stop making. Both are read, and
26
+ * `composedFrom` records which, so an upstream change that alters a shape is
27
+ * visible rather than quietly halving the output.
28
+ */
29
+ export interface ComposedElement {
30
+ id: string;
31
+ /** The upstream element type, kept verbatim — 'fan_motif' stays 'fan_motif'. */
32
+ type: string;
33
+ content?: string;
34
+ fontSize?: number;
35
+ fontWeight?: string | number;
36
+ fontFamily?: string;
37
+ fillHex: string;
38
+ strokeHex?: string;
39
+ strokeWidthPx?: number;
40
+ radius?: number;
41
+ x: number;
42
+ y: number;
43
+ width?: number;
44
+ height?: number;
45
+ textAlign?: string;
46
+ }
47
+ export interface ComposedScene {
48
+ style: string;
49
+ width: number;
50
+ height: number;
51
+ backgroundHex?: string;
52
+ palette?: string[];
53
+ elements: ComposedElement[];
54
+ /** Which upstream shape this came from: 'scene' or 'layout'. */
55
+ composedFrom: 'scene' | 'layout';
56
+ }
57
+ export interface ComposeOptions {
58
+ title: string;
59
+ subtitle?: string;
60
+ body?: string;
61
+ width?: number;
62
+ height?: number;
63
+ variant?: string;
64
+ }
65
+ /** Every style the union declares, whether or not it can compose. */
66
+ export declare const ALL_STYLES: DesignStyle[];
67
+ export declare function listStyles(): Array<{
68
+ style: string;
69
+ composable: boolean;
70
+ }>;
71
+ export declare function listSystems(): Array<{
72
+ id: string;
73
+ name: string;
74
+ vendor: string;
75
+ license: string;
76
+ version: string;
77
+ category: string;
78
+ tokenCount: number;
79
+ }>;
80
+ export declare function getSystem(systemId: string, tokenType?: DTCGTokenType): DTCGDesignSystem | null;
81
+ export interface NamedEasing {
82
+ /** Stable name: system id + token path, so two systems' "standard" cannot collide. */
83
+ name: string;
84
+ system: string;
85
+ systemName: string;
86
+ token: string;
87
+ cubicBezier: string;
88
+ values: number[];
89
+ description?: string;
90
+ license: string;
91
+ /** True when PinePaper filled a gap the published system does not specify. */
92
+ authored: boolean;
93
+ }
94
+ /**
95
+ * Every cubicBezier token across every system, as a named easing.
96
+ *
97
+ * The provenance flag is the part that matters. A vendor's published curve and
98
+ * one we had to invent because the system does not specify motion are both
99
+ * usable, and they are not the same claim — so `authored` rides along instead
100
+ * of the two being flattened into one list of equally-official numbers.
101
+ */
102
+ export declare function listEasings(authoredOnly?: boolean): NamedEasing[];
103
+ /**
104
+ * Compose a scene in a style. Returns null when the style cannot compose.
105
+ *
106
+ * `subtitle` and `body` are filled with empty strings before the call. Six
107
+ * generators — art deco, brutalist, de stijl, cyberpunk, pop art, vaporwave —
108
+ * declare both optional and then dereference them (`options.subtitle
109
+ * .toUpperCase()`), so a title-only compose throws a TypeError from inside
110
+ * vendored code. Defaulting here is the smallest honest adaptation: it is one
111
+ * rule applied to every generator rather than a patch to a generated file,
112
+ * which the provenance test would fail on anyway. The nullability gap is
113
+ * upstream's to close.
114
+ */
115
+ export declare function compose(style: string, options: ComposeOptions): ComposedScene | null;
116
+ /**
117
+ * A composed scene as create-item ops.
118
+ *
119
+ * Every generator returns absolutely-positioned elements with hex fills, which
120
+ * is already what `app.create` wants — so this is a rename, not a layout pass.
121
+ * Text keeps its content and size; everything else becomes a rectangle at the
122
+ * element's bounds, because a style's "fan_motif" is a named shape upstream
123
+ * and a filled box here rather than a silently dropped element.
124
+ */
125
+ export declare function sceneToOps(scene: ComposedScene): Array<Record<string, unknown>>;
126
+ //# sourceMappingURL=design-systems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-systems.d.ts","sourceRoot":"","sources":["../../src/design/design-systems.ts"],"names":[],"mappings":"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"}