artifact-graph 0.8.2 → 0.8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.3
4
+
5
+ ### Fixed
6
+
7
+ - Restored the complete npm runtime payload: `dist/cli.js`, ESM/CJS modules, declarations, and
8
+ `contracts/e2e-test/schema.json` are now present in the published tarball. Versions 0.8.0 through
9
+ 0.8.2 omitted these generated entry points and cannot provide the declared CLI or library exports.
10
+
11
+ ### Changed
12
+
13
+ - The release build now rebuilds `dist/`, verifies every `package.json.files` path against the
14
+ release-skill public snapshot, requires every manifest entry point, installs the packed consumer,
15
+ and configures a post-publish CLI smoke check.
16
+
3
17
  ## 0.8.2
4
18
 
5
19
  ### Changed
@@ -0,0 +1,315 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "artifact.e2e-test@1",
4
+ "title": "Artifact Contract: E2E Test Specification",
5
+ "description": "Minimal schema for E2E test specification artifacts",
6
+ "version": "1.0.0",
7
+ "contractIdentity": {
8
+ "major": "artifact.e2e-test@1",
9
+ "authority": "artifact",
10
+ "namespace": "artifact",
11
+ "revisionDigest": "sha256:374b99424519e42b40b621774fb602d62dfa23f48f792095f717bbabbe9e3f2a",
12
+ "relationRules": {
13
+ "derives_from": {
14
+ "allowedTargetTypes": ["scenario", "design", "decision"],
15
+ "min": 1,
16
+ "max": 10,
17
+ "anchorPolicy": "optional"
18
+ },
19
+ "verifies": {
20
+ "allowedTargetTypes": ["feature", "scenario"],
21
+ "min": 1,
22
+ "max": 5,
23
+ "anchorPolicy": "required"
24
+ },
25
+ "implemented_by": {
26
+ "allowedTargetTypes": ["code"],
27
+ "min": 0,
28
+ "max": 5,
29
+ "anchorPolicy": "optional"
30
+ },
31
+ "references": {
32
+ "allowedTargetTypes": ["feature", "scenario", "decision", "design", "e2e_test", "test"],
33
+ "min": 0,
34
+ "max": 20,
35
+ "anchorPolicy": "optional"
36
+ },
37
+ "covers": {
38
+ "allowedTargetTypes": ["feature", "scenario"],
39
+ "min": 0,
40
+ "max": 10,
41
+ "anchorPolicy": "optional"
42
+ }
43
+ },
44
+ "semanticMarkers": {
45
+ "scope": {
46
+ "jsonPointer": "/scope",
47
+ "markdownMarker": "scope",
48
+ "required": true
49
+ },
50
+ "system_boundary": {
51
+ "jsonPointer": "/system_boundary",
52
+ "markdownMarker": "system-boundary",
53
+ "required": true
54
+ },
55
+ "coverage": {
56
+ "jsonPointer": "/coverage",
57
+ "markdownMarker": "coverage",
58
+ "required": true
59
+ },
60
+ "environment_data": {
61
+ "jsonPointer": "/environment_data",
62
+ "markdownMarker": "environment-data",
63
+ "required": true
64
+ },
65
+ "test_cases": {
66
+ "jsonPointer": "/test_cases",
67
+ "markdownMarker": "test-cases",
68
+ "required": true
69
+ },
70
+ "evidence_contract": {
71
+ "jsonPointer": "/evidence_contract",
72
+ "markdownMarker": "evidence-contract",
73
+ "required": true
74
+ }
75
+ }
76
+ },
77
+ "type": "object",
78
+ "required": ["metadata", "scope", "system_boundary", "coverage", "environment_data", "relations", "test_cases", "evidence_contract"],
79
+ "properties": {
80
+ "metadata": {
81
+ "type": "object",
82
+ "required": ["id", "title", "status"],
83
+ "properties": {
84
+ "id": {
85
+ "type": "string",
86
+ "pattern": "^[A-Za-z0-9._-]+:(TC-\\d+[a-z]?|FILE)$"
87
+ },
88
+ "title": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ },
92
+ "status": {
93
+ "type": "string",
94
+ "enum": ["planned", "active", "done", "deprecated"]
95
+ },
96
+ "test_batch": {
97
+ "type": "string"
98
+ }
99
+ },
100
+ "additionalProperties": false
101
+ },
102
+ "scope": {
103
+ "type": "object",
104
+ "required": ["business_goal", "actors"],
105
+ "properties": {
106
+ "business_goal": {
107
+ "type": "string",
108
+ "minLength": 1
109
+ },
110
+ "actors": {
111
+ "type": "array",
112
+ "items": { "type": "string" },
113
+ "minItems": 1
114
+ },
115
+ "system_boundaries": {
116
+ "type": "array",
117
+ "items": { "type": "string" }
118
+ },
119
+ "non_goals": {
120
+ "type": "array",
121
+ "items": { "type": "string" }
122
+ }
123
+ },
124
+ "additionalProperties": false
125
+ },
126
+ "system_boundary": {
127
+ "type": "object",
128
+ "required": ["components"],
129
+ "properties": {
130
+ "components": {
131
+ "type": "array",
132
+ "items": { "type": "string" },
133
+ "minItems": 1
134
+ },
135
+ "external_dependencies": {
136
+ "type": "array",
137
+ "items": { "type": "string" }
138
+ },
139
+ "trust_boundaries": {
140
+ "type": "array",
141
+ "items": { "type": "string" }
142
+ }
143
+ },
144
+ "additionalProperties": false
145
+ },
146
+ "coverage": {
147
+ "type": "object",
148
+ "required": [],
149
+ "properties": {
150
+ "ac_coverage": {
151
+ "type": "object",
152
+ "additionalProperties": {
153
+ "type": "array",
154
+ "items": { "type": "string" }
155
+ }
156
+ },
157
+ "related_scenarios": {
158
+ "type": "array",
159
+ "items": { "type": "string" }
160
+ },
161
+ "related_features": {
162
+ "type": "array",
163
+ "items": { "type": "string" }
164
+ },
165
+ "related_decisions": {
166
+ "type": "array",
167
+ "items": { "type": "string" }
168
+ }
169
+ },
170
+ "additionalProperties": false
171
+ },
172
+ "environment_data": {
173
+ "type": "object",
174
+ "properties": {
175
+ "topology": {
176
+ "type": "string"
177
+ },
178
+ "fixtures": {
179
+ "type": "array",
180
+ "items": { "type": "string" }
181
+ },
182
+ "identities": {
183
+ "type": "array",
184
+ "items": { "type": "string" }
185
+ },
186
+ "isolation_strategy": {
187
+ "type": "string"
188
+ }
189
+ },
190
+ "additionalProperties": false
191
+ },
192
+ "relations": {
193
+ "type": "array",
194
+ "description": "Machine-readable relation declarations: kind, target type/id, optional anchor, and contract-level cardinality rules",
195
+ "minItems": 2,
196
+ "items": {
197
+ "type": "object",
198
+ "required": ["kind", "target_type", "target_id"],
199
+ "properties": {
200
+ "kind": {
201
+ "type": "string",
202
+ "enum": ["derives_from", "verifies", "implemented_by", "references", "covers"]
203
+ },
204
+ "target_type": {
205
+ "type": "string",
206
+ "enum": ["feature", "scenario", "decision", "design", "e2e_test", "test", "code"]
207
+ },
208
+ "target_id": {
209
+ "type": "string",
210
+ "minLength": 1
211
+ },
212
+ "anchor": {
213
+ "type": "string",
214
+ "description": "Optional anchor point (e.g., section marker, line reference)"
215
+ }
216
+ },
217
+ "additionalProperties": false
218
+ }
219
+ },
220
+ "test_cases": {
221
+ "type": "array",
222
+ "items": {
223
+ "$ref": "#/definitions/testCase"
224
+ },
225
+ "minItems": 1
226
+ },
227
+ "evidence_contract": {
228
+ "type": "object",
229
+ "required": ["required_artifacts"],
230
+ "properties": {
231
+ "required_artifacts": {
232
+ "type": "array",
233
+ "items": { "type": "string" },
234
+ "minItems": 1
235
+ },
236
+ "runner_binding": {
237
+ "type": "string"
238
+ },
239
+ "proof_requirements": {
240
+ "type": "array",
241
+ "items": { "type": "string" }
242
+ }
243
+ },
244
+ "additionalProperties": false
245
+ }
246
+ },
247
+ "additionalProperties": false,
248
+ "definitions": {
249
+ "testCase": {
250
+ "type": "object",
251
+ "required": ["case_id", "goal", "preconditions", "actions", "oracles", "cleanup", "priority", "trace_targets"],
252
+ "properties": {
253
+ "case_id": {
254
+ "type": "string",
255
+ "pattern": "^TC-\\d+[a-z]?$"
256
+ },
257
+ "goal": {
258
+ "type": "string",
259
+ "minLength": 1
260
+ },
261
+ "preconditions": {
262
+ "type": "array",
263
+ "items": { "type": "string" },
264
+ "minItems": 1
265
+ },
266
+ "actions": {
267
+ "type": "array",
268
+ "items": {
269
+ "type": "object",
270
+ "required": ["step", "action"],
271
+ "properties": {
272
+ "step": { "type": "integer", "minimum": 1 },
273
+ "action": { "type": "string", "minLength": 1 },
274
+ "expected_result": { "type": "string" }
275
+ },
276
+ "additionalProperties": false
277
+ },
278
+ "minItems": 1
279
+ },
280
+ "oracles": {
281
+ "type": "array",
282
+ "items": {
283
+ "type": "object",
284
+ "required": ["observable", "criterion"],
285
+ "properties": {
286
+ "observable": { "type": "string", "minLength": 1 },
287
+ "criterion": { "type": "string", "minLength": 1 },
288
+ "timeout_ms": { "type": "integer", "minimum": 0 }
289
+ },
290
+ "additionalProperties": false
291
+ },
292
+ "minItems": 1
293
+ },
294
+ "cleanup": {
295
+ "type": "array",
296
+ "items": { "type": "string" }
297
+ },
298
+ "priority": {
299
+ "type": "string",
300
+ "enum": ["critical", "high", "medium", "low"]
301
+ },
302
+ "trace_targets": {
303
+ "type": "array",
304
+ "items": { "type": "string" },
305
+ "minItems": 1
306
+ },
307
+ "path_class": {
308
+ "type": "string",
309
+ "enum": ["happy", "error", "recovery", "edge", "security", "performance"]
310
+ }
311
+ },
312
+ "additionalProperties": false
313
+ }
314
+ }
315
+ }
package/dist/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ interface CliIo {
3
+ cwd?: string;
4
+ stdout?: (chunk: string) => void;
5
+ stderr?: (chunk: string) => void;
6
+ }
7
+ declare function runCli(argv: string[], io?: CliIo): Promise<number>;
8
+
9
+ export { type CliIo, runCli };