@womp/openai-plugin 0.8.1 → 0.8.2

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 (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -64,7 +64,7 @@ ${s.map(f=>`- ${f}`).join(`
64
64
  - When finish_scene names a failed check, fix it without asking when the fix keeps what the user asked for, and call finish_scene again.
65
65
  - When the user picks another material, finish or colour, make it an edit round and finish it again.
66
66
  - Call checkout_design only for a design whose last finish_scene passed, with no edit after it, and with the same material, finish, colour and pieces.
67
- - For a price at another size, such as "how much at 10 cm?", quote it with checkout_design and longestSideCm; the design stays as it is.`;var ge=`Cases and enclosures for real hardware When the request is a case, enclosure, mount, stand or holder for a real device or board (a Raspberry Pi, an ESP32, a phone, a controller), the device's fit decides the design. Unless the request already says, first ask one short question with choices, made clear that Womp prints only the case and the electronics are the user's own, modelled inside to show the fit, such as: "Womp prints the case; your board, battery and buttons go inside, and I model them so you see they fit. Just a case for the board, or a case with room for a battery, a real button and a switch?" The answer changes the whole build. Research the exact model, from the maker's drawing, datasheet or 3D file: its outline and thickness, the position and diameter of each mounting hole, and the position and size of every port, connector, button, LED, card slot and tall component; name the source. When the device has shipped in versions that differ, fit every known version and say so in one line, or ask one question with choices (such as which camera module is printed on the ribbon). Do not ask the user for photos, measurements or calipers unless they ask for a precision fit. Before the case, build the device as a fit model, without asking: plain blocks at its true size for the board, its holes, its ports and its tall parts, in its own Area named "REFERENCE" with the device's name. The fit model is for fit, not looks; a detailed replica is offered later. Build the case around the fit model: 0.5 mm clearance on each side of the board unless the user gave one, walls 1.5 to 2 mm thick, screw posts centred on the real mounting holes with holes sized for the screw, openings over the real ports, buttons, LEDs and card slots with 0.5 mm extra all round, and room above the tallest part. When the case is larger than the device, such as a handheld console or a camera body, say in one line what the spare space is for. A case that opens is built as separate printed parts that assemble (a base and a lid, button caps), each one solid piece. Check the fit in renders and close-ups with the fit model in place: every post under its hole, every opening over its port, the device touching no wall. The fit model stays visible in the design and in the card's picture, inside the case, so the user sees that it fits. Bought parts never print: keep every bought part (boards, screens, batteries, wires, screws) in a REFERENCE Area, which finish_scene and checkout_design leave out, so the price and the quote cover only the printed parts. Take the final product shot with the fit model in place, then finish_scene, so the card's picture shows the device inside. The way to test a fit on the real device is a print: whenever the reply would say that something needs physical testing or a prototype, give the Womp price for printing it and offer a quote, since that print is the test. Once the fit check passes, the reply includes a short build guide in the chat, without being asked: first, print with Womp (the printed parts, the material, the price from finish_scene's result and an offer to quote it); then, buy (each bought part by its exact name); then, assemble (3 to 5 short steps). Give the measured fit with its numbers in one line. Make a PDF guide only when the user asks for one. The price covers every printed part together; a piece count in it that differs from the number of parts is not a reason to hold back the price. End each round by offering the next step up, in one line: after a plain case, making it work for real (a battery, real buttons, a screen in the spare space); after a mock-up of those parts, a buildable version with real parts and a build guide; after the guide, ordering the print. A detailed model of the device for the preview, or a version for another device, can be offered as well. For a later edit, check the fit again with the fit model before pricing.`;var ye=`Modelling and visual review Use only documented capabilities. Inspect the current scene before editing, preserve work unrelated to the request, and keep the result editable. Use meaningful names within the permitted scene structure. Build or change the scene with run_scene_script. Read commit receipts after errors: earlier accesses may have committed. Recover with fresh state reads and corrected edits, preserving successful changes. Do not assume a failed script rolled back or blindly replay it. After substantial edits, call render_scene and inspect the actual image returned. In the code environment a tool's images are the image items of its result's content_items; view each with image({ image_url: "data:<mimeType>;base64,<data>" }). Check silhouette, proportions, connections, intersections, openings, materials and the user's requirements. Use additional views or detail views when needed. Measurements and geometry reports support the review; they do not replace looking at the render. Resolve unintended problems and repeat the edit-render-review loop as needed. The same tools may run many times; building, inspection and refinement are not a fixed one-way sequence. Review the current result against the printability requirements as well as its appearance. Every further edit requires a fresh inspection before presentation. Never claim to have seen an image that was not returned. Finish the review with a clear, well-framed view of the whole object. Building the Womp way Build the main form first, from the brief's silhouette: one Curve along the centreline with a point at each station, sized to that station's height and width. Then measure the bounds and key ratios against the reference, and compare side and top renders with the stations. Make the main shell one smooth, continuous surface at its Area's highest resolution, with no dents, ripples or bumps in a close-up under studio light, before any cut or detail; after adding details, check that they did not deform it. Build flowing forms (bodies, limbs, handles, cables, trims) with Curves: a Curve along the form's centreline whose points are rounded profiles sized to the real width and height at that spot, with point round, and Bezier handles where the scene's curves support them (older curve modes do not; then shape with more points instead); start with density 250 and blend 3 mm, softer where surfaces flow and tighter where the real object has crisp lines. Join parts by overlapping and blending them, not by butting them together. Use primitives for truly geometric parts (wheels, buttons, lenses, screws), with a little round, sunk slightly into the surface they sit on, and Text nodes for lettering. Build every feature as real geometry: recesses (windows, vents, ducts, handle pockets, panel lines, wheel wells) are Subtract nodes in the same Area as the shape they cut, and raised parts are their own geometry. Do not use the Stain operation, unless there is a large, high-goop colour gradient to paint, where one colour melts into the next across a wide blend; never use it to fake a window, light, vent, handle or grille. Goop is what makes Womp forms flow: parts blend into each other only inside the same Area, and separate Areas never blend. Always put parts of a different colour or material in their own Area, unless they need to goop with each other; inside one Area their colours bleed into each other at every join. Parts of the same colour and material that flow into each other on the real object (body, cowls, shields, fenders, limbs, a handle root) stay in one Area with the shape they join, overlapping it and blending at each join, usually 2 to 5 mm at print size, larger where the real surface sweeps from one part into the next. Each Area has its own resolution, all Areas sit in one Group, and they touch or overlap so they print as one piece. Check every flowing join in a close-up: a visible crease, seam or step where two parts meet is a flaw. When edges look jagged or stepped, raise that Area's resolution rather than splitting a flowing form apart. For repeated detail (grille bars, louvres, vents, spokes, treads, teeth), decide a count and spacing from the real object, build it with a loop in the script, and count it in a close-up; never make it fewer or thicker to hide blurring. Give each part its own colour and a finish close to the real thing (glossy paint, matte rubber, satin plastic) within the printability rules below. Small details get the same care as the main form: build each from its real sub-parts at true scale (a side mirror is an arm, a housing and a glass face; a door handle is a recess and a grip; a button is a bezel and a cap), place it where the reference puts it, and check it in its own close-up. A quick placeholder shape is not a detail. Quality comes before speed, and a build has no time limit: take all the time the design needs, with as many scripts, renders and close-ups as it takes. Keep refining until every part in the brief passes its close-up; do not finish early to save time. A slower, finished result is always better than a fast, rough one. Thin forms stay thin: a shield, fender, panel or wing is a shell with a defined thickness and crisp or rolled edges, not an inflated volume; keep blends on thin forms small so they do not swell into balloons. Scale model, not toy: keep the real proportions (no oversized wheels, heads or features, no shortened or chubby bodies), keep parts as thin as the real ones allow within the print limits, vary edge rounding the way the real object does (soft where it is soft, tight on its feature lines and panel edges, never the same round on everything), and add the shut lines, seams and panel edges the real object has. Chunky simplified parts, uniform rounding, cartoon proportions and missing panel lines are what make a model read as a toy. Upper forms grow out of the main shell: a cabin, a head, a canopy or a raised deck is blended into the body it rises from, never a separate block laid on top. Inset parts sit flush: glass, lenses, screens and panels are cut into the surface they belong to and follow its curvature, set just below it with a thin frame, never flat slabs or sheets placed on top. To build one: copy the shell Curve's profile for that area, scaled down by the shell's thickness, as the glass; Subtract the opening from the shell with a cutter that follows the same curve, leaving the pillars and frames as part of the shell; then place the glass, in its own Area and material, about 0.3 to 0.5 mm below the shell surface so it follows the curve with a thin step all round. Check every window and lens in a close-up from an angle: an even, thin frame and a glass surface curving with the body. Surfaces read as their real material: car paint and glazed ceramics are glossy (low roughness), so a clean highlight line runs along the form under the key light; rubber and fabric are matte. The critic pass Before finish_scene, switch roles: you are now a demanding product designer seeing the design for the first time, paid to find what is wrong. Render the whole design from the reference's main angles and the brief's close-ups. For a real object, put each render next to a real reference photo from your research taken from the same angle (side, front, three-quarter), and compare them feature by feature: silhouette, the shape of the nose, roof and tail, wheel and tyre size, the position and size of lights and openings. A shape that does not match the photo is a flaw even when it matches the brief. Compare each render with the brief too, and list at least three concrete flaws (wrong proportion, a part that reads as a blob, an upper form or glass that reads as a slab placed on top, paint that looks dull with no highlight, anything that makes it read as a toy rather than a scale model, a missing or simplified detail, a wrong count, a seam, a float), at least one of them about a small detail seen in a close-up. Fix each, render again, and repeat the pass until no major flaw remains. finish_scene carries this review; a flaw that cannot be fixed is listed as remaining and told to the user in one line.`;var be=`Printability and materials Create objects intended for physical printing. The completed design prints as one piece (a case that opens: see the hardware rules above), using exactly ONE supported printable material throughout. It may use several Areas (an Area is an outermost Union with no Union ancestor); every Area must touch or overlap another so nothing floats free, except the separately printed parts of a case that opens and the REFERENCE Areas of the hardware rules, which are never printed. Verify the Areas, their contact and the material assignment from scene API data, not the rendered image. Touching Areas alone do not prove that the geometry forms one connected physical piece; check thin joins between them. The entire object must fit the largest size in load_scene_skill's materials. Measure its complete bounds, including every protrusion, attachment and loop. Convert scene units to millimetres and evaluate the bounds in the intended print orientation; do not assume scene axes are printer axes. Respect user-specified dimensions. Dimensions exceeding that size are an unresolved design choice, not permission to silently resize. When no size is specified, choose an appropriate size within the limits. Recheck bounds after size-changing edits. Select one supported printable material for the whole object. Use load_scene_skill's materials for the materials and finishes on offer and whether each prints in one colour; not every combination is available. Do not infer a single-colour restriction from the single-material requirement, or invent rules for mixing finishes. Womp's ability to render an appearance does not establish that it can be manufactured. Colour the design as the real object or the brief has it, each surface its own colour, even when the materials on offer print in fewer colours; do not repaint the whole design in one material's colour to match the price list. When the materials on offer cannot reproduce those colours, say in one short line how the print will differ, such as that it prints in a single colour. Do not assign different printable materials to different parts or introduce unsupported metallic, emissive, transparent or other effects. The print cannot reproduce metal, chrome, glass, light or glow, so build those parts in their closest printable look and keep them as their own parts so they still read: metal and chrome as satin light grey or silver-grey plastic (metalness 0, medium roughness), glass as a dark tinted solid, headlights and lamps as solid coloured lenses. Missing material or finish compatibility information remains unresolved when it affects the requested result. Review dimensions, thickness of small features, attachments, intended connections, unintended loose pieces, intersections, openings, cavities, clearances and access for support removal against the supplied manufacturing requirements. Use scene measurements where available. Do not invent values or treat visual estimates as measured facts. Bounding-box and thickness heuristics are supporting evidence, not proof of printability. Perform this printability review yourself using the images and scene data returned by the tools; do not assume another agent or validator has approved the result. Correct ordinary problems and review again after changes. Missing essential manufacturing information or measurements are unresolved checks, not passes. Do not claim print readiness while required checks remain unresolved, or describe a model-based assessment as manufacturing certification.
67
+ - For a price at another size, such as "how much at 10 cm?", quote it with checkout_design and longestSideCm; the design stays as it is.`;var ge=`Cases and enclosures for real hardware When the request is a case, enclosure, mount, stand or holder for a real device or board (a Raspberry Pi, an ESP32, a phone, a controller), the device's fit decides the design. Unless the request already says, first ask one short question with choices, made clear that Womp prints only the case and the electronics are the user's own, modelled inside to show the fit, such as: "Womp prints the case; your board, battery and buttons go inside, and I model them so you see they fit. Just a case for the board, or a case with room for a battery, a real button and a switch?" The answer changes the whole build. Research the exact model, from the maker's drawing, datasheet or 3D file: its outline and thickness, the position and diameter of each mounting hole, and the position and size of every port, connector, button, LED, card slot and tall component; name the source. When the device has shipped in versions that differ, fit every known version and say so in one line, or ask one question with choices (such as which camera module is printed on the ribbon). Do not ask the user for photos, measurements or calipers unless they ask for a precision fit. Before the case, build the device as a fit model, without asking: plain blocks at its true size for the board, its holes, its ports and its tall parts, in its own Area named "REFERENCE" with the device's name. The fit model is for fit, not looks; a detailed replica is offered later. Build the case around the fit model: 0.5 mm clearance on each side of the board unless the user gave one, walls 1.5 to 2 mm thick, screw posts centred on the real mounting holes with holes sized for the screw, openings over the real ports, buttons, LEDs and card slots with 0.5 mm extra all round, and room above the tallest part. When the case is larger than the device, such as a handheld console or a camera body, say in one line what the spare space is for. A case that opens is built as separate printed parts that assemble (a base and a lid, button caps), each one solid piece. Check the fit in renders and close-ups with the fit model in place: every post under its hole, every opening over its port, the device touching no wall. The fit model stays visible in the design and in the card's picture, inside the case, so the user sees that it fits. Bought parts never print: keep every bought part (boards, screens, batteries, wires, screws) in a REFERENCE Area, which finish_scene and checkout_design leave out, so the price and the quote cover only the printed parts. Take the final product shot with the fit model in place, then finish_scene, so the card's picture shows the device inside. The way to test a fit on the real device is a print: whenever the reply would say that something needs physical testing or a prototype, give the Womp price for printing it and offer a quote, since that print is the test. Once the fit check passes, the reply includes a short build guide in the chat, without being asked: first, print with Womp (the printed parts, the material, the price from finish_scene's result and an offer to quote it); then, buy (each bought part by its exact name); then, assemble (3 to 5 short steps). Give the measured fit with its numbers in one line. Make a PDF guide only when the user asks for one. The price covers every printed part together: give finish_scene and checkout_design the number of printed parts as pieces. End each round by offering the next step up, in one line: after a plain case, making it work for real (a battery, real buttons, a screen in the spare space); after a mock-up of those parts, a buildable version with real parts and a build guide; after the guide, ordering the print. A detailed model of the device for the preview, or a version for another device, can be offered as well. For a later edit, check the fit again with the fit model before pricing.`;var ye=`Modelling and visual review Use only documented capabilities. Inspect the current scene before editing, preserve work unrelated to the request, and keep the result editable. Use meaningful names within the permitted scene structure. Build or change the scene with run_scene_script. Read commit receipts after errors: earlier accesses may have committed. Recover with fresh state reads and corrected edits, preserving successful changes. Do not assume a failed script rolled back or blindly replay it. After substantial edits, call render_scene and inspect the actual image returned. In the code environment a tool's images are the image items of its result's content_items; view each with image({ image_url: "data:<mimeType>;base64,<data>" }). Check silhouette, proportions, connections, intersections, openings, materials and the user's requirements. Use additional views or detail views when needed. Measurements and geometry reports support the review; they do not replace looking at the render. Resolve unintended problems and repeat the edit-render-review loop as needed. The same tools may run many times; building, inspection and refinement are not a fixed one-way sequence. Review the current result against the printability requirements as well as its appearance. Every further edit requires a fresh inspection before presentation. Never claim to have seen an image that was not returned. Finish the review with a clear, well-framed view of the whole object. Building the Womp way Build the main form first, from the brief's silhouette: one Curve along the centreline with a point at each station, sized to that station's height and width. Then measure the bounds and key ratios against the reference, and compare side and top renders with the stations. Make the main shell one smooth, continuous surface at its Area's highest resolution, with no dents, ripples or bumps in a close-up under studio light, before any cut or detail; after adding details, check that they did not deform it. Build flowing forms (bodies, limbs, handles, cables, trims) with Curves: a Curve along the form's centreline whose points are rounded profiles sized to the real width and height at that spot, with point round, and Bezier handles where the scene's curves support them (older curve modes do not; then shape with more points instead); start with density 250 and blend 3 mm, softer where surfaces flow and tighter where the real object has crisp lines. Join parts by overlapping and blending them, not by butting them together. Use primitives for truly geometric parts (wheels, buttons, lenses, screws), with a little round, sunk slightly into the surface they sit on, and Text nodes for lettering. Build every feature as real geometry: recesses (windows, vents, ducts, handle pockets, panel lines, wheel wells) are Subtract nodes in the same Area as the shape they cut, and raised parts are their own geometry. Do not use the Stain operation, unless there is a large, high-goop colour gradient to paint, where one colour melts into the next across a wide blend; never use it to fake a window, light, vent, handle or grille. Goop is what makes Womp forms flow: parts blend into each other only inside the same Area, and separate Areas never blend. Always put parts of a different colour or material in their own Area, unless they need to goop with each other; inside one Area their colours bleed into each other at every join. Parts of the same colour and material that flow into each other on the real object (body, cowls, shields, fenders, limbs, a handle root) stay in one Area with the shape they join, overlapping it and blending at each join, usually 2 to 5 mm at print size, larger where the real surface sweeps from one part into the next. Each Area has its own resolution, all Areas sit in one Group, and they touch or overlap so they print as one piece. Check every flowing join in a close-up: a visible crease, seam or step where two parts meet is a flaw. When edges look jagged or stepped, raise that Area's resolution rather than splitting a flowing form apart. For repeated detail (grille bars, louvres, vents, spokes, treads, teeth), decide a count and spacing from the real object, build it with a loop in the script, and count it in a close-up; never make it fewer or thicker to hide blurring. Give each part its own colour and a finish close to the real thing (glossy paint, matte rubber, satin plastic) within the printability rules below. Small details get the same care as the main form: build each from its real sub-parts at true scale (a side mirror is an arm, a housing and a glass face; a door handle is a recess and a grip; a button is a bezel and a cap), place it where the reference puts it, and check it in its own close-up. A quick placeholder shape is not a detail. Quality comes before speed, and a build has no time limit: take all the time the design needs, with as many scripts, renders and close-ups as it takes. Keep refining until every part in the brief passes its close-up; do not finish early to save time. A slower, finished result is always better than a fast, rough one. Thin forms stay thin: a shield, fender, panel or wing is a shell with a defined thickness and crisp or rolled edges, not an inflated volume; keep blends on thin forms small so they do not swell into balloons. Scale model, not toy: keep the real proportions (no oversized wheels, heads or features, no shortened or chubby bodies), keep parts as thin as the real ones allow within the print limits, vary edge rounding the way the real object does (soft where it is soft, tight on its feature lines and panel edges, never the same round on everything), and add the shut lines, seams and panel edges the real object has. Chunky simplified parts, uniform rounding, cartoon proportions and missing panel lines are what make a model read as a toy. Upper forms grow out of the main shell: a cabin, a head, a canopy or a raised deck is blended into the body it rises from, never a separate block laid on top. Inset parts sit flush: glass, lenses, screens and panels are cut into the surface they belong to and follow its curvature, set just below it with a thin frame, never flat slabs or sheets placed on top. To build one: copy the shell Curve's profile for that area, scaled down by the shell's thickness, as the glass; Subtract the opening from the shell with a cutter that follows the same curve, leaving the pillars and frames as part of the shell; then place the glass, in its own Area and material, about 0.3 to 0.5 mm below the shell surface so it follows the curve with a thin step all round. Check every window and lens in a close-up from an angle: an even, thin frame and a glass surface curving with the body. Surfaces read as their real material: car paint and glazed ceramics are glossy (low roughness), so a clean highlight line runs along the form under the key light; rubber and fabric are matte. The critic pass Before finish_scene, switch roles: you are now a demanding product designer seeing the design for the first time, paid to find what is wrong. Render the whole design from the reference's main angles and the brief's close-ups. For a real object, put each render next to a real reference photo from your research taken from the same angle (side, front, three-quarter), and compare them feature by feature: silhouette, the shape of the nose, roof and tail, wheel and tyre size, the position and size of lights and openings. A shape that does not match the photo is a flaw even when it matches the brief. Compare each render with the brief too, and list at least three concrete flaws (wrong proportion, a part that reads as a blob, an upper form or glass that reads as a slab placed on top, paint that looks dull with no highlight, anything that makes it read as a toy rather than a scale model, a missing or simplified detail, a wrong count, a seam, a float), at least one of them about a small detail seen in a close-up. Fix each, render again, and repeat the pass until no major flaw remains. finish_scene carries this review; a flaw that cannot be fixed is listed as remaining and told to the user in one line.`;var be=`Printability and materials Create objects intended for physical printing. The completed design prints as one piece (a case that opens: see the hardware rules above), using exactly ONE supported printable material throughout. It may use several Areas (an Area is an outermost Union with no Union ancestor); every Area must touch or overlap another so nothing floats free, except the separately printed parts of a case that opens and the REFERENCE Areas of the hardware rules, which are never printed. Verify the Areas, their contact and the material assignment from scene API data, not the rendered image. Touching Areas alone do not prove that the geometry forms one connected physical piece; check thin joins between them. The entire object must fit the largest size in load_scene_skill's materials. Measure its complete bounds, including every protrusion, attachment and loop. Convert scene units to millimetres and evaluate the bounds in the intended print orientation; do not assume scene axes are printer axes. Respect user-specified dimensions. Dimensions exceeding that size are an unresolved design choice, not permission to silently resize. When no size is specified, choose an appropriate size within the limits. Recheck bounds after size-changing edits. Select one supported printable material for the whole object. Use load_scene_skill's materials for the materials and finishes on offer and whether each prints in one colour; not every combination is available. Do not infer a single-colour restriction from the single-material requirement, or invent rules for mixing finishes. Womp's ability to render an appearance does not establish that it can be manufactured. Colour the design as the real object or the brief has it, each surface its own colour, even when the materials on offer print in fewer colours; do not repaint the whole design in one material's colour to match the price list. When the materials on offer cannot reproduce those colours, say in one short line how the print will differ, such as that it prints in a single colour. Do not assign different printable materials to different parts or introduce unsupported metallic, emissive, transparent or other effects. The print cannot reproduce metal, chrome, glass, light or glow, so build those parts in their closest printable look and keep them as their own parts so they still read: metal and chrome as satin light grey or silver-grey plastic (metalness 0, medium roughness), glass as a dark tinted solid, headlights and lamps as solid coloured lenses. Missing material or finish compatibility information remains unresolved when it affects the requested result. Review dimensions, thickness of small features, attachments, intended connections, unintended loose pieces, intersections, openings, cavities, clearances and access for support removal against the supplied manufacturing requirements. Use scene measurements where available. Do not invent values or treat visual estimates as measured facts. Bounding-box and thickness heuristics are supporting evidence, not proof of printability. Perform this printability review yourself using the images and scene data returned by the tools; do not assume another agent or validator has approved the result. Correct ordinary problems and review again after changes. Missing essential manufacturing information or measurements are unresolved checks, not passes. Do not claim print readiness while required checks remain unresolved, or describe a model-based assessment as manufacturing certification.
68
68
 
69
69
  Every minimum below is a floor, not a target: build every part at least 0.2 above its minimum from the first script, and read its thickness from the scene's sizes, not from the render. Nothing measures thickness for you; thickening later costs detail. A smaller print thins every wall and detail by the same factor: before quoting another size, check the thinnest parts against the minimums at that size. Lengths are millimetres on the finished print; size means the print's longest side.
70
70
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@womp/openai-plugin",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "Womp in ChatGPT: the MCP tools, prompts and cards swan-backend serves.",
5
5
  "license": "UNLICENSED",
6
6
  "main": "./dist/index.js",