@pinepaper.studio/mcp-server 1.6.7 → 1.6.9

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 (174) hide show
  1. package/README.de.md +9 -5
  2. package/README.es.md +9 -5
  3. package/README.fr.md +9 -5
  4. package/README.hi.md +8 -5
  5. package/README.ja.md +8 -5
  6. package/README.ko.md +8 -4
  7. package/README.md +256 -17
  8. package/README.pt-BR.md +9 -5
  9. package/README.zh-CN.md +6 -4
  10. package/dist/browser/index.d.ts +1 -1
  11. package/dist/browser/index.d.ts.map +1 -1
  12. package/dist/browser/index.js +1 -1
  13. package/dist/browser/index.js.map +1 -1
  14. package/dist/browser/puppeteer-controller.d.ts +86 -2
  15. package/dist/browser/puppeteer-controller.d.ts.map +1 -1
  16. package/dist/browser/puppeteer-controller.js +143 -60
  17. package/dist/browser/puppeteer-controller.js.map +1 -1
  18. package/dist/character/data/concepts.json +1 -0
  19. package/dist/character/data/depictions.json +1 -0
  20. package/dist/character/data/styles.json +1 -0
  21. package/dist/character/duration-scale.d.ts +13 -0
  22. package/dist/character/duration-scale.d.ts.map +1 -0
  23. package/dist/character/duration-scale.js +13 -0
  24. package/dist/character/duration-scale.js.map +1 -0
  25. package/dist/character/path-bbox.d.ts +82 -0
  26. package/dist/character/path-bbox.d.ts.map +1 -0
  27. package/dist/character/path-bbox.js +496 -0
  28. package/dist/character/path-bbox.js.map +1 -0
  29. package/dist/character/perform.d.ts +149 -0
  30. package/dist/character/perform.d.ts.map +1 -0
  31. package/dist/character/perform.js +626 -0
  32. package/dist/character/perform.js.map +1 -0
  33. package/dist/character/resolve.d.ts +51 -0
  34. package/dist/character/resolve.d.ts.map +1 -0
  35. package/dist/character/resolve.js +239 -0
  36. package/dist/character/resolve.js.map +1 -0
  37. package/dist/cli.js +12 -0
  38. package/dist/cli.js.map +1 -1
  39. package/dist/design/design-systems.d.ts +224 -0
  40. package/dist/design/design-systems.d.ts.map +1 -0
  41. package/dist/design/design-systems.js +434 -0
  42. package/dist/design/design-systems.js.map +1 -0
  43. package/dist/execution/canvas-state.d.ts +7 -0
  44. package/dist/execution/canvas-state.d.ts.map +1 -1
  45. package/dist/execution/canvas-state.js +20 -8
  46. package/dist/execution/canvas-state.js.map +1 -1
  47. package/dist/index.d.ts +20 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +12 -4
  50. package/dist/index.js.map +1 -1
  51. package/dist/ontology/design-graph.d.ts +9 -0
  52. package/dist/ontology/design-graph.d.ts.map +1 -1
  53. package/dist/ontology/design-graph.js +98 -3
  54. package/dist/ontology/design-graph.js.map +1 -1
  55. package/dist/ontology/types.d.ts +42 -0
  56. package/dist/ontology/types.d.ts.map +1 -1
  57. package/dist/ontology/vocabulary.d.ts.map +1 -1
  58. package/dist/ontology/vocabulary.js +20 -0
  59. package/dist/ontology/vocabulary.js.map +1 -1
  60. package/dist/tools/compact-descriptions.d.ts.map +1 -1
  61. package/dist/tools/compact-descriptions.js +25 -0
  62. package/dist/tools/compact-descriptions.js.map +1 -1
  63. package/dist/tools/definitions.d.ts +1 -1
  64. package/dist/tools/definitions.d.ts.map +1 -1
  65. package/dist/tools/definitions.js +404 -25
  66. package/dist/tools/definitions.js.map +1 -1
  67. package/dist/tools/engine-methods.d.ts +18 -0
  68. package/dist/tools/engine-methods.d.ts.map +1 -0
  69. package/dist/tools/engine-methods.js +241 -0
  70. package/dist/tools/engine-methods.js.map +1 -0
  71. package/dist/tools/handlers/character.d.ts +121 -0
  72. package/dist/tools/handlers/character.d.ts.map +1 -0
  73. package/dist/tools/handlers/character.js +315 -0
  74. package/dist/tools/handlers/character.js.map +1 -0
  75. package/dist/tools/handlers.d.ts +2 -0
  76. package/dist/tools/handlers.d.ts.map +1 -1
  77. package/dist/tools/handlers.js +522 -18
  78. package/dist/tools/handlers.js.map +1 -1
  79. package/dist/tools/minimal-descriptions.d.ts.map +1 -1
  80. package/dist/tools/minimal-descriptions.js +15 -3
  81. package/dist/tools/minimal-descriptions.js.map +1 -1
  82. package/dist/tools/toolkits.d.ts.map +1 -1
  83. package/dist/tools/toolkits.js +8 -0
  84. package/dist/tools/toolkits.js.map +1 -1
  85. package/dist/types/code-generator.d.ts +106 -1
  86. package/dist/types/code-generator.d.ts.map +1 -1
  87. package/dist/types/code-generator.js +1273 -18
  88. package/dist/types/code-generator.js.map +1 -1
  89. package/dist/types/schemas.d.ts +6805 -124
  90. package/dist/types/schemas.d.ts.map +1 -1
  91. package/dist/types/schemas.js +627 -17
  92. package/dist/types/schemas.js.map +1 -1
  93. package/dist/vendor/design/art-deco-generator.d.ts +52 -0
  94. package/dist/vendor/design/art-deco-generator.d.ts.map +1 -0
  95. package/dist/vendor/design/art-deco-generator.js +144 -0
  96. package/dist/vendor/design/art-deco-generator.js.map +1 -0
  97. package/dist/vendor/design/art-nouveau-generator.d.ts +46 -0
  98. package/dist/vendor/design/art-nouveau-generator.d.ts.map +1 -0
  99. package/dist/vendor/design/art-nouveau-generator.js +134 -0
  100. package/dist/vendor/design/art-nouveau-generator.js.map +1 -0
  101. package/dist/vendor/design/bauhaus-generator.d.ts +53 -0
  102. package/dist/vendor/design/bauhaus-generator.d.ts.map +1 -0
  103. package/dist/vendor/design/bauhaus-generator.js +126 -0
  104. package/dist/vendor/design/bauhaus-generator.js.map +1 -0
  105. package/dist/vendor/design/brutalist-generator.d.ts +53 -0
  106. package/dist/vendor/design/brutalist-generator.d.ts.map +1 -0
  107. package/dist/vendor/design/brutalist-generator.js +148 -0
  108. package/dist/vendor/design/brutalist-generator.js.map +1 -0
  109. package/dist/vendor/design/claymorphism-generator.d.ts +46 -0
  110. package/dist/vendor/design/claymorphism-generator.d.ts.map +1 -0
  111. package/dist/vendor/design/claymorphism-generator.js +135 -0
  112. package/dist/vendor/design/claymorphism-generator.js.map +1 -0
  113. package/dist/vendor/design/corporate-memphis-generator.d.ts +47 -0
  114. package/dist/vendor/design/corporate-memphis-generator.d.ts.map +1 -0
  115. package/dist/vendor/design/corporate-memphis-generator.js +144 -0
  116. package/dist/vendor/design/corporate-memphis-generator.js.map +1 -0
  117. package/dist/vendor/design/cyberpunk-generator.d.ts +52 -0
  118. package/dist/vendor/design/cyberpunk-generator.d.ts.map +1 -0
  119. package/dist/vendor/design/cyberpunk-generator.js +162 -0
  120. package/dist/vendor/design/cyberpunk-generator.js.map +1 -0
  121. package/dist/vendor/design/de-stijl-generator.d.ts +50 -0
  122. package/dist/vendor/design/de-stijl-generator.d.ts.map +1 -0
  123. package/dist/vendor/design/de-stijl-generator.js +154 -0
  124. package/dist/vendor/design/de-stijl-generator.js.map +1 -0
  125. package/dist/vendor/design/design-style.d.ts +3 -0
  126. package/dist/vendor/design/design-style.d.ts.map +1 -0
  127. package/dist/vendor/design/design-style.js +12 -0
  128. package/dist/vendor/design/design-style.js.map +1 -0
  129. package/dist/vendor/design/design-systems-dtcg.d.ts +59 -0
  130. package/dist/vendor/design/design-systems-dtcg.d.ts.map +1 -0
  131. package/dist/vendor/design/design-systems-dtcg.js +571 -0
  132. package/dist/vendor/design/design-systems-dtcg.js.map +1 -0
  133. package/dist/vendor/design/frutiger-aero-generator.d.ts +46 -0
  134. package/dist/vendor/design/frutiger-aero-generator.d.ts.map +1 -0
  135. package/dist/vendor/design/frutiger-aero-generator.js +133 -0
  136. package/dist/vendor/design/frutiger-aero-generator.js.map +1 -0
  137. package/dist/vendor/design/memphis-generator.d.ts +56 -0
  138. package/dist/vendor/design/memphis-generator.d.ts.map +1 -0
  139. package/dist/vendor/design/memphis-generator.js +158 -0
  140. package/dist/vendor/design/memphis-generator.js.map +1 -0
  141. package/dist/vendor/design/mid-century-upa-generator.d.ts +46 -0
  142. package/dist/vendor/design/mid-century-upa-generator.d.ts.map +1 -0
  143. package/dist/vendor/design/mid-century-upa-generator.js +137 -0
  144. package/dist/vendor/design/mid-century-upa-generator.js.map +1 -0
  145. package/dist/vendor/design/neumorphic-generator.d.ts +53 -0
  146. package/dist/vendor/design/neumorphic-generator.d.ts.map +1 -0
  147. package/dist/vendor/design/neumorphic-generator.js +182 -0
  148. package/dist/vendor/design/neumorphic-generator.js.map +1 -0
  149. package/dist/vendor/design/op-art-generator.d.ts +45 -0
  150. package/dist/vendor/design/op-art-generator.d.ts.map +1 -0
  151. package/dist/vendor/design/op-art-generator.js +116 -0
  152. package/dist/vendor/design/op-art-generator.js.map +1 -0
  153. package/dist/vendor/design/pixel-art-generator.d.ts +45 -0
  154. package/dist/vendor/design/pixel-art-generator.d.ts.map +1 -0
  155. package/dist/vendor/design/pixel-art-generator.js +143 -0
  156. package/dist/vendor/design/pixel-art-generator.js.map +1 -0
  157. package/dist/vendor/design/pop-art-generator.d.ts +53 -0
  158. package/dist/vendor/design/pop-art-generator.d.ts.map +1 -0
  159. package/dist/vendor/design/pop-art-generator.js +164 -0
  160. package/dist/vendor/design/pop-art-generator.js.map +1 -0
  161. package/dist/vendor/design/risograph-generator.d.ts +53 -0
  162. package/dist/vendor/design/risograph-generator.d.ts.map +1 -0
  163. package/dist/vendor/design/risograph-generator.js +170 -0
  164. package/dist/vendor/design/risograph-generator.js.map +1 -0
  165. package/dist/vendor/design/swiss-style-generator.d.ts +55 -0
  166. package/dist/vendor/design/swiss-style-generator.d.ts.map +1 -0
  167. package/dist/vendor/design/swiss-style-generator.js +147 -0
  168. package/dist/vendor/design/swiss-style-generator.js.map +1 -0
  169. package/dist/vendor/design/vaporwave-generator.d.ts +51 -0
  170. package/dist/vendor/design/vaporwave-generator.d.ts.map +1 -0
  171. package/dist/vendor/design/vaporwave-generator.js +139 -0
  172. package/dist/vendor/design/vaporwave-generator.js.map +1 -0
  173. package/manifest.json +33 -1
  174. package/package.json +13 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform.js","sourceRoot":"","sources":["../../src/character/perform.ts"],"names":[],"mappings":"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"}
