@specverse/engines 5.0.2 → 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.
- package/assets/prompts/core/standard/default/analyse.prompt.yaml +5 -5
- package/assets/prompts/core/standard/default/app-demo.prompt.yaml +21 -1
- package/assets/prompts/core/standard/default/behavior.prompt.yaml +150 -0
- package/assets/prompts/core/standard/default/create.prompt.yaml +3 -3
- package/assets/prompts/core/standard/default/materialise.prompt.yaml +804 -774
- package/assets/prompts/core/standard/default/realize.prompt.yaml +581 -544
- package/assets/prompts/core/standard/v9/analyse.prompt.yaml +5 -5
- package/assets/prompts/core/standard/v9/app-demo.prompt.yaml +233 -0
- package/assets/prompts/core/standard/v9/behavior.prompt.yaml +33 -9
- package/assets/prompts/core/standard/v9/create.prompt.yaml +3 -3
- package/assets/prompts/core/standard/v9/materialise.prompt.yaml +804 -774
- package/assets/prompts/core/standard/v9/realize.prompt.yaml +581 -544
- package/dist/ai/commands/fill.d.ts.map +1 -1
- package/dist/ai/commands/fill.js +16 -7
- package/dist/ai/commands/fill.js.map +1 -1
- package/dist/ai/commands/template.d.ts.map +1 -1
- package/dist/ai/commands/template.js +17 -8
- package/dist/ai/commands/template.js.map +1 -1
- package/dist/bundles/deriveCatalog.d.ts +18 -0
- package/dist/bundles/deriveCatalog.d.ts.map +1 -0
- package/dist/bundles/deriveCatalog.js +263 -0
- package/dist/bundles/deriveCatalog.js.map +1 -0
- package/dist/bundles/index.d.ts +15 -0
- package/dist/bundles/index.d.ts.map +1 -0
- package/dist/bundles/index.js +15 -0
- package/dist/bundles/index.js.map +1 -0
- package/dist/bundles/types.d.ts +53 -0
- package/dist/bundles/types.d.ts.map +1 -0
- package/dist/bundles/types.js +22 -0
- package/dist/bundles/types.js.map +1 -0
- package/dist/bundles/validate.d.ts +55 -0
- package/dist/bundles/validate.d.ts.map +1 -0
- package/dist/bundles/validate.js +471 -0
- package/dist/bundles/validate.js.map +1 -0
- package/dist/inference/quint-transpiler.js +2 -2
- package/dist/inference/quint-transpiler.js.map +1 -1
- package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js +1 -1
- package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +227 -0
- package/dist/libs/instance-factories/tools/templates/mcp/mcp-server-generator.js +295 -14
- package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +1 -1
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +227 -0
- package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +328 -15
- package/package.json +9 -5
- package/assets/examples/09-api/ai-spec.yaml +0 -194
- package/assets/examples/09-api/converted.yaml +0 -95
- package/assets/examples/09-api/diagram-architecture.mmd +0 -10
- package/assets/examples/09-api/diagram-er.mmd +0 -10
- package/assets/examples/09-api/documentation.html +0 -104
- package/assets/examples/09-api/documentation.md +0 -95
- package/assets/examples/09-api/inferred-spec.yaml +0 -420
- package/assets/examples/09-api/openapi.json +0 -61
- package/assets/examples/10-api/README.md +0 -216
- package/assets/examples/10-api/ai-spec.yaml +0 -194
- package/assets/examples/10-api/converted.yaml +0 -96
- package/assets/examples/10-api/diagram-architecture.mmd +0 -10
- package/assets/examples/10-api/diagram-er.mmd +0 -10
- package/assets/examples/10-api/documentation.html +0 -104
- package/assets/examples/10-api/documentation.md +0 -95
- package/assets/examples/10-api/inferred-spec.yaml +0 -7
- package/assets/examples/10-api/metadata.yaml +0 -89
- package/assets/examples/10-api/openapi.json +0 -61
- package/assets/examples/10-api/package-integration-test.js +0 -177
- package/assets/examples/10-api/usage-example.js +0 -323
- package/assets/examples/10-api/usage-example.ts +0 -363
- package/assets/examples/10-api/workflow-test.js +0 -113
- package/assets/examples/validate-examples-with-expected-failures.cjs +0 -328
- package/assets/examples/validate-examples.cjs +0 -225
- package/assets/prompts/MOVED.md +0 -35
- package/assets/prompts/SUMMARY-v8-PROMOTION.md +0 -445
- package/assets/prompts/core/CHANGELOG.md +0 -158
- package/assets/prompts/core/MIGRATION-v6-to-v7.md +0 -379
- package/assets/prompts/core/base-terminal-prompt.md +0 -201
- package/assets/prompts/core/examples/example-usage.ts +0 -140
- package/assets/prompts/core/schemas/prompt.schema.json +0 -309
- package/assets/prompts/core/schemas/prompt.schema.yaml +0 -229
- package/assets/prompts/core/standard/archive/v1/analyse.prompt.yaml +0 -259
- package/assets/prompts/core/standard/archive/v1/create.prompt.yaml +0 -302
- package/assets/prompts/core/standard/archive/v1/materialise.prompt.yaml +0 -328
- package/assets/prompts/core/standard/archive/v1/realize.prompt.yaml +0 -606
- package/assets/prompts/core/standard/archive/v2/README.md +0 -110
- package/assets/prompts/core/standard/archive/v2/analyse.prompt.yaml +0 -151
- package/assets/prompts/core/standard/archive/v2/create.prompt.yaml +0 -151
- package/assets/prompts/core/standard/archive/v2/materialise.prompt.yaml +0 -132
- package/assets/prompts/core/standard/archive/v2/realize.prompt.yaml +0 -147
- package/assets/prompts/core/standard/archive/v3/README.md +0 -279
- package/assets/prompts/core/standard/archive/v3/analyse.prompt.yaml +0 -309
- package/assets/prompts/core/standard/archive/v3/create.prompt.yaml +0 -351
- package/assets/prompts/core/standard/archive/v3/materialise.prompt.yaml +0 -247
- package/assets/prompts/core/standard/archive/v3/realize.prompt.yaml +0 -344
- package/assets/prompts/core/standard/archive/v4/README.md +0 -79
- package/assets/prompts/core/standard/archive/v4/analyse.prompt.yaml +0 -204
- package/assets/prompts/core/standard/archive/v4/create.prompt.yaml +0 -185
- package/assets/prompts/core/standard/archive/v5/README.md +0 -224
- package/assets/prompts/core/standard/archive/v5/analyse.prompt.yaml +0 -209
- package/assets/prompts/core/standard/archive/v5/create.prompt.yaml +0 -225
- package/assets/prompts/core/standard/archive/v5/materialise.prompt.yaml +0 -242
- package/assets/prompts/core/standard/archive/v5/realize.prompt.yaml +0 -336
- package/assets/prompts/core/standard/archive/v6/README.md +0 -187
- package/assets/prompts/core/standard/archive/v6/analyse.prompt.yaml +0 -219
- package/assets/prompts/core/standard/archive/v6/create.prompt.yaml +0 -180
- package/assets/prompts/core/standard/archive/v6/materialise.prompt.yaml +0 -203
- package/assets/prompts/core/standard/archive/v6/realize.prompt.yaml +0 -215
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.nick.yaml +0 -144
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.old.yaml +0 -146
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.yaml +0 -129
- package/assets/prompts/core/standard/archive/v7/create.prompt.yaml +0 -146
- package/assets/prompts/core/standard/archive/v7/materialise.prompt.yaml +0 -297
- package/assets/prompts/core/standard/archive/v7/realize.prompt.yaml +0 -294
- package/assets/prompts/core/standard/archive/v8/README.md +0 -400
- package/assets/prompts/core/standard/archive/v8/analyse.prompt.yaml +0 -185
- package/assets/prompts/core/standard/archive/v8/create.prompt.yaml +0 -203
- package/assets/prompts/core/standard/archive/v8/materialise.prompt.yaml +0 -297
- package/assets/prompts/core/standard/archive/v8/realize.prompt.yaml +0 -294
- package/assets/prompts/templates/api-orchestrator-template.yaml +0 -188
- package/assets/prompts/templates/claude-integration-template.md +0 -121
- package/assets/prompts/templates/terminal-prompt-template.md +0 -97
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
metadata:
|
|
2
|
-
component: SpecVerseFundamentals
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 'Example 01-01: Basic model definition with attributes'
|
|
5
|
-
tags: []
|
|
6
|
-
imports:
|
|
7
|
-
- from: '@specverse/primitives'
|
|
8
|
-
select:
|
|
9
|
-
- Money
|
|
10
|
-
exports: []
|
|
11
|
-
models:
|
|
12
|
-
- name: Product
|
|
13
|
-
attributes:
|
|
14
|
-
- name: id
|
|
15
|
-
type: UUID
|
|
16
|
-
constraints:
|
|
17
|
-
required: true
|
|
18
|
-
unique: false
|
|
19
|
-
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
|
|
20
|
-
format: uuid
|
|
21
|
-
dbMapping:
|
|
22
|
-
columnName: id
|
|
23
|
-
columnType: UUID
|
|
24
|
-
index: false
|
|
25
|
-
nullable: false
|
|
26
|
-
validation:
|
|
27
|
-
rules:
|
|
28
|
-
- required
|
|
29
|
-
metadata:
|
|
30
|
-
encrypted: false
|
|
31
|
-
audit: false
|
|
32
|
-
- name: name
|
|
33
|
-
type: String
|
|
34
|
-
constraints:
|
|
35
|
-
required: true
|
|
36
|
-
unique: false
|
|
37
|
-
dbMapping:
|
|
38
|
-
columnName: name
|
|
39
|
-
columnType: VARCHAR(255)
|
|
40
|
-
index: false
|
|
41
|
-
nullable: false
|
|
42
|
-
validation:
|
|
43
|
-
rules:
|
|
44
|
-
- required
|
|
45
|
-
metadata:
|
|
46
|
-
encrypted: false
|
|
47
|
-
audit: false
|
|
48
|
-
- name: summary
|
|
49
|
-
type: String
|
|
50
|
-
constraints:
|
|
51
|
-
required: false
|
|
52
|
-
unique: false
|
|
53
|
-
dbMapping:
|
|
54
|
-
columnName: summary
|
|
55
|
-
columnType: VARCHAR(255)
|
|
56
|
-
index: false
|
|
57
|
-
nullable: true
|
|
58
|
-
validation:
|
|
59
|
-
rules: []
|
|
60
|
-
metadata:
|
|
61
|
-
encrypted: false
|
|
62
|
-
audit: false
|
|
63
|
-
- name: price
|
|
64
|
-
type: Money
|
|
65
|
-
constraints:
|
|
66
|
-
required: true
|
|
67
|
-
unique: false
|
|
68
|
-
dbMapping:
|
|
69
|
-
columnName: price
|
|
70
|
-
columnType: VARCHAR(255)
|
|
71
|
-
index: false
|
|
72
|
-
nullable: false
|
|
73
|
-
validation:
|
|
74
|
-
rules:
|
|
75
|
-
- required
|
|
76
|
-
metadata:
|
|
77
|
-
encrypted: false
|
|
78
|
-
audit: false
|
|
79
|
-
- name: inStock
|
|
80
|
-
type: Boolean
|
|
81
|
-
constraints:
|
|
82
|
-
required: false
|
|
83
|
-
unique: false
|
|
84
|
-
dbMapping:
|
|
85
|
-
columnName: in_stock
|
|
86
|
-
columnType: BOOLEAN
|
|
87
|
-
index: false
|
|
88
|
-
nullable: true
|
|
89
|
-
defaultValue: 'true'
|
|
90
|
-
validation:
|
|
91
|
-
rules: []
|
|
92
|
-
metadata:
|
|
93
|
-
encrypted: false
|
|
94
|
-
audit: false
|
|
95
|
-
- name: category
|
|
96
|
-
type: String
|
|
97
|
-
constraints:
|
|
98
|
-
required: true
|
|
99
|
-
unique: false
|
|
100
|
-
dbMapping:
|
|
101
|
-
columnName: category
|
|
102
|
-
columnType: VARCHAR(255)
|
|
103
|
-
index: false
|
|
104
|
-
nullable: false
|
|
105
|
-
validation:
|
|
106
|
-
rules:
|
|
107
|
-
- required
|
|
108
|
-
metadata:
|
|
109
|
-
encrypted: false
|
|
110
|
-
audit: false
|
|
111
|
-
- name: contactEmail
|
|
112
|
-
type: Email
|
|
113
|
-
constraints:
|
|
114
|
-
required: false
|
|
115
|
-
unique: false
|
|
116
|
-
pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
|
|
117
|
-
format: email
|
|
118
|
-
dbMapping:
|
|
119
|
-
columnName: contact_email
|
|
120
|
-
columnType: VARCHAR(255)
|
|
121
|
-
index: false
|
|
122
|
-
nullable: true
|
|
123
|
-
validation:
|
|
124
|
-
rules:
|
|
125
|
-
- email
|
|
126
|
-
metadata:
|
|
127
|
-
encrypted: false
|
|
128
|
-
audit: false
|
|
129
|
-
relationships: []
|
|
130
|
-
behaviors:
|
|
131
|
-
- name: attachProfile
|
|
132
|
-
signature: 'attachProfile(profileName: String): Promise<Boolean>'
|
|
133
|
-
implementation:
|
|
134
|
-
preconditions:
|
|
135
|
-
- Profile exists and is compatible with this model
|
|
136
|
-
postconditions:
|
|
137
|
-
- Profile is attached
|
|
138
|
-
- Profile attributes are available
|
|
139
|
-
sideEffects: []
|
|
140
|
-
steps: []
|
|
141
|
-
transactional: true
|
|
142
|
-
metadata:
|
|
143
|
-
async: true
|
|
144
|
-
cacheable: false
|
|
145
|
-
idempotent: false
|
|
146
|
-
- name: detachProfile
|
|
147
|
-
signature: 'detachProfile(profileName: String): Promise<Boolean>'
|
|
148
|
-
implementation:
|
|
149
|
-
preconditions:
|
|
150
|
-
- Profile is currently attached
|
|
151
|
-
postconditions:
|
|
152
|
-
- Profile is detached
|
|
153
|
-
- Profile attributes are no longer available
|
|
154
|
-
sideEffects: []
|
|
155
|
-
steps: []
|
|
156
|
-
transactional: true
|
|
157
|
-
metadata:
|
|
158
|
-
async: true
|
|
159
|
-
cacheable: false
|
|
160
|
-
idempotent: false
|
|
161
|
-
- name: hasProfile
|
|
162
|
-
signature: 'hasProfile(profileName: String): Promise<Boolean>'
|
|
163
|
-
implementation:
|
|
164
|
-
preconditions: []
|
|
165
|
-
postconditions: []
|
|
166
|
-
sideEffects: []
|
|
167
|
-
steps: []
|
|
168
|
-
transactional: false
|
|
169
|
-
metadata:
|
|
170
|
-
async: true
|
|
171
|
-
cacheable: false
|
|
172
|
-
idempotent: false
|
|
173
|
-
lifecycle:
|
|
174
|
-
states: []
|
|
175
|
-
transitions: {}
|
|
176
|
-
currentStateField: state
|
|
177
|
-
dbMapping:
|
|
178
|
-
tableName: products
|
|
179
|
-
indexes: []
|
|
180
|
-
controllers: []
|
|
181
|
-
services: []
|
|
182
|
-
views: []
|
|
183
|
-
events: []
|
|
184
|
-
infrastructure:
|
|
185
|
-
database:
|
|
186
|
-
type: postgresql
|
|
187
|
-
migrations: true
|
|
188
|
-
seedData: false
|
|
189
|
-
messaging:
|
|
190
|
-
type: rabbitmq
|
|
191
|
-
queues: []
|
|
192
|
-
caching:
|
|
193
|
-
type: redis
|
|
194
|
-
ttl: 3600
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
components:
|
|
2
|
-
SpecVerseFundamentals:
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: "Example 01-01: Basic model definition with attributes"
|
|
5
|
-
import:
|
|
6
|
-
- from: "@specverse/primitives"
|
|
7
|
-
select:
|
|
8
|
-
- Money
|
|
9
|
-
export:
|
|
10
|
-
models:
|
|
11
|
-
- Product
|
|
12
|
-
models:
|
|
13
|
-
Product:
|
|
14
|
-
description: Simple product with basic attributes
|
|
15
|
-
attributes:
|
|
16
|
-
id:
|
|
17
|
-
name: id
|
|
18
|
-
type: UUID
|
|
19
|
-
required: true
|
|
20
|
-
unique: false
|
|
21
|
-
name:
|
|
22
|
-
name: name
|
|
23
|
-
type: String
|
|
24
|
-
required: true
|
|
25
|
-
unique: false
|
|
26
|
-
summary:
|
|
27
|
-
name: summary
|
|
28
|
-
type: String
|
|
29
|
-
required: false
|
|
30
|
-
unique: false
|
|
31
|
-
price:
|
|
32
|
-
name: price
|
|
33
|
-
type: Money
|
|
34
|
-
required: true
|
|
35
|
-
unique: false
|
|
36
|
-
inStock:
|
|
37
|
-
name: inStock
|
|
38
|
-
type: Boolean
|
|
39
|
-
required: false
|
|
40
|
-
unique: false
|
|
41
|
-
default: "true"
|
|
42
|
-
category:
|
|
43
|
-
name: category
|
|
44
|
-
type: String
|
|
45
|
-
required: true
|
|
46
|
-
unique: false
|
|
47
|
-
values:
|
|
48
|
-
- electronics
|
|
49
|
-
- books
|
|
50
|
-
- clothing
|
|
51
|
-
- home
|
|
52
|
-
contactEmail:
|
|
53
|
-
name: contactEmail
|
|
54
|
-
type: Email
|
|
55
|
-
required: false
|
|
56
|
-
unique: false
|
|
57
|
-
behaviors:
|
|
58
|
-
attachProfile:
|
|
59
|
-
description: Attach a profile to this model instance
|
|
60
|
-
parameters:
|
|
61
|
-
profileName:
|
|
62
|
-
name: profileName
|
|
63
|
-
type: String
|
|
64
|
-
required: true
|
|
65
|
-
unique: false
|
|
66
|
-
returns: Boolean
|
|
67
|
-
requires:
|
|
68
|
-
- Profile exists and is compatible with this model
|
|
69
|
-
ensures:
|
|
70
|
-
- Profile is attached
|
|
71
|
-
- Profile attributes are available
|
|
72
|
-
detachProfile:
|
|
73
|
-
description: Detach a profile from this model instance
|
|
74
|
-
parameters:
|
|
75
|
-
profileName:
|
|
76
|
-
name: profileName
|
|
77
|
-
type: String
|
|
78
|
-
required: true
|
|
79
|
-
unique: false
|
|
80
|
-
returns: Boolean
|
|
81
|
-
requires:
|
|
82
|
-
- Profile is currently attached
|
|
83
|
-
ensures:
|
|
84
|
-
- Profile is detached
|
|
85
|
-
- Profile attributes are no longer available
|
|
86
|
-
hasProfile:
|
|
87
|
-
description: Check if a profile is attached to this model instance
|
|
88
|
-
parameters:
|
|
89
|
-
profileName:
|
|
90
|
-
name: profileName
|
|
91
|
-
type: String
|
|
92
|
-
required: true
|
|
93
|
-
unique: false
|
|
94
|
-
returns: Boolean
|
|
95
|
-
deployments: {}
|
|
96
|
-
manifests: {}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>SpecVerseFundamentals Documentation</title>
|
|
7
|
-
<style>
|
|
8
|
-
body {
|
|
9
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
10
|
-
line-height: 1.6;
|
|
11
|
-
color: #333;
|
|
12
|
-
max-width: 900px;
|
|
13
|
-
margin: 0 auto;
|
|
14
|
-
padding: 20px;
|
|
15
|
-
}
|
|
16
|
-
h1, h2, h3, h4, h5 {
|
|
17
|
-
color: #2c3e50;
|
|
18
|
-
margin-top: 1.5em;
|
|
19
|
-
}
|
|
20
|
-
h1 { border-bottom: 2px solid #3498db; padding-bottom: 0.3em; }
|
|
21
|
-
h2 { border-bottom: 1px solid #ecf0f1; padding-bottom: 0.2em; }
|
|
22
|
-
table {
|
|
23
|
-
border-collapse: collapse;
|
|
24
|
-
width: 100%;
|
|
25
|
-
margin: 1em 0;
|
|
26
|
-
}
|
|
27
|
-
th, td {
|
|
28
|
-
border: 1px solid #ddd;
|
|
29
|
-
padding: 8px;
|
|
30
|
-
text-align: left;
|
|
31
|
-
}
|
|
32
|
-
th {
|
|
33
|
-
background-color: #f8f9fa;
|
|
34
|
-
font-weight: bold;
|
|
35
|
-
}
|
|
36
|
-
code {
|
|
37
|
-
background-color: #f4f4f4;
|
|
38
|
-
padding: 2px 4px;
|
|
39
|
-
border-radius: 3px;
|
|
40
|
-
font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
|
|
41
|
-
}
|
|
42
|
-
pre {
|
|
43
|
-
background-color: #f4f4f4;
|
|
44
|
-
padding: 1em;
|
|
45
|
-
border-radius: 5px;
|
|
46
|
-
overflow-x: auto;
|
|
47
|
-
}
|
|
48
|
-
.toc {
|
|
49
|
-
background-color: #f8f9fa;
|
|
50
|
-
padding: 1em;
|
|
51
|
-
border-radius: 5px;
|
|
52
|
-
margin: 1em 0;
|
|
53
|
-
}
|
|
54
|
-
.toc ul {
|
|
55
|
-
list-style-type: none;
|
|
56
|
-
padding-left: 1em;
|
|
57
|
-
}
|
|
58
|
-
.toc a {
|
|
59
|
-
text-decoration: none;
|
|
60
|
-
color: #3498db;
|
|
61
|
-
}
|
|
62
|
-
.toc a:hover {
|
|
63
|
-
text-decoration: underline;
|
|
64
|
-
}
|
|
65
|
-
hr {
|
|
66
|
-
border: none;
|
|
67
|
-
border-top: 1px solid #ecf0f1;
|
|
68
|
-
margin: 2em 0;
|
|
69
|
-
}
|
|
70
|
-
</style>
|
|
71
|
-
</head>
|
|
72
|
-
<body>
|
|
73
|
-
<h1>SpecVerseFundamentals</h1><p>Example 01-01: Basic model definition with attributes</p><p><strong>Version:</strong> 1.0.0
|
|
74
|
-
<strong>Generated:</strong> 2026-03-23T18:22:33.405Z</p><h2>Table of Contents</h2><ul><li><a href="#overview">Overview</a></li>
|
|
75
|
-
<li><a href="#models">Models</a></li>
|
|
76
|
-
- <a href="#product">Product</a></p><h2>Overview</h2><h3>Component Statistics</h3><p><tr><td>Component Type</td><td>Count</td></tr>
|
|
77
|
-
|
|
78
|
-
<tr><td>Models</td><td>1</td></tr>
|
|
79
|
-
<tr><td>Controllers</td><td>0</td></tr>
|
|
80
|
-
<tr><td>Services</td><td>0</td></tr>
|
|
81
|
-
<tr><td>Views</td><td>0</td></tr>
|
|
82
|
-
<tr><td>Events</td><td>0</td></tr></p><h3>Imports</h3><p>
|
|
83
|
-
<h3>Exports</h3><p><strong>SpecVerseFundamentals:</strong>
|
|
84
|
-
<li><strong>models:</strong> Product</li></ul><h2>Models</h2><h3>Product</h3><p>Simple product with basic attributes</p><h4>Attributes</h4><p><tr><td>Name</td><td>Type</td><td>Required</td><td>Unique</td><td>Description</td></tr>
|
|
85
|
-
|
|
86
|
-
<tr><td>id</td><td>UUID</td><td>✓</td></tr>
|
|
87
|
-
<tr><td>name</td><td>String</td><td>✓</td></tr>
|
|
88
|
-
<tr><td>summary</td><td>String</td></tr>
|
|
89
|
-
<tr><td>price</td><td>Money</td><td>✓</td></tr>
|
|
90
|
-
<tr><td>inStock</td><td>Boolean</td><td>Default: true</td></tr>
|
|
91
|
-
<tr><td>category</td><td>String</td><td>✓</td></tr>
|
|
92
|
-
<tr><td>contactEmail</td><td>Email</td></tr></p><h4>Behaviors</h4><h5>attachProfile</h5><p>Attach a profile to this model instance</p><p><strong>Parameters:</strong>
|
|
93
|
-
<li><code>profileName</code>: String (required)</li></ul><p><strong>Returns:</strong> Boolean</p><p><strong>Preconditions:</strong>
|
|
94
|
-
<li>Profile exists and is compatible with this model</li></ul><p><strong>Postconditions:</strong>
|
|
95
|
-
<li>Profile is attached</li>
|
|
96
|
-
<li>Profile attributes are available</li></ul><h5>detachProfile</h5><p>Detach a profile from this model instance</p><p><strong>Parameters:</strong>
|
|
97
|
-
<li><code>profileName</code>: String (required)</li></ul><p><strong>Returns:</strong> Boolean</p><p><strong>Preconditions:</strong>
|
|
98
|
-
<li>Profile is currently attached</li></ul><p><strong>Postconditions:</strong>
|
|
99
|
-
<li>Profile is detached</li>
|
|
100
|
-
<li>Profile attributes are no longer available</li></ul><h5>hasProfile</h5><p>Check if a profile is attached to this model instance</p><p><strong>Parameters:</strong>
|
|
101
|
-
<li><code>profileName</code>: String (required)</li></ul><p><strong>Returns:</strong> Boolean</p><p>---
|
|
102
|
-
</p>
|
|
103
|
-
</body>
|
|
104
|
-
</html>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# SpecVerseFundamentals
|
|
2
|
-
|
|
3
|
-
Example 01-01: Basic model definition with attributes
|
|
4
|
-
|
|
5
|
-
**Version:** 1.0.0
|
|
6
|
-
**Generated:** 2026-03-23T18:22:33.403Z
|
|
7
|
-
|
|
8
|
-
## Table of Contents
|
|
9
|
-
|
|
10
|
-
- [Overview](#overview)
|
|
11
|
-
- [Models](#models)
|
|
12
|
-
- [Product](#product)
|
|
13
|
-
|
|
14
|
-
## Overview
|
|
15
|
-
|
|
16
|
-
### Component Statistics
|
|
17
|
-
|
|
18
|
-
| Component Type | Count |
|
|
19
|
-
|----------------|-------|
|
|
20
|
-
| Models | 1 |
|
|
21
|
-
| Controllers | 0 |
|
|
22
|
-
| Services | 0 |
|
|
23
|
-
| Views | 0 |
|
|
24
|
-
| Events | 0 |
|
|
25
|
-
|
|
26
|
-
### Imports
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Exports
|
|
30
|
-
|
|
31
|
-
**SpecVerseFundamentals:**
|
|
32
|
-
- **models:** Product
|
|
33
|
-
|
|
34
|
-
## Models
|
|
35
|
-
|
|
36
|
-
### Product
|
|
37
|
-
|
|
38
|
-
Simple product with basic attributes
|
|
39
|
-
|
|
40
|
-
#### Attributes
|
|
41
|
-
|
|
42
|
-
| Name | Type | Required | Unique | Description |
|
|
43
|
-
|------|------|----------|--------|-------------|
|
|
44
|
-
| id | UUID | ✓ | | |
|
|
45
|
-
| name | String | ✓ | | |
|
|
46
|
-
| summary | String | | | |
|
|
47
|
-
| price | Money | ✓ | | |
|
|
48
|
-
| inStock | Boolean | | | Default: true |
|
|
49
|
-
| category | String | ✓ | | |
|
|
50
|
-
| contactEmail | Email | | | |
|
|
51
|
-
|
|
52
|
-
#### Behaviors
|
|
53
|
-
|
|
54
|
-
##### attachProfile
|
|
55
|
-
|
|
56
|
-
Attach a profile to this model instance
|
|
57
|
-
|
|
58
|
-
**Parameters:**
|
|
59
|
-
- `profileName`: String (required)
|
|
60
|
-
|
|
61
|
-
**Returns:** Boolean
|
|
62
|
-
|
|
63
|
-
**Preconditions:**
|
|
64
|
-
- Profile exists and is compatible with this model
|
|
65
|
-
|
|
66
|
-
**Postconditions:**
|
|
67
|
-
- Profile is attached
|
|
68
|
-
- Profile attributes are available
|
|
69
|
-
|
|
70
|
-
##### detachProfile
|
|
71
|
-
|
|
72
|
-
Detach a profile from this model instance
|
|
73
|
-
|
|
74
|
-
**Parameters:**
|
|
75
|
-
- `profileName`: String (required)
|
|
76
|
-
|
|
77
|
-
**Returns:** Boolean
|
|
78
|
-
|
|
79
|
-
**Preconditions:**
|
|
80
|
-
- Profile is currently attached
|
|
81
|
-
|
|
82
|
-
**Postconditions:**
|
|
83
|
-
- Profile is detached
|
|
84
|
-
- Profile attributes are no longer available
|
|
85
|
-
|
|
86
|
-
##### hasProfile
|
|
87
|
-
|
|
88
|
-
Check if a profile is attached to this model instance
|
|
89
|
-
|
|
90
|
-
**Parameters:**
|
|
91
|
-
- `profileName`: String (required)
|
|
92
|
-
|
|
93
|
-
**Returns:** Boolean
|
|
94
|
-
|
|
95
|
-
---
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# API Integration Examples Metadata
|
|
2
|
-
category: "api"
|
|
3
|
-
title: "SpecVerse API Integration"
|
|
4
|
-
description: "Comprehensive examples for programmatic integration of SpecVerse in TypeScript and JavaScript applications"
|
|
5
|
-
targetAudience: "developers"
|
|
6
|
-
estimatedTime: "2-3 hours"
|
|
7
|
-
|
|
8
|
-
learningObjectives:
|
|
9
|
-
- "Master the SpecVerse programmatic API for parsing and validation"
|
|
10
|
-
- "Integrate AI inference engine into applications"
|
|
11
|
-
- "Generate UML diagrams and documentation programmatically"
|
|
12
|
-
- "Handle errors and edge cases in API integration"
|
|
13
|
-
- "Test and validate API integrations"
|
|
14
|
-
|
|
15
|
-
examples:
|
|
16
|
-
- id: "09-01-usage-example"
|
|
17
|
-
title: "Comprehensive API Usage"
|
|
18
|
-
description: "Complete workflow examples showing all SpecVerse API capabilities"
|
|
19
|
-
concepts: ["api", "parsing", "inference", "generation", "integration"]
|
|
20
|
-
prerequisites: ["basic-javascript", "nodejs"]
|
|
21
|
-
difficulty: "intermediate"
|
|
22
|
-
estimatedTime: "45 minutes"
|
|
23
|
-
formats: ["js", "ts"]
|
|
24
|
-
learningObjectives:
|
|
25
|
-
- "Parse and validate SpecVerse specifications programmatically"
|
|
26
|
-
- "Use AI inference engine to enhance specifications"
|
|
27
|
-
- "Generate UML diagrams and documentation"
|
|
28
|
-
- "Handle parsing and validation errors"
|
|
29
|
-
specverseFeatures: ["Parser API", "Inference Engine", "Generators", "Error Handling"]
|
|
30
|
-
realWorldUseCase: "Build tools, web applications, automated processing pipelines"
|
|
31
|
-
|
|
32
|
-
- id: "09-02-workflow-test"
|
|
33
|
-
title: "End-to-End API Testing"
|
|
34
|
-
description: "Focused workflow test for CI/CD and production validation"
|
|
35
|
-
concepts: ["testing", "ci-cd", "validation", "automation"]
|
|
36
|
-
prerequisites: ["api-basics"]
|
|
37
|
-
difficulty: "intermediate"
|
|
38
|
-
estimatedTime: "30 minutes"
|
|
39
|
-
formats: ["js"]
|
|
40
|
-
learningObjectives:
|
|
41
|
-
- "Create automated API tests for CI/CD pipelines"
|
|
42
|
-
- "Validate API functionality with embedded specifications"
|
|
43
|
-
- "Handle success/failure scenarios appropriately"
|
|
44
|
-
specverseFeatures: ["API Testing", "Validation", "CI/CD Integration"]
|
|
45
|
-
realWorldUseCase: "Automated testing, build pipelines, API health checks"
|
|
46
|
-
|
|
47
|
-
- id: "09-03-package-integration"
|
|
48
|
-
title: "Package Integration Testing"
|
|
49
|
-
description: "Validate complete npm package installation and API functionality"
|
|
50
|
-
concepts: ["npm", "package-testing", "integration", "real-world-usage"]
|
|
51
|
-
prerequisites: ["api-basics", "npm-knowledge"]
|
|
52
|
-
difficulty: "advanced"
|
|
53
|
-
estimatedTime: "45 minutes"
|
|
54
|
-
formats: ["js"]
|
|
55
|
-
learningObjectives:
|
|
56
|
-
- "Test complete package installation workflow"
|
|
57
|
-
- "Validate API functionality in real npm environment"
|
|
58
|
-
- "Ensure package integrity and completeness"
|
|
59
|
-
specverseFeatures: ["Package Distribution", "API Validation", "Integration Testing"]
|
|
60
|
-
realWorldUseCase: "Release validation, package testing, integration verification"
|
|
61
|
-
|
|
62
|
-
usagePatterns:
|
|
63
|
-
webApplications:
|
|
64
|
-
description: "Integration into React, Vue, Angular applications"
|
|
65
|
-
examples: ["React component generation", "Vue template processing", "Angular service integration"]
|
|
66
|
-
|
|
67
|
-
buildTools:
|
|
68
|
-
description: "webpack, vite, rollup plugin integration"
|
|
69
|
-
examples: ["Build-time specification processing", "Asset generation", "Plugin development"]
|
|
70
|
-
|
|
71
|
-
apiServices:
|
|
72
|
-
description: "Express, Fastify, Koa API endpoint integration"
|
|
73
|
-
examples: ["Specification validation endpoints", "API generation services", "Documentation APIs"]
|
|
74
|
-
|
|
75
|
-
cliTools:
|
|
76
|
-
description: "Custom CLI tool development"
|
|
77
|
-
examples: ["Custom specification processors", "Domain-specific tools", "Workflow automation"]
|
|
78
|
-
|
|
79
|
-
performanceConsiderations:
|
|
80
|
-
parsing: "Sub-5ms for typical specifications"
|
|
81
|
-
inference: "Optimized rule processing engine"
|
|
82
|
-
memory: "Efficient caching and resource management"
|
|
83
|
-
concurrency: "Thread-safe for concurrent processing"
|
|
84
|
-
|
|
85
|
-
nextSteps:
|
|
86
|
-
- "Integrate SpecVerse into your project using these patterns"
|
|
87
|
-
- "Customize examples for your specific use case"
|
|
88
|
-
- "Use workflow-test.js patterns for production validation"
|
|
89
|
-
- "Explore advanced inference engine configuration options"
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"openapi": "3.0.3",
|
|
3
|
-
"info": {
|
|
4
|
-
"title": "SpecVerseFundamentals",
|
|
5
|
-
"description": "Example 01-01: Basic model definition with attributes",
|
|
6
|
-
"version": "1.0.0"
|
|
7
|
-
},
|
|
8
|
-
"servers": [
|
|
9
|
-
{
|
|
10
|
-
"url": "https://api.example.com"
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
"paths": {},
|
|
14
|
-
"components": {
|
|
15
|
-
"schemas": {
|
|
16
|
-
"Product": {
|
|
17
|
-
"type": "object",
|
|
18
|
-
"description": "Simple product with basic attributes",
|
|
19
|
-
"properties": {
|
|
20
|
-
"id": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"description": ""
|
|
23
|
-
},
|
|
24
|
-
"name": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"description": ""
|
|
27
|
-
},
|
|
28
|
-
"summary": {
|
|
29
|
-
"type": "string",
|
|
30
|
-
"description": ""
|
|
31
|
-
},
|
|
32
|
-
"price": {
|
|
33
|
-
"type": "string",
|
|
34
|
-
"description": ""
|
|
35
|
-
},
|
|
36
|
-
"inStock": {
|
|
37
|
-
"type": "boolean",
|
|
38
|
-
"description": "Default: true",
|
|
39
|
-
"default": "true"
|
|
40
|
-
},
|
|
41
|
-
"category": {
|
|
42
|
-
"type": "string",
|
|
43
|
-
"description": ""
|
|
44
|
-
},
|
|
45
|
-
"contactEmail": {
|
|
46
|
-
"type": "string",
|
|
47
|
-
"description": ""
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"required": [
|
|
51
|
-
"id",
|
|
52
|
-
"name",
|
|
53
|
-
"price",
|
|
54
|
-
"category"
|
|
55
|
-
]
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"responses": {},
|
|
59
|
-
"parameters": {}
|
|
60
|
-
}
|
|
61
|
-
}
|