@specverse/engines 5.1.0 → 5.2.0

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 (64) hide show
  1. package/assets/prompts/core/standard/default/analyse.prompt.yaml +5 -5
  2. package/assets/prompts/core/standard/default/app-demo.prompt.yaml +21 -1
  3. package/assets/prompts/core/standard/default/behavior.prompt.yaml +150 -0
  4. package/assets/prompts/core/standard/default/create.prompt.yaml +3 -3
  5. package/assets/prompts/core/standard/default/materialise.prompt.yaml +804 -774
  6. package/assets/prompts/core/standard/default/realize.prompt.yaml +581 -544
  7. package/assets/prompts/core/standard/v9/analyse.prompt.yaml +5 -5
  8. package/assets/prompts/core/standard/v9/app-demo.prompt.yaml +233 -0
  9. package/assets/prompts/core/standard/v9/behavior.prompt.yaml +33 -9
  10. package/assets/prompts/core/standard/v9/create.prompt.yaml +3 -3
  11. package/assets/prompts/core/standard/v9/materialise.prompt.yaml +804 -774
  12. package/assets/prompts/core/standard/v9/realize.prompt.yaml +581 -544
  13. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +184 -0
  14. package/dist/libs/instance-factories/tools/templates/mcp/mcp-server-generator.js +289 -15
  15. package/libs/instance-factories/cli/templates/commander/command-generator.ts +184 -0
  16. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +322 -16
  17. package/package.json +1 -1
  18. package/assets/prompts/core/CHANGELOG.md +0 -158
  19. package/assets/prompts/core/MIGRATION-v6-to-v7.md +0 -379
  20. package/assets/prompts/core/base-terminal-prompt.md +0 -201
  21. package/assets/prompts/core/examples/example-usage.ts +0 -140
  22. package/assets/prompts/core/schemas/prompt.schema.json +0 -309
  23. package/assets/prompts/core/schemas/prompt.schema.yaml +0 -229
  24. package/assets/prompts/core/standard/archive/v1/analyse.prompt.yaml +0 -259
  25. package/assets/prompts/core/standard/archive/v1/create.prompt.yaml +0 -302
  26. package/assets/prompts/core/standard/archive/v1/materialise.prompt.yaml +0 -328
  27. package/assets/prompts/core/standard/archive/v1/realize.prompt.yaml +0 -606
  28. package/assets/prompts/core/standard/archive/v2/README.md +0 -110
  29. package/assets/prompts/core/standard/archive/v2/analyse.prompt.yaml +0 -151
  30. package/assets/prompts/core/standard/archive/v2/create.prompt.yaml +0 -151
  31. package/assets/prompts/core/standard/archive/v2/materialise.prompt.yaml +0 -132
  32. package/assets/prompts/core/standard/archive/v2/realize.prompt.yaml +0 -147
  33. package/assets/prompts/core/standard/archive/v3/README.md +0 -279
  34. package/assets/prompts/core/standard/archive/v3/analyse.prompt.yaml +0 -309
  35. package/assets/prompts/core/standard/archive/v3/create.prompt.yaml +0 -351
  36. package/assets/prompts/core/standard/archive/v3/materialise.prompt.yaml +0 -247
  37. package/assets/prompts/core/standard/archive/v3/realize.prompt.yaml +0 -344
  38. package/assets/prompts/core/standard/archive/v4/README.md +0 -79
  39. package/assets/prompts/core/standard/archive/v4/analyse.prompt.yaml +0 -204
  40. package/assets/prompts/core/standard/archive/v4/create.prompt.yaml +0 -185
  41. package/assets/prompts/core/standard/archive/v5/README.md +0 -224
  42. package/assets/prompts/core/standard/archive/v5/analyse.prompt.yaml +0 -209
  43. package/assets/prompts/core/standard/archive/v5/create.prompt.yaml +0 -225
  44. package/assets/prompts/core/standard/archive/v5/materialise.prompt.yaml +0 -242
  45. package/assets/prompts/core/standard/archive/v5/realize.prompt.yaml +0 -336
  46. package/assets/prompts/core/standard/archive/v6/README.md +0 -187
  47. package/assets/prompts/core/standard/archive/v6/analyse.prompt.yaml +0 -219
  48. package/assets/prompts/core/standard/archive/v6/create.prompt.yaml +0 -180
  49. package/assets/prompts/core/standard/archive/v6/materialise.prompt.yaml +0 -203
  50. package/assets/prompts/core/standard/archive/v6/realize.prompt.yaml +0 -215
  51. package/assets/prompts/core/standard/archive/v7/analyse.prompt.nick.yaml +0 -144
  52. package/assets/prompts/core/standard/archive/v7/analyse.prompt.old.yaml +0 -146
  53. package/assets/prompts/core/standard/archive/v7/analyse.prompt.yaml +0 -129
  54. package/assets/prompts/core/standard/archive/v7/create.prompt.yaml +0 -146
  55. package/assets/prompts/core/standard/archive/v7/materialise.prompt.yaml +0 -297
  56. package/assets/prompts/core/standard/archive/v7/realize.prompt.yaml +0 -294
  57. package/assets/prompts/core/standard/archive/v8/README.md +0 -400
  58. package/assets/prompts/core/standard/archive/v8/analyse.prompt.yaml +0 -185
  59. package/assets/prompts/core/standard/archive/v8/create.prompt.yaml +0 -203
  60. package/assets/prompts/core/standard/archive/v8/materialise.prompt.yaml +0 -297
  61. package/assets/prompts/core/standard/archive/v8/realize.prompt.yaml +0 -294
  62. package/assets/prompts/templates/api-orchestrator-template.yaml +0 -188
  63. package/assets/prompts/templates/claude-integration-template.md +0 -121
  64. package/assets/prompts/templates/terminal-prompt-template.md +0 -97
