@qontinui/shared-types 0.2.5 → 0.3.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/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/ui-bridge-ir.cjs +30 -33
- package/dist/ui-bridge-ir.cjs.map +1 -1
- package/dist/ui-bridge-ir.d.cts +98 -84
- package/dist/ui-bridge-ir.d.ts +98 -84
- package/dist/ui-bridge-ir.js +30 -33
- package/dist/ui-bridge-ir.js.map +1 -1
- package/package.json +1 -1
- package/src/generated/AssertionMiss.d.ts +22 -0
- package/src/generated/AssertionOutcome.d.ts +30 -0
- package/src/generated/AssertionResult.d.ts +38 -0
- package/src/generated/AssertionScope.d.ts +37 -0
- package/src/generated/AssertionSeverityCounts.d.ts +28 -0
- package/src/generated/BridgeFingerprint.d.ts +40 -0
- package/src/generated/CandidateMiss.d.ts +39 -0
- package/src/generated/ConjunctEvaluation.d.ts +24 -0
- package/src/generated/ConjunctRule.d.ts +55 -0
- package/src/generated/FieldDiff.d.ts +33 -0
- package/src/generated/IrAssertion.d.ts +26 -0
- package/src/generated/IrAssertionTarget.d.ts +28 -0
- package/src/generated/IrCrossRef.d.ts +16 -0
- package/src/generated/IrElementCriteria.d.ts +29 -0
- package/src/generated/IrGroup.d.ts +33 -0
- package/src/generated/IrMetadata.d.ts +15 -0
- package/src/generated/IrPageSpec.d.ts +51 -0
- package/src/generated/IrProvenance.d.ts +28 -0
- package/src/generated/IrState.d.ts +36 -0
- package/src/generated/IrStateCondition.d.ts +19 -0
- package/src/generated/IrTransition.d.ts +34 -0
- package/src/generated/IrTransitionAction.d.ts +17 -0
- package/src/generated/IrWaitSpec.d.ts +22 -0
- package/src/generated/LegacyAssertion.d.ts +22 -0
- package/src/generated/LegacyAssertionTarget.d.ts +23 -0
- package/src/generated/LegacyGroup.d.ts +19 -0
- package/src/generated/LegacyProcessStep.d.ts +16 -0
- package/src/generated/LegacySpec.d.ts +30 -0
- package/src/generated/LegacyStateMachine.d.ts +17 -0
- package/src/generated/LegacyStateMachineState.d.ts +21 -0
- package/src/generated/LegacyTransition.d.ts +20 -0
- package/src/generated/MatchOutcome.d.ts +11 -0
- package/src/generated/MatchedElement.d.ts +28 -0
- package/src/generated/MissReason.d.ts +20 -0
- package/src/generated/PolicyConjunct.d.ts +22 -0
- package/src/generated/PolicyEvaluation.d.ts +22 -0
- package/src/generated/PolicyStatus.d.ts +11 -0
- package/src/generated/ProposalStatus.d.ts +13 -0
- package/src/generated/RecommendedState.d.ts +23 -0
- package/src/generated/SpecCheckConfidence.d.ts +15 -0
- package/src/generated/SpecCheckPolicy.d.ts +23 -0
- package/src/generated/SpecCheckResult.d.ts +66 -0
- package/src/generated/SpecCheckStepConfig.d.ts +38 -0
- package/src/generated/SpecCheckSummary.d.ts +28 -0
- package/src/generated/SpecValidation.d.ts +27 -0
- package/src/generated/StateMatchResult.d.ts +36 -0
- package/src/generated/UIBridgeElement.d.ts +28 -0
- package/src/generated/index.ts +46 -0
- package/src/index.ts +5 -0
- package/src/ui-bridge-ir/__tests__/projection.test.ts +114 -22
- package/src/ui-bridge-ir/adapter.ts +7 -1
- package/src/ui-bridge-ir/ir.schema.json +8 -4
- package/src/ui-bridge-ir/primitives.ts +8 -0
- package/src/ui-bridge-ir/projection.ts +34 -57
- package/src/ui-bridge-ir/state.ts +9 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { AssertionMiss } from './AssertionMiss';
|
|
9
|
+
import type { AssertionOutcome } from './AssertionOutcome';
|
|
10
|
+
import type { CandidateMiss } from './CandidateMiss';
|
|
11
|
+
import type { FieldDiff } from './FieldDiff';
|
|
12
|
+
import type { MatchedElement } from './MatchedElement';
|
|
13
|
+
import type { MissReason } from './MissReason';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Per-assertion evaluation result wrapper.
|
|
17
|
+
*/
|
|
18
|
+
export interface AssertionResult {
|
|
19
|
+
/**
|
|
20
|
+
* Identifier of the IR assertion.
|
|
21
|
+
*/
|
|
22
|
+
assertionId: string;
|
|
23
|
+
/**
|
|
24
|
+
* Free-form category — `"layout"`, `"a11y"`, etc.
|
|
25
|
+
*/
|
|
26
|
+
category: string;
|
|
27
|
+
/**
|
|
28
|
+
* Snapshot of `IrAssertion.description`.
|
|
29
|
+
*/
|
|
30
|
+
description: string;
|
|
31
|
+
outcome: AssertionOutcome;
|
|
32
|
+
/**
|
|
33
|
+
* Free-form severity string — `"critical"` / `"error"` / `"warning"`
|
|
34
|
+
* / `"info"`. Free-form so policy adapters can introduce new tiers
|
|
35
|
+
* without bumping the schema.
|
|
36
|
+
*/
|
|
37
|
+
severity: string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Filter narrowing which assertions / states a policy conjunct applies
|
|
10
|
+
* to. Empty fields (default) mean "everything"; `assertion_ids` uses an
|
|
11
|
+
* explicit `Option` to distinguish "everything" (`None`) from "none"
|
|
12
|
+
* (`Some([])`).
|
|
13
|
+
*/
|
|
14
|
+
export interface AssertionScope {
|
|
15
|
+
/**
|
|
16
|
+
* Restrict to a specific set of assertion IDs. `None` = all
|
|
17
|
+
* assertions; `Some([])` = no assertions (a deliberately empty
|
|
18
|
+
* scope — useful for testing policies).
|
|
19
|
+
*/
|
|
20
|
+
assertionIds?: string[] | null;
|
|
21
|
+
/**
|
|
22
|
+
* Restrict to these category values. Empty = all categories.
|
|
23
|
+
*/
|
|
24
|
+
categories?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Restrict to these group identifiers. Empty = all groups.
|
|
27
|
+
*/
|
|
28
|
+
groups?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Restrict to these severity values. Empty = all severities.
|
|
31
|
+
*/
|
|
32
|
+
severities?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Restrict to these state IDs. Empty = all states.
|
|
35
|
+
*/
|
|
36
|
+
states?: string[];
|
|
37
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Counts of assertion failures bucketed by severity.
|
|
10
|
+
*/
|
|
11
|
+
export interface AssertionSeverityCounts {
|
|
12
|
+
/**
|
|
13
|
+
* Number of `critical` failures.
|
|
14
|
+
*/
|
|
15
|
+
critical: number;
|
|
16
|
+
/**
|
|
17
|
+
* Number of `error` failures.
|
|
18
|
+
*/
|
|
19
|
+
error: number;
|
|
20
|
+
/**
|
|
21
|
+
* Number of `info` failures.
|
|
22
|
+
*/
|
|
23
|
+
info: number;
|
|
24
|
+
/**
|
|
25
|
+
* Number of `warning` failures.
|
|
26
|
+
*/
|
|
27
|
+
warning: number;
|
|
28
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Fingerprint of the bridge snapshot's app/route/version context — §5.8 G3.
|
|
10
|
+
*
|
|
11
|
+
* Apps may surface additional fingerprint fields in future; new fields
|
|
12
|
+
* require a schema bump (`deny_unknown_fields` is set).
|
|
13
|
+
*/
|
|
14
|
+
export interface BridgeFingerprint {
|
|
15
|
+
/**
|
|
16
|
+
* Stable application identifier (e.g. `"qontinui-web"`,
|
|
17
|
+
* `"qontinui-runner"`).
|
|
18
|
+
*/
|
|
19
|
+
appId: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional app version string (semver or git short-SHA).
|
|
22
|
+
*/
|
|
23
|
+
appVersion?: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Optional UI Bridge SDK version.
|
|
26
|
+
*/
|
|
27
|
+
bridgeVersion?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* Number of elements visible in the snapshot.
|
|
30
|
+
*/
|
|
31
|
+
elementCount: number;
|
|
32
|
+
/**
|
|
33
|
+
* Optional route path / hash at snapshot time.
|
|
34
|
+
*/
|
|
35
|
+
route?: string | null;
|
|
36
|
+
/**
|
|
37
|
+
* ISO-8601 UTC timestamp when the snapshot was indexed.
|
|
38
|
+
*/
|
|
39
|
+
snapshotTimestamp: string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { FieldDiff } from './FieldDiff';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A near-match candidate — an element that scored above the cut-off but
|
|
12
|
+
* didn't fully match the assertion criteria.
|
|
13
|
+
*/
|
|
14
|
+
export interface CandidateMiss {
|
|
15
|
+
/**
|
|
16
|
+
* UI Bridge element identifier (if exposed).
|
|
17
|
+
*/
|
|
18
|
+
elementId?: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Per-field diffs explaining why the candidate didn't fully match.
|
|
21
|
+
*/
|
|
22
|
+
fieldDiffs?: FieldDiff[];
|
|
23
|
+
/**
|
|
24
|
+
* CSS selector or DOM path identifying the candidate.
|
|
25
|
+
*/
|
|
26
|
+
path: string;
|
|
27
|
+
/**
|
|
28
|
+
* ARIA role of the candidate.
|
|
29
|
+
*/
|
|
30
|
+
role?: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Aggregate match score (0.0..=1.0).
|
|
33
|
+
*/
|
|
34
|
+
score: number;
|
|
35
|
+
/**
|
|
36
|
+
* Visible text of the candidate.
|
|
37
|
+
*/
|
|
38
|
+
text?: string | null;
|
|
39
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { PolicyStatus } from './PolicyStatus';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Per-conjunct evaluation result.
|
|
12
|
+
*/
|
|
13
|
+
export interface ConjunctEvaluation {
|
|
14
|
+
/**
|
|
15
|
+
* Free-form human-readable explanation (e.g.
|
|
16
|
+
* `"3 of 17 assertions failed (max 5)"`).
|
|
17
|
+
*/
|
|
18
|
+
evidence: string;
|
|
19
|
+
/**
|
|
20
|
+
* Snapshot of `PolicyConjunct.name`.
|
|
21
|
+
*/
|
|
22
|
+
name: string;
|
|
23
|
+
status: PolicyStatus;
|
|
24
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { MatchOutcome } from './MatchOutcome';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internally-tagged on `kind`. AND-conjuncts only per §5.7 — no OR.
|
|
12
|
+
* Unknown variants are rejected at the wire.
|
|
13
|
+
*/
|
|
14
|
+
export type ConjunctRule =
|
|
15
|
+
| {
|
|
16
|
+
kind: "all_pass";
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
| {
|
|
20
|
+
/**
|
|
21
|
+
* Maximum allowed failures.
|
|
22
|
+
*/
|
|
23
|
+
count: number;
|
|
24
|
+
kind: "max_failures";
|
|
25
|
+
[k: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
| {
|
|
28
|
+
kind: "failure_rate_below";
|
|
29
|
+
/**
|
|
30
|
+
* Threshold in [0.0, 1.0].
|
|
31
|
+
*/
|
|
32
|
+
rate: number;
|
|
33
|
+
[k: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
| {
|
|
36
|
+
kind: "state_match_rate_at_least";
|
|
37
|
+
/**
|
|
38
|
+
* Threshold in [0.0, 1.0].
|
|
39
|
+
*/
|
|
40
|
+
rate: number;
|
|
41
|
+
[k: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
| {
|
|
44
|
+
kind: "any_state_match_rate_at_least";
|
|
45
|
+
/**
|
|
46
|
+
* Threshold in [0.0, 1.0].
|
|
47
|
+
*/
|
|
48
|
+
rate: number;
|
|
49
|
+
[k: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
| {
|
|
52
|
+
kind: "match_outcome_at_least";
|
|
53
|
+
outcome: MatchOutcome;
|
|
54
|
+
[k: string]: unknown;
|
|
55
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Per-field diff between an assertion's expected criteria and a
|
|
10
|
+
* candidate element's actual value.
|
|
11
|
+
*/
|
|
12
|
+
export interface FieldDiff {
|
|
13
|
+
/**
|
|
14
|
+
* Actual value from the bridge element.
|
|
15
|
+
*/
|
|
16
|
+
actual: {
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Expected value from the IR assertion.
|
|
21
|
+
*/
|
|
22
|
+
expected: {
|
|
23
|
+
[k: string]: unknown;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Field name (`role`, `text`, `textContains`, etc.).
|
|
27
|
+
*/
|
|
28
|
+
field: string;
|
|
29
|
+
/**
|
|
30
|
+
* Field-level similarity score (0.0..=1.0).
|
|
31
|
+
*/
|
|
32
|
+
similarity: number;
|
|
33
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrAssertionTarget } from './IrAssertionTarget';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Mirror of TS `IRAssertion`. Field shape matches `LegacyAssertion` one-to-one
|
|
12
|
+
* (modulo the `target.criteria` looseness).
|
|
13
|
+
*/
|
|
14
|
+
export interface IrAssertion {
|
|
15
|
+
assertionType: string;
|
|
16
|
+
category: string;
|
|
17
|
+
description: string;
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
id: string;
|
|
20
|
+
precondition?: string | null;
|
|
21
|
+
reviewed: boolean;
|
|
22
|
+
severity: string;
|
|
23
|
+
source: string;
|
|
24
|
+
target: IrAssertionTarget;
|
|
25
|
+
[k: string]: unknown;
|
|
26
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Mirror of TS `IRAssertionTarget`. Always `type: "search"` for synthesis-
|
|
10
|
+
* emitted assertions; the wider legacy schema also supports point/region
|
|
11
|
+
* targets but the IR doesn't express those today.
|
|
12
|
+
*/
|
|
13
|
+
export interface IrAssertionTarget {
|
|
14
|
+
/**
|
|
15
|
+
* Free-form criteria object — kept as `Value` so synthesis can emit
|
|
16
|
+
* partially-populated criteria without tripping the schema and so the
|
|
17
|
+
* projection can pass the bytes through verbatim.
|
|
18
|
+
*/
|
|
19
|
+
criteria: {
|
|
20
|
+
[k: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
label: string;
|
|
23
|
+
/**
|
|
24
|
+
* Always `"search"` for synthesis-emitted assertions.
|
|
25
|
+
*/
|
|
26
|
+
type: string;
|
|
27
|
+
[k: string]: unknown;
|
|
28
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export interface IrCrossRef {
|
|
9
|
+
doc: string;
|
|
10
|
+
/**
|
|
11
|
+
* `ref` is reserved in Rust — serialize as `ref` for the wire while
|
|
12
|
+
* using `r#ref` as the Rust field name.
|
|
13
|
+
*/
|
|
14
|
+
ref: string;
|
|
15
|
+
[k: string]: unknown;
|
|
16
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Mirror of `IRElementCriteria`
|
|
10
|
+
* (`qontinui-schemas/ts/src/ui-bridge-ir/element-criteria.ts`).
|
|
11
|
+
*/
|
|
12
|
+
export interface IrElementCriteria {
|
|
13
|
+
accessibleName?: string | null;
|
|
14
|
+
ariaLabel?: string | null;
|
|
15
|
+
/**
|
|
16
|
+
* HTML attributes to check (exact string match). Stored as a `BTreeMap`
|
|
17
|
+
* so JSON serialization is deterministic (matters for byte-stable
|
|
18
|
+
* projection output).
|
|
19
|
+
*/
|
|
20
|
+
attributes?: {
|
|
21
|
+
[k: string]: string;
|
|
22
|
+
} | null;
|
|
23
|
+
id?: string | null;
|
|
24
|
+
role?: string | null;
|
|
25
|
+
tagName?: string | null;
|
|
26
|
+
text?: string | null;
|
|
27
|
+
textContains?: string | null;
|
|
28
|
+
[k: string]: unknown;
|
|
29
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrAssertion } from './IrAssertion';
|
|
9
|
+
import type { IrAssertionTarget } from './IrAssertionTarget';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Mirror of TS `IRGroup`. Synthesis-produced groups (NOT derived from IR
|
|
13
|
+
* states). Mirrors the legacy `SpecGroup` shape so the projection can pass
|
|
14
|
+
* it through to legacy `groups[]` without loss.
|
|
15
|
+
*/
|
|
16
|
+
export interface IrGroup {
|
|
17
|
+
assertions: IrAssertion[];
|
|
18
|
+
category: string;
|
|
19
|
+
description: string;
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
/**
|
|
23
|
+
* Provenance of the group itself (typically `"ai-generated"` for
|
|
24
|
+
* synthesis output).
|
|
25
|
+
*/
|
|
26
|
+
source?: string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Free-form tags. Synthesis emits e.g.
|
|
29
|
+
* `["workflow-generated", "acceptance-criteria"]`.
|
|
30
|
+
*/
|
|
31
|
+
tags?: string[] | null;
|
|
32
|
+
[k: string]: unknown;
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export interface IrMetadata {
|
|
9
|
+
description?: string | null;
|
|
10
|
+
notes?: string | null;
|
|
11
|
+
purpose?: string | null;
|
|
12
|
+
relatedElements?: string[] | null;
|
|
13
|
+
tags?: string[] | null;
|
|
14
|
+
[k: string]: unknown;
|
|
15
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrAssertion } from './IrAssertion';
|
|
9
|
+
import type { IrAssertionTarget } from './IrAssertionTarget';
|
|
10
|
+
import type { IrCrossRef } from './IrCrossRef';
|
|
11
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
12
|
+
import type { IrGroup } from './IrGroup';
|
|
13
|
+
import type { IrMetadata } from './IrMetadata';
|
|
14
|
+
import type { IrProvenance } from './IrProvenance';
|
|
15
|
+
import type { IrState } from './IrState';
|
|
16
|
+
import type { IrStateCondition } from './IrStateCondition';
|
|
17
|
+
import type { IrTransition } from './IrTransition';
|
|
18
|
+
import type { IrTransitionAction } from './IrTransitionAction';
|
|
19
|
+
import type { IrWaitSpec } from './IrWaitSpec';
|
|
20
|
+
import type { ProposalStatus } from './ProposalStatus';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Top-level IR page specification (formerly `IrDocument`).
|
|
24
|
+
*
|
|
25
|
+
* One `IrPageSpec` corresponds to one `state-machine.derived.json` file on
|
|
26
|
+
* disk under `qontinui-runner/specs/pages/<id>/`. This is the authoring
|
|
27
|
+
* surface — the projection layer derives the runtime `LegacySpec` from this.
|
|
28
|
+
*/
|
|
29
|
+
export interface IrPageSpec {
|
|
30
|
+
description?: string | null;
|
|
31
|
+
id: string;
|
|
32
|
+
initialState?: string | null;
|
|
33
|
+
metadata?: IrMetadata | null;
|
|
34
|
+
name: string;
|
|
35
|
+
provenance?: IrProvenance | null;
|
|
36
|
+
states: IrState[];
|
|
37
|
+
/**
|
|
38
|
+
* Groups produced by workflow-criteria synthesis (NOT derived from
|
|
39
|
+
* `IRState` annotations). Mirror of TS `IRDocument.synthesizedGroups`.
|
|
40
|
+
* The `rename = "synthesizedGroups"` is explicit (rather than relying on
|
|
41
|
+
* `rename_all = "camelCase"`) so the serialized name is unambiguous in
|
|
42
|
+
* snapshot tests + cross-language fixtures.
|
|
43
|
+
*/
|
|
44
|
+
synthesizedGroups?: IrGroup[] | null;
|
|
45
|
+
transitions: IrTransition[];
|
|
46
|
+
/**
|
|
47
|
+
* Schema version. Currently always `"1.0"`.
|
|
48
|
+
*/
|
|
49
|
+
version: string;
|
|
50
|
+
[k: string]: unknown;
|
|
51
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ProposalStatus } from './ProposalStatus';
|
|
9
|
+
|
|
10
|
+
export interface IrProvenance {
|
|
11
|
+
column?: number | null;
|
|
12
|
+
file?: string | null;
|
|
13
|
+
line?: number | null;
|
|
14
|
+
pluginVersion?: string | null;
|
|
15
|
+
/**
|
|
16
|
+
* "hand-authored" | "build-plugin" | "ai-generated" | "migrated"
|
|
17
|
+
*/
|
|
18
|
+
source: string;
|
|
19
|
+
/**
|
|
20
|
+
* Lifecycle status for the flywheel coverage-growth loop. `None` =
|
|
21
|
+
* implicitly `Promoted` (legacy + on-disk specs that predate the field).
|
|
22
|
+
* Set to `Proposed` by `spec_authoring`, `Pending` when staged in
|
|
23
|
+
* `_pending/`, `Promoted` after the 2-green sweep moves the file to
|
|
24
|
+
* `pages/<id>/`.
|
|
25
|
+
*/
|
|
26
|
+
status?: ProposalStatus | null;
|
|
27
|
+
[k: string]: unknown;
|
|
28
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrAssertion } from './IrAssertion';
|
|
9
|
+
import type { IrAssertionTarget } from './IrAssertionTarget';
|
|
10
|
+
import type { IrCrossRef } from './IrCrossRef';
|
|
11
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
12
|
+
import type { IrMetadata } from './IrMetadata';
|
|
13
|
+
import type { IrProvenance } from './IrProvenance';
|
|
14
|
+
import type { IrStateCondition } from './IrStateCondition';
|
|
15
|
+
import type { ProposalStatus } from './ProposalStatus';
|
|
16
|
+
|
|
17
|
+
export interface IrState {
|
|
18
|
+
assertions: IrAssertion[];
|
|
19
|
+
blocking?: boolean | null;
|
|
20
|
+
conditions?: IrStateCondition[] | null;
|
|
21
|
+
crossRefs?: IrCrossRef[] | null;
|
|
22
|
+
description?: string | null;
|
|
23
|
+
elementIds?: string[] | null;
|
|
24
|
+
excludedElements?: IrElementCriteria[] | null;
|
|
25
|
+
group?: string | null;
|
|
26
|
+
id: string;
|
|
27
|
+
incomingTransitions?: string[] | null;
|
|
28
|
+
isInitial?: boolean | null;
|
|
29
|
+
isTerminal?: boolean | null;
|
|
30
|
+
metadata?: IrMetadata | null;
|
|
31
|
+
name: string;
|
|
32
|
+
pathCost?: number | null;
|
|
33
|
+
precondition?: string | null;
|
|
34
|
+
provenance?: IrProvenance | null;
|
|
35
|
+
[k: string]: unknown;
|
|
36
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
9
|
+
|
|
10
|
+
export interface IrStateCondition {
|
|
11
|
+
comparator?: string | null;
|
|
12
|
+
element: IrElementCriteria;
|
|
13
|
+
expected: unknown;
|
|
14
|
+
/**
|
|
15
|
+
* "visible" | "enabled" | "checked" | "expanded" | "selected" | "text" | "value"
|
|
16
|
+
*/
|
|
17
|
+
property: string;
|
|
18
|
+
[k: string]: unknown;
|
|
19
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrCrossRef } from './IrCrossRef';
|
|
9
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
10
|
+
import type { IrMetadata } from './IrMetadata';
|
|
11
|
+
import type { IrProvenance } from './IrProvenance';
|
|
12
|
+
import type { IrTransitionAction } from './IrTransitionAction';
|
|
13
|
+
import type { IrWaitSpec } from './IrWaitSpec';
|
|
14
|
+
import type { ProposalStatus } from './ProposalStatus';
|
|
15
|
+
|
|
16
|
+
export interface IrTransition {
|
|
17
|
+
actions: IrTransitionAction[];
|
|
18
|
+
activateStates: string[];
|
|
19
|
+
bidirectional?: boolean | null;
|
|
20
|
+
crossRefs?: IrCrossRef[] | null;
|
|
21
|
+
description?: string | null;
|
|
22
|
+
/**
|
|
23
|
+
* "read" | "write" | "destructive"
|
|
24
|
+
*/
|
|
25
|
+
effect?: string | null;
|
|
26
|
+
exitStates?: string[] | null;
|
|
27
|
+
fromStates: string[];
|
|
28
|
+
id: string;
|
|
29
|
+
metadata?: IrMetadata | null;
|
|
30
|
+
name: string;
|
|
31
|
+
pathCost?: number | null;
|
|
32
|
+
provenance?: IrProvenance | null;
|
|
33
|
+
[k: string]: unknown;
|
|
34
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
9
|
+
import type { IrWaitSpec } from './IrWaitSpec';
|
|
10
|
+
|
|
11
|
+
export interface IrTransitionAction {
|
|
12
|
+
params?: unknown;
|
|
13
|
+
target: IrElementCriteria;
|
|
14
|
+
type: string;
|
|
15
|
+
waitAfter?: IrWaitSpec | null;
|
|
16
|
+
[k: string]: unknown;
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { IrElementCriteria } from './IrElementCriteria';
|
|
9
|
+
|
|
10
|
+
export interface IrWaitSpec {
|
|
11
|
+
ms?: number | null;
|
|
12
|
+
property?: string | null;
|
|
13
|
+
query?: IrElementCriteria | null;
|
|
14
|
+
quietPeriodMs?: number | null;
|
|
15
|
+
stateId?: string | null;
|
|
16
|
+
timeout?: number | null;
|
|
17
|
+
/**
|
|
18
|
+
* "idle" | "element" | "state" | "time" | "condition" | "vanish" | "change" | "stable"
|
|
19
|
+
*/
|
|
20
|
+
type: string;
|
|
21
|
+
[k: string]: unknown;
|
|
22
|
+
}
|