@pinepaper.studio/mcp-server 1.6.32 → 1.6.34

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 (60) hide show
  1. package/README.md +115 -1
  2. package/dist/agent/types.d.ts +3 -3
  3. package/dist/build-info.json +2 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +6 -5
  6. package/dist/index.js.map +1 -1
  7. package/dist/ontology/upstream-vocabulary.d.ts +1 -1
  8. package/dist/ontology/upstream-vocabulary.js +1 -1
  9. package/dist/tools/batch-macros.d.ts +20 -1
  10. package/dist/tools/batch-macros.d.ts.map +1 -1
  11. package/dist/tools/batch-macros.js +146 -7
  12. package/dist/tools/batch-macros.js.map +1 -1
  13. package/dist/tools/compact-descriptions.js +1 -1
  14. package/dist/tools/compact-descriptions.js.map +1 -1
  15. package/dist/tools/definitions.d.ts.map +1 -1
  16. package/dist/tools/definitions.js +82 -55
  17. package/dist/tools/definitions.js.map +1 -1
  18. package/dist/tools/engine-lists.d.ts +5 -3
  19. package/dist/tools/engine-lists.d.ts.map +1 -1
  20. package/dist/tools/engine-lists.js +11 -3
  21. package/dist/tools/engine-lists.js.map +1 -1
  22. package/dist/tools/engine-surface.d.ts +1 -1
  23. package/dist/tools/engine-surface.d.ts.map +1 -1
  24. package/dist/tools/engine-surface.js +11 -5
  25. package/dist/tools/engine-surface.js.map +1 -1
  26. package/dist/tools/handlers.d.ts.map +1 -1
  27. package/dist/tools/handlers.js +71 -16
  28. package/dist/tools/handlers.js.map +1 -1
  29. package/dist/tools/lane.d.ts +8 -1
  30. package/dist/tools/lane.d.ts.map +1 -1
  31. package/dist/tools/lane.js +56 -15
  32. package/dist/tools/lane.js.map +1 -1
  33. package/dist/tools/minimal-descriptions.js +1 -1
  34. package/dist/tools/minimal-descriptions.js.map +1 -1
  35. package/dist/tools/reply-fields.d.ts +15 -0
  36. package/dist/tools/reply-fields.d.ts.map +1 -0
  37. package/dist/tools/reply-fields.js +117 -0
  38. package/dist/tools/reply-fields.js.map +1 -0
  39. package/dist/tools/scene-cache-export.d.ts.map +1 -1
  40. package/dist/tools/scene-cache-export.js +2 -1
  41. package/dist/tools/scene-cache-export.js.map +1 -1
  42. package/dist/tools/shape-params.d.ts +2 -2
  43. package/dist/tools/shape-params.d.ts.map +1 -1
  44. package/dist/tools/shape-params.js +4 -2
  45. package/dist/tools/shape-params.js.map +1 -1
  46. package/dist/tools/stick-vocabulary.d.ts +1 -1
  47. package/dist/tools/stick-vocabulary.js +1 -1
  48. package/dist/tools/toolkits.d.ts +1 -1
  49. package/dist/tools/toolkits.d.ts.map +1 -1
  50. package/dist/tools/toolkits.js +7 -2
  51. package/dist/tools/toolkits.js.map +1 -1
  52. package/dist/types/code-generator.d.ts.map +1 -1
  53. package/dist/types/code-generator.js +142 -50
  54. package/dist/types/code-generator.js.map +1 -1
  55. package/dist/types/schemas.d.ts +40 -6
  56. package/dist/types/schemas.d.ts.map +1 -1
  57. package/dist/types/schemas.js +20 -7
  58. package/dist/types/schemas.js.map +1 -1
  59. package/manifest.json +1 -1
  60. package/package.json +1 -1
package/README.md CHANGED
@@ -78,6 +78,37 @@ question you can answer yourself rather than take on trust: a benchmark runs one
78
78
  prompt across several models and puts the results side by side, any run
79
79
  shareable. It is in invite-only beta.
80
80
 
