agentic-engineering-harness 0.7.0 → 0.8.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/dist/cli.js +17 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +4 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/sdd.js +2 -2
- package/dist/core/sdd.js.map +1 -1
- package/dist/core/types.d.ts +28 -1
- package/dist/delivery/finalize.d.ts +1 -1
- package/dist/delivery/finalize.js +6 -1
- package/dist/delivery/finalize.js.map +1 -1
- package/dist/evidence/graph.d.ts +1 -0
- package/dist/evidence/graph.js +4 -4
- package/dist/evidence/graph.js.map +1 -1
- package/dist/issues/intake.d.ts +1 -1
- package/dist/maturity/inventory.d.ts +30 -0
- package/dist/maturity/inventory.js +53 -0
- package/dist/maturity/inventory.js.map +1 -0
- package/dist/provenance/generate.d.ts +12 -1
- package/dist/provenance/generate.js +86 -10
- package/dist/provenance/generate.js.map +1 -1
- package/dist/providers/validation/bddExecution.d.ts +15 -0
- package/dist/providers/validation/bddExecution.js +107 -0
- package/dist/providers/validation/bddExecution.js.map +1 -0
- package/dist/providers/validation/integrationEnvironment.d.ts +12 -0
- package/dist/providers/validation/integrationEnvironment.js +101 -0
- package/dist/providers/validation/integrationEnvironment.js.map +1 -0
- package/dist/providers/validation/pact.d.ts +15 -0
- package/dist/providers/validation/pact.js +79 -0
- package/dist/providers/validation/pact.js.map +1 -0
- package/dist/providers/validation/protocol.d.ts +7 -0
- package/dist/providers/validation/protocol.js +35 -0
- package/dist/providers/validation/protocol.js.map +1 -0
- package/dist/providers/validation/providerUtils.d.ts +18 -0
- package/dist/providers/validation/providerUtils.js +40 -0
- package/dist/providers/validation/providerUtils.js.map +1 -0
- package/dist/providers/validation/registry.d.ts +21 -0
- package/dist/providers/validation/registry.js +59 -0
- package/dist/providers/validation/registry.js.map +1 -0
- package/dist/providers/validation/reqnroll.d.ts +7 -0
- package/dist/providers/validation/reqnroll.js +50 -0
- package/dist/providers/validation/reqnroll.js.map +1 -0
- package/dist/providers/validation/testExecution.d.ts +15 -0
- package/dist/providers/validation/testExecution.js +122 -0
- package/dist/providers/validation/testExecution.js.map +1 -0
- package/dist/providers/validation/types.d.ts +158 -0
- package/dist/providers/validation/types.js +2 -0
- package/dist/providers/validation/types.js.map +1 -0
- package/dist/spec/openspec.js +12 -7
- package/dist/spec/openspec.js.map +1 -1
- package/dist/validators/gherkin.js +5 -56
- package/dist/validators/gherkin.js.map +1 -1
- package/dist/validators/registry.js +42 -3
- package/dist/validators/registry.js.map +1 -1
- package/dist/validators/toolEvidence.js +2 -2
- package/dist/validators/toolEvidence.js.map +1 -1
- package/dist/validators/types.d.ts +2 -1
- package/docs/ARCHITECTURE.md +60 -2
- package/docs/COMPONENT_MATURITY.md +11 -11
- package/docs/OSS_STACK.md +5 -4
- package/docs/V0.2.md +4 -1
- package/docs/VALIDATION.md +54 -3
- package/docs/VALIDATION_COMPATIBILITY.md +19 -0
- package/docs/component-maturity.json +5 -5
- package/maturity/components.yaml +59 -0
- package/package.json +2 -1
- package/schemas/project.schema.json +2 -2
- package/schemas/validation-result.schema.json +84 -0
- package/templates/project.yaml +1 -0
|
@@ -62,12 +62,12 @@ export function normalizePlaywrightOutput(value) {
|
|
|
62
62
|
}
|
|
63
63
|
export function normalizePactOutput(value) {
|
|
64
64
|
const root = record(value);
|
|
65
|
-
const candidates = [...(Array.isArray(root.interactions) ? root.interactions : []), ...(Array.isArray(root.tests) ? root.tests : []), ...(Array.isArray(root.failures) ? root.failures : [])];
|
|
65
|
+
const candidates = [...(Array.isArray(root.interactions) ? root.interactions : []), ...(Array.isArray(root.interactionResults) ? root.interactionResults : []), ...(Array.isArray(root.tests) ? root.tests : []), ...(Array.isArray(root.failures) ? root.failures : []), ...(Array.isArray(root.errors) ? root.errors : [])];
|
|
66
66
|
return candidates.flatMap((item) => {
|
|
67
67
|
const result = record(item);
|
|
68
68
|
const status = stringValue(result.status ?? result.result);
|
|
69
69
|
const message = stringValue(result.error ?? result.message ?? result.failure);
|
|
70
|
-
if ((!status && !message) || (status && ["passed", "success", "verified"].includes(status.toLocaleLowerCase())))
|
|
70
|
+
if ((!status && !message) || (status && ["ok", "passed", "success", "verified", "true"].includes(status.toLocaleLowerCase())))
|
|
71
71
|
return [];
|
|
72
72
|
const finding = { tool: "pact", kind: "contract-failure", rule: stringValue(result.description ?? result.id ?? result.name), message, status, details: { consumer: result.consumer, provider: result.provider, pact: result.pact } };
|
|
73
73
|
return [{ ...finding, fingerprint: findingFingerprint(finding) }];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolEvidence.js","sourceRoot":"","sources":["../../src/validators/toolEvidence.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAKjC,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7K,MAAM,OAAO,GAA2C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3c,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACjH,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAU,EAAE,CAAC;YAC5I,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,OAAO,GAA2C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClgB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,OAAgB,EAAQ,EAAE;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrF,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,SAAS;oBAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAAC,MAAM,OAAO,GAA2C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,yBAAyB,EAAE,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;oBACtc,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAAE,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAChJ,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"toolEvidence.js","sourceRoot":"","sources":["../../src/validators/toolEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { HarnessProjectConfig, TaskContract, ValidationCheck, ValidatorSpec } from "../core/types.js";
|
|
1
|
+
import type { HarnessProjectConfig, TaskContract, ValidationCheck, ValidationProviderSpec, ValidatorSpec } from "../core/types.js";
|
|
2
2
|
export interface ValidationContext {
|
|
3
3
|
root: string;
|
|
4
4
|
config: HarnessProjectConfig;
|
|
5
5
|
contract: TaskContract;
|
|
6
6
|
spec: ValidatorSpec;
|
|
7
|
+
providerSpec?: ValidationProviderSpec;
|
|
7
8
|
baseRef: string;
|
|
8
9
|
changedFiles: string[];
|
|
9
10
|
}
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -35,11 +35,48 @@ relationships should default to warnings until explicitly promoted.
|
|
|
35
35
|
|
|
36
36
|
Engram is the first memory adapter. The interface is deliberately replaceable by Cognee/Graphiti or another backend.
|
|
37
37
|
|
|
38
|
-
### 7.
|
|
38
|
+
### 7. Validation plane
|
|
39
|
+
|
|
40
|
+
AEH reasons about validation capabilities, not language ecosystems. The
|
|
41
|
+
validation boundary is:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Validation Plane
|
|
45
|
+
|
|
|
46
|
+
+--------------------+--------------------+
|
|
47
|
+
| | |
|
|
48
|
+
v v v
|
|
49
|
+
TestExecution BddExecution IntegrationEnvironment
|
|
50
|
+
Provider Provider Provider
|
|
51
|
+
| | |
|
|
52
|
+
v v v
|
|
53
|
+
project-native Gherkin runner project-native /
|
|
54
|
+
runner adapter OCI environment
|
|
55
|
+
| | |
|
|
56
|
+
+--------------------+--------------------+
|
|
57
|
+
|
|
|
58
|
+
v
|
|
59
|
+
Validation Evidence
|
|
60
|
+
|
|
|
61
|
+
v
|
|
62
|
+
RequirementEvidenceGraph
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`ContractTestingProvider` is an independent capability. Pact is the reference
|
|
66
|
+
adapter, while project-native Pact DSLs remain optional. Providers expose
|
|
67
|
+
`detect`, `doctor`, `plan`, `execute` and `normalize`; normalized results use
|
|
68
|
+
the AEH protocol and retain raw process output as a separate artifact.
|
|
69
|
+
|
|
70
|
+
TaskContracts can declare `verification.capabilities` such as `unit-test`,
|
|
71
|
+
`bdd`, `integration-test` and `contract-test`. Deterministic resolution records
|
|
72
|
+
the selected provider and command; framework detection can select an adapter but
|
|
73
|
+
is not the architecture boundary.
|
|
74
|
+
|
|
75
|
+
### 7a. Gate authority
|
|
39
76
|
|
|
40
77
|
The deterministic harness evaluates build/type/lint/tests, scope, immutable files, API/schema policies, architecture, security and other machine-verifiable constraints.
|
|
41
78
|
|
|
42
|
-
###
|
|
79
|
+
### 7b. Context-efficiency authority
|
|
43
80
|
|
|
44
81
|
`ContextBudgetGateway` is the single controller-owned path for bounded agent context. It retrieves, classifies, selects, deterministically projects, budgets, selectively compresses and delivers a versioned `ContextEnvelope`. Required `VERBATIM` content is never lossy-compressed or character-truncated. Raw evidence remains in an AEH artifact and is available only through an operation/agent-authorized retrieval gateway.
|
|
45
82
|
|
|
@@ -53,6 +90,27 @@ Paseo -> agent process/session/workspace lifecycle
|
|
|
53
90
|
|
|
54
91
|
Serena editing is disabled by default. Headroom does not own TaskContracts, OpenSpec/SDD, structured results, control-plane files, OperationRecords or validation.
|
|
55
92
|
|
|
93
|
+
### Reference stack
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
CONTROL PLANE Paseo
|
|
97
|
+
AGENTS Codex CLI, OpenCode
|
|
98
|
+
KNOWLEDGE Engram, Graphify
|
|
99
|
+
CONTEXT Serena, Headroom, RepoMap, ContextBudgetGateway
|
|
100
|
+
SPECIFICATION OpenSpec, AEH SDD, TaskContracts, Gherkin
|
|
101
|
+
VALIDATION TestExecutionProvider, BddExecutionProvider,
|
|
102
|
+
IntegrationEnvironmentProvider, ContractTestingProvider/Pact,
|
|
103
|
+
Playwright, Graphify
|
|
104
|
+
POLICY/SECURITY OPA, OpenGrep, Trivy
|
|
105
|
+
SANDBOX Podman / OCI
|
|
106
|
+
OBSERVABILITY OpenTelemetry, Engineering Evals
|
|
107
|
+
SUPPLY CHAIN SBOM, SLSA, in-toto, Cosign
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Reqnroll, xUnit/`dotnet test`, and Testcontainers are supported compatibility
|
|
111
|
+
adapters documented in [VALIDATION_COMPATIBILITY.md](VALIDATION_COMPATIBILITY.md);
|
|
112
|
+
none is a core architecture requirement.
|
|
113
|
+
|
|
56
114
|
### 8. Policy
|
|
57
115
|
|
|
58
116
|
OPA/Rego centralizes reusable allow/deny decisions instead of spreading policy across shell scripts.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Component maturity at current `main`
|
|
2
2
|
|
|
3
3
|
This matrix records the highest level supported by executable code and tests at
|
|
4
|
-
the current revision. The machine-readable
|
|
5
|
-
[`component-maturity.json`](component-maturity.json)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
the current revision. The machine-readable architecture inventory is
|
|
5
|
+
[`component-maturity.json`](component-maturity.json); the validation-plane
|
|
6
|
+
inventory is [`maturity/components.yaml`](../maturity/components.yaml) and is
|
|
7
|
+
bounded by `src/maturity/inventory.ts`. Arbitrary evidence strings cannot
|
|
8
|
+
promote a component. A roadmap checkbox means that a capability exists; it is
|
|
9
|
+
not evidence that the capability is production-grade.
|
|
10
10
|
|
|
11
11
|
Levels are cumulative: `DECLARED`, `ADAPTER`, `EXECUTABLE`,
|
|
12
12
|
`WORKFLOW_INTEGRATED`, `DOGFOODED`, `EVAL_VALIDATED`, `PRODUCTION_GRADE`.
|
|
@@ -21,12 +21,12 @@ Levels are cumulative: `DECLARED`, `ADAPTER`, `EXECUTABLE`,
|
|
|
21
21
|
| OpenSpec | WORKFLOW_INTEGRATED | `src/spec`, OpenSpec bridge tests |
|
|
22
22
|
| AEH SDD | WORKFLOW_INTEGRATED | `src/core/sdd.ts`, SDD tests |
|
|
23
23
|
| TaskContracts | WORKFLOW_INTEGRATED | contract/seal and run tests |
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
24
|
+
| Project-Native Test Execution | WORKFLOW_INTEGRATED | Node/Python provider contract and normalized evidence |
|
|
25
|
+
| BDD Execution | WORKFLOW_INTEGRATED | two independent Gherkin runners normalize scenarios |
|
|
26
|
+
| Integration Environment | EXECUTABLE | explicit lifecycle provider contract; OCI lane is capability-gated |
|
|
27
|
+
| Contract Testing / Pact | EXECUTABLE | actual local Pact verifier and normalized evidence graph |
|
|
28
|
+
| Gherkin | WORKFLOW_INTEGRATED | runner-neutral BDD provider and scenario evidence |
|
|
28
29
|
| Playwright | WORKFLOW_INTEGRATED | pinned Chromium JSON-reporter contract and normalized browser evidence adapter |
|
|
29
|
-
| Pact | ADAPTER | normalized contract evidence adapter; consumer runtime remains external |
|
|
30
30
|
| OPA | WORKFLOW_INTEGRATED | typed execution identity and Rego policy path |
|
|
31
31
|
| Opengrep | WORKFLOW_INTEGRATED | pinned CLI JSON contract and normalized security findings |
|
|
32
32
|
| Trivy | WORKFLOW_INTEGRATED | pinned CLI JSON contract, strict full-stack validation, normalized vulnerability/secret/misconfiguration findings and SBOM |
|
package/docs/OSS_STACK.md
CHANGED
|
@@ -14,22 +14,23 @@ Reference components:
|
|
|
14
14
|
| Semantic code retrieval | Serena 1.6.1 (`serena-agent`) | Configured local OSS symbol lookup, references and targeted repository navigation; not memory authority |
|
|
15
15
|
| Context compression | Headroom 0.28.0 | Configured local OSS selective compression after AEH projection; no hosted Headroom service required |
|
|
16
16
|
| Specification | SDD + Git | Versioned normative intent |
|
|
17
|
-
|
|
|
17
|
+
| Validation | TestExecutionProvider, BddExecutionProvider, IntegrationEnvironmentProvider | Capability-based project-native validation |
|
|
18
|
+
| BDD acceptance | Gherkin | Runner-neutral executable business behavior |
|
|
18
19
|
| Policy | OPA/Rego | Centralized allow/deny decisions |
|
|
19
20
|
| Static/security analysis | Opengrep | OSS rules/dataflow checks |
|
|
20
21
|
| Vulnerability/SBOM | Trivy | Dependency, secret, IaC and SBOM scanning |
|
|
21
|
-
| Integration
|
|
22
|
+
| Integration environments | Podman / OCI or project-native provider | Explicit ephemeral dependencies and readiness; Testcontainers is optional |
|
|
22
23
|
| Web E2E | Playwright | Deterministic browser acceptance and traces |
|
|
23
|
-
| Consumer contracts | Pact/OpenAPI checks |
|
|
24
|
+
| Consumer contracts | ContractTestingProvider / Pact / OpenAPI checks | Local verifier-backed compatibility evidence |
|
|
24
25
|
| Worker isolation | Podman rootless | Ephemeral least-privilege execution |
|
|
25
26
|
| Telemetry | OpenTelemetry | Portable traces/metrics/log semantics |
|
|
26
27
|
| Provenance | Cosign + in-toto | Artifact signing and attestations |
|
|
28
|
+
| Harness quality | Engineering eval corpus | Reproducible comparison of system variants |
|
|
27
29
|
|
|
28
30
|
Runtime notes: Serena is the semantic repository adapter and Engram is the
|
|
29
31
|
historical memory adapter; neither is interchangeable with the other. Headroom
|
|
30
32
|
is controller-side compression and is intentionally not exposed as a general
|
|
31
33
|
agent MCP surface. All three remain optional/configurable where the project
|
|
32
34
|
profile permits it, with required providers failing closed.
|
|
33
|
-
| Harness quality | Engineering eval corpus | Reproducible comparison of system variants |
|
|
34
35
|
|
|
35
36
|
Do not add a mandatory SaaS or paid-license dependency because it is convenient. Any hosted integration must be optional behind an interface and have a documented local/OSS path. Serena and Headroom are AEH-managed local tools, pinned through the project toolchain; Headroom's agent-wrapping lifecycle is deliberately not used.
|
package/docs/V0.2.md
CHANGED
|
@@ -25,7 +25,10 @@ A requirement is valid only when its canonical ID appears in `proposal.md`, `spe
|
|
|
25
25
|
|
|
26
26
|
## Executable acceptance
|
|
27
27
|
|
|
28
|
-
`adapter:
|
|
28
|
+
`adapter: bdd` resolves a configured or detected `BddExecutionProvider` and
|
|
29
|
+
normalizes runner output. Reqnroll is available only as an optional .NET
|
|
30
|
+
compatibility provider; generic Gherkin validation has no `.csproj`, Reqnroll or
|
|
31
|
+
`dotnet test` assumption.
|
|
29
32
|
|
|
30
33
|
## Worker execution
|
|
31
34
|
|
package/docs/VALIDATION.md
CHANGED
|
@@ -2,17 +2,68 @@
|
|
|
2
2
|
|
|
3
3
|
LLM output is an untrusted proposal. Acceptance is based on executable evidence.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Capability registry
|
|
6
|
+
|
|
7
|
+
The normative unit of validation is a capability. TaskContracts should prefer:
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
verification:
|
|
11
|
+
capabilities:
|
|
12
|
+
- unit-test
|
|
13
|
+
- bdd
|
|
14
|
+
- contract-test
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The `ValidationCapabilityRegistry` resolves a capability using explicit project
|
|
18
|
+
configuration first, deterministic project detection second, and a generic
|
|
19
|
+
configured command as fallback. A provider never needs to know whether the
|
|
20
|
+
project is Node, Python, JVM, .NET, Go, Rust, Ruby or PHP.
|
|
21
|
+
|
|
22
|
+
Built-in provider contracts expose `detect`, `doctor`, `plan`, `execute` and
|
|
23
|
+
`normalize`:
|
|
24
|
+
|
|
25
|
+
- `TestExecutionProvider` normalizes project-native test results into
|
|
26
|
+
`TestExecutionResult`.
|
|
27
|
+
- `BddExecutionProvider` keeps Gherkin while accepting Cucumber, Behave,
|
|
28
|
+
pytest-bdd, Reqnroll or another compatible runner.
|
|
29
|
+
- `IntegrationEnvironmentProvider` owns explicit ephemeral dependency
|
|
30
|
+
lifecycle, readiness, test execution and cleanup.
|
|
31
|
+
- `ContractTestingProvider` runs an actual verifier; Pact is the reference
|
|
32
|
+
adapter and a local pact file is sufficient.
|
|
33
|
+
|
|
34
|
+
Normalized results include provider, command/runtime, status, counts, duration,
|
|
35
|
+
failures, source locations, requirement IDs and a bounded raw-artifact
|
|
36
|
+
reference. Bulk stdout/stderr is persisted separately and is not placed in the
|
|
37
|
+
validation report.
|
|
38
|
+
|
|
39
|
+
## Validator registry
|
|
6
40
|
|
|
7
41
|
Project and TaskContract validators share a `ValidatorSpec` with `id`, `adapter`, optional `command`, `required`, timeout/working-directory and adapter-specific `options`.
|
|
8
42
|
|
|
9
|
-
Supported
|
|
43
|
+
Supported adapters include `test-execution`, `bdd`/`gherkin`,
|
|
44
|
+
`integration-environment`, `contract-test`/`pact`, `graphify`, `opengrep`,
|
|
45
|
+
`trivy`, `playwright`, `openapi` and `command`.
|
|
10
46
|
|
|
11
47
|
A missing optional external tool returns WARN. A missing required tool returns FAIL. An installed tool that reports defects returns FAIL; `required` controls availability, not whether findings are ignored.
|
|
12
48
|
|
|
13
49
|
## Requirement mapping
|
|
14
50
|
|
|
15
|
-
Requirements may reference a validator by
|
|
51
|
+
Requirements may reference a validator by ID or a capability, e.g.:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
requirements:
|
|
55
|
+
- id: API-BEHAVIOR
|
|
56
|
+
capabilities: [bdd, contract-test]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`aeh sdd validate` rejects unresolved references. Normalized test, BDD and Pact
|
|
60
|
+
results are attached to the same `ValidationReport` and
|
|
61
|
+
`RequirementEvidenceGraph`.
|
|
62
|
+
|
|
63
|
+
Integration environment policy is explicit. Providers must declare network
|
|
64
|
+
scope, ephemerality and any mounts/credentials; privileged containers, host
|
|
65
|
+
networking, unrestricted host mounts and Docker socket access are rejected by
|
|
66
|
+
default.
|
|
16
67
|
|
|
17
68
|
## OPA evidence
|
|
18
69
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Validation compatibility matrix
|
|
2
|
+
|
|
3
|
+
This is a support matrix for project-native adapters, not the AEH reference
|
|
4
|
+
architecture. AEH consumes capability contracts and normalized evidence.
|
|
5
|
+
|
|
6
|
+
| Ecosystem | TestExecutionProvider | BddExecutionProvider | IntegrationEnvironmentProvider |
|
|
7
|
+
| --- | --- | --- | --- |
|
|
8
|
+
| Node.js | Vitest, Jest, `node:test` | Cucumber-JS | Testcontainers Node, Docker/Podman/OCI, project command |
|
|
9
|
+
| Python | pytest, `unittest` | pytest-bdd, Behave | Testcontainers Python, Docker/Podman/OCI, project command |
|
|
10
|
+
| JVM | JUnit, Maven, Gradle | Cucumber-JVM | Testcontainers Java, Docker/Podman/OCI, project command |
|
|
11
|
+
| .NET | xUnit, NUnit, `dotnet test` | Reqnroll | Testcontainers .NET, Docker/Podman/OCI, project command |
|
|
12
|
+
| Go | `go test` | project-compatible provider | Testcontainers Go, Docker/Podman/OCI, project command |
|
|
13
|
+
| Rust | `cargo test` | project-compatible provider | Testcontainers Rust, Docker/Podman/OCI, project command |
|
|
14
|
+
| Ruby | RSpec | Cucumber-Ruby | Testcontainers Ruby, Docker/Podman/OCI, project command |
|
|
15
|
+
|
|
16
|
+
Reqnroll is an optional .NET BDD provider. xUnit and `dotnet test` are optional
|
|
17
|
+
.NET test providers. Testcontainers is a recommended project-native
|
|
18
|
+
implementation where its ecosystem supports it; AEH does not require any of
|
|
19
|
+
these technologies.
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
"OpenSpec": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/spec", "tests/openSpecBridge.test.ts"] },
|
|
11
11
|
"AEH SDD": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/core/sdd.ts", "tests/sdd.test.ts"] },
|
|
12
12
|
"TaskContracts": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/core/seal.ts", "tests/verifyRoots.test.ts"] },
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
13
|
+
"Project-Native Test Execution": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/providers/validation/testExecution.ts", "tests/validationProviders.test.ts"] },
|
|
14
|
+
"BDD Execution": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/providers/validation/bddExecution.ts", "tests/validationProviders.test.ts"] },
|
|
15
|
+
"Integration Environment": { "claimed": "EXECUTABLE", "evidence": ["src/providers/validation/integrationEnvironment.ts", "tests/validationProviders.test.ts"] },
|
|
16
|
+
"Contract Testing / Pact": { "claimed": "EXECUTABLE", "evidence": ["src/providers/validation/pact.ts", "tests/validationProviders.test.ts"] },
|
|
17
|
+
"Gherkin": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/validators/gherkin.ts", "tests/validationProviders.test.ts"] },
|
|
17
18
|
"Playwright": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/validators/external.ts", "src/validators/toolEvidence.ts", "tests/providerContracts.test.ts", ".github/workflows/ci.yml"] },
|
|
18
|
-
"Pact": { "claimed": "ADAPTER", "evidence": ["src/validators/toolEvidence.ts"] },
|
|
19
19
|
"OPA": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/validators/opa.ts", "tests/architectureIntegrationContracts.test.ts"] },
|
|
20
20
|
"Opengrep": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/validators/external.ts", "src/validators/toolEvidence.ts", "tests/providerContracts.test.ts", ".github/workflows/ci.yml"] },
|
|
21
21
|
"Trivy": { "claimed": "WORKFLOW_INTEGRATED", "evidence": ["src/validators/external.ts", "src/validators/toolEvidence.ts", "tests/providerContracts.test.ts", "src/evals/fullStack.ts", ".github/workflows/ci.yml"] },
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
levels:
|
|
3
|
+
- DECLARED
|
|
4
|
+
- ADAPTER
|
|
5
|
+
- EXECUTABLE
|
|
6
|
+
- WORKFLOW_INTEGRATED
|
|
7
|
+
- DOGFOODED
|
|
8
|
+
- EVAL_VALIDATED
|
|
9
|
+
- PRODUCTION_GRADE
|
|
10
|
+
components:
|
|
11
|
+
- component: Project-Native Test Execution
|
|
12
|
+
claimed: WORKFLOW_INTEGRATED
|
|
13
|
+
evidence:
|
|
14
|
+
- { type: adapter-source, id: provider:test-execution, path: src/providers/validation/testExecution.ts }
|
|
15
|
+
- { type: unit-contract, id: contract:test-execution, path: tests/validationProviders.test.ts }
|
|
16
|
+
- { type: provider-contract, id: provider-contract:test-execution, path: tests/validationProviders.test.ts }
|
|
17
|
+
- { type: workflow-test, id: workflow:test-execution, path: tests/validationProviders.test.ts }
|
|
18
|
+
- component: BDD Execution
|
|
19
|
+
claimed: WORKFLOW_INTEGRATED
|
|
20
|
+
evidence:
|
|
21
|
+
- { type: adapter-source, id: provider:bdd, path: src/providers/validation/bddExecution.ts }
|
|
22
|
+
- { type: unit-contract, id: contract:bdd, path: tests/validationProviders.test.ts }
|
|
23
|
+
- { type: provider-contract, id: provider-contract:bdd, path: tests/validationProviders.test.ts }
|
|
24
|
+
- { type: workflow-test, id: workflow:bdd, path: tests/validationProviders.test.ts }
|
|
25
|
+
- component: Integration Environment
|
|
26
|
+
claimed: EXECUTABLE
|
|
27
|
+
evidence:
|
|
28
|
+
- { type: adapter-source, id: provider:integration-environment, path: src/providers/validation/integrationEnvironment.ts }
|
|
29
|
+
- { type: unit-contract, id: contract:integration-environment, path: tests/validationProviders.test.ts }
|
|
30
|
+
- { type: provider-contract, id: provider-contract:integration-environment, path: tests/validationProviders.test.ts }
|
|
31
|
+
- component: Contract Testing / Pact
|
|
32
|
+
claimed: EXECUTABLE
|
|
33
|
+
evidence:
|
|
34
|
+
- { type: adapter-source, id: provider:pact, path: src/providers/validation/pact.ts }
|
|
35
|
+
- { type: unit-contract, id: contract:pact, path: tests/validationProviders.test.ts }
|
|
36
|
+
- { type: provider-contract, id: provider-contract:pact, path: tests/fixtures/pact/pact.json }
|
|
37
|
+
- component: Gherkin
|
|
38
|
+
claimed: WORKFLOW_INTEGRATED
|
|
39
|
+
evidence:
|
|
40
|
+
- { type: documentation, id: docs:gherkin, path: docs/VALIDATION.md }
|
|
41
|
+
- { type: design, id: design:gherkin, path: docs/ARCHITECTURE.md }
|
|
42
|
+
- { type: adapter-source, id: provider:gherkin, path: src/validators/gherkin.ts }
|
|
43
|
+
- { type: unit-contract, id: contract:gherkin, path: tests/validationProviders.test.ts }
|
|
44
|
+
- { type: provider-contract, id: provider-contract:gherkin, path: tests/validationProviders.test.ts }
|
|
45
|
+
- { type: workflow-test, id: workflow:gherkin, path: tests/validationProviders.test.ts }
|
|
46
|
+
- component: Pact
|
|
47
|
+
claimed: EXECUTABLE
|
|
48
|
+
evidence:
|
|
49
|
+
- { type: adapter-source, id: adapter:pact, path: src/providers/validation/pact.ts }
|
|
50
|
+
- { type: unit-contract, id: contract:pact-normalization, path: tests/validationProviders.test.ts }
|
|
51
|
+
- { type: provider-contract, id: provider-contract:pact-verifier, path: tests/fixtures/pact/pact.json }
|
|
52
|
+
- component: Trivy SBOM
|
|
53
|
+
claimed: EXECUTABLE
|
|
54
|
+
evidence:
|
|
55
|
+
- { type: documentation, id: docs:sbom, path: docs/SECURITY.md }
|
|
56
|
+
- { type: design, id: design:sbom, path: docs/ARCHITECTURE.md }
|
|
57
|
+
- { type: adapter-source, id: provenance:sbom, path: src/provenance/generate.ts }
|
|
58
|
+
- { type: unit-contract, id: contract:sbom, path: tests/provenance.test.ts }
|
|
59
|
+
- { type: provider-contract, id: provider-contract:sbom, path: tests/provenance.test.ts }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-engineering-harness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "OSS-first engineering harness for deterministic, spec-driven, issue-driven, audit-governed and orchestration-first multi-agent software delivery.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"presets",
|
|
14
14
|
"policies",
|
|
15
15
|
"schemas",
|
|
16
|
+
"maturity",
|
|
16
17
|
"skills",
|
|
17
18
|
"docs",
|
|
18
19
|
"scripts/headroom-bridge.py",
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
"organization": { "type": "object", "properties": { "policyBundles": { "type": "object", "properties": { "cacheDir": { "type": "string" }, "required": { "type": "boolean" }, "sources": { "type": "array", "items": { "$ref": "#/$defs/policyBundleSource" } } } } } },
|
|
66
66
|
"distributed": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "provider": { "type": "string" }, "queueDir": { "type": "string" }, "endpoint": { "type": "string", "format": "uri" }, "tokenEnv": { "type": "string" }, "pollIntervalMs": { "type": "integer", "minimum": 1 }, "leaseSeconds": { "type": "integer", "minimum": 1 }, "workerId": { "type": "string" } } },
|
|
67
67
|
"sdd": { "type": "object", "properties": { "specsDir": { "type": "string" }, "contractsDir": { "type": "string" }, "reportsDir": { "type": "string" }, "repairsDir": { "type": "string" }, "runsDir": { "type": "string" }, "authoring": { "type": "object", "properties": { "provider": { "type": "string", "minLength": 1 }, "schema": { "type": "string", "minLength": 1 }, "managerAgent": { "type": "string", "minLength": 1 } } } } },
|
|
68
|
-
"validation": { "type": "object" },
|
|
68
|
+
"validation": { "type": "object", "properties": { "baseRef": { "type": "string" }, "commands": { "type": "array" }, "validators": { "type": "array" }, "providers": { "type": "array", "items": { "type": "object", "required": ["id", "capability", "provider"], "properties": { "id": { "type": "string", "minLength": 1 }, "capability": { "type": "string", "minLength": 1 }, "provider": { "type": "string", "minLength": 1 }, "command": { "type": "string" }, "required": { "type": "boolean" }, "timeoutSeconds": { "type": "integer", "minimum": 1 }, "workingDirectory": { "type": "string" }, "options": { "type": "object" } } } }, "frozenPaths": { "type": "array" }, "requireSeal": { "type": "boolean" } } },
|
|
69
69
|
"security": { "type": "object", "properties": { "sandbox": { "type": "object", "properties": { "provider": { "type": "string" }, "required": { "type": "boolean" }, "image": { "type": "string" }, "imageDigest": { "type": "string" }, "network": { "type": "boolean" }, "extraArgs": { "type": "array", "items": { "type": "string" } }, "readOnlyRoot": { "type": "boolean" }, "ephemeralHome": { "type": "boolean" }, "noNewPrivileges": { "type": "boolean" }, "capDropAll": { "type": "boolean" }, "pidsLimit": { "type": "integer", "minimum": 1 }, "memory": { "type": "string" }, "cpus": { "type": "number", "exclusiveMinimum": 0 }, "tmpfs": { "type": "array", "items": { "type": "string" } }, "forceForRisks": { "type": "array", "items": { "enum": ["low", "medium", "high"] } }, "environmentAllowlist": { "type": "array", "items": { "type": "string" } }, "credentialEnvAllowlist": { "type": "array", "items": { "type": "string" } } } }, "tools": { "type": "array", "items": { "type": "string" } } } },
|
|
70
70
|
"telemetry": { "type": "object" },
|
|
71
71
|
"evals": { "type": "object", "properties": { "corpusDir": { "type": "string" }, "resultsDir": { "type": "string" }, "workspacesDir": { "type": "string" }, "defaultRuns": { "type": "integer", "minimum": 1 }, "confidenceLevel": { "type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 1 } } },
|
|
72
|
-
"provenance": { "type": "object" }
|
|
72
|
+
"provenance": { "type": "object", "properties": { "outputDir": { "type": "string" }, "buildType": { "type": "string" }, "cosignKey": { "type": "string" }, "required": { "type": "boolean" }, "sbom": { "type": "object", "properties": { "required": { "type": "boolean" }, "command": { "type": "string" } } }, "signing": { "type": "object", "properties": { "required": { "type": "boolean" }, "key": { "type": "string" } } }, "verification": { "type": "object", "properties": { "required": { "type": "boolean" }, "publicKey": { "type": "string" } } } } }
|
|
73
73
|
},
|
|
74
74
|
"$defs": {
|
|
75
75
|
"severityNumbers": { "type": "object", "properties": { "critical": { "type": "integer", "minimum": 0 }, "high": { "type": "integer", "minimum": 0 }, "medium": { "type": "integer", "minimum": 0 }, "low": { "type": "integer", "minimum": 0 }, "note": { "type": "integer", "minimum": 0 } } },
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/JamesMorales04/agentic-engineering-harness/schemas/validation-result.schema.json",
|
|
4
|
+
"title": "AEH normalized validation result",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"title": "TestExecutionResult",
|
|
8
|
+
"type": "object",
|
|
9
|
+
"required": ["version", "provider", "capability", "command", "status", "summary", "failures", "requirements", "rawArtifact"],
|
|
10
|
+
"properties": {
|
|
11
|
+
"version": { "const": 1 },
|
|
12
|
+
"provider": { "type": "string" },
|
|
13
|
+
"capability": { "enum": ["unit-test", "integration-test", "bdd", "contract-test"] },
|
|
14
|
+
"command": { "type": "string" },
|
|
15
|
+
"runtime": { "type": "string" },
|
|
16
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
17
|
+
"summary": { "$ref": "#/$defs/testSummary" },
|
|
18
|
+
"failures": { "type": "array", "items": { "$ref": "#/$defs/failure" } },
|
|
19
|
+
"requirements": { "type": "array", "items": { "type": "string" } },
|
|
20
|
+
"rawArtifact": { "type": "string" }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"title": "BddExecutionResult",
|
|
25
|
+
"type": "object",
|
|
26
|
+
"required": ["version", "provider", "capability", "command", "status", "scenarios", "summary", "rawArtifact"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"version": { "const": 1 },
|
|
29
|
+
"provider": { "type": "string" },
|
|
30
|
+
"capability": { "const": "bdd" },
|
|
31
|
+
"command": { "type": "string" },
|
|
32
|
+
"runtime": { "type": "string" },
|
|
33
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
34
|
+
"scenarios": { "type": "array" },
|
|
35
|
+
"summary": { "$ref": "#/$defs/testSummary" },
|
|
36
|
+
"rawArtifact": { "type": "string" }
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "IntegrationEnvironmentResult",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"required": ["version", "provider", "capability", "status", "requirements", "lifecycle", "rawArtifact"],
|
|
43
|
+
"properties": {
|
|
44
|
+
"version": { "const": 1 },
|
|
45
|
+
"provider": { "type": "string" },
|
|
46
|
+
"capability": { "const": "integration-test" },
|
|
47
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
48
|
+
"requirements": { "type": "array" },
|
|
49
|
+
"lifecycle": { "type": "object", "required": ["provisioned", "ready", "tested", "cleaned", "durationMs"] },
|
|
50
|
+
"rawArtifact": { "type": "string" }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"title": "ContractVerificationResult",
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["version", "provider", "capability", "status", "verifierCommand", "summary", "failures", "requirements", "rawArtifact"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"version": { "const": 1 },
|
|
59
|
+
"provider": { "type": "string" },
|
|
60
|
+
"capability": { "const": "contract-test" },
|
|
61
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
62
|
+
"verifierCommand": { "type": "string" },
|
|
63
|
+
"pactFile": { "type": "string" },
|
|
64
|
+
"providerUrl": { "type": "string" },
|
|
65
|
+
"summary": { "type": "object", "required": ["total", "passed", "failed", "durationMs"] },
|
|
66
|
+
"failures": { "type": "array", "items": { "$ref": "#/$defs/failure" } },
|
|
67
|
+
"requirements": { "type": "array", "items": { "type": "string" } },
|
|
68
|
+
"rawArtifact": { "type": "string" }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"$defs": {
|
|
73
|
+
"testSummary": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": ["total", "passed", "failed", "skipped", "durationMs"],
|
|
76
|
+
"properties": { "total": { "type": "integer", "minimum": 0 }, "passed": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 }, "skipped": { "type": "integer", "minimum": 0 }, "durationMs": { "type": "number", "minimum": 0 } }
|
|
77
|
+
},
|
|
78
|
+
"failure": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"required": ["message"],
|
|
81
|
+
"properties": { "id": { "type": "string" }, "message": { "type": "string" }, "source": { "type": "object" } }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|