@@ -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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"}
package/dist/cli.js CHANGED
@@ -48,6 +48,18 @@ ENVIRONMENT VARIABLES:
48
48
  PINEPAPER_SCREENSHOT_MODE Screenshot behavior ('on_request', 'always', 'never')
49
49
  PINEPAPER_LOCALE UI locale (e.g., 'en', 'ja', 'zh-CN')
50
50
 
51
+ Browser connection:
52
+ PINEPAPER_WAIT_UNTIL What a navigation waits for: 'load',
53
+ 'domcontentloaded' (default), 'networkidle0',
54
+ 'networkidle2'
55
+ PINEPAPER_TIMEOUT Navigation/readiness timeout in ms (default 30000)
56
+ PINEPAPER_PROXY Chrome --proxy-server value; also ignores
57
+ certificate errors, for an intercepting proxy
58
+ PINEPAPER_EXPORT_TIMEOUT Governor budget for an export run in ms
59
+ (default 300000)
60
+ PINEPAPER_GOVERNOR 'off' runs code by raw eval, giving up the
61
+ governor report, error codes and seeding
62
+
51
63
  Legacy: PINEPAPER_TOOL_VERBOSITY (use PINEPAPER_VERBOSITY instead)
52
64
 
53
65
  DOCUMENTATION:
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,OAAO,GAAG,cAAc,CAAC;AAC/B,MAAM,iBAAiB,GAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7E,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,mBAAmB;IACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;wBACQ,OAAO;;;;;;;;;;;;;;wCAcS,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCrF,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,IAAI,aAAwC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAClD,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,8BAA8B,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAmC,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,UAA4B,CAAC,EAAE,CAAC;YACjE,OAAO,GAAG,UAA4B,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,iBAAiB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAoC,CAAC;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAA6B,CAAC,EAAE,CAAC;YAC9D,SAAS,GAAG,YAA6B,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,sBAAsB,YAAY,iBAAiB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,aAAa;QAAE,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC;IAC/D,IAAI,OAAO;QAAE,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7C,IAAI,SAAS;QAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;IAEnD,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,WAAW,CAAC;QACzF,MAAM,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;QAC3E,MAAM,gBAAgB,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS,CAAC;QAC3H,MAAM,SAAS,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,gBAAiC,CAAC,EAAE,cAAgC,CAAC,CAAC,MAAM,CAAC;QAEvI,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,eAAe,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,iBAAiB,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,224 @@
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 interface StyleTokens {
68
+ style: string;
69
+ composable: boolean;
70
+ /** Distinct fills and strokes the generator actually emits, most-used first. */
71
+ palette: string[];
72
+ /** The ground it paints, when it paints one. */
73
+ background?: string;
74
+ /** Font stacks verbatim, as the generator writes them — a CSS stack, not one family. */
75
+ fonts: string[];
76
+ /** Type sizes in use, ascending. */
77
+ fontSizes: number[];
78
+ /** Named variants that change the palette; compose with `variant`. */
79
+ variants?: string[];
80
+ }
81
+ /**
82
+ * A style's palette and type, DERIVED by composing it — never transcribed.
83
+ *
84
+ * The data was always one layer below the API: every generator holds its colours
85
+ * in a `*_PALETTE` constant and its type in per-element `fontFamily` strings,
86
+ * and `listStyles` published neither. The only way to build an authentic
87
+ * bauhaus or memphis scene by hand was to read this server's own source, which
88
+ * is the report that prompted this.
89
+ *
90
+ * Reading the 18 `*_PALETTE` constants would have been the obvious fix and the
91
+ * wrong one: they are 18 different shapes under 18 different names, so a
92
+ * hand-written map is a second copy that drifts the first time `sync:design`
93
+ * pulls an upstream change — the exact failure this repo keeps paying to
94
+ * remove. Composing a throwaway poster and reading what comes out cannot drift:
95
+ * it reports what the generator will actually draw.
96
+ *
97
+ * Safe to do eagerly because no generator is procedural — there is no
98
+ * `Math.random` in any vendored file, so one run is the whole palette for that
99
+ * variant, and a style with variants says so rather than pretending its first
100
+ * variant is all of it.
101
+ */
102
+ export declare function styleTokens(style: string): StyleTokens | null;
103
+ /**
104
+ * Every style, with its tokens.
105
+ *
106
+ * The tokens ride along rather than sitting behind a second call: an agent that
107
+ * did not know palettes existed here will not go looking for the action that
108
+ * reveals them, and undiscoverability is the complaint this answers.
109
+ */
110
+ export declare function listStyles(): StyleTokens[];
111
+ export declare function listSystems(): Array<{
112
+ id: string;
113
+ name: string;
114
+ vendor: string;
115
+ license: string;
116
+ version: string;
117
+ category: string;
118
+ tokenCount: number;
119
+ }>;
120
+ export declare function getSystem(systemId: string, tokenType?: DTCGTokenType): DTCGDesignSystem | null;
121
+ export interface NamedEasing {
122
+ /** Stable name: system id + token path, so two systems' "standard" cannot collide. */
123
+ name: string;
124
+ system: string;
125
+ systemName: string;
126
+ token: string;
127
+ cubicBezier: string;
128
+ values: number[];
129
+ description?: string;
130
+ license: string;
131
+ /** True when PinePaper filled a gap the published system does not specify. */
132
+ authored: boolean;
133
+ }
134
+ /**
135
+ * Every cubicBezier token across every system, as a named easing.
136
+ *
137
+ * The provenance flag is the part that matters. A vendor's published curve and
138
+ * one we had to invent because the system does not specify motion are both
139
+ * usable, and they are not the same claim — so `authored` rides along instead
140
+ * of the two being flattened into one list of equally-official numbers.
141
+ */
142
+ export interface NamedDuration {
143
+ /** Stable name: system id + token path, matching a NamedEasing's. */
144
+ name: string;
145
+ system: string;
146
+ systemName: string;
147
+ token: string;
148
+ /** Milliseconds, parsed from the DTCG string. */
149
+ ms: number;
150
+ /** Seconds — what every animation tool on this surface actually takes. */
151
+ seconds: number;
152
+ description?: string;
153
+ license: string;
154
+ authored: boolean;
155
+ }
156
+ /**
157
+ * The other half of a motion token, which this surface was not publishing.
158
+ *
159
+ * `listEasings` exposed the 27 cubicBezier tokens and nothing read the 47
160
+ * duration tokens sitting beside them in the same store — so an agent could
161
+ * match a system's CURVE and had to invent its TIMING, which is half a motion
162
+ * vocabulary and the half that is easy to get wrong. A curve is a shape; a
163
+ * motion is a shape over a length.
164
+ *
165
+ * These are the licensed SYSTEMS' motion scales — Material's duration ladder,
166
+ * Carbon's, and so on. They are NOT per-aesthetic-style motion: a style like
167
+ * bauhaus_geometric has no upstream motion data at all, and manufacturing some
168
+ * would be inventing a fact about someone else's design system.
169
+ */
170
+ export declare function listDurations(authoredOnly?: boolean): NamedDuration[];
171
+ export declare function listEasings(authoredOnly?: boolean): NamedEasing[];
172
+ /**
173
+ * Compose a scene in a style. Returns null when the style cannot compose.
174
+ *
175
+ * `subtitle` and `body` are filled with empty strings before the call. Six
176
+ * generators — art deco, brutalist, de stijl, cyberpunk, pop art, vaporwave —
177
+ * declare both optional and then dereference them (`options.subtitle
178
+ * .toUpperCase()`), so a title-only compose throws a TypeError from inside
179
+ * vendored code. Defaulting here is the smallest honest adaptation: it is one
180
+ * rule applied to every generator rather than a patch to a generated file,
181
+ * which the provenance test would fail on anyway. The nullability gap is
182
+ * upstream's to close.
183
+ */
184
+ export declare function compose(style: string, options: ComposeOptions): ComposedScene | null;
185
+ /**
186
+ * A composed scene as create-item ops.
187
+ *
188
+ * Every generator returns absolutely-positioned elements with hex fills. Text
189
+ * keeps its content and size; everything else becomes a rectangle at the
190
+ * element's bounds, because a style's "fan_motif" is a named shape upstream and
191
+ * a filled box here rather than a silently dropped element.
192
+ *
193
+ * IT IS NOT A RENAME, which is what this used to claim while passing `x`/`y`
194
+ * straight through. The generators author CSS-shaped layout — a TOP-LEFT box —
195
+ * and `app.create` is CENTRE-anchored: js/shapes/basic.js builds a rectangle at
196
+ * `point: position - size/2` and a circle at `center: position`. So every
197
+ * composed scene rendered half a box up and to the left of where the generator
198
+ * put it, and a left-aligned headline was worse than that: bauhaus authors its
199
+ * title at x = 0.1 × width, which on a 1080 canvas is 108, and a 600px-wide
200
+ * string centred on 108 starts at -192. That is the "title half off-canvas"
201
+ * this surface was reported with, and why composing was abandoned for
202
+ * hand-built primitives.
203
+ *
204
+ * Three conventions, resolved per element, because one blanket shift breaks two
205
+ * of them:
206
+ *
207
+ * - **A box** (`width`/`height`, no radius) → the centre is (x + w/2, y + h/2).
208
+ * - **An explicit `radius`** → x/y is ALREADY the centre. art-nouveau's halo
209
+ * and op-art's concentric rings are authored from a ring centre, so shifting
210
+ * them by a radius would break the styles that are currently *correct*.
211
+ * - **Text** → PinePaper reads `alignment` ('left' makes x the LEFT edge,
212
+ * 'right' the right edge, y the bounds centre either way). That accommodation
213
+ * exists in the engine specifically for scene authors, and this function was
214
+ * dropping `textAlign` on the floor — so every left-aligned string centred on
215
+ * its anchor even once the boxes were right.
216
+ *
217
+ * The one place this stops short of certain: the layout-shape generators author
218
+ * text as x/y/fontSize with no box at all, and nothing upstream says whether
219
+ * that y is the top or the baseline. Where there is a box, y moves by half of
220
+ * it; where there is not, y is left alone rather than shifted by a guess. The
221
+ * horizontal fix — the one that put titles off-canvas — applies either way.
222
+ */
223
+ export declare function sceneToOps(scene: ComposedScene): Array<Record<string, unknown>>;
224
+ //# 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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"}