81
+ ### FFmpeg is yours to install
82
+
83
+ The MCP server does not include, download or install FFmpeg, and PinePaper does not
84
+ provide an FFmpeg build. If you want it, install it yourself from
85
+ [ffmpeg.org](https://ffmpeg.org/download.html) or your package manager. Your copy comes
86
+ under FFmpeg's own licence and the licences of whatever codecs your build includes, and
87
+ following those terms is up to you.
88
+
89
+ Most exports don't need it: MP4, WebM and the other formats are made in your browser.
90
+ You need your own FFmpeg for these:
91
+
92
+ - **An MP4 that repeats byte for byte, on a machine where the browser's encoder won't.**
93
+ The export warns with `determinism_not_pinned` when that happens. Export the frames with
94
+ `pinepaper_interchange` (`export_png_sequence`, passing `duration` and `fps`), unzip
95
+ them, and encode:
96
+
97
+ ```bash
98
+ ffmpeg -framerate 30 -i frame_%05d.png -c:v libx264 -pix_fmt yuv420p -crf 18 -threads 1 out.mp4
99
+ ```
100
+
101
+ Match `-framerate` to the `fps` you exported, and use a build that includes `libx264`.
102
+ Keep `-threads 1`, because x264 can vary between runs when it uses several threads
103
+ under a bitrate cap. The file repeats when the browser build, the FFmpeg build and the
104
+ settings stay the same, but a different browser build can produce different frames. The
105
+ frames carry no audio, so add any sound in FFmpeg.
106
+ - **Formats browsers can't encode,** such as ProRes and HAP, from the same frames.
107
+ - **In the Claude Desktop extension,** joining a `perScene` export and checking a saved
108
+ video. These use the `ffmpeg` and `ffprobe` on your `PATH`; the extension bundles a small
109
+ script that starts them, not the programs themselves. Without them, a `perScene` export
110
+ runs whole and the check is skipped. The npm package never starts FFmpeg.
111
+
81
112
  ### Quick start
82
113
 
83
114
  **Claude Desktop:** download
@@ -279,6 +310,88 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
279
310
  - The npm package starts no process. Two export features use `ffprobe` and `ffmpeg`: checking a saved video against what the studio encoded, and joining the cached segments of a `perScene` export (`ffmpeg -f concat`). Only the Claude Desktop extension runs them, through a small runner it bundles that allows those two binaries alone, via `execFile` (no shell, argument lists the server writes, absolute paths). From npm, the check is skipped and said so, and a `perScene` export runs whole.
280
311
  - The server itself fetches the images, SVGs and media a tool call names by URL, and reads local files named by path. URLs that resolve to loopback, private, link-local or reserved addresses are refused, redirects included, and so are cloud metadata addresses. Local files are read only with `PINEPAPER_ALLOW_LOCAL_FILES=1`, and then only from the working directory, the export folder, and folders listed in `PINEPAPER_ASSET_DIRS` (the export folder is readable without the switch). `PINEPAPER_ALLOW_PRIVATE_NETWORK=1` allows local and LAN hosts. Metadata addresses stay refused even with it set.
281
312
 
313
+ ## What's new in 1.6.34
314
+
315
+ ### Added
316
+
317
+ - `keys` on `keyframe_animate` sends a track by column instead of one object per key:
318
+ `{"time":[0,1,2],"x":[100,400,700],"easing":"easeOut"}`. Evenly spaced keys can use
319
+ `"time":{"step":0.033333,"count":180}`. A 180-key track of `x` and `y` is about three
320
+ times smaller to send, or four with even spacing, and renders the same.
321
+ - `create_many` in `pinepaper_agent_batch_execute` makes many items of one type, with
322
+ what they share stated once. 300 items sharing five properties are about fifteen times smaller to send.
323
+ - `PINEPAPER_TOOLKIT=starter` serves five tools, enough for a first scene: the batch,
324
+ keyframes, patterns, export and lint. The eight-tool lane adds events, starting over
325
+ and custom relations.
326
+
327
+ ### Changed
328
+
329
+ - MP4 and WebM exports are deterministic by default, so every receipt says whether its
330
+ file repeats. Pass `deterministic: false` to opt out. An encoder may be pinned, so a
331
+ plain export's file size and pixels can differ from earlier releases. Where an MP4
332
+ still can't repeat on a machine, the reply warns with `determinism_not_pinned` and
333
+ points to [your own FFmpeg](#ffmpeg-is-yours-to-install), which PinePaper does not provide.
334
+ - A relation's `params.window` now gates `on_event_*` reactions too. Exported widgets
335
+ run contraption rules and layout constraints, and they honour relation windows.
336
+ - A linear gradient without `origin` and `destination` now fits the item, top to
337
+ bottom. It used to be a fixed 100 px diagonal at the requested position, so this
338
+ changes how such a fill looks in existing scripts.
339
+ - An imported APNG plays, so the reply no longer says it draws only its first frame.
340
+ A remote file named `.png` stays a still.
341
+
342
+ ## What's new in 1.6.33
343
+
344
+ ### Added
345
+
346
+ - Everything that renders says which studio build rendered it. `studioBuild`
347
+ (for example `0.5.4-beta+e67960d5`) is in the structured reply of
348
+ `pinepaper_agent_export`, `pinepaper_export_svg`, `pinepaper_export_scene`,
349
+ `pinepaper_export_widget`, `pinepaper_export_widget_html`,
350
+ `pinepaper_capture_frames`, `pinepaper_render_batch` and
351
+ `pinepaper_sprite_sheet`. Render behaviour follows the live studio, so this is
352
+ what traces a file, not the package version.
353
+ - A saved export now has a structured reply: `filePath`, `fileSize`, `file` and
354
+ the rest of its result, which used to be readable only in the text.
355
+ - `pinepaper_import_image` takes `opacity`, `blendMode` and `scale`, and `.apng`
356
+ files. An APNG draws its first frame, and the reply says so.
357
+ - An export names any sound that starts after its end (`sound_after_end`), since
358
+ that sound is not in the file.
359
+ - `pinepaper_event` rules can toggle an item (`toggleItemVisible`), animate it
360
+ (`animateItem`), play a sound (`playSound`) and play the timeline
361
+ (`playTimeline`). `clear_contraptions` and `clear_variables` reset them.
362
+ - `pinepaper_import_image` takes `loop` for an animated GIF or WebP, and the reply
363
+ says in `playback` whether it took. `pinepaper_modify_item` takes `loop` and
364
+ `imageStart` on one. `morphs_to` takes `mode`; text to text now goes glyph by
365
+ glyph, and `'dissolve'` keeps the cross-fade.
366
+
367
+ ### Fixed
368
+
369
+ - `pinepaper_add_relation` runs a target-less `on_event_step_active` again. Since
370
+ 1.6.31 it answered success and bound nothing, so nothing stepped.
371
+ - `keyframe_animate` no longer warns that `loop: true` plays once in an export.
372
+ It cycles.
373
+ - An invalid `platform` lists the valid ones.
374
+ - An emitter's trail `offset` takes `{x, y}` as well as `[dx, dy]`, and an emitter
375
+ with bursts says that `rate`, `start` and `end` have no effect beside them.
376
+ - Keying an image filter setting such as `brightness` is reported as having no
377
+ effect, in the warning and in `ignoredArguments`.
378
+ - The docs now say how `fps` and file size relate, what each emitter shape draws,
379
+ that `drag` slows launch velocity only, what a trail's `window` does, that
380
+ rotation keys take no short way round, that `step` easing holds a whole key,
381
+ and how a linear gradient without `origin` and `destination` is placed.
382
+ - A misspelt option is in `ignoredArguments`, with its path, not only in a
383
+ sentence: `params.sped` on `pinepaper_add_relation`,
384
+ `operations[0].relationOptions.sped` in a batch. The same goes for a batch
385
+ animate op's options, custom relations, and an unknown property on create and
386
+ modify.
387
+ - `pinepaper_create_scene` reports a relation option nothing reads. It used to
388
+ say nothing.
389
+ - `params.window`, `startTime`, `endTime`, `autoRemove` and `paramKeyframes` are
390
+ no longer called ignored. The studio reads them on every relation.
391
+ - A reply too long for structured content keeps its fields and lists what it
392
+ left out in `textOnly`, such as a widget's page. It used to have no structured
393
+ reply at all.
394
+
282
395
  ## What's new in 1.6.32
283
396
 
284
397
  ### Added
@@ -2232,7 +2345,8 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
2232
2345
  | `map` | Canvas + map + query/export |
2233
2346
  | `font` | Canvas + font + letter collage + export |
2234
2347
  | `minimal` | Agent, browser, canvas, and guide only |
2235
- | `lane` | **The agent lane**: exactly seven tools — `pinepaper_agent_batch_execute`, `pinepaper_keyframe_animate`, `pinepaper_pattern`, `pinepaper_agent_export`, `pinepaper_lint_scene`, `pinepaper_event`, `pinepaper_clear_canvas` — shown with descriptions that carry the rules an agent otherwise learns by failing (the keyframe shape, an item's words and look inside `properties`, a position being the item's centre, the export's 5 s default). The whole contract, instructions included, is ~4.3k tokens. For scripted builds of shapes, text, keyframes and relations; use `core` for characters, styled scenes, maps, diagrams and sound |
2348
+ | `starter` | The agent lane's first five tools, for a first scene: `pinepaper_agent_batch_execute`, `pinepaper_keyframe_animate`, `pinepaper_pattern`, `pinepaper_agent_export`, `pinepaper_lint_scene` |
2349
+ | `lane` | **The agent lane**: exactly eight tools — `pinepaper_agent_batch_execute`, `pinepaper_keyframe_animate`, `pinepaper_pattern`, `pinepaper_agent_export`, `pinepaper_lint_scene`, `pinepaper_event`, `pinepaper_clear_canvas`, `pinepaper_register_custom_relation` — shown with descriptions that carry the rules an agent otherwise learns by failing (the keyframe shape, an item's words and look inside `properties`, a position being the item's centre, the export's 5 s default). The whole contract, instructions included, is ~4.3k tokens. For scripted builds of shapes, text, keyframes and relations; use `core` for characters, styled scenes, maps, diagrams and sound |
2236
2350
 
2237
2351
  **Verbosity tiers** (`PINEPAPER_VERBOSITY`): `verbose`, `compact` (default), `minimal`.
2238
2352
 
@@ -299,23 +299,23 @@ export declare const JobOptionsSchema: z.ZodObject<{
299
299
  backgroundColor: z.ZodOptional<z.ZodString>;
300
300
  }, z.core.$strip>;
301
301
  export declare const BatchOperationTypeSchema: z.ZodEnum<{
302
+ relation: "relation";
302
303
  animate: "animate";
303
304
  create: "create";
304
305
  modify: "modify";
305
306
  canvas: "canvas";
306
307
  generator: "generator";
307
308
  delete: "delete";
308
- relation: "relation";
309
309
  }>;
310
310
  export declare const BatchOperationSchema: z.ZodObject<{
311
311
  type: z.ZodEnum<{
312
+ relation: "relation";
312
313
  animate: "animate";
313
314
  create: "create";
314
315
  modify: "modify";
315
316
  canvas: "canvas";
316
317
  generator: "generator";
317
318
  delete: "delete";
318
- relation: "relation";
319
319
  }>;
320
320
  itemType: z.ZodOptional<z.ZodString>;
321
321
  params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -325,13 +325,13 @@ export declare const BatchOperationSchema: z.ZodObject<{
325
325
  export declare const BatchExecuteInputSchema: z.ZodObject<{
326
326
  operations: z.ZodArray<z.ZodObject<{
327
327
  type: z.ZodEnum<{
328
+ relation: "relation";
328
329
  animate: "animate";
329
330
  create: "create";
330
331
  modify: "modify";
331
332
  canvas: "canvas";
332
333
  generator: "generator";
333
334
  delete: "delete";
334
- relation: "relation";
335
335
  }>;
336
336
  itemType: z.ZodOptional<z.ZodString>;
337
337
  params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha": "dceb7f2",
2
+ "sha": "c15a5fc",
3
3
  "dirty": false,
4
- "builtAt": "2026-11-06T19:40:38.250Z"
4
+ "builtAt": "2026-11-07T19:44:52.536Z"
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAgBxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAW5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAkB,aAAa,EAAgC,MAAM,qBAAqB,CAAC;AAOlG,OAAO,EAEL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAWzB;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;CAKvB,CAAC;AAMF,eAAO,MAAM,SAAS;;;;;GA8HrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAg/KpD,CAAC;AAMF,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uFAAuF;IACvF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qEAAqE;IACrE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,uEAAuE;IACvE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8S/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAW5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAkB,aAAa,EAAgC,MAAM,qBAAqB,CAAC;AAOlG,OAAO,EAEL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAWzB;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;CAKvB,CAAC;AAMF,eAAO,MAAM,SAAS;;;;;GA8HrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAg/KpD,CAAC;AAMF,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uFAAuF;IACvF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qEAAqE;IACrE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,uEAAuE;IACvE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8S/E"}
package/dist/index.js CHANGED
@@ -10,11 +10,12 @@
10
10
  * Supports i18n for 41 locales matching PinePaper Studio.
11
11
  */
12
12
  import { Server } from './mcp/index.js';
13
+ import { boundedStructured } from './tools/reply-fields.js';
13
14
  import { StdioServerTransport } from './mcp/index.js';
14
15
  import { exitWhenClientGone } from './utils/exit-when-client-gone.js';
15
16
  import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, McpError, ErrorCode, } from './mcp/index.js';
16
17
  import { PINEPAPER_TOOLS, getToolsForVerbosity, AI_AGENT_GUIDE, CHOOSE_THE_DOOR } from './tools/definitions.js';
17
- import { LANE_INSTRUCTIONS, EDIT_INSTRUCTIONS } from './tools/lane.js';
18
+ import { LANE_INSTRUCTIONS, EDIT_INSTRUCTIONS, STARTER_INSTRUCTIONS } from './tools/lane.js';
18
19
  import { getToolsForToolkit, detectToolkitFromEnvironment, detectVerbosityFromEnvironment, isToolkitExplicitlySet, isVerbosityExplicitlySet, getClientProfile, unknownLoadNames, TOOL_TAGS, } from './tools/toolkits.js';
19
20
  import { handleToolCall, getExecutionMode, withTiming } from './tools/handlers.js';
20
21
  import { getBrowserController, BROWSER_TIME } from './browser/puppeteer-controller.js';
@@ -5796,11 +5797,11 @@ export async function createServer(options = {}) {
5796
5797
  // The lane brings its own instructions: the default text names tools the lane does not list.
5797
5798
  // The security boundary leads every instruction set, so an agent knows which tools are behind a switch before
5798
5799
  // its first call (utils/capabilities.ts).
5799
- instructions: securityBoundaryNotice() + '\n\n' + (effectiveToolkit === 'lane' ? LANE_INSTRUCTIONS : effectiveToolkit === 'edit' ? EDIT_INSTRUCTIONS : ("You are connected to PinePaper Studio — a canvas animation engine with tools for creating animations, videos, and graphics.\n\nCRITICAL: When the user asks to create any visual content (animation, video, graphic, poster, diagram, or design), you MUST use PinePaper tools. Do NOT create standalone HTML pages, React components, or web apps as a substitute. Do NOT use frontend design skills or CSS-only animations instead of PinePaper. PinePaper tools ARE the implementation — they run on a real browser canvas and produce real exports (Canvas 2D, SVG, JavaScript, MP4, GIF, PNG are all valid PinePaper outputs).\n\nIf a PinePaper tool fails or export errors occur, report the error to the user. Do " +
5800
+ instructions: securityBoundaryNotice() + '\n\n' + (effectiveToolkit === 'lane' ? LANE_INSTRUCTIONS : effectiveToolkit === 'edit' ? EDIT_INSTRUCTIONS : effectiveToolkit === 'starter' ? STARTER_INSTRUCTIONS : ("You are connected to PinePaper Studio — a canvas animation engine with tools for creating animations, videos, and graphics.\n\nCRITICAL: When the user asks to create any visual content (animation, video, graphic, poster, diagram, or design), you MUST use PinePaper tools. Do NOT create standalone HTML pages, React components, or web apps as a substitute. Do NOT use frontend design skills or CSS-only animations instead of PinePaper. PinePaper tools ARE the implementation — they run on a real browser canvas and produce real exports (Canvas 2D, SVG, JavaScript, MP4, GIF, PNG are all valid PinePaper outputs).\n\nIf a PinePaper tool fails or export errors occur, report the error to the user. Do " +
5800
5801
  "NOT fall back to generating HTML pages.\n\n" +
5801
5802
  String(CHOOSE_THE_DOOR) +
5802
5803
  "\n\nWORKFLOW (always follow this):\n1. pinepaper_agent_start_job — sets up the canvas (pass canvasPreset for sizing)\n2. The craft tool(s) that fit the brief (above), then pinepaper_agent_batch_execute — the remaining items, animations and effects in ONE call\n3. pinepaper_agent_end_job — returns a screenshot to show the user\n4. pinepaper_agent_export — exports as MP4, GIF, PNG, SVG, or PDF\n\nMORE TOOLS LOAD ON DEMAND: the list starts with the core tools. Maps, diagrams, fonts, physics, ontology and the rest load with pinepaper_set_toolkit {load: [\"map\"]} (a group) or {load: [\"pinepaper_map\"]} (a tool); the list updates at once.\n\nA scripted build of shapes, text, keyframes and rela" +
5803
- "tions needs none of the craft tools: PINEPAPER_TOOLKIT=lane serves a seven-tool agent lane whose descriptions carry the whole contract (pinepaper_tool_guide says more).\n\nThe tools generate Paper.js/JavaScript code that executes on the PinePaper canvas. The generated code is visible in responses and can be copied into PinePaper's Code Console."
5804
+ "tions needs none of the craft tools: PINEPAPER_TOOLKIT=lane serves an eight-tool agent lane whose descriptions carry the whole contract, and PINEPAPER_TOOLKIT=starter its first five, for a first scene (pinepaper_tool_guide says more).\n\nThe tools generate Paper.js/JavaScript code that executes on the PinePaper canvas. The generated code is visible in responses and can be copied into PinePaper's Code Console."
5804
5805
 
5805
5806
 
5806
5807
 
@@ -5984,8 +5985,8 @@ String(CHOOSE_THE_DOOR) +
5984
5985
  if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
5985
5986
  const compact = JSON.stringify(parsed);
5986
5987
  result.content = [{ ...first, text: compact }, ...result.content.slice(1)];
5987
- if (!result.structuredContent && compact.length <= 16_384)
5988
- result.structuredContent = parsed;
5988
+ if (!result.structuredContent)
5989
+ result.structuredContent = boundedStructured(parsed);
5989
5990
  }
5990
5991
  }
5991
5992
  catch { /* not JSON after all: text only */ }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwW5C;IAEC,uCAAuC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqc1C;IAEC,qCAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqPxC;IAEC,yCAAyC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwW5C;IAEC,uCAAuC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqc1C;IAEC,qCAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqPxC;IAEC,yCAAyC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -4,7 +4,7 @@
4
4
  * FxTool's ITEM_TYPE_MAP and type classes (anchor, description, parentType,
5
5
  * mcpTool, mcpAction), read from the loaded module.
6
6
  *
7
- * Source: FxTool origin/main e67960d514741e0132010c90f07b94bb142087e3
7
+ * Source: FxTool origin/main b31d4236ebe7dc466ff976476e5e6ef62dae94e5
8
8
  * js/ontology/Vocabulary.js
9
9
  * sha256: f01c4211a78256ae
10
10
  *
@@ -4,7 +4,7 @@
4
4
  * FxTool's ITEM_TYPE_MAP and type classes (anchor, description, parentType,
5
5
  * mcpTool, mcpAction), read from the loaded module.
6
6
  *
7
- * Source: FxTool origin/main e67960d514741e0132010c90f07b94bb142087e3
7
+ * Source: FxTool origin/main b31d4236ebe7dc466ff976476e5e6ef62dae94e5
8
8
  * js/ontology/Vocabulary.js
9
9
  * sha256: f01c4211a78256ae
10
10
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Batch macros: ring, grid, orbit, stagger and patch, expanded into the
2
+ * Batch macros: ring, grid, orbit, stagger, patch and create_many (and keys on any of them that animate), expanded into the
3
3
  * batch's own ops before any code is generated.
4
4
  *
5
5
  * A macro is shorthand, not a second implementation. A ring of twelve is twelve
@@ -16,6 +16,17 @@
16
16
  type Op = Record<string, unknown>;
17
17
  export declare class BatchMacroError extends Error {
18
18
  }
19
+ /**
20
+ * keys: the same keyframes by column, one list per property under one header. A dense track pays for its numbers
21
+ * and nothing else. A null in a column means that key does not set that property, as a key object leaving it out.
22
+ */
23
+ export declare function expandKeyColumns(keys: unknown, tag: string): Array<{
24
+ time: number;
25
+ properties: Record<string, unknown>;
26
+ easing?: string;
27
+ }>;
28
+ /** An op or tool call with keys turned into the keyframes they stand for; one without keys comes back as it was. */
29
+ export declare function withKeyColumns<T extends Record<string, unknown>>(op: T, tag: string): T;
19
30
  /**
20
31
  * The ops with every macro expanded. Ops that are not macros pass through
21
32
  * untouched; a malformed macro throws BatchMacroError naming the op.
@@ -23,5 +34,13 @@ export declare class BatchMacroError extends Error {
23
34
  export declare function expandBatchMacros(ops: readonly Op[]): Op[];
24
35
  /** True when any op is a macro, so the handler can say the batch was expanded. */
25
36
  export declare function hasBatchMacros(ops: readonly Op[]): boolean;
37
+ /**
38
+ * What the vocabulary and typo preflights read: every create_many item as the create it will be, so an item gets the
39
+ * check a create gets, and the path each entry came from. A malformed item is left for the expansion to refuse.
40
+ */
41
+ export declare function batchPreflightView(ops: readonly Op[]): {
42
+ ops: Op[];
43
+ paths: string[];
44
+ };
26
45
  export {};
27
46
  //# sourceMappingURL=batch-macros.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-macros.d.ts","sourceRoot":"","sources":["../../src/tools/batch-macros.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAqBlC,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAyB7C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,CA4F1D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAE1D"}
1
+ {"version":3,"file":"batch-macros.d.ts","sourceRoot":"","sources":["../../src/tools/batch-macros.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAqBlC,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAK7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC1I;AAED,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAKvF;AA8CD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,CAiH1D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG;IAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAarF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Batch macros: ring, grid, orbit, stagger and patch, expanded into the
2
+ * Batch macros: ring, grid, orbit, stagger, patch and create_many (and keys on any of them that animate), expanded into the
3
3
  * batch's own ops before any code is generated.
4
4
  *
5
5
  * A macro is shorthand, not a second implementation. A ring of twelve is twelve
@@ -30,11 +30,101 @@ function num(v, fallback) {
30
30
  const round = (n, d = 2) => Number(n.toFixed(d));
31
31
  export class BatchMacroError extends Error {
32
32
  }
33
+ const MAX_KEYS = 100000;
34
+ const KEY_COLUMNS_EXAMPLE = '{"time":[0,1],"x":[100,400],"easing":"easeOut"}';
35
+ /**
36
+ * keys: the same keyframes by column, one list per property under one header. A dense track pays for its numbers
37
+ * and nothing else. A null in a column means that key does not set that property, as a key object leaving it out.
38
+ */
39
+ export function expandKeyColumns(keys, tag) {
40
+ const refuse = (why) => { throw new BatchMacroError(`${tag}: keys ${why} keys is one list per property under a time list: ${KEY_COLUMNS_EXAMPLE}.`); };
41
+ if (!keys || typeof keys !== 'object' || Array.isArray(keys))
42
+ return refuse('must be an object of columns.');
43
+ const { time, easing, ...columns } = keys;
44
+ // An evenly spaced track (anything baked at a frame rate) needs no time column at all.
45
+ let times;
46
+ if (time && typeof time === 'object' && !Array.isArray(time)) {
47
+ const { step, count, from = 0 } = time;
48
+ if (typeof step !== 'number' || !(step > 0) || !Number.isFinite(step))
49
+ return refuse('time.step must be the seconds between keys.');
50
+ if (typeof count !== 'number' || !Number.isInteger(count) || count < 1 || count > MAX_KEYS)
51
+ return refuse(`time.count must be a whole number of keys, 1 to ${MAX_KEYS}.`);
52
+ if (typeof from !== 'number' || !Number.isFinite(from))
53
+ return refuse('time.from must be the first key\'s seconds.');
54
+ times = Array.from({ length: count }, (_, i) => Number((from + i * step).toFixed(6)));
55
+ }
56
+ else if (!Array.isArray(time) || !time.length) {
57
+ return refuse('needs a non-empty time list, or {step, count}.');
58
+ }
59
+ else {
60
+ times = time;
61
+ }
62
+ times.forEach((t, i) => { if (typeof t !== 'number' || !Number.isFinite(t))
63
+ refuse(`time[${i}] is not a number of seconds.`); });
64
+ // A key's own options have no column: a column is a property, so these would be set on the item.
65
+ for (const reserved of ['properties', 'interpolation', 'hold']) {
66
+ if (reserved in columns)
67
+ refuse(`has a ${reserved} column, and every column but time and easing is a property. Use keyframes for that key.`);
68
+ }
69
+ for (const [name, col] of Object.entries(columns)) {
70
+ if (!Array.isArray(col))
71
+ refuse(`${name} must be a list, one value per time.`);
72
+ else if (col.length !== times.length)
73
+ refuse(`${name} has ${col.length} value${col.length === 1 ? '' : 's'}, and time has ${times.length}.`);
74
+ }
75
+ if (easing !== undefined && typeof easing !== 'string') {
76
+ if (!Array.isArray(easing))
77
+ refuse('easing must be a name, or a list with one name or null per time.');
78
+ else if (easing.length !== times.length)
79
+ refuse(`easing has ${easing.length} value${easing.length === 1 ? '' : 's'}, and time has ${times.length}.`);
80
+ }
81
+ return times.map((t, i) => {
82
+ const properties = {};
83
+ for (const [name, col] of Object.entries(columns)) {
84
+ const v = col[i];
85
+ if (v !== null && v !== undefined)
86
+ properties[name] = v;
87
+ }
88
+ if (!Object.keys(properties).length)
89
+ refuse(`has no value for the key at time ${String(t)}.`);
90
+ const e = Array.isArray(easing) ? easing[i] : easing;
91
+ return { time: t, properties, ...(typeof e === 'string' ? { easing: e } : {}) };
92
+ });
93
+ }
94
+ /** An op or tool call with keys turned into the keyframes they stand for; one without keys comes back as it was. */
95
+ export function withKeyColumns(op, tag) {
96
+ if (op.keys === undefined)
97
+ return op;
98
+ if (op.keyframes !== undefined)
99
+ throw new BatchMacroError(`${tag}: pass keys or keyframes, not both.`);
100
+ const { keys, ...rest } = op;
101
+ return { ...rest, keyframes: expandKeyColumns(keys, tag) };
102
+ }
33
103
  /** Keyframes a macro was given, under any of the names the batch takes. */
34
- function keyframesOf(op) {
35
- const k = op.keyframes;
104
+ function keyframesOf(op, tag) {
105
+ const k = withKeyColumns(op, tag).keyframes;
36
106
  return Array.isArray(k) && k.length ? k : null;
37
107
  }
108
+ const CREATE_MANY_KEYS = new Set(['type', 'itemType', 'name', 'properties', 'items', '_step']);
109
+ /** One entry of create_many as a create's parts, or null when it is not an item at all. */
110
+ function manyItemParts(op, item) {
111
+ const shared = (op.properties && typeof op.properties === 'object' ? op.properties : {});
112
+ if (Array.isArray(item))
113
+ return { itemType: op.itemType, position: item, properties: { ...shared } };
114
+ if (!item || typeof item !== 'object')
115
+ return null;
116
+ const { x, y, position, itemType, properties, ...rest } = item;
117
+ const own = (properties && typeof properties === 'object' ? properties : {});
118
+ return {
119
+ itemType: itemType ?? op.itemType,
120
+ position: position ?? (x !== undefined || y !== undefined ? { x, y } : undefined),
121
+ properties: { ...shared, ...own, ...rest },
122
+ };
123
+ }
124
+ function finitePoint(v) {
125
+ const [x, y] = Array.isArray(v) ? v : v && typeof v === 'object' ? [v.x, v.y] : [];
126
+ return typeof x === 'number' && typeof y === 'number' && Number.isFinite(x) && Number.isFinite(y) ? { x, y } : null;
127
+ }
38
128
  /** One element: a create, and a keyframe_animate on its slot when the macro animates. */
39
129
  function element(out, slots, macro, label, itemType, at, props, name, anim) {
40
130
  out.push({ type: 'create', itemType, position: { x: round(at.x), y: round(at.y) }, properties: { ...props, name }, _step: `${macro} ${label}` });
@@ -66,7 +156,7 @@ export function expandBatchMacros(ops) {
66
156
  const r = num(op.radius, 150);
67
157
  const startDeg = num(op.startAngle, -90); // the first item at 12 o'clock
68
158
  const prefix = String(op.name ?? `ring${index}`);
69
- const kfs = keyframesOf(op);
159
+ const kfs = keyframesOf(op, tag);
70
160
  const period = num(op.period, 0);
71
161
  const stagger = num(op.stagger, period > 0 ? period / count : 0.05);
72
162
  for (let i = 0; i < count; i++) {
@@ -86,7 +176,7 @@ export function expandBatchMacros(ops) {
86
176
  const o = point(op.origin, { x: 100, y: 100 });
87
177
  const [dx, dy] = Array.isArray(op.spacing) ? [num(op.spacing[0], 50), num(op.spacing[1], 50)] : [num(op.spacing, 50), num(op.spacing, 50)];
88
178
  const prefix = String(op.name ?? `grid${index}`);
89
- const kfs = keyframesOf(op);
179
+ const kfs = keyframesOf(op, tag);
90
180
  const stagger = num(op.stagger, 0.05);
91
181
  let i = 0;
92
182
  for (let row = 0; row < rows; row++) {
@@ -123,7 +213,7 @@ export function expandBatchMacros(ops) {
123
213
  const ids = op.itemIds;
124
214
  if (!Array.isArray(ids) || !ids.length)
125
215
  throw new BatchMacroError(`${tag}: itemIds lists the items to stagger (ids, names or $N).`);
126
- const kfs = keyframesOf(op);
216
+ const kfs = keyframesOf(op, tag);
127
217
  if (!kfs)
128
218
  throw new BatchMacroError(`${tag}: keyframes is the animation each item plays, offset by stagger seconds.`);
129
219
  const stagger = num(op.stagger, 0.1);
@@ -142,6 +232,32 @@ export function expandBatchMacros(ops) {
142
232
  out.push({ type: 'modify', itemId: target, properties: props, _step: tag });
143
233
  return;
144
234
  }
235
+ case 'create_many': {
236
+ // A key the op would drop is refused here: BATCH_OP_READS lists generated-code ops, and this one has no code.
237
+ const extra = Object.keys(op).filter((k) => !CREATE_MANY_KEYS.has(k));
238
+ if (extra.length)
239
+ throw new BatchMacroError(`${tag}: ${extra.join(', ')} is not read here. What every item shares goes in properties; what one item has goes on that item.`);
240
+ const items = op.items;
241
+ if (!Array.isArray(items) || !items.length)
242
+ throw new BatchMacroError(`${tag}: items lists the items: [x, y], or {x, y, …what differs}.`);
243
+ items.forEach((item, i) => {
244
+ const parts = manyItemParts(op, item);
245
+ if (!parts)
246
+ throw new BatchMacroError(`${tag}: items[${i}] must be [x, y] or {x, y, …what differs}.`);
247
+ const at = finitePoint(parts.position);
248
+ if (!at)
249
+ throw new BatchMacroError(`${tag}: items[${i}] has no position: give [x, y], x and y, or position.`);
250
+ if (typeof parts.itemType !== 'string' || !parts.itemType)
251
+ throw new BatchMacroError(`${tag}: items[${i}] has no type: give itemType on the op or on the item.`);
252
+ const named = parts.properties.name === undefined && op.name !== undefined ? { ...parts.properties, name: `${String(op.name)}-${i}` } : parts.properties;
253
+ out.push({ type: 'create', itemType: parts.itemType, position: at, properties: named, _step: `${tag} items[${i}]` });
254
+ slots.n++;
255
+ });
256
+ return;
257
+ }
258
+ case 'keyframe_animate':
259
+ out.push(withKeyColumns(op, tag));
260
+ return;
145
261
  default:
146
262
  // A group makes an item, so it takes a $N slot as a create does (O2).
147
263
  if (op.type === 'create' || op.type === 'group')
@@ -153,6 +269,29 @@ export function expandBatchMacros(ops) {
153
269
  }
154
270
  /** True when any op is a macro, so the handler can say the batch was expanded. */
155
271
  export function hasBatchMacros(ops) {
156
- return ops.some((op) => ['ring', 'grid', 'orbit', 'stagger', 'patch'].includes(String(op.type)));
272
+ return ops.some((op) => ['ring', 'grid', 'orbit', 'stagger', 'patch', 'create_many'].includes(String(op.type)));
273
+ }
274
+ /**
275
+ * What the vocabulary and typo preflights read: every create_many item as the create it will be, so an item gets the
276
+ * check a create gets, and the path each entry came from. A malformed item is left for the expansion to refuse.
277
+ */
278
+ export function batchPreflightView(ops) {
279
+ const view = [];
280
+ const paths = [];
281
+ ops.forEach((op, i) => {
282
+ if (op.type !== 'create_many' || !Array.isArray(op.items)) {
283
+ view.push(op);
284
+ paths.push(`operations[${i}]`);
285
+ return;
286
+ }
287
+ op.items.forEach((item, j) => {
288
+ const parts = manyItemParts(op, item);
289
+ if (!parts)
290
+ return;
291
+ view.push({ type: 'create', itemType: parts.itemType, properties: parts.properties });
292
+ paths.push(`operations[${i}].items[${j}]`);
293
+ });
294
+ });
295
+ return { ops: view, paths };
157
296
  }
158
297
  //# sourceMappingURL=batch-macros.js.map