@pinepaper.studio/mcp-server 1.5.0 → 1.5.3

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 (78) hide show
  1. package/README.md +0 -25
  2. package/dist/agent/export-manager.d.ts.map +1 -1
  3. package/dist/agent/export-manager.js +24 -14
  4. package/dist/agent/export-manager.js.map +1 -1
  5. package/dist/agent/types.d.ts +6 -6
  6. package/dist/browser/puppeteer-controller.d.ts +5 -1
  7. package/dist/browser/puppeteer-controller.d.ts.map +1 -1
  8. package/dist/browser/puppeteer-controller.js +11 -3
  9. package/dist/browser/puppeteer-controller.js.map +1 -1
  10. package/dist/cli.js +61 -66
  11. package/dist/cli.js.map +1 -1
  12. package/dist/index.d.ts +4 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +145 -122
  15. package/dist/index.js.map +1 -1
  16. package/dist/metrics/types.d.ts +3 -1
  17. package/dist/metrics/types.d.ts.map +1 -1
  18. package/dist/ontology/design-graph.d.ts +85 -0
  19. package/dist/ontology/design-graph.d.ts.map +1 -0
  20. package/dist/ontology/design-graph.js +944 -0
  21. package/dist/ontology/design-graph.js.map +1 -0
  22. package/dist/ontology/index.d.ts +11 -0
  23. package/dist/ontology/index.d.ts.map +1 -0
  24. package/dist/ontology/index.js +14 -0
  25. package/dist/ontology/index.js.map +1 -0
  26. package/dist/ontology/semantic-vocabulary.d.ts +12 -0
  27. package/dist/ontology/semantic-vocabulary.d.ts.map +1 -0
  28. package/dist/ontology/semantic-vocabulary.js +26 -0
  29. package/dist/ontology/semantic-vocabulary.js.map +1 -0
  30. package/dist/ontology/types.d.ts +255 -0
  31. package/dist/ontology/types.d.ts.map +1 -0
  32. package/dist/ontology/types.js +10 -0
  33. package/dist/ontology/types.js.map +1 -0
  34. package/dist/ontology/validator.d.ts +36 -0
  35. package/dist/ontology/validator.d.ts.map +1 -0
  36. package/dist/ontology/validator.js +374 -0
  37. package/dist/ontology/validator.js.map +1 -0
  38. package/dist/ontology/vocabulary.d.ts +34 -0
  39. package/dist/ontology/vocabulary.d.ts.map +1 -0
  40. package/dist/ontology/vocabulary.js +395 -0
  41. package/dist/ontology/vocabulary.js.map +1 -0
  42. package/dist/prompts/index.d.ts +3 -12
  43. package/dist/prompts/index.d.ts.map +1 -1
  44. package/dist/prompts/index.js +5 -96
  45. package/dist/prompts/index.js.map +1 -1
  46. package/dist/tools/compact-descriptions.d.ts +3 -3
  47. package/dist/tools/compact-descriptions.d.ts.map +1 -1
  48. package/dist/tools/compact-descriptions.js +58 -215
  49. package/dist/tools/compact-descriptions.js.map +1 -1
  50. package/dist/tools/definitions.d.ts +6 -4
  51. package/dist/tools/definitions.d.ts.map +1 -1
  52. package/dist/tools/definitions.js +789 -65
  53. package/dist/tools/definitions.js.map +1 -1
  54. package/dist/tools/handlers.d.ts.map +1 -1
  55. package/dist/tools/handlers.js +616 -86
  56. package/dist/tools/handlers.js.map +1 -1
  57. package/dist/tools/index.d.ts +3 -1
  58. package/dist/tools/index.d.ts.map +1 -1
  59. package/dist/tools/index.js +2 -1
  60. package/dist/tools/index.js.map +1 -1
  61. package/dist/tools/minimal-descriptions.d.ts +9 -0
  62. package/dist/tools/minimal-descriptions.d.ts.map +1 -0
  63. package/dist/tools/minimal-descriptions.js +178 -0
  64. package/dist/tools/minimal-descriptions.js.map +1 -0
  65. package/dist/tools/toolkits.d.ts +51 -0
  66. package/dist/tools/toolkits.d.ts.map +1 -0
  67. package/dist/tools/toolkits.js +366 -0
  68. package/dist/tools/toolkits.js.map +1 -0
  69. package/dist/types/code-generator.d.ts +14 -6
  70. package/dist/types/code-generator.d.ts.map +1 -1
  71. package/dist/types/code-generator.js +654 -196
  72. package/dist/types/code-generator.js.map +1 -1
  73. package/dist/types/schemas.d.ts +429 -147
  74. package/dist/types/schemas.d.ts.map +1 -1
  75. package/dist/types/schemas.js +159 -49
  76. package/dist/types/schemas.js.map +1 -1
  77. package/manifest.json +30 -6
  78. package/package.json +2 -2
