@specverse/engines 6.0.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/prompts/core/standard/default/analyse.prompt.yaml +38 -3
- package/assets/prompts/core/standard/default/create.prompt.yaml +11 -3
- package/assets/prompts/core/standard/v9/analyse.prompt.yaml +38 -3
- package/assets/prompts/core/standard/v9/create.prompt.yaml +11 -3
- package/dist/ai/model-resolver.d.ts +2 -0
- package/dist/ai/model-resolver.d.ts.map +1 -1
- package/dist/ai/model-resolver.js +1 -1
- package/dist/ai/model-resolver.js.map +1 -1
- package/dist/ai/providers/claude-cli.d.ts.map +1 -1
- package/dist/ai/providers/claude-cli.js +3 -1
- package/dist/ai/providers/claude-cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: analyse
|
|
2
|
-
version: "9.
|
|
2
|
+
version: "9.3.0"
|
|
3
3
|
description: Extract SpecVerse specifications from existing code with deployment policy recognition
|
|
4
4
|
author: SpecVerse Team
|
|
5
5
|
tags: [analysis, reverse-engineering, implementation, v9, deployment-policies, validate-fix-loop]
|
|
@@ -21,6 +21,15 @@ system:
|
|
|
21
21
|
- a deployments section showing the logical instances with operational policies
|
|
22
22
|
- a manifest section with the physical details about the deployment
|
|
23
23
|
|
|
24
|
+
OUTPUT FORMAT (critical):
|
|
25
|
+
- Emit the complete .specly content as YAML directly in your response,
|
|
26
|
+
wrapped in a single ```specly ... ``` code block.
|
|
27
|
+
- Do NOT use Write, Edit, or any file-saving tools — even if available.
|
|
28
|
+
The caller harvests the spec text from your response, not from disk.
|
|
29
|
+
- Do NOT prefix with prose, explanations, or status updates. Reply with
|
|
30
|
+
the code block as the primary output. Brief commentary AFTER the
|
|
31
|
+
block is OK.
|
|
32
|
+
|
|
24
33
|
context: |
|
|
25
34
|
Generate a FULL SpecVerse specification that represents the actual implementation
|
|
26
35
|
- this specification will be validated so must be syntactically correct
|
|
@@ -37,6 +46,32 @@ system:
|
|
|
37
46
|
7. Controllers should focus on CURVED operations, models on business behaviors, services on orchestration
|
|
38
47
|
8. Do NOT include implementation details like HTTP paths or routes in controllers
|
|
39
48
|
|
|
49
|
+
LIFECYCLE EXTRACTION RULES (critical — common mistake area):
|
|
50
|
+
- A lifecycle attaches to the MODEL where the source code DECLARES the
|
|
51
|
+
status / state field. Look for: a Prisma `status` column or similar;
|
|
52
|
+
a TypeScript enum used as a column type; a status / state field in
|
|
53
|
+
a CREATE TABLE statement; an explicit state-machine implementation
|
|
54
|
+
(XState, etc.). The lifecycle owner is the model that has the field,
|
|
55
|
+
not a related model.
|
|
56
|
+
- The states are the LITERAL values that field accepts in the source
|
|
57
|
+
— do not reword them, pluralise / depluralise, or reorder for
|
|
58
|
+
narrative effect. Preserve casing if it is snake_case; if the
|
|
59
|
+
source uses kebab-case or PascalCase, snake_case-ify (per the
|
|
60
|
+
schema's snake_case requirement) but keep the value identifiers.
|
|
61
|
+
- If multiple models have status fields, extract one lifecycle per
|
|
62
|
+
model. Do NOT collapse them into a single "the status of the
|
|
63
|
+
system" lifecycle.
|
|
64
|
+
- Do NOT INVENT a lifecycle on a model that has no status field
|
|
65
|
+
declared in code, even if the domain (e.g. "an Order goes through
|
|
66
|
+
stages") strongly suggests one. If you can't point at the source
|
|
67
|
+
line that declares the field, do not emit a lifecycle there.
|
|
68
|
+
- Worked example of correct attribution:
|
|
69
|
+
|
|
70
|
+
Source: `model Room { status RoomStatus }` plus
|
|
71
|
+
`enum RoomStatus { free booked checkin checkout }`
|
|
72
|
+
→ Room.lifecycles.status: { flow: "free -> booked -> checkin -> checkout" }
|
|
73
|
+
NOT a Booking.lifecycles (Booking has dates but no status field).
|
|
74
|
+
|
|
40
75
|
DEPLOYMENT PRINCIPLES:
|
|
41
76
|
1. Capture ALL deployment details - environments, instances, scaling, operational policies
|
|
42
77
|
2. Extract operational policies from code decorators, annotations, and middleware
|
|
@@ -388,7 +423,7 @@ user:
|
|
|
388
423
|
- Use components: (plural) at top level
|
|
389
424
|
- Use snake_case for lifecycle states (NOT kebab-case)
|
|
390
425
|
- Include components, deployments (with policies), and manifest sections
|
|
391
|
-
-
|
|
426
|
+
- Output the spec inside a ```specly``` code block in your response (do not write to disk)
|
|
392
427
|
|
|
393
428
|
Step 2: VALIDATE
|
|
394
429
|
- Run: spv validate spec.specly --json
|
|
@@ -419,7 +454,7 @@ user:
|
|
|
419
454
|
- incorrect operation policy nesting
|
|
420
455
|
- invalid policy property names or values
|
|
421
456
|
- missing 'policies' wrapper in operations
|
|
422
|
-
*
|
|
457
|
+
* Update the spec inline in your response (do not edit a file on disk)
|
|
423
458
|
* Go back to Step 2
|
|
424
459
|
|
|
425
460
|
Continue the validate-fix loop until validation passes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: create
|
|
2
|
-
version: "9.
|
|
2
|
+
version: "9.2.0"
|
|
3
3
|
description: Generate minimal SpecVerse specifications from natural language requirements with deployment policies
|
|
4
4
|
author: SpecVerse Team
|
|
5
5
|
tags: [creation, requirements, minimal-spec, v9, deployment-policies, validate-fix-loop]
|
|
@@ -15,6 +15,14 @@ system:
|
|
|
15
15
|
Your task: Analyze requirements and generate the smallest possible valid specification that captures core business logic.
|
|
16
16
|
The SpecVerse inference engine will later expand these minimal specs into complete architectures.
|
|
17
17
|
|
|
18
|
+
OUTPUT FORMAT (critical):
|
|
19
|
+
- Emit the complete .specly content as YAML directly in your response,
|
|
20
|
+
wrapped in a single ```specly ... ``` code block.
|
|
21
|
+
- Do NOT use Write, Edit, or any file-saving tools — even if available.
|
|
22
|
+
The caller harvests the spec text from your response, not from disk.
|
|
23
|
+
- Do NOT prefix with prose or status updates. Reply with the code block
|
|
24
|
+
as the primary output. Brief commentary AFTER the block is OK.
|
|
25
|
+
|
|
18
26
|
context: |
|
|
19
27
|
CORE PRINCIPLES:
|
|
20
28
|
1. Extract core business entities and their relationships
|
|
@@ -310,7 +318,7 @@ user:
|
|
|
310
318
|
- Use components: (plural) at top level
|
|
311
319
|
- Use snake_case for lifecycle states (NOT kebab-case)
|
|
312
320
|
- Add deployment policies appropriate for scale
|
|
313
|
-
-
|
|
321
|
+
- Output the spec inside a ```specly``` code block in your response (do not write to disk)
|
|
314
322
|
|
|
315
323
|
Step 2: VALIDATE
|
|
316
324
|
- Run: spv validate spec.specly --json
|
|
@@ -336,7 +344,7 @@ user:
|
|
|
336
344
|
- invalid relationship syntax
|
|
337
345
|
- invalid deployment policy structure
|
|
338
346
|
- incorrect operation policy nesting
|
|
339
|
-
*
|
|
347
|
+
* Update the spec inline in your response (do not edit a file on disk)
|
|
340
348
|
* Go back to Step 2
|
|
341
349
|
|
|
342
350
|
Continue the validate-fix loop until validation passes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: analyse
|
|
2
|
-
version: "9.
|
|
2
|
+
version: "9.3.0"
|
|
3
3
|
description: Extract SpecVerse specifications from existing code with deployment policy recognition
|
|
4
4
|
author: SpecVerse Team
|
|
5
5
|
tags: [analysis, reverse-engineering, implementation, v9, deployment-policies, validate-fix-loop]
|
|
@@ -21,6 +21,15 @@ system:
|
|
|
21
21
|
- a deployments section showing the logical instances with operational policies
|
|
22
22
|
- a manifest section with the physical details about the deployment
|
|
23
23
|
|
|
24
|
+
OUTPUT FORMAT (critical):
|
|
25
|
+
- Emit the complete .specly content as YAML directly in your response,
|
|
26
|
+
wrapped in a single ```specly ... ``` code block.
|
|
27
|
+
- Do NOT use Write, Edit, or any file-saving tools — even if available.
|
|
28
|
+
The caller harvests the spec text from your response, not from disk.
|
|
29
|
+
- Do NOT prefix with prose, explanations, or status updates. Reply with
|
|
30
|
+
the code block as the primary output. Brief commentary AFTER the
|
|
31
|
+
block is OK.
|
|
32
|
+
|
|
24
33
|
context: |
|
|
25
34
|
Generate a FULL SpecVerse specification that represents the actual implementation
|
|
26
35
|
- this specification will be validated so must be syntactically correct
|
|
@@ -37,6 +46,32 @@ system:
|
|
|
37
46
|
7. Controllers should focus on CURVED operations, models on business behaviors, services on orchestration
|
|
38
47
|
8. Do NOT include implementation details like HTTP paths or routes in controllers
|
|
39
48
|
|
|
49
|
+
LIFECYCLE EXTRACTION RULES (critical — common mistake area):
|
|
50
|
+
- A lifecycle attaches to the MODEL where the source code DECLARES the
|
|
51
|
+
status / state field. Look for: a Prisma `status` column or similar;
|
|
52
|
+
a TypeScript enum used as a column type; a status / state field in
|
|
53
|
+
a CREATE TABLE statement; an explicit state-machine implementation
|
|
54
|
+
(XState, etc.). The lifecycle owner is the model that has the field,
|
|
55
|
+
not a related model.
|
|
56
|
+
- The states are the LITERAL values that field accepts in the source
|
|
57
|
+
— do not reword them, pluralise / depluralise, or reorder for
|
|
58
|
+
narrative effect. Preserve casing if it is snake_case; if the
|
|
59
|
+
source uses kebab-case or PascalCase, snake_case-ify (per the
|
|
60
|
+
schema's snake_case requirement) but keep the value identifiers.
|
|
61
|
+
- If multiple models have status fields, extract one lifecycle per
|
|
62
|
+
model. Do NOT collapse them into a single "the status of the
|
|
63
|
+
system" lifecycle.
|
|
64
|
+
- Do NOT INVENT a lifecycle on a model that has no status field
|
|
65
|
+
declared in code, even if the domain (e.g. "an Order goes through
|
|
66
|
+
stages") strongly suggests one. If you can't point at the source
|
|
67
|
+
line that declares the field, do not emit a lifecycle there.
|
|
68
|
+
- Worked example of correct attribution:
|
|
69
|
+
|
|
70
|
+
Source: `model Room { status RoomStatus }` plus
|
|
71
|
+
`enum RoomStatus { free booked checkin checkout }`
|
|
72
|
+
→ Room.lifecycles.status: { flow: "free -> booked -> checkin -> checkout" }
|
|
73
|
+
NOT a Booking.lifecycles (Booking has dates but no status field).
|
|
74
|
+
|
|
40
75
|
DEPLOYMENT PRINCIPLES:
|
|
41
76
|
1. Capture ALL deployment details - environments, instances, scaling, operational policies
|
|
42
77
|
2. Extract operational policies from code decorators, annotations, and middleware
|
|
@@ -388,7 +423,7 @@ user:
|
|
|
388
423
|
- Use components: (plural) at top level
|
|
389
424
|
- Use snake_case for lifecycle states (NOT kebab-case)
|
|
390
425
|
- Include components, deployments (with policies), and manifest sections
|
|
391
|
-
-
|
|
426
|
+
- Output the spec inside a ```specly``` code block in your response (do not write to disk)
|
|
392
427
|
|
|
393
428
|
Step 2: VALIDATE
|
|
394
429
|
- Run: spv validate spec.specly --json
|
|
@@ -419,7 +454,7 @@ user:
|
|
|
419
454
|
- incorrect operation policy nesting
|
|
420
455
|
- invalid policy property names or values
|
|
421
456
|
- missing 'policies' wrapper in operations
|
|
422
|
-
*
|
|
457
|
+
* Update the spec inline in your response (do not edit a file on disk)
|
|
423
458
|
* Go back to Step 2
|
|
424
459
|
|
|
425
460
|
Continue the validate-fix loop until validation passes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: create
|
|
2
|
-
version: "9.
|
|
2
|
+
version: "9.2.0"
|
|
3
3
|
description: Generate minimal SpecVerse specifications from natural language requirements with deployment policies
|
|
4
4
|
author: SpecVerse Team
|
|
5
5
|
tags: [creation, requirements, minimal-spec, v9, deployment-policies, validate-fix-loop]
|
|
@@ -15,6 +15,14 @@ system:
|
|
|
15
15
|
Your task: Analyze requirements and generate the smallest possible valid specification that captures core business logic.
|
|
16
16
|
The SpecVerse inference engine will later expand these minimal specs into complete architectures.
|
|
17
17
|
|
|
18
|
+
OUTPUT FORMAT (critical):
|
|
19
|
+
- Emit the complete .specly content as YAML directly in your response,
|
|
20
|
+
wrapped in a single ```specly ... ``` code block.
|
|
21
|
+
- Do NOT use Write, Edit, or any file-saving tools — even if available.
|
|
22
|
+
The caller harvests the spec text from your response, not from disk.
|
|
23
|
+
- Do NOT prefix with prose or status updates. Reply with the code block
|
|
24
|
+
as the primary output. Brief commentary AFTER the block is OK.
|
|
25
|
+
|
|
18
26
|
context: |
|
|
19
27
|
CORE PRINCIPLES:
|
|
20
28
|
1. Extract core business entities and their relationships
|
|
@@ -310,7 +318,7 @@ user:
|
|
|
310
318
|
- Use components: (plural) at top level
|
|
311
319
|
- Use snake_case for lifecycle states (NOT kebab-case)
|
|
312
320
|
- Add deployment policies appropriate for scale
|
|
313
|
-
-
|
|
321
|
+
- Output the spec inside a ```specly``` code block in your response (do not write to disk)
|
|
314
322
|
|
|
315
323
|
Step 2: VALIDATE
|
|
316
324
|
- Run: spv validate spec.specly --json
|
|
@@ -336,7 +344,7 @@ user:
|
|
|
336
344
|
- invalid relationship syntax
|
|
337
345
|
- invalid deployment policy structure
|
|
338
346
|
- incorrect operation policy nesting
|
|
339
|
-
*
|
|
347
|
+
* Update the spec inline in your response (do not edit a file on disk)
|
|
340
348
|
* Go back to Step 2
|
|
341
349
|
|
|
342
350
|
Continue the validate-fix loop until validation passes.
|
|
@@ -5,6 +5,8 @@ export declare function resolveProviderId(): ProviderId;
|
|
|
5
5
|
export interface ResolveModelOptions {
|
|
6
6
|
/** Model name override; if omitted, picks a sensible provider default. */
|
|
7
7
|
model?: string;
|
|
8
|
+
/** Per-call timeout (claude-cli provider only). Default 300_000ms. */
|
|
9
|
+
timeout?: number;
|
|
8
10
|
}
|
|
9
11
|
/** Resolve an AI SDK v3 LanguageModel based on environment + options. */
|
|
10
12
|
export declare function resolveModel(options?: ResolveModelOptions): LanguageModelV3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/ai/model-resolver.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAEnF,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,UAAU,CAc9C;AAED,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/ai/model-resolver.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAEnF,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,UAAU,CAc9C;AAED,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAwC/E;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,IAAI,MAAM,CAc/C"}
|
|
@@ -40,7 +40,7 @@ export function resolveModel(options = {}) {
|
|
|
40
40
|
const modelOverride = options.model ?? process.env.SPECVERSE_AI_MODEL;
|
|
41
41
|
switch (provider) {
|
|
42
42
|
case 'claude-cli':
|
|
43
|
-
return claudeCli({ model: modelOverride });
|
|
43
|
+
return claudeCli({ model: modelOverride, timeout: options.timeout });
|
|
44
44
|
case 'anthropic': {
|
|
45
45
|
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
46
46
|
if (!apiKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/ai/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,sEAAsE;AACtE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,OAAO,QAAsB,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,kFAAkF,CACrH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAClD,IAAI,oBAAoB,EAAE;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,WAAW,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/ai/model-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/D;AAmCD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/D;AAmCD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA4GzE"}
|
|
@@ -87,7 +87,9 @@ function flattenPrompt(messages) {
|
|
|
87
87
|
*/
|
|
88
88
|
export function claudeCli(options = {}) {
|
|
89
89
|
const claudePath = options.claudePath || detectClaudePath() || 'claude';
|
|
90
|
-
|
|
90
|
+
// Behavior gen calls are short; analyse calls can take a couple of minutes
|
|
91
|
+
// on larger codebases. 5 minutes is a sane upper bound for either.
|
|
92
|
+
const timeout = options.timeout ?? 300_000;
|
|
91
93
|
const modelId = options.model ?? 'default';
|
|
92
94
|
const sessionId = randomUUID();
|
|
93
95
|
let initialized = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"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"}
|