@pinepaper.studio/mcp-server 1.6.22 → 1.6.23
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.
- package/README.md +31 -0
- package/dist/build-info.json +2 -2
- package/dist/design/design-systems.d.ts +50 -0
- package/dist/design/design-systems.d.ts.map +1 -1
- package/dist/design/design-systems.js +220 -35
- package/dist/design/design-systems.js.map +1 -1
- package/dist/tools/choreograph.d.ts +4 -0
- package/dist/tools/choreograph.d.ts.map +1 -1
- package/dist/tools/choreograph.js +10 -2
- package/dist/tools/choreograph.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +36 -11
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +2 -0
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/handlers.d.ts +18 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +88 -18
- package/dist/tools/handlers.js.map +1 -1
- package/dist/types/code-generator.d.ts +36 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +353 -44
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +52 -1
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +15 -0
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-methods.d.ts","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAwOpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"engine-methods.d.ts","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAwOpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAmDpD,CAAC"}
|
|
@@ -291,6 +291,7 @@ export const OPTIONAL_ENGINE_METHODS = [
|
|
|
291
291
|
'listTextPalettes',
|
|
292
292
|
'mapSystem.canvasToGeo',
|
|
293
293
|
'mapSystem.getMapSourceInfo',
|
|
294
|
+
'poseAt',
|
|
294
295
|
'registerItem',
|
|
295
296
|
'relationRegistry.exportForSave',
|
|
296
297
|
'relationRegistry.getRule',
|
|
@@ -303,6 +304,7 @@ export const OPTIONAL_ENGINE_METHODS = [
|
|
|
303
304
|
'setLifetime',
|
|
304
305
|
'setStepTiming',
|
|
305
306
|
'setUnitGridEnabled',
|
|
307
|
+
'tabularFiguresReport',
|
|
306
308
|
'textOverflowReport',
|
|
307
309
|
];
|
|
308
310
|
//# sourceMappingURL=engine-methods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-methods.js","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine-methods.js","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/handlers.d.ts
CHANGED
|
@@ -162,7 +162,24 @@ stage?: Record<string, string>): Promise<CallToolResult>;
|
|
|
162
162
|
*/
|
|
163
163
|
export declare function innerFailure(value: unknown): string | null;
|
|
164
164
|
export declare function getLocalizedSuccessMessage(i18n: I18nManager | undefined, key: string, params: Record<string, string | number>): string;
|
|
165
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Keys a handler accepts that its published schema does not list. Shrink-only:
|
|
167
|
+
* publishing one (or dropping it from the handler) means deleting it here.
|
|
168
|
+
*/
|
|
169
|
+
export declare const HIDDEN_ARGUMENTS: Readonly<Record<string, readonly string[]>>;
|
|
170
|
+
/** Tools whose schema passes every key through: nothing is dropped. */
|
|
171
|
+
export declare const PASSTHROUGH_ARGUMENT_TOOLS: ReadonlySet<string>;
|
|
172
|
+
/** Each tool's published top-level keys; null when its schema allows any key. */
|
|
173
|
+
export declare function publishedArguments(toolName: string): Promise<Set<string> | null | undefined>;
|
|
174
|
+
/** The top-level keys of `args` the tool does not read. */
|
|
175
|
+
export declare function ignoredArgumentKeys(toolName: string, args: Record<string, unknown>, published?: Set<string> | null): string[];
|
|
176
|
+
export declare function ignoredArgumentsNote(toolName: string, args: Record<string, unknown>, published?: Set<string> | null): string | null;
|
|
177
|
+
/** The same check, against the tool's published schema. */
|
|
178
|
+
export declare function ignoredArgumentsNoteFor(toolName: string, args: Record<string, unknown>): Promise<{
|
|
179
|
+
note: string;
|
|
180
|
+
ignored: string[];
|
|
181
|
+
} | null>;
|
|
182
|
+
export declare const IGNORED_ARGUMENTS_META_KEY = "pinepaper.studio/ignoredArguments";
|
|
166
183
|
export declare function handleToolCall(toolName: string, args: Record<string, unknown>, options?: HandlerOptions): Promise<CallToolResult>;
|
|
167
184
|
export {};
|
|
168
185
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/handlers.js
CHANGED
|
@@ -1561,15 +1561,23 @@ function measureResponseBytes(result) {
|
|
|
1561
1561
|
return bytes;
|
|
1562
1562
|
}
|
|
1563
1563
|
/**
|
|
1564
|
-
* TOP-LEVEL ARGUMENTS A TOOL DROPPED, SAID OUT LOUD.
|
|
1564
|
+
* TOP-LEVEL ARGUMENTS A TOOL DROPPED, SAID OUT LOUD — FOR EVERY TOOL.
|
|
1565
1565
|
*
|
|
1566
1566
|
* z.object() strips unknown keys, so agent_export {loop: true, seamless: true}
|
|
1567
1567
|
* answered success and exported exactly what it would have without them — the
|
|
1568
|
-
* caller believed they had a loop setting.
|
|
1569
|
-
*
|
|
1570
|
-
*
|
|
1571
|
-
*
|
|
1572
|
-
*
|
|
1568
|
+
* caller believed they had a loop setting. keyframe_animate {mode: 'merge'}
|
|
1569
|
+
* (issue #14) was the same: stripped, success, the track replaced.
|
|
1570
|
+
*
|
|
1571
|
+
* A key is known when the tool's published JSON schema lists it, when the zod
|
|
1572
|
+
* schema in IGNORED_ARGUMENT_SCHEMAS has it, or when HIDDEN_ARGUMENTS names it.
|
|
1573
|
+
* Anything else had no effect, and the reply says so. The published schema is
|
|
1574
|
+
* the contract the caller reads, so it is the right default; the two lists
|
|
1575
|
+
* cover what a handler accepts without advertising.
|
|
1576
|
+
*
|
|
1577
|
+
* ignored-arguments-coverage.test.ts pairs every tool with the zod schemas its
|
|
1578
|
+
* handler parses and the args.x it reads, and fails when a key the handler
|
|
1579
|
+
* accepts is neither published nor in HIDDEN_ARGUMENTS — so a working key is
|
|
1580
|
+
* never reported as ignored — and when an entry here is no longer needed.
|
|
1573
1581
|
*/
|
|
1574
1582
|
const IGNORED_ARGUMENT_SCHEMAS = {
|
|
1575
1583
|
pinepaper_agent_export: AgentExportInputSchema,
|
|
@@ -1580,6 +1588,25 @@ const IGNORED_ARGUMENT_SCHEMAS = {
|
|
|
1580
1588
|
// Its options live in `options` / `spec`; a key beside them was dropped.
|
|
1581
1589
|
pinepaper_sound: SoundInputSchema,
|
|
1582
1590
|
};
|
|
1591
|
+
/**
|
|
1592
|
+
* Keys a handler accepts that its published schema does not list. Shrink-only:
|
|
1593
|
+
* publishing one (or dropping it from the handler) means deleting it here.
|
|
1594
|
+
*/
|
|
1595
|
+
export const HIDDEN_ARGUMENTS = {
|
|
1596
|
+
pinepaper_agent_end_job: ['takeScreenshot'],
|
|
1597
|
+
pinepaper_agent_export: ['includeRecommendations'],
|
|
1598
|
+
pinepaper_agent_reset: ['preserveCanvasSize'],
|
|
1599
|
+
pinepaper_agent_start_job: ['headless', 'canvasSize', 'backgroundColor'],
|
|
1600
|
+
pinepaper_font: ['fontFamily'],
|
|
1601
|
+
pinepaper_import_svg: ['source'],
|
|
1602
|
+
// load takes its options flat as well as under `options`.
|
|
1603
|
+
pinepaper_map: ['quality', 'fillColor', 'strokeColor', 'strokeWidth', 'scale', 'rotate', 'enableHover', 'enableClick', 'hoverFill', 'hoverStroke', 'animate', 'geoJson'],
|
|
1604
|
+
pinepaper_map_regions: ['pulse', 'shape'],
|
|
1605
|
+
pinepaper_query_capabilities: ['query'],
|
|
1606
|
+
pinepaper_text_effect: ['startAt', 'hideAfter'],
|
|
1607
|
+
};
|
|
1608
|
+
/** Tools whose schema passes every key through: nothing is dropped. */
|
|
1609
|
+
export const PASSTHROUGH_ARGUMENT_TOOLS = new Set(['pinepaper_equation_path', 'pinepaper_ui_kit']);
|
|
1583
1610
|
const IGNORED_ARGUMENT_HINTS = {
|
|
1584
1611
|
pinepaper_create_item: Object.fromEntries(['width', 'height', 'radius', 'color', 'fillColor', 'strokeColor', 'strokeWidth', 'content', 'fontSize', 'fontFamily', 'opacity', 'rotation', 'x', 'y']
|
|
1585
1612
|
.map((k) => [k, 'Shape properties go INSIDE properties: {…}; only itemType, position, anchor, properties, animation*, keyframes and data are top-level.'])),
|
|
@@ -1590,29 +1617,58 @@ const IGNORED_ARGUMENT_HINTS = {
|
|
|
1590
1617
|
seamless: 'A seamless loop is keyed, not a switch: key the animation to the SAME state at t = 0 and at t = duration and export exactly that duration (the export stops one frame before duration, so nothing is doubled at the wrap). A GIF\'s play count is the loop parameter.',
|
|
1591
1618
|
},
|
|
1592
1619
|
};
|
|
1593
|
-
|
|
1620
|
+
let PUBLISHED_ARGUMENTS = null;
|
|
1621
|
+
/** Each tool's published top-level keys; null when its schema allows any key. */
|
|
1622
|
+
export async function publishedArguments(toolName) {
|
|
1623
|
+
if (!PUBLISHED_ARGUMENTS) {
|
|
1624
|
+
const { PINEPAPER_TOOLS } = await import('./definitions.js');
|
|
1625
|
+
PUBLISHED_ARGUMENTS = new Map(PINEPAPER_TOOLS.map((t) => {
|
|
1626
|
+
const js = t.inputSchema;
|
|
1627
|
+
return [t.name, js.additionalProperties === true ? null : new Set(Object.keys(js.properties ?? {}))];
|
|
1628
|
+
}));
|
|
1629
|
+
}
|
|
1630
|
+
return PUBLISHED_ARGUMENTS.get(toolName);
|
|
1631
|
+
}
|
|
1632
|
+
/** The top-level keys of `args` the tool does not read. */
|
|
1633
|
+
export function ignoredArgumentKeys(toolName, args, published) {
|
|
1634
|
+
if (!args || typeof args !== 'object' || PASSTHROUGH_ARGUMENT_TOOLS.has(toolName) || published === null)
|
|
1635
|
+
return [];
|
|
1636
|
+
const known = new Set([...(published ?? []), ...(HIDDEN_ARGUMENTS[toolName] ?? [])]);
|
|
1594
1637
|
let schema = IGNORED_ARGUMENT_SCHEMAS[toolName];
|
|
1595
|
-
if (!schema || !args || typeof args !== 'object')
|
|
1596
|
-
return null;
|
|
1597
1638
|
while (schema instanceof z.ZodEffects)
|
|
1598
1639
|
schema = schema._def.schema;
|
|
1599
|
-
if (
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1640
|
+
if (schema instanceof z.ZodObject)
|
|
1641
|
+
Object.keys(schema.shape).forEach((k) => known.add(k));
|
|
1642
|
+
else if (published === undefined)
|
|
1643
|
+
return []; // neither a schema nor a published contract to judge by
|
|
1644
|
+
return Object.keys(args).filter((k) => !known.has(k));
|
|
1645
|
+
}
|
|
1646
|
+
export function ignoredArgumentsNote(toolName, args, published) {
|
|
1647
|
+
const ignored = ignoredArgumentKeys(toolName, args, published);
|
|
1603
1648
|
if (ignored.length === 0)
|
|
1604
1649
|
return null;
|
|
1605
1650
|
const hints = ignored.map((k) => IGNORED_ARGUMENT_HINTS[toolName]?.[k]).filter(Boolean);
|
|
1606
1651
|
return `IGNORED ARGUMENTS: ${ignored.join(', ')} ${ignored.length > 1 ? 'are' : 'is'} not a parameter of ${toolName}, so ${ignored.length > 1 ? 'they had' : 'it had'} no effect.`
|
|
1607
1652
|
+ (hints.length ? ` ${[...new Set(hints)].join(' ')}` : '');
|
|
1608
1653
|
}
|
|
1654
|
+
/** The same check, against the tool's published schema. */
|
|
1655
|
+
export async function ignoredArgumentsNoteFor(toolName, args) {
|
|
1656
|
+
const published = await publishedArguments(toolName);
|
|
1657
|
+
const ignored = ignoredArgumentKeys(toolName, args, published);
|
|
1658
|
+
if (!ignored.length)
|
|
1659
|
+
return null;
|
|
1660
|
+
return { note: ignoredArgumentsNote(toolName, args, published), ignored };
|
|
1661
|
+
}
|
|
1662
|
+
export const IGNORED_ARGUMENTS_META_KEY = 'pinepaper.studio/ignoredArguments';
|
|
1609
1663
|
export async function handleToolCall(toolName, args, options = {}) {
|
|
1610
1664
|
const tracker = getPerformanceTracker();
|
|
1611
1665
|
const baseTimerId = `${toolName}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
1612
1666
|
const result = await callContext.run({ toolName, action: typeof args.action === 'string' ? args.action : undefined }, () => handleToolCallInner(toolName, args, options, tracker, baseTimerId));
|
|
1613
|
-
const
|
|
1614
|
-
if (
|
|
1615
|
-
result.content = [...(result.content ?? []), { type: 'text', text:
|
|
1667
|
+
const ignored = await ignoredArgumentsNoteFor(toolName, args);
|
|
1668
|
+
if (ignored) {
|
|
1669
|
+
result.content = [...(result.content ?? []), { type: 'text', text: ignored.note }];
|
|
1670
|
+
result._meta = { ...(result._meta ?? {}), [IGNORED_ARGUMENTS_META_KEY]: ignored.ignored };
|
|
1671
|
+
}
|
|
1616
1672
|
// Record response payload size for token estimation
|
|
1617
1673
|
const responseBytes = measureResponseBytes(result);
|
|
1618
1674
|
tracker.recordMetric({
|
|
@@ -3884,10 +3940,24 @@ You can now start creating new items on a clean canvas.${sizeNote}`,
|
|
|
3884
3940
|
const sizeWarning = sizeIgnored
|
|
3885
3941
|
? `"${scene.style}" lays out at its own size, ${scene.width}x${scene.height}; the requested ${input.width ?? '?'}x${input.height ?? '?'} was not used`
|
|
3886
3942
|
: undefined;
|
|
3943
|
+
// BAUHAUS-SUBTITLE: at a size the style was not laid out for, its
|
|
3944
|
+
// proportions can put text across a shape (bauhaus at 1920x1080
|
|
3945
|
+
// runs the subtitle over the red circle). The layout is vendored;
|
|
3946
|
+
// the result names each collision rather than drawing it as intended.
|
|
3947
|
+
const collisions = designSystems.scalingCollisions(input.style, {
|
|
3948
|
+
title: input.title, subtitle: input.subtitle, body: input.body,
|
|
3949
|
+
width: input.width, height: input.height, variant: input.variant,
|
|
3950
|
+
}, scene);
|
|
3951
|
+
const layoutWarning = collisions.length
|
|
3952
|
+
? `at ${scene.width}x${scene.height} the "${scene.style}" layout runs text onto a shape it does not touch at its own default size: `
|
|
3953
|
+
+ collisions.map((c) => `${c.text} over ${c.shape}`).join(', ')
|
|
3954
|
+
+ '. Compose without width/height (its default size) for the layout as designed, or move the text afterwards with pinepaper_modify_item.'
|
|
3955
|
+
: undefined;
|
|
3956
|
+
const collisionReport = collisions.length ? { layoutCollisions: collisions, layoutWarning } : {};
|
|
3887
3957
|
if (input.draw === false) {
|
|
3888
|
-
return dataResult({ scene, ops, drawn: false, ...(sizeWarning ? { warning: sizeWarning } : {}) });
|
|
3958
|
+
return dataResult({ scene, ops, drawn: false, ...(sizeWarning ? { warning: sizeWarning } : {}), ...collisionReport });
|
|
3889
3959
|
}
|
|
3890
|
-
const code = codeGenerator.generateDesignCompose(scene, ops, scene.style, sizeWarning);
|
|
3960
|
+
const code = codeGenerator.generateDesignCompose(scene, ops, scene.style, sizeWarning, collisionReport);
|
|
3891
3961
|
return executeOrGenerate(code, `Composed a ${scene.style} scene (${ops.length} items)`, options, 'pinepaper_design_system');
|
|
3892
3962
|
}
|
|
3893
3963
|
}
|