@@ -0,0 +1,395 @@
1
+ /**
2
+ * PP: VOCABULARY — Types, Edges, Math Functions, Patterns, Generators
3
+ *
4
+ * Ported from FxTool/js/ontology/Vocabulary.js to typed TypeScript.
5
+ *
6
+ * ## Directionality Convention
7
+ * All binary edges read **source → target**: "source <verb> target".
8
+ * Example: `app.addRelation(moonId, earthId, 'orbits')` → "moon orbits earth".
9
+ *
10
+ * ## Behavior Types
11
+ * - **constraint**: Continuously enforced each frame (orbits, follows, attached_to…)
12
+ * - **trigger**: Fire-and-forget or transient (indicates, grows_from, circumscribes)
13
+ * - **procedural**: Expression/noise-driven, no target required (wiggle, time_expression, driven_by)
14
+ *
15
+ * ## MCP Tool References
16
+ * Types and edges include `mcpTool` / `mcpToolRef` fields linking each vocabulary
17
+ * entry to the MCP tool that creates or manipulates it.
18
+ *
19
+ * @module ontology/vocabulary
20
+ * @version 0.4.0
21
+ */
22
+ // =============================================================================
23
+ // PP: VOCABULARY
24
+ // =============================================================================
25
+ export const PP_VOCABULARY = {
26
+ // --- Node Types (Canvas Primitives) ---
27
+ types: {
28
+ // Abstract hierarchy parents
29
+ 'pp:CanvasElement': { anchor: 'schema:CreativeWork', description: 'Abstract canvas element', abstract: true },
30
+ 'pp:CanvasShape': { anchor: null, description: 'Abstract shape element', abstract: true, parentType: 'pp:CanvasElement' },
31
+ 'pp:CanvasText': { anchor: null, description: 'Abstract text element', abstract: true, parentType: 'pp:CanvasElement' },
32
+ 'pp:CanvasContainer': { anchor: null, description: 'Abstract container element', abstract: true, parentType: 'pp:CanvasElement' },
33
+ 'pp:DiagramElement': { anchor: null, description: 'Abstract diagram element', abstract: true, parentType: 'pp:CanvasElement' },
34
+ 'pp:GeoElement': { anchor: null, description: 'Abstract geographic element', abstract: true, parentType: 'pp:CanvasElement' },
35
+ // Concrete types
36
+ 'pp:Template': { anchor: 'schema:VisualArtwork', description: 'A motion graphics template' },
37
+ 'pp:Text': { anchor: 'schema:CreativeWork', description: 'Text element', parentType: 'pp:CanvasText', mcpTool: 'pinepaper_create_item' },
38
+ 'pp:Circle': { anchor: null, description: 'Circle shape (geometrically: ellipse where rx=ry)', parentType: 'pp:CanvasShape', geometricSupertype: 'pp:Ellipse', mcpTool: 'pinepaper_create_item' },
39
+ 'pp:Rectangle': { anchor: null, description: 'Rectangle shape', parentType: 'pp:CanvasShape', mcpTool: 'pinepaper_create_item' },
40
+ 'pp:Path': { anchor: null, description: 'Vector path — semantically incomplete without open/closed distinction. Defined by its curveType (mathematical function family). Refined to OpenPath or ClosedPath during graph extraction.', parentType: 'pp:CanvasShape', mcpTool: 'pinepaper_create_item' },
41
+ 'pp:OpenPath': { anchor: null, description: 'Open path (trajectory/stroke) — has start and end points, does not enclose area.', parentType: 'pp:Path', mcpTool: 'pinepaper_create_item' },
42
+ 'pp:ClosedPath': { anchor: null, description: 'Closed path (region/boundary) — encloses area, no start/end distinction.', parentType: 'pp:Path', mcpTool: 'pinepaper_create_item' },
43
+ 'pp:Star': { anchor: null, description: 'Star shape (geometrically: concave polygon with alternating radii)', parentType: 'pp:CanvasShape', geometricSupertype: 'pp:Polygon', mcpTool: 'pinepaper_create_item' },
44
+ 'pp:Triangle': { anchor: null, description: 'Triangle shape (geometrically: 3-sided polygon)', parentType: 'pp:CanvasShape', geometricSupertype: 'pp:Polygon', mcpTool: 'pinepaper_create_item' },
45
+ 'pp:Polygon': { anchor: null, description: 'N-sided regular polygon', parentType: 'pp:CanvasShape', mcpTool: 'pinepaper_create_item' },
46
+ 'pp:Ellipse': { anchor: null, description: 'Ellipse shape', parentType: 'pp:CanvasShape', mcpTool: 'pinepaper_create_item' },
47
+ 'pp:Line': { anchor: null, description: 'Line segment — 2-point open path with curveType: linear', parentType: 'pp:CanvasShape', geometricSupertype: 'pp:OpenPath', defaultCurveType: 'linear', mcpTool: 'pinepaper_create_item' },
48
+ 'pp:Arc': { anchor: null, description: 'Arc segment — open path subset with curveType: arc', parentType: 'pp:CanvasShape', geometricSupertype: 'pp:OpenPath', defaultCurveType: 'arc', mcpTool: 'pinepaper_create_item' },
49
+ 'pp:Group': { anchor: null, description: 'Item group/container', parentType: 'pp:CanvasContainer' },
50
+ 'pp:LetterCollage': { anchor: null, description: 'Styled text collage', parentType: 'pp:CanvasText', mcpTool: 'pinepaper_create_item' },
51
+ 'pp:Precomp': { anchor: null, description: 'Nested composition', parentType: 'pp:CanvasContainer' },
52
+ 'pp:Skeleton': { anchor: null, description: 'Rigging skeleton', parentType: 'pp:CanvasContainer', mcpTool: 'pinepaper_create_skeleton' },
53
+ 'pp:Bone': { anchor: null, description: 'Skeleton bone', parentType: 'pp:CanvasElement', mcpTool: 'pinepaper_add_bone' },
54
+ 'pp:DiagramShape': { anchor: null, description: 'Flowchart/UML shape', parentType: 'pp:DiagramElement', mcpTool: 'pinepaper_create_diagram_shape' },
55
+ // Flowchart shape subtypes
56
+ 'pp:FlowchartShape': { anchor: null, description: 'Abstract flowchart shape', abstract: true, parentType: 'pp:DiagramShape' },
57
+ 'pp:ProcessShape': { anchor: null, description: 'Process/task step', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:Task' },
58
+ 'pp:DecisionShape': { anchor: null, description: 'Decision/gateway diamond', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:ExclusiveGateway' },
59
+ 'pp:TerminalShape': { anchor: null, description: 'Start/end terminal', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:Event' },
60
+ 'pp:DataShape': { anchor: null, description: 'Data input/output parallelogram', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:DataObject' },
61
+ 'pp:DocumentShape': { anchor: null, description: 'Document shape', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:DataObject' },
62
+ 'pp:DatabaseShape': { anchor: null, description: 'Database/data store cylinder', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:DataStore' },
63
+ 'pp:PreparationShape': { anchor: null, description: 'Preparation/setup step', parentType: 'pp:FlowchartShape', bpmnEquivalent: 'bpmn:Task' },
64
+ // UML shape subtypes
65
+ 'pp:UMLShape': { anchor: null, description: 'Abstract UML shape', abstract: true, parentType: 'pp:DiagramShape' },
66
+ 'pp:UMLClassShape': { anchor: null, description: 'UML class box', parentType: 'pp:UMLShape' },
67
+ 'pp:UMLUseCaseShape': { anchor: null, description: 'UML use case ellipse', parentType: 'pp:UMLShape' },
68
+ 'pp:UMLActorShape': { anchor: null, description: 'UML actor stick figure', parentType: 'pp:UMLShape' },
69
+ // Network shape subtypes
70
+ 'pp:NetworkShape': { anchor: null, description: 'Abstract network topology shape', abstract: true, parentType: 'pp:DiagramShape' },
71
+ 'pp:CloudShape': { anchor: null, description: 'Cloud/service shape', parentType: 'pp:NetworkShape' },
72
+ 'pp:ServerShape': { anchor: null, description: 'Server/host shape', parentType: 'pp:NetworkShape' },
73
+ // Connector subtypes
74
+ 'pp:Connector': { anchor: null, description: 'Diagram connector', parentType: 'pp:DiagramElement', mcpTool: 'pinepaper_connect' },
75
+ 'pp:SequenceConnector': { anchor: null, description: 'Sequence/control flow connector', parentType: 'pp:Connector', bpmnEquivalent: 'bpmn:SequenceFlow' },
76
+ 'pp:DataConnector': { anchor: null, description: 'Data flow connector', parentType: 'pp:Connector', bpmnEquivalent: 'bpmn:DataAssociation' },
77
+ 'pp:AssociationConnector': { anchor: null, description: 'Association connector', parentType: 'pp:Connector', bpmnEquivalent: 'bpmn:Association' },
78
+ 'pp:DependencyConnector': { anchor: null, description: 'Dependency connector', parentType: 'pp:Connector' },
79
+ 'pp:MapRegion': { anchor: 'schema:AdministrativeArea', description: 'Geographic region', parentType: 'pp:GeoElement', mcpTool: 'pinepaper_load_map' },
80
+ 'pp:Marker': { anchor: 'schema:Place', description: 'Map marker', parentType: 'pp:GeoElement', mcpTool: 'pinepaper_add_marker' },
81
+ 'pp:MaskedItem': { anchor: null, description: 'Item with clipping mask', parentType: 'pp:CanvasElement' },
82
+ 'pp:Image': { anchor: 'schema:ImageObject', description: 'Raster/bitmap image', parentType: 'pp:CanvasElement' },
83
+ 'pp:CompoundPath': { anchor: null, description: 'Multiple sub-paths as single item (SVG imports, boolean ops)', parentType: 'pp:CanvasShape' },
84
+ // Escape hatch — items that don't match any vocabulary type
85
+ 'pp:Unclassified': { anchor: null, description: 'Item type not expressible in current vocabulary.', parentType: 'pp:CanvasElement' },
86
+ },
87
+ // --- Edge Types (Relations + Structural) ---
88
+ edges: {
89
+ // Abstract hierarchy parents
90
+ 'pp:Relation': { category: 'abstract', description: 'Abstract relation', abstract: true },
91
+ 'pp:SpatialRelation': { category: 'abstract', description: 'Position-based relation', abstract: true, parentType: 'pp:Relation' },
92
+ 'pp:TransformRelation': { category: 'abstract', description: 'Orientation/scale-based relation', abstract: true, parentType: 'pp:Relation' },
93
+ 'pp:AnimationRelation': { category: 'abstract', description: 'Time-based animation relation', abstract: true, parentType: 'pp:Relation' },
94
+ 'pp:ProceduralRelation': { category: 'abstract', description: 'Procedural/expression relation', abstract: true, parentType: 'pp:Relation' },
95
+ // Structural
96
+ 'pp:contains': { category: 'structural', description: 'Parent-child containment' },
97
+ 'pp:maskedBy': { category: 'structural', description: 'Clipped by mask shape' },
98
+ // Spatial relations
99
+ 'pp:orbits': { category: 'spatial', behaviorType: 'constraint', mathFunctions: ['parametricCircle', 'sinCos'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
100
+ 'pp:follows': { category: 'spatial', behaviorType: 'constraint', description: 'Smooth pursuit with lag — source asymptotically approaches target.', mathFunctions: ['lerp', 'exponentialPursuit'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
101
+ 'pp:attachedTo': { category: 'spatial', behaviorType: 'constraint', description: 'Rigid parent-child transform — source moves with target instantly via fixed offset.', mathFunctions: ['rigidOffset'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
102
+ 'pp:maintainsDistance': { category: 'spatial', behaviorType: 'constraint', mathFunctions: ['euclideanDistance'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
103
+ 'pp:pointsAt': { category: 'transform', behaviorType: 'constraint', mathFunctions: ['atan2'], parentType: 'pp:TransformRelation', mcpToolRef: 'pinepaper_add_relation' },
104
+ 'pp:mirrors': { category: 'transform', behaviorType: 'constraint', mathFunctions: ['axisReflection'], parentType: 'pp:TransformRelation', mcpToolRef: 'pinepaper_add_relation' },
105
+ 'pp:parallax': { category: 'spatial', behaviorType: 'constraint', mathFunctions: ['depthScaledTranslation'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
106
+ 'pp:boundsTo': { category: 'spatial', behaviorType: 'constraint', mathFunctions: ['rectClamp'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
107
+ // Animation relations
108
+ 'pp:growsFrom': { category: 'animation', behaviorType: 'trigger', mathFunctions: ['scaleInterpolation'], parentType: 'pp:TransformRelation', mcpToolRef: 'pinepaper_add_relation' },
109
+ 'pp:staggeredWith': { category: 'animation', behaviorType: 'trigger', cardinality: 'group', description: 'Stored as pairwise edges with index param to reconstruct group ordering.', mathFunctions: ['delayOffset'], parentType: 'pp:AnimationRelation', mcpToolRef: 'pinepaper_add_relation' },
110
+ 'pp:waveThrough': { category: 'animation', behaviorType: 'constraint', cardinality: 'group', description: 'Stored as pairwise edges with index param for phase offset.', mathFunctions: ['phaseOffsetSinusoid'], parentType: 'pp:AnimationRelation', mcpToolRef: 'pinepaper_add_relation' },
111
+ 'pp:morphsTo': { category: 'animation', behaviorType: 'trigger', mathFunctions: ['pathPointLerp'], parentType: 'pp:AnimationRelation', mcpToolRef: 'pinepaper_add_relation' },
112
+ 'pp:circumscribes': { category: 'animation', behaviorType: 'trigger', mathFunctions: ['boundingGeometry'], parentType: 'pp:TransformRelation', mcpToolRef: 'pinepaper_add_relation' },
113
+ 'pp:indicates': { category: 'animation', behaviorType: 'trigger', description: 'Temporary emphasis effect.', mathFunctions: ['pulseScale'], parentType: 'pp:AnimationRelation', mcpToolRef: 'pinepaper_add_relation' },
114
+ // Procedural relations
115
+ 'pp:drivenBy': { category: 'procedural', behaviorType: 'procedural', mathFunctions: ['linearMap'], parentType: 'pp:ProceduralRelation', mcpToolRef: 'pinepaper_add_relation' },
116
+ 'pp:wiggle': { category: 'procedural', behaviorType: 'procedural', mathFunctions: ['perlinNoise', 'sinOscillation'], parentType: 'pp:ProceduralRelation', mcpToolRef: 'pinepaper_add_relation' },
117
+ 'pp:timeExpression': { category: 'procedural', behaviorType: 'procedural', mathFunctions: ['mathExpression'], parentType: 'pp:ProceduralRelation', mcpToolRef: 'pinepaper_add_relation' },
118
+ // Camera
119
+ 'pp:cameraFollows': { category: 'camera', behaviorType: 'constraint', mathFunctions: ['exponentialPursuit'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
120
+ 'pp:cameraAnimates': { category: 'camera', behaviorType: 'trigger', mathFunctions: ['keyframeLerp'], parentType: 'pp:AnimationRelation', mcpToolRef: 'pinepaper_add_relation' },
121
+ // Rigging
122
+ 'pp:boneAttached': { category: 'rigging', behaviorType: 'constraint', mathFunctions: ['affineTransform', 'deltaRotation'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_attach_item_to_bone' },
123
+ 'pp:ikTarget': { category: 'rigging', behaviorType: 'constraint', mathFunctions: ['fabrikSolver'], parentType: 'pp:SpatialRelation', mcpToolRef: 'pinepaper_add_relation' },
124
+ // Blending
125
+ 'pp:blendReactsTo': { category: 'blending', behaviorType: 'procedural', mathFunctions: ['proximityThreshold'], parentType: 'pp:ProceduralRelation', mcpToolRef: 'pinepaper_add_relation' },
126
+ 'pp:blendTransition': { category: 'blending', behaviorType: 'procedural', mathFunctions: ['timedCycling'], parentType: 'pp:ProceduralRelation', mcpToolRef: 'pinepaper_add_relation' },
127
+ // Diagram flow
128
+ 'pp:DiagramFlowRelation': { category: 'abstract', description: 'Abstract diagram flow relation', abstract: true, parentType: 'pp:Relation' },
129
+ 'pp:sequenceFlow': { category: 'diagram', description: 'Sequence/control flow between shapes', parentType: 'pp:DiagramFlowRelation', bpmnEquivalent: 'bpmn:SequenceFlow' },
130
+ 'pp:dataFlow': { category: 'diagram', description: 'Data flow between shapes', parentType: 'pp:DiagramFlowRelation', bpmnEquivalent: 'bpmn:DataAssociation' },
131
+ 'pp:association': { category: 'diagram', description: 'Association between diagram elements', parentType: 'pp:DiagramFlowRelation', bpmnEquivalent: 'bpmn:Association' },
132
+ 'pp:dependency': { category: 'diagram', description: 'Dependency between diagram elements', parentType: 'pp:DiagramFlowRelation' },
133
+ 'pp:connectsTo': { category: 'diagram', description: 'Generic diagram connection', parentType: 'pp:DiagramFlowRelation' },
134
+ // Escape hatch
135
+ 'pp:unknownRelation': { category: 'unknown', behaviorType: null, description: 'Relation type not expressible in current vocabulary.', parentType: 'pp:Relation' },
136
+ },
137
+ // --- Mathematical Functions Catalogue ---
138
+ mathFunctions: {
139
+ // Interpolation
140
+ 'lerp': { category: 'interpolation', formula: 'a + (b-a)*t' },
141
+ 'cubicBezier': { category: 'interpolation', formula: '(1-t)³P₀ + 3(1-t)²tP₁ + 3(1-t)t²P₂ + t³P₃' },
142
+ 'catmullRom': { category: 'interpolation', formula: 'Catmull-Rom spline through control points' },
143
+ // Easing
144
+ 'easeIn': { category: 'easing', formula: 't²' },
145
+ 'easeOut': { category: 'easing', formula: '1-(1-t)²' },
146
+ 'easeInOut': { category: 'easing', formula: 't<0.5 ? 2t² : 1-(-2t+2)²/2' },
147
+ 'easeInCubic': { category: 'easing', formula: 't³' },
148
+ 'easeOutCubic': { category: 'easing', formula: '1-(1-t)³' },
149
+ 'bounce': { category: 'easing', formula: 'Piecewise parabolas' },
150
+ 'elastic': { category: 'easing', formula: '2^(-10t)·sin((10t-0.75)·c₄)+1' },
151
+ 'customCubicBezier': { category: 'easing', formula: 'cubic-bezier(x1,y1,x2,y2)' },
152
+ // Trigonometric
153
+ 'sinOscillation': { category: 'trigonometric', formula: 'center + amplitude·sin(ω·t + φ)' },
154
+ 'sinCos': { category: 'trigonometric', formula: 'sin(θ), cos(θ)' },
155
+ 'phaseOffsetSinusoid': { category: 'trigonometric', formula: 'A·sin(ω·t - i·φ)' },
156
+ // Parametric
157
+ 'parametricCircle': { category: 'parametric', formula: 'x=r·cos(θ), y=r·sin(θ)' },
158
+ 'parametricEllipse': { category: 'parametric', formula: 'x=rx·cos(θ), y=ry·sin(θ)' },
159
+ 'spiral': { category: 'parametric', formula: 'r(θ)=a+bθ' },
160
+ // Spatial
161
+ 'euclideanDistance': { category: 'spatial', formula: '√((x₂-x₁)²+(y₂-y₁)²)' },
162
+ 'atan2': { category: 'spatial', formula: 'atan2(y₂-y₁, x₂-x₁)' },
163
+ 'axisReflection': { category: 'spatial', formula: 'v-2(v·n̂)n̂' },
164
+ 'rigidOffset': { category: 'spatial', formula: 'target.pos + offset' },
165
+ 'rectClamp': { category: 'spatial', formula: 'clamp(x, min, max)' },
166
+ 'depthScaledTranslation': { category: 'spatial', formula: 'base + scroll·depth' },
167
+ // Transform
168
+ 'affineTransform': { category: 'transform', formula: "x'=ax+cy+e, y'=bx+dy+f" },
169
+ 'deltaRotation': { category: 'transform', formula: 'item.rotate(shortestPathDelta)' },
170
+ // Physics
171
+ 'exponentialPursuit': { category: 'physics', formula: 'pos += (target-pos)·lag' },
172
+ 'dampedHarmonicOscillator': { category: 'physics', formula: 'e^(-ζω₀t)(Acos(ωd·t)+Bsin(ωd·t))' },
173
+ 'gravity': { category: 'physics', formula: 'y += vy·dt + ½g·dt²' },
174
+ // Noise
175
+ 'perlinNoise': { category: 'noise', formula: 'Gradient noise [-1,1]' },
176
+ 'fbm': { category: 'noise', formula: 'Σ persistence^i · noise(x·lacunarity^i)' },
177
+ // Color
178
+ 'colorLerp': { category: 'color', formula: 'lerp per RGB/HSL channel' },
179
+ 'gradientInterpolation': { category: 'color', formula: 'Stop-wise gradient lerp' },
180
+ // Solver
181
+ 'fabrikSolver': { category: 'solver', formula: 'Forward And Backward Reaching IK' },
182
+ // Mapping / Timing / Animation / Geometry / Path / Expression
183
+ 'linearMap': { category: 'mapping', formula: 'source = target·multiplier + offset' },
184
+ 'mathExpression': { category: 'expression', formula: 'User-defined f(t,v)' },
185
+ 'keyframeLerp': { category: 'interpolation', formula: 'Multi-keyframe piecewise lerp' },
186
+ 'scaleInterpolation': { category: 'interpolation', formula: 'Scale 0→1 with easing' },
187
+ 'delayOffset': { category: 'timing', formula: 'delay = index · stagger' },
188
+ 'pulseScale': { category: 'animation', formula: 'Temporary scale pulse' },
189
+ 'boundingGeometry': { category: 'geometry', formula: 'Bounding box/circle calculation' },
190
+ 'pathPointLerp': { category: 'interpolation', formula: 'Per-point path interpolation' },
191
+ 'proximityThreshold': { category: 'spatial', formula: 'dist < radius → trigger' },
192
+ 'timedCycling': { category: 'timing', formula: 'mode[floor(t/cycleDur) % n]' },
193
+ 'trimPath': { category: 'path', formula: 'dashArray/dashOffset trimming' },
194
+ 'staggerDelay': { category: 'timing', formula: 'index × delay' },
195
+ },
196
+ // --- Design Patterns (structural archetypes) ---
197
+ patterns: {
198
+ 'orbitalComposition': { description: 'Items orbiting a central element', requiredEdges: ['pp:orbits'] },
199
+ 'staggeredReveal': { description: 'Items appearing in sequence', requiredEdges: ['pp:staggeredWith'] },
200
+ 'parallaxDepth': { description: 'Layered depth illusion via differential motion', requiredEdges: ['pp:parallax'] },
201
+ 'followChain': { description: 'Items following each other in chain', requiredEdges: ['pp:follows'] },
202
+ 'waveMotion': { description: 'Wave propagating through items', requiredEdges: ['pp:waveThrough'] },
203
+ 'maskReveal': { description: 'Content revealed through animated mask', nodeTypes: ['pp:MaskedItem'] },
204
+ 'skeletalAnimation': { description: 'Items rigged to bone hierarchy', nodeTypes: ['pp:Skeleton', 'pp:Bone'] },
205
+ 'keyframeAnimation': { description: 'Items animated via keyframe timeline', mathFunctions: ['keyframeLerp'] },
206
+ 'proceduralBackground': { description: 'Algorithmically generated background' },
207
+ 'trimPathDraw': { description: 'Stroke draw-on effect via trim paths', mathFunctions: ['trimPath'] },
208
+ 'diagramFlow': { description: 'Connected flowchart/diagram shapes', nodeTypes: ['pp:DiagramShape', 'pp:Connector'] },
209
+ 'diagramFlowchart': { description: 'Linear/branching flowchart', nodeTypes: ['pp:FlowchartShape', 'pp:SequenceConnector'], requiredEdges: ['pp:sequenceFlow'] },
210
+ 'diagramUML': { description: 'UML class or use-case diagram', nodeTypes: ['pp:UMLShape'] },
211
+ 'diagramNetwork': { description: 'Network topology diagram', nodeTypes: ['pp:NetworkShape'] },
212
+ 'diagramDecisionTree': { description: 'Decision tree with branching paths', nodeTypes: ['pp:DecisionShape'] },
213
+ 'mapVisualization': { description: 'Geographic data visualization', nodeTypes: ['pp:MapRegion'] },
214
+ 'morphTransition': { description: 'Shape morphing between states', requiredEdges: ['pp:morphsTo'] },
215
+ 'collageText': { description: 'Stylized per-letter text', nodeTypes: ['pp:LetterCollage'] },
216
+ 'cameraAnimation': { description: 'Animated viewport zoom/pan', requiredEdges: ['pp:cameraFollows', 'pp:cameraAnimates'] },
217
+ 'proceduralNoise': { description: 'Noise-driven procedural motion', requiredEdges: ['pp:wiggle'] },
218
+ 'expressionDriven': { description: 'Math expression controlling properties', requiredEdges: ['pp:timeExpression'] },
219
+ },
220
+ // --- Generator Types ---
221
+ generators: {
222
+ // Abstract hierarchy parents
223
+ 'pp:ProceduralGenerator': { category: 'abstract', description: 'Abstract generator', abstract: true, mathFunctions: [] },
224
+ 'pp:ParticleGenerator': { category: 'abstract', description: 'Particle-based generator', abstract: true, parentType: 'pp:ProceduralGenerator', mathFunctions: [] },
225
+ 'pp:FieldGenerator': { category: 'abstract', description: 'Field-based generator', abstract: true, parentType: 'pp:ProceduralGenerator', mathFunctions: [] },
226
+ 'pp:PatternGenerator': { category: 'abstract', description: 'Pattern-based generator', abstract: true, parentType: 'pp:ProceduralGenerator', mathFunctions: [] },
227
+ 'pp:SceneGenerator': { category: 'abstract', description: 'Scene-based generator', abstract: true, parentType: 'pp:ProceduralGenerator', mathFunctions: [] },
228
+ // Concrete generators
229
+ 'drawSunburst': { category: 'patterns', mathFunctions: ['sinCos', 'parametricCircle'], parentType: 'pp:PatternGenerator' },
230
+ 'drawGrid': { category: 'patterns', mathFunctions: ['lerp'], parentType: 'pp:PatternGenerator' },
231
+ 'drawWaves': { category: 'patterns', mathFunctions: ['sinOscillation'], parentType: 'pp:PatternGenerator' },
232
+ 'drawPattern': { category: 'geometric', mathFunctions: ['parametricCircle', 'sinCos'], parentType: 'pp:PatternGenerator' },
233
+ 'drawSunsetScene': { category: 'scenes', mathFunctions: ['lerp', 'colorLerp'], parentType: 'pp:SceneGenerator' },
234
+ 'drawStackedCircles': { category: 'distributions', mathFunctions: ['parametricCircle'], parentType: 'pp:ParticleGenerator' },
235
+ 'drawCircuit': { category: 'tech', mathFunctions: ['lerp'], parentType: 'pp:PatternGenerator' },
236
+ 'drawBokeh': { category: 'effects', mathFunctions: ['parametricCircle'], parentType: 'pp:ParticleGenerator' },
237
+ 'drawGradientMesh': { category: 'organic', mathFunctions: ['perlinNoise'], parentType: 'pp:FieldGenerator' },
238
+ 'drawGeometricAbstract': { category: 'geometric', mathFunctions: ['lerp'], parentType: 'pp:SceneGenerator' },
239
+ 'drawWindField': { category: 'particles', mathFunctions: ['perlinNoise', 'fbm'], parentType: 'pp:FieldGenerator' },
240
+ 'drawFluidFlow': { category: 'organic', mathFunctions: ['perlinNoise', 'fbm'], parentType: 'pp:FieldGenerator' },
241
+ 'drawOrganicFlow': { category: 'organic', mathFunctions: ['sinOscillation', 'perlinNoise'], parentType: 'pp:FieldGenerator' },
242
+ 'drawNoiseTexture': { category: 'textures', mathFunctions: ['perlinNoise', 'fbm'], parentType: 'pp:PatternGenerator' },
243
+ 'drawGlobeWireframe': { category: 'tech', mathFunctions: ['sinCos', 'parametricCircle'], parentType: 'pp:SceneGenerator' },
244
+ },
245
+ // --- Formal Properties ---
246
+ properties: {
247
+ // Spatial
248
+ 'pp:x': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasElement'], animatable: true },
249
+ 'pp:y': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasElement'], animatable: true },
250
+ 'pp:width': { valueType: 'number', unit: 'px', appliesTo: ['pp:Rectangle', 'pp:CanvasElement'] },
251
+ 'pp:height': { valueType: 'number', unit: 'px', appliesTo: ['pp:Rectangle', 'pp:CanvasElement'] },
252
+ 'pp:radius': { valueType: 'number', unit: 'px', appliesTo: ['pp:Circle', 'pp:Star', 'pp:Arc'] },
253
+ 'pp:rotation': { valueType: 'number', unit: 'deg', appliesTo: ['pp:CanvasElement'], animatable: true },
254
+ 'pp:scale': { valueType: 'number', unit: null, appliesTo: ['pp:CanvasElement'], animatable: true },
255
+ 'pp:scaleX': { valueType: 'number', unit: null, appliesTo: ['pp:CanvasElement'], animatable: true },
256
+ 'pp:scaleY': { valueType: 'number', unit: null, appliesTo: ['pp:CanvasElement'], animatable: true },
257
+ 'pp:opacity': { valueType: 'number', unit: null, appliesTo: ['pp:CanvasElement'], animatable: true, range: [0, 1] },
258
+ // Color
259
+ 'pp:fillColor': { valueType: 'color', unit: null, appliesTo: ['pp:CanvasShape', 'pp:CanvasText'], animatable: true },
260
+ 'pp:strokeColor': { valueType: 'color', unit: null, appliesTo: ['pp:CanvasShape'], animatable: true },
261
+ 'pp:shadowColor': { valueType: 'color', unit: null, appliesTo: ['pp:CanvasElement'] },
262
+ // Stroke
263
+ 'pp:strokeWidth': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasShape'], animatable: true },
264
+ 'pp:strokeCap': { valueType: 'enum', values: ['butt', 'round', 'square'], appliesTo: ['pp:CanvasShape'] },
265
+ 'pp:strokeJoin': { valueType: 'enum', values: ['miter', 'round', 'bevel'], appliesTo: ['pp:CanvasShape'] },
266
+ 'pp:dashArray': { valueType: 'array', unit: 'px', appliesTo: ['pp:CanvasShape'] },
267
+ // Shadow
268
+ 'pp:shadowBlur': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasElement'], animatable: true },
269
+ 'pp:shadowOffsetX': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasElement'], animatable: true },
270
+ 'pp:shadowOffsetY': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasElement'], animatable: true },
271
+ // Typography
272
+ 'pp:fontSize': { valueType: 'number', unit: 'px', appliesTo: ['pp:CanvasText'], animatable: true },
273
+ 'pp:fontFamily': { valueType: 'string', unit: null, appliesTo: ['pp:CanvasText'] },
274
+ 'pp:fontWeight': { valueType: 'string', unit: null, appliesTo: ['pp:CanvasText'] },
275
+ 'pp:textAlign': { valueType: 'enum', values: ['left', 'center', 'right'], appliesTo: ['pp:CanvasText'] },
276
+ 'pp:content': { valueType: 'string', unit: null, appliesTo: ['pp:CanvasText'] },
277
+ // Compositing
278
+ 'pp:blendMode': { valueType: 'enum', values: ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion'], appliesTo: ['pp:CanvasElement'] },
279
+ // Diagram
280
+ 'pp:routing': { valueType: 'enum', values: ['direct', 'orthogonal', 'curved'], appliesTo: ['pp:Connector'] },
281
+ 'pp:lineStyle': { valueType: 'enum', values: ['solid', 'dashed', 'dotted'], appliesTo: ['pp:Connector'] },
282
+ 'pp:headStyle': { valueType: 'enum', values: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'], appliesTo: ['pp:Connector'] },
283
+ 'pp:tailStyle': { valueType: 'enum', values: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'], appliesTo: ['pp:Connector'] },
284
+ 'pp:connectorLabel': { valueType: 'string', unit: null, appliesTo: ['pp:Connector'] },
285
+ 'pp:shapeCategory': { valueType: 'enum', values: ['flowchart', 'uml', 'network', 'basic'], appliesTo: ['pp:DiagramShape'] },
286
+ // Path Geometry
287
+ 'pp:closed': { valueType: 'boolean', unit: null, appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:CompoundPath'], description: 'Whether path forms a closed region.' },
288
+ 'pp:curveType': { valueType: 'enum', values: ['linear', 'cubicBezier', 'quadraticBezier', 'catmullRom', 'arc', 'mixed'], appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:Line', 'pp:Arc'], description: 'Mathematical function family governing segment interpolation.' },
289
+ 'pp:segmentCount': { valueType: 'number', unit: null, appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:CompoundPath'], description: 'Number of anchor points defining the path.' },
290
+ // Trim Path
291
+ 'pp:trimStart': { valueType: 'number', unit: null, appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:CanvasShape'], animatable: true, range: [0, 1] },
292
+ 'pp:trimEnd': { valueType: 'number', unit: null, appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:CanvasShape'], animatable: true, range: [0, 1] },
293
+ 'pp:trimOffset': { valueType: 'number', unit: null, appliesTo: ['pp:Path', 'pp:OpenPath', 'pp:ClosedPath', 'pp:CanvasShape'], animatable: true, range: [0, 1] },
294
+ },
295
+ // --- Value Types ---
296
+ valueTypes: {
297
+ 'pp:Point2D': { anchor: null, description: '2D canvas coordinate {x, y}', fields: ['x', 'y'] },
298
+ 'pp:BoundingBox': { anchor: null, description: '2D bounding rectangle', fields: ['x', 'y', 'width', 'height'] },
299
+ 'pp:Canvas': { anchor: 'schema:Place', description: 'Canvas coordinate space', fields: ['width', 'height', 'backgroundColor'] },
300
+ 'pp:Keyframe': { anchor: null, description: 'Property snapshot at time', fields: ['time', 'properties', 'easing'] },
301
+ 'pp:KeyframeAnimation': { anchor: null, description: 'Ordered keyframes with duration', fields: ['keyframes', 'duration', 'loop'] },
302
+ 'pp:LoopAnimation': { anchor: null, description: 'Continuous frame-based animation preset', fields: ['animationType', 'animationSpeed', 'animationDirection'] },
303
+ 'pp:EasingFunction': { anchor: null, description: 'Interpolation timing curve', fields: ['type', 'params'] },
304
+ 'pp:Timeline': { anchor: null, description: 'Global playback controller', fields: ['duration', 'loop', 'currentTime'] },
305
+ 'pp:Viewport': { anchor: null, description: 'Camera/viewport state', fields: ['zoom', 'center', 'rotation'] },
306
+ 'pp:MaskAnimation': { anchor: null, description: 'Animated mask reveal effect', fields: ['maskType', 'keyframes', 'duration', 'easing'] },
307
+ },
308
+ };
309
+ // =============================================================================
310
+ // TYPE / EDGE MAPPING TABLES
311
+ // =============================================================================
312
+ /** Maps PinePaper item type strings to pp: vocabulary type keys. */
313
+ export const ITEM_TYPE_MAP = {
314
+ 'text': 'pp:Text',
315
+ 'circle': 'pp:Circle',
316
+ 'rectangle': 'pp:Rectangle',
317
+ 'path': 'pp:Path',
318
+ 'open-path': 'pp:OpenPath',
319
+ 'closed-path': 'pp:ClosedPath',
320
+ 'star': 'pp:Star',
321
+ 'triangle': 'pp:Triangle',
322
+ 'polygon': 'pp:Polygon',
323
+ 'ellipse': 'pp:Ellipse',
324
+ 'line': 'pp:Line',
325
+ 'arc': 'pp:Arc',
326
+ 'group': 'pp:Group',
327
+ 'image': 'pp:Image',
328
+ 'raster': 'pp:Image',
329
+ 'compound-path': 'pp:CompoundPath',
330
+ 'compoundpath': 'pp:CompoundPath',
331
+ 'diagram-shape': 'pp:DiagramShape',
332
+ 'connector': 'pp:Connector',
333
+ 'unclassified': 'pp:Unclassified',
334
+ };
335
+ /** Maps ShapeLibrary shapeType strings to specific pp: diagram shape types. */
336
+ export const DIAGRAM_SHAPE_MAP = {
337
+ 'process': 'pp:ProcessShape',
338
+ 'decision': 'pp:DecisionShape',
339
+ 'terminal': 'pp:TerminalShape',
340
+ 'data': 'pp:DataShape',
341
+ 'document': 'pp:DocumentShape',
342
+ 'database': 'pp:DatabaseShape',
343
+ 'preparation': 'pp:PreparationShape',
344
+ 'uml-class': 'pp:UMLClassShape',
345
+ 'uml-usecase': 'pp:UMLUseCaseShape',
346
+ 'uml-actor': 'pp:UMLActorShape',
347
+ 'cloud': 'pp:CloudShape',
348
+ 'server': 'pp:ServerShape',
349
+ };
350
+ /** Maps connector lineStyle strings to specific pp: connector types. */
351
+ export const CONNECTOR_STYLE_MAP = {
352
+ 'solid': 'pp:SequenceConnector',
353
+ 'dashed': 'pp:DataConnector',
354
+ 'dotted': 'pp:AssociationConnector',
355
+ };
356
+ /** Maps PinePaper relation type strings to pp: vocabulary edge keys. */
357
+ export const RELATION_TYPE_MAP = {
358
+ 'orbits': 'pp:orbits',
359
+ 'follows': 'pp:follows',
360
+ 'attached_to': 'pp:attachedTo',
361
+ 'maintains_distance': 'pp:maintainsDistance',
362
+ 'points_at': 'pp:pointsAt',
363
+ 'mirrors': 'pp:mirrors',
364
+ 'parallax': 'pp:parallax',
365
+ 'bounds_to': 'pp:boundsTo',
366
+ 'grows_from': 'pp:growsFrom',
367
+ 'staggered_with': 'pp:staggeredWith',
368
+ 'wave_through': 'pp:waveThrough',
369
+ 'morphs_to': 'pp:morphsTo',
370
+ 'circumscribes': 'pp:circumscribes',
371
+ 'indicates': 'pp:indicates',
372
+ 'driven_by': 'pp:drivenBy',
373
+ 'wiggle': 'pp:wiggle',
374
+ 'time_expression': 'pp:timeExpression',
375
+ 'camera_follows': 'pp:cameraFollows',
376
+ 'camera_animates': 'pp:cameraAnimates',
377
+ 'bone_attached': 'pp:boneAttached',
378
+ 'ik_target': 'pp:ikTarget',
379
+ 'blend_reacts_to': 'pp:blendReactsTo',
380
+ 'blend_transition': 'pp:blendTransition',
381
+ 'unknown': 'pp:unknownRelation',
382
+ };
383
+ /** Known easing names that map to math function keys. */
384
+ export const EASING_TO_MATH = {
385
+ 'linear': null,
386
+ 'easeIn': 'easeIn',
387
+ 'easeOut': 'easeOut',
388
+ 'easeInOut': 'easeInOut',
389
+ 'easeInCubic': 'easeInCubic',
390
+ 'easeOutCubic': 'easeOutCubic',
391
+ 'bounce': 'bounce',
392
+ 'elastic': 'elastic',
393
+ 'customCubicBezier': 'customCubicBezier',
394
+ };
395
+ //# sourceMappingURL=vocabulary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/ontology/vocabulary.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,9 @@
1
1
  /**
2
2
  * MCP Prompts — Template Recipes
3
3
  *
4
- * Each prompt replicates a specific PinePaper template pattern.
5
- * The assistant message is kept ultra-concise to prevent:
6
- * - Token waste from verbose planning
7
- * - Pipeline restarts from step-by-step tool lists
8
- * - Duplicate items from re-execution
9
- *
10
- * Rules:
11
- * - User message: frames the request with the user's description
12
- * - Assistant message: short commitment to single-pass execution
13
- * - Visual templates: use SINGLE_PASS_RULES (batch_execute) with layer labels (CANVAS/ITEMS/ANIMATE/EFFECTS/PLAY)
14
- * - Diagram templates: use DIAGRAM_RULES (create_diagram_shape + connect + auto_layout)
15
- * - NEVER restart the pipeline
4
+ * Each prompt frames a user request as a single user message.
5
+ * No assistant pre-fill — let the model respond naturally.
6
+ * Workflow rules are handled by start_job guidance and tool descriptions.
16
7
  */
17
8
  export interface PromptArgument {
18
9
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AA+FD,eAAO,MAAM,OAAO,EAAE,cAAc,EAMnC,CAAC;AA6JF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAUrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AA2ED,eAAO,MAAM,OAAO,EAAE,cAAc,EAMnC,CAAC;AAuFF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAUrD"}