@@ -1,201 +0,0 @@
1
- # SpecVerse Terminal Quick-Start Guide
2
-
3
- **For**: LLM Terminal Users (ChatGPT, Claude, Cursor, etc.)
4
- **Purpose**: Use SpecVerse standard prompts for specification generation and implementation
5
- **Version**: 7.0.0
6
-
7
- This guide shows how to use the **standard SpecVerse prompts** for terminal/chat-based AI interactions.
8
-
9
- ## Available Standard Prompts (v7)
10
-
11
- SpecVerse provides four standard prompts with enhanced capabilities:
12
-
13
- 1. **`create`** - Generate SpecVerse specifications from natural language requirements
14
- 2. **`analyse`** - Extract specifications from existing codebases (reverse engineering)
15
- 3. **`materialise`** - Generate complete implementations from specifications
16
- 4. **`realize`** - Generate deployment configurations (environment-adaptive)
17
-
18
- Located in: `prompts/core/standard/v7/`
19
-
20
- ## Quick Start: Using the Create Prompt
21
-
22
- The **create** prompt is your starting point for new projects:
23
-
24
- ### Step 1: View the Full Prompt
25
-
26
- ```bash
27
- cat prompts/core/standard/v7/create.prompt.yaml
28
- ```
29
-
30
- ### Step 2: Terminal-Ready Version
31
-
32
- Copy this complete prompt into your LLM:
33
-
34
- ```
35
- You are a SpecVerse v3.2.0 specification creator that generates complete, well-structured specifications from natural language requirements.
36
-
37
- IMPORTANT: First, read these reference files if available:
38
- - node_modules/@specverse/lang/schema/SPECVERSE-SCHEMA-AI.yaml (AI guidance and examples)
39
- - node_modules/@specverse/lang/schema/MINIMAL-SYNTAX-REFERENCE.specly (complete syntax example)
40
-
41
- Your task is to:
42
- 1. Analyze natural language requirements
43
- 2. Extract core business entities and their relationships
44
- 3. Generate complete SpecVerse specifications with:
45
- - Models with attributes and behaviors
46
- - Controllers with CURED operations
47
- - Services with business logic
48
- - Views for user interfaces
49
- - Events for system communication
50
- - Deployments for infrastructure
51
- - Manifests for implementation details
52
-
53
- Use SpecVerse v3.2.0 syntax:
54
- - Attributes: name: Type modifiers
55
- - Types: String, Integer, UUID, Email, DateTime, Boolean, Money, Text
56
- - Modifiers: required, optional, unique, auto, searchable, indexed, default=value
57
- - Relations: hasMany, belongsTo, references
58
-
59
- Generate a SpecVerse specification from these requirements:
60
-
61
- Requirements: [YOUR REQUIREMENTS HERE]
62
- Project Type: [web-app/api/full-stack]
63
- Scale: [personal/startup/business/enterprise]
64
- Primary Technology: [nextjs/nestjs/express/auto]
65
-
66
- Please generate:
67
- 1. Complete component specification with all models and relationships
68
- 2. Implementation manifest with technology choices
69
- 3. Deployment specification for the target environment
70
- ```
71
-
72
- ## Workflow Example: From Idea to Implementation
73
-
74
- ### 1. Create Specification
75
- ```
76
- Requirements: I need a guesthouse booking system where I can manage multiple properties, each with rooms that guests can book. Need to see bookings on a timeline and prevent double-booking.
77
- Project Type: full-stack
78
- Scale: business
79
- Primary Technology: nextjs
80
- ```
81
-
82
- ### 2. Generate Implementation (Materialise)
83
- After getting your specification, use the materialise prompt:
84
-
85
- ```
86
- Generate a complete implementation from this SpecVerse specification:
87
-
88
- [PASTE YOUR SPECIFICATION HERE]
89
-
90
- Target Framework: nextjs
91
- Implementation Style: modern
92
- Data Consistency Level: strict
93
- Error Handling Strategy: comprehensive
94
-
95
- Generate:
96
- 1. Complete project structure
97
- 2. Database schema with migrations
98
- 3. API routes with validation
99
- 4. React components with state management
100
- 5. Setup scripts (like start.sh)
101
- 6. Documentation
102
- ```
103
-
104
- ### 3. Generate Deployment (Realize)
105
- For deployment configurations:
106
-
107
- ```
108
- Generate deployment configurations from this SpecVerse specification:
109
-
110
- [PASTE YOUR SPECIFICATION HERE]
111
-
112
- Target Environment: [development/production/enterprise]
113
- Cloud Provider: [vercel/aws/local]
114
-
115
- For development: Generate Docker Compose and start.sh script
116
- For production: Generate infrastructure as code and CI/CD pipelines
117
- ```
118
-
119
- ## Complete Workflow Commands
120
-
121
- 1. **Create** a specification from requirements
122
- 2. **Save** as `spec.specly`
123
- 3. **Materialise** into working code
124
- 4. **Realize** deployment configurations
125
- 5. **Run** with generated start scripts
126
-
127
- ## Key Improvements in v7
128
-
129
- ### Create (v7)
130
- - Better validation and type safety
131
- - Support for complex relationships
132
- - Event-driven architecture patterns
133
- - Modern deployment targets (Vercel, Netlify)
134
-
135
- ### Materialise (v7)
136
- - **Data consistency focus** - Handles snake_case/camelCase mapping
137
- - **Multi-layer validation** - Database, API, and frontend
138
- - **Automated setup** - Generates start.sh style scripts
139
- - **Error handling** - Comprehensive error patterns
140
-
141
- ### Realize (v7)
142
- - **Environment-adaptive** - Only generates what's needed
143
- - **Progressive enhancement** - Dev → Test → Prod → Enterprise
144
- - **Local dev support** - Quick start scripts and Docker Compose
145
- - **Zero-downtime** - Blue-green and canary deployments
146
-
147
- ## Environment-Specific Generation
148
-
149
- ### Development
150
- - Simple Docker Compose
151
- - start.sh quick-start script
152
- - Hot reload configuration
153
- - Basic debugging setup
154
-
155
- ### Production
156
- - High availability infrastructure
157
- - Monitoring and alerting
158
- - Security hardening
159
- - Backup and recovery
160
-
161
- ### Enterprise
162
- - Multi-region deployment
163
- - Compliance frameworks
164
- - Advanced security
165
- - Disaster recovery
166
-
167
- ## Tips for Better Results
168
-
169
- 1. **Be specific** about your requirements
170
- 2. **Include examples** of the data you'll work with
171
- 3. **Specify scale** to get appropriate architecture
172
- 4. **Mention constraints** like compliance or performance
173
- 5. **Describe user workflows** for better UX generation
174
-
175
- ## Troubleshooting Common Issues
176
-
177
- ### Data Mapping Issues
178
- If you see snake_case/camelCase problems:
179
- - Request "strict" data consistency level in materialise
180
- - Ask for explicit data mapping functions
181
-
182
- ### Missing Bookings/Data
183
- Check for:
184
- - Database column name mapping (room_id vs roomId)
185
- - Date format conversions (ISO vs YYYY-MM-DD)
186
- - API response transformations
187
-
188
- ### Connection Issues
189
- For database connections:
190
- - Use environment variables in scripts
191
- - Generate start.sh with explicit POSTGRES_URL
192
- - Include .env.example templates
193
-
194
- ## Next Steps
195
-
196
- 1. Start with the **create** prompt for your requirements
197
- 2. Use **materialise** to generate implementation
198
- 3. Apply **realize** for deployment setup
199
- 4. Iterate based on your specific needs
200
-
201
- Remember: v7 prompts are environment-aware and will adapt their output to your actual needs!
@@ -1,140 +0,0 @@
1
- /**
2
- * Example usage of the SpecVerse Prompt System
3
- * Demonstrates how to load and process prompts with the PromptLoader
4
- */
5
-
6
- import { promptLoader } from '../src/prompts/prompt-loader';
7
-
8
- async function demonstratePromptUsage() {
9
- console.log('SpecVerse Prompt System Demo\n');
10
-
11
- try {
12
- // 1. List all available prompts
13
- console.log('📋 Available prompts:');
14
- const prompts = await promptLoader.listPrompts();
15
- prompts.forEach(({ path, definition }) => {
16
- console.log(` - ${path}: ${definition.description}`);
17
- });
18
- console.log('');
19
-
20
- // 2. Load and process the 'create' prompt
21
- console.log('🔧 Processing "create" prompt...');
22
- const createPrompt = await promptLoader.processPrompt(
23
- 'standard/create',
24
- {
25
- requirements: 'Build a simple blog where users can write posts with titles and content. Posts should have tags for organization.',
26
- scale: 'personal',
27
- preferredTech: 'nextjs'
28
- }
29
- );
30
-
31
- console.log('System Prompt Preview:');
32
- console.log(createPrompt.system.substring(0, 200) + '...\n');
33
-
34
- console.log('User Prompt Preview:');
35
- console.log(createPrompt.user.substring(0, 300) + '...\n');
36
-
37
- // 3. Load and process the 'analyse' prompt
38
- console.log('🔍 Processing "analyse" prompt...');
39
- const analysePrompt = await promptLoader.processPrompt(
40
- 'standard/analyse',
41
- {
42
- applicationPath: '/path/to/my-app',
43
- frameworkType: 'nextjs',
44
- directoryStructure: 'my-app/\n├── app/\n│ └── api/\n└── package.json',
45
- filesContent: '=== package.json ===\n{ "name": "my-app" }'
46
- }
47
- );
48
-
49
- console.log('Analysis Prompt Ready:');
50
- console.log(`- System prompt length: ${analysePrompt.system.length} chars`);
51
- console.log(`- User prompt length: ${analysePrompt.user.length} chars`);
52
- console.log(`- Context includes: ${Object.keys(analysePrompt.context.includes).join(', ')}\n`);
53
-
54
- // 4. Validate a prompt
55
- console.log('✅ Validating prompt structure...');
56
- const prompt = await promptLoader.loadPrompt('standard/create');
57
- const validation = promptLoader.validatePrompt(prompt);
58
-
59
- console.log(`Validation result: ${validation.valid ? 'PASSED' : 'FAILED'}`);
60
- if (!validation.valid) {
61
- console.log('Errors:', validation.errors);
62
- }
63
-
64
- } catch (error) {
65
- console.error('Error:', error.message);
66
- }
67
- }
68
-
69
- async function exampleLLMIntegration() {
70
- console.log('\n🤖 Example LLM Integration\n');
71
-
72
- try {
73
- // Simulate loading a prompt and sending to LLM
74
- const prompt = await promptLoader.processPrompt(
75
- 'standard/create',
76
- {
77
- requirements: 'Create an e-commerce site with products and shopping cart',
78
- scale: 'business'
79
- }
80
- );
81
-
82
- // This is what you would send to an LLM provider
83
- const llmRequest = {
84
- messages: [
85
- { role: 'system', content: prompt.system },
86
- { role: 'user', content: prompt.user }
87
- ],
88
- max_tokens: prompt.context.max_tokens,
89
- temperature: prompt.context.temperature,
90
- top_p: prompt.context.top_p
91
- };
92
-
93
- console.log('LLM Request Structure:');
94
- console.log(`- Messages: ${llmRequest.messages.length}`);
95
- console.log(`- Max tokens: ${llmRequest.max_tokens}`);
96
- console.log(`- Temperature: ${llmRequest.temperature}`);
97
- console.log(`- Top P: ${llmRequest.top_p}`);
98
-
99
- // Mock LLM response
100
- const mockResponse = `
101
- components:
102
- EcommercePlatform:
103
- version: "1.0.0"
104
- description: "E-commerce platform"
105
-
106
- models:
107
- Product:
108
- attributes:
109
- name: String required searchable
110
- price: Money required
111
- inventory: Integer required default=0 min=0
112
- relationships:
113
- category: belongsTo Category required
114
-
115
- Category:
116
- attributes:
117
- name: String required unique
118
- relationships:
119
- products: hasMany Product
120
- `;
121
-
122
- console.log('\nMock LLM Response:');
123
- console.log(mockResponse);
124
-
125
- } catch (error) {
126
- console.error('Error:', error.message);
127
- }
128
- }
129
-
130
- async function runExamples() {
131
- await demonstratePromptUsage();
132
- await exampleLLMIntegration();
133
- }
134
-
135
- // Run examples if this file is executed directly
136
- if (require.main === module) {
137
- runExamples().catch(console.error);
138
- }
139
-
140
- export { demonstratePromptUsage, exampleLLMIntegration };
@@ -1,309 +0,0 @@
1
- {
2
- "$id": "https://specverse.org/schemas/prompt-v1.0.0.yaml",
3
- "title": "SpecVerse Prompt Schema",
4
- "description": "Schema for validating SpecVerse AI prompt definitions",
5
- "type": "object",
6
- "required": [
7
- "name",
8
- "version",
9
- "description",
10
- "system",
11
- "user",
12
- "context",
13
- "validation"
14
- ],
15
- "properties": {
16
- "name": {
17
- "type": "string",
18
- "pattern": "^[a-z][a-z0-9-]*$",
19
- "description": "Unique prompt identifier (kebab-case)"
20
- },
21
- "version": {
22
- "type": "string",
23
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
24
- "description": "Semantic version (e.g., 1.0.0)"
25
- },
26
- "description": {
27
- "type": "string",
28
- "maxLength": 200,
29
- "description": "Brief description of prompt purpose"
30
- },
31
- "author": {
32
- "type": "string",
33
- "description": "Prompt author or team"
34
- },
35
- "tags": {
36
- "type": "array",
37
- "items": {
38
- "type": "string"
39
- },
40
- "description": "Categorization tags"
41
- },
42
- "system": {
43
- "type": "object",
44
- "required": [
45
- "role",
46
- "context"
47
- ],
48
- "properties": {
49
- "role": {
50
- "type": "string",
51
- "description": "System role description for the LLM"
52
- },
53
- "context": {
54
- "type": "string",
55
- "description": "Required context and background"
56
- },
57
- "capabilities": {
58
- "type": "array",
59
- "items": {
60
- "type": "string"
61
- },
62
- "description": "List of capabilities the system should demonstrate"
63
- },
64
- "constraints": {
65
- "type": "array",
66
- "items": {
67
- "type": "string"
68
- },
69
- "description": "Limitations or rules to follow"
70
- }
71
- }
72
- },
73
- "user": {
74
- "type": "object",
75
- "required": [
76
- "template"
77
- ],
78
- "properties": {
79
- "template": {
80
- "type": "string",
81
- "description": "User prompt template with {{variables}}"
82
- },
83
- "variables": {
84
- "type": "array",
85
- "items": {
86
- "type": "object",
87
- "required": [
88
- "name",
89
- "type"
90
- ],
91
- "properties": {
92
- "name": {
93
- "type": "string",
94
- "pattern": "^[a-z][a-zA-Z0-9]*$"
95
- },
96
- "type": {
97
- "type": "string",
98
- "enum": [
99
- "string",
100
- "number",
101
- "boolean",
102
- "object",
103
- "array"
104
- ]
105
- },
106
- "required": {
107
- "type": "boolean",
108
- "default": false
109
- },
110
- "description": {
111
- "type": "string"
112
- },
113
- "default": {
114
- "description": "Default value if not provided"
115
- },
116
- "validation": {
117
- "type": "string",
118
- "description": "Validation rule or regex pattern"
119
- }
120
- }
121
- }
122
- }
123
- }
124
- },
125
- "context": {
126
- "type": "object",
127
- "required": [
128
- "includes"
129
- ],
130
- "properties": {
131
- "includes": {
132
- "type": "array",
133
- "items": {
134
- "type": "object",
135
- "properties": {
136
- "schema": {
137
- "type": "string",
138
- "description": "Schema file to include"
139
- },
140
- "library": {
141
- "type": "string",
142
- "description": "Library to include"
143
- },
144
- "template": {
145
- "type": "string",
146
- "description": "Template to include"
147
- }
148
- }
149
- },
150
- "description": "Context files to include"
151
- },
152
- "max_tokens": {
153
- "type": "integer",
154
- "minimum": 100,
155
- "maximum": 32000,
156
- "default": 4000,
157
- "description": "Maximum tokens for response"
158
- },
159
- "temperature": {
160
- "type": "number",
161
- "minimum": 0,
162
- "maximum": 2,
163
- "default": 0.7,
164
- "description": "LLM temperature setting"
165
- },
166
- "top_p": {
167
- "type": "number",
168
- "minimum": 0,
169
- "maximum": 1,
170
- "default": 1,
171
- "description": "LLM top_p setting"
172
- }
173
- }
174
- },
175
- "validation": {
176
- "type": "object",
177
- "properties": {
178
- "input": {
179
- "type": "array",
180
- "items": {
181
- "type": "object",
182
- "properties": {
183
- "rule": {
184
- "type": "string",
185
- "description": "Input validation rule"
186
- },
187
- "required": {
188
- "type": "boolean",
189
- "default": true
190
- }
191
- }
192
- },
193
- "description": "Input validation rules"
194
- },
195
- "output": {
196
- "type": "array",
197
- "items": {
198
- "type": "object",
199
- "properties": {
200
- "rule": {
201
- "type": "string",
202
- "description": "Output validation rule"
203
- },
204
- "format": {
205
- "type": "string",
206
- "enum": [
207
- "yaml",
208
- "json",
209
- "markdown",
210
- "text"
211
- ]
212
- },
213
- "schema": {
214
- "type": "string",
215
- "description": "Schema to validate against"
216
- }
217
- }
218
- },
219
- "description": "Output validation rules"
220
- }
221
- }
222
- },
223
- "examples": {
224
- "type": "array",
225
- "items": {
226
- "type": "object",
227
- "required": [
228
- "input",
229
- "output"
230
- ],
231
- "properties": {
232
- "name": {
233
- "type": "string",
234
- "description": "Example name"
235
- },
236
- "description": {
237
- "type": "string",
238
- "description": "What this example demonstrates"
239
- },
240
- "input": {
241
- "description": "Example input"
242
- },
243
- "output": {
244
- "description": "Expected output"
245
- },
246
- "explanation": {
247
- "type": "string",
248
- "description": "Explanation of the example"
249
- }
250
- }
251
- },
252
- "description": "Example usage cases"
253
- },
254
- "metadata": {
255
- "type": "object",
256
- "properties": {
257
- "created": {
258
- "type": "string",
259
- "format": "date-time"
260
- },
261
- "updated": {
262
- "type": "string",
263
- "format": "date-time"
264
- },
265
- "tested_with": {
266
- "type": "array",
267
- "items": {
268
- "type": "object",
269
- "properties": {
270
- "provider": {
271
- "type": "string",
272
- "enum": [
273
- "openai",
274
- "anthropic",
275
- "azure",
276
- "local"
277
- ]
278
- },
279
- "model": {
280
- "type": "string"
281
- },
282
- "success_rate": {
283
- "type": "number",
284
- "minimum": 0,
285
- "maximum": 100
286
- }
287
- }
288
- },
289
- "description": "Testing results with different providers"
290
- },
291
- "performance": {
292
- "type": "object",
293
- "properties": {
294
- "avg_response_time": {
295
- "type": "number",
296
- "description": "Average response time in seconds"
297
- },
298
- "avg_tokens_used": {
299
- "type": "integer",
300
- "description": "Average tokens consumed"
301
- }
302
- }
303
- }
304
- },
305
- "description": "Prompt metadata and performance metrics"
306
- }
307
- },
308
- "additionalProperties": false
309
- }