my-frontend-observer 0.3.0 → 0.4.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +32 -8
  3. package/dist/application/comparisonService.d.ts +56 -0
  4. package/dist/application/comparisonService.js +77 -0
  5. package/dist/application/comparisonService.js.map +1 -0
  6. package/dist/artifacts/artifactReader.d.ts +19 -0
  7. package/dist/artifacts/artifactReader.js +36 -0
  8. package/dist/artifacts/artifactReader.js.map +1 -0
  9. package/dist/artifacts/comparisonArtifactWriter.d.ts +41 -0
  10. package/dist/artifacts/comparisonArtifactWriter.js +67 -0
  11. package/dist/artifacts/comparisonArtifactWriter.js.map +1 -0
  12. package/dist/cli.js +220 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/domain/comparison.d.ts +198 -0
  15. package/dist/domain/comparison.js +324 -0
  16. package/dist/domain/comparison.js.map +1 -0
  17. package/dist/domain/comparisonEngine.d.ts +48 -0
  18. package/dist/domain/comparisonEngine.js +694 -0
  19. package/dist/domain/comparisonEngine.js.map +1 -0
  20. package/dist/domain/comparisonIdentity.d.ts +13 -0
  21. package/dist/domain/comparisonIdentity.js +46 -0
  22. package/dist/domain/comparisonIdentity.js.map +1 -0
  23. package/dist/domain/evidence.d.ts +2 -0
  24. package/dist/domain/evidence.js +4 -0
  25. package/dist/domain/evidence.js.map +1 -1
  26. package/dist/domain/relationships.d.ts +168 -0
  27. package/dist/domain/relationships.js +343 -0
  28. package/dist/domain/relationships.js.map +1 -0
  29. package/dist/index.d.ts +14 -1
  30. package/dist/index.js +8 -1
  31. package/dist/index.js.map +1 -1
  32. package/docs/ARCHITECTURE.md +76 -3
  33. package/docs/CI_CD.md +29 -0
  34. package/docs/COMMANDS.md +137 -0
  35. package/docs/CONTRACTS.md +96 -4
  36. package/docs/CURRENT_STATE.md +102 -9
  37. package/docs/DEVELOPMENT.md +33 -10
  38. package/docs/PROJECT_OVERVIEW.md +16 -12
  39. package/docs/QUICKSTART.md +5 -0
  40. package/docs/RELEASE.md +10 -8
  41. package/docs/ROADMAP.md +4 -0
  42. package/docs/SECURITY.md +14 -1
  43. package/docs/WORKFLOWS.md +56 -6
  44. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparisonEngine.js","sourceRoot":"","sources":["../../src/domain/comparisonEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ComparisonConfig } from './comparison.js';
2
+ /**
3
+ * Pure function of {beforeObservationId, afterObservationId, normalized
4
+ * config} only. Direction matters: swapping before/after produces a
5
+ * different identity. Never includes a filesystem path, output location, the
6
+ * comparison result itself, or a captured timestamp.
7
+ */
8
+ export declare function buildComparisonRequestIdentity(beforeObservationId: string, afterObservationId: string, config: ComparisonConfig): string;
9
+ /**
10
+ * Fresh, opaque per-execution identity - never derived from a timestamp
11
+ * alone, never collides even when called twice within the same millisecond.
12
+ */
13
+ export declare function buildComparisonIdentity(comparisonRequestId: string): string;
@@ -0,0 +1,46 @@
1
+ import { createHash, randomBytes } from 'node:crypto';
2
+ /**
3
+ * Deliberately duplicated from domain/identity.ts#canonicalize rather than
4
+ * imported: that module's canonicalize is a private helper for the frozen
5
+ * v0.1 request-identity contract, and this batch does not touch that file.
6
+ * Same algorithm (sorted object keys, order-preserving arrays) so the two
7
+ * identity families stay consistent without coupling their ownership.
8
+ */
9
+ function canonicalize(value) {
10
+ if (Array.isArray(value))
11
+ return value.map(canonicalize);
12
+ if (value !== null && typeof value === 'object') {
13
+ const entries = Object.entries(value)
14
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
15
+ .map(([key, entryValue]) => [key, canonicalize(entryValue)]);
16
+ return Object.fromEntries(entries);
17
+ }
18
+ return value;
19
+ }
20
+ /**
21
+ * Pure function of {beforeObservationId, afterObservationId, normalized
22
+ * config} only. Direction matters: swapping before/after produces a
23
+ * different identity. Never includes a filesystem path, output location, the
24
+ * comparison result itself, or a captured timestamp.
25
+ */
26
+ export function buildComparisonRequestIdentity(beforeObservationId, afterObservationId, config) {
27
+ const semanticView = {
28
+ beforeObservationId,
29
+ afterObservationId,
30
+ config: {
31
+ geometryTolerancePx: config.geometryTolerancePx,
32
+ expectedDependencies: config.expectedDependencies ?? [],
33
+ },
34
+ };
35
+ const serialized = JSON.stringify(canonicalize(semanticView));
36
+ return createHash('sha256').update(serialized).digest('hex');
37
+ }
38
+ /**
39
+ * Fresh, opaque per-execution identity - never derived from a timestamp
40
+ * alone, never collides even when called twice within the same millisecond.
41
+ */
42
+ export function buildComparisonIdentity(comparisonRequestId) {
43
+ const nonce = randomBytes(16).toString('hex');
44
+ return `${comparisonRequestId}-${nonce}`;
45
+ }
46
+ //# sourceMappingURL=comparisonIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparisonIdentity.js","sourceRoot":"","sources":["../../src/domain/comparisonIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,mBAA2B,EAAE,kBAA0B,EAAE,MAAwB;IAC9H,MAAM,YAAY,GAAG;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,MAAM,EAAE;YACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,EAAE;SACxD;KACF,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,mBAA2B;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,GAAG,mBAAmB,IAAI,KAAK,EAAE,CAAC;AAC3C,CAAC"}
@@ -25,3 +25,5 @@ export type EvidenceField<T> = {
25
25
  * derivedFrom-iff-derived-source invariant.
26
26
  */
27
27
  export declare function isValidEvidenceField<T = unknown>(field: unknown): field is EvidenceField<T>;
28
+ /** Extracts an `EvidenceField<T>`'s value when meaningfully present (`available`/`partial`), `undefined` otherwise - never a fabricated default for `unavailable`/`not-applicable`. */
29
+ export declare function evidenceValue<T>(field: EvidenceField<T>): T | undefined;
@@ -52,4 +52,8 @@ export function isValidEvidenceField(field) {
52
52
  }
53
53
  return false;
54
54
  }
55
+ /** Extracts an `EvidenceField<T>`'s value when meaningfully present (`available`/`partial`), `undefined` otherwise - never a fabricated default for `unavailable`/`not-applicable`. */
56
+ export function evidenceValue(field) {
57
+ return field.state === 'available' || field.state === 'partial' ? field.value : undefined;
58
+ }
55
59
  //# sourceMappingURL=evidence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"AAUA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAU,CAAC;AAE7E,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACvG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAc,KAAc;IAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,OAAO,KAAK,CAAC;QACtD,CAAC;aAAM,IAAI,aAAa,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAClE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * v0.4 Batch 1 layout-relationship contract, plus the Batch 2 pure
3
+ * derivation engine (`deriveLayoutRelationships`) that consumes it. This
4
+ * module owns geometry tolerance (needed directly by the engine below, so it
5
+ * cannot be imported from domain/comparison.ts without a cycle - see the
6
+ * re-export there) and never imports domain/comparison.ts.
7
+ */
8
+ import type { ObservationArtifact, TargetEvidenceRecord } from './schema.js';
9
+ /** Suppresses insignificant geometry noise only - never a design contract, never permission for changes. */
10
+ export declare const GEOMETRY_TOLERANCE_DEFAULT_PX = 0.5;
11
+ export declare const GEOMETRY_TOLERANCE_MIN_PX = 0;
12
+ export declare const GEOMETRY_TOLERANCE_MAX_PX = 10;
13
+ export declare function isValidGeometryTolerancePx(value: unknown): value is number;
14
+ export declare const HORIZONTAL_ORDER_RELATIONSHIPS: readonly ["left-of", "right-of", "horizontally-overlapping"];
15
+ export type HorizontalOrderRelationship = (typeof HORIZONTAL_ORDER_RELATIONSHIPS)[number];
16
+ export declare const VERTICAL_ORDER_RELATIONSHIPS: readonly ["above", "below", "vertically-overlapping"];
17
+ export type VerticalOrderRelationship = (typeof VERTICAL_ORDER_RELATIONSHIPS)[number];
18
+ export declare const AREA_OVERLAP_RELATIONSHIPS: readonly ["overlaps", "does-not-overlap"];
19
+ export type AreaOverlapRelationship = (typeof AREA_OVERLAP_RELATIONSHIPS)[number];
20
+ export declare const RELATIVE_WIDTH_RELATIONSHIPS: readonly ["wider-than", "narrower-than", "equal-width-within-tolerance"];
21
+ export type RelativeWidthRelationship = (typeof RELATIVE_WIDTH_RELATIONSHIPS)[number];
22
+ export declare const GEOMETRIC_FIT_RELATIONSHIPS: readonly ["fits-inside", "does-not-fit-inside"];
23
+ export type GeometricFitRelationship = (typeof GEOMETRIC_FIT_RELATIONSHIPS)[number];
24
+ /** Rendered-geometry sequencing only - never source DOM order (see docs/CONTRACTS.md target containment discussion). */
25
+ export declare const VERTICAL_SEQUENCE_RELATIONSHIPS: readonly ["follows-vertically"];
26
+ export type VerticalSequenceRelationship = (typeof VERTICAL_SEQUENCE_RELATIONSHIPS)[number];
27
+ export declare const PAGE_WIDTH_RELATIONSHIPS: readonly ["document-width-fits-viewport", "document-width-exceeds-viewport"];
28
+ export type PageWidthRelationship = (typeof PAGE_WIDTH_RELATIONSHIPS)[number];
29
+ /** Every pairwise (two-target) relationship kind this batch freezes. Deliberately bounded - not a general-purpose spatial language. */
30
+ export declare const PAIRWISE_RELATIONSHIP_KINDS: readonly ["left-of", "right-of", "horizontally-overlapping", "above", "below", "vertically-overlapping", "overlaps", "does-not-overlap", "wider-than", "narrower-than", "equal-width-within-tolerance", "fits-inside", "does-not-fit-inside", "follows-vertically"];
31
+ export type PairwiseRelationshipKind = (typeof PAIRWISE_RELATIONSHIP_KINDS)[number];
32
+ /** Every page-level (no target pair) relationship kind this batch freezes. */
33
+ export declare const PAGE_LEVEL_RELATIONSHIP_KINDS: readonly ["document-width-fits-viewport", "document-width-exceeds-viewport"];
34
+ export type PageLevelRelationshipKind = (typeof PAGE_LEVEL_RELATIONSHIP_KINDS)[number];
35
+ /** Points at the supporting observation evidence a derived relationship/difference was computed from (e.g. `targetEvidence.workspace.geometry`, `pageEvidence.documentSize`) - never a duplicated copy of the measurement itself. */
36
+ export interface EvidenceReference {
37
+ path: string;
38
+ }
39
+ export declare function isValidEvidenceReference(value: unknown): value is EvidenceReference;
40
+ /** One derived spatial relationship between two configured targets, with explicit supporting evidence provenance. */
41
+ export interface PairwiseLayoutRelationship {
42
+ kind: PairwiseRelationshipKind;
43
+ subjectTarget: string;
44
+ relatedTarget: string;
45
+ evidence: EvidenceReference[];
46
+ }
47
+ export declare function isValidPairwiseLayoutRelationship(value: unknown): value is PairwiseLayoutRelationship;
48
+ /** One derived page-level (no target pair) relationship. */
49
+ export interface PageLevelLayoutRelationship {
50
+ kind: PageLevelRelationshipKind;
51
+ evidence: EvidenceReference[];
52
+ }
53
+ export declare function isValidPageLevelLayoutRelationship(value: unknown): value is PageLevelLayoutRelationship;
54
+ /** A configured target excluded from relationship derivation because it lacks usable geometry - never a fabricated zero-sized rectangle. */
55
+ export declare const UNRESOLVED_TARGET_REASONS: readonly ["not-found", "ambiguous", "unavailable", "hidden"];
56
+ export type UnresolvedTargetReason = (typeof UNRESOLVED_TARGET_REASONS)[number];
57
+ export interface UnresolvedRelationshipTarget {
58
+ target: string;
59
+ reason: UnresolvedTargetReason;
60
+ }
61
+ export declare function isValidUnresolvedRelationshipTarget(value: unknown): value is UnresolvedRelationshipTarget;
62
+ /**
63
+ * Bounded structured relationship graph for one observation. Existing
64
+ * requests allow at most 20 configured targets, so the pairwise layer is
65
+ * bounded at 20*19/2 = 190 unordered pairs; this contract never traverses
66
+ * arbitrary DOM nodes or derives relationships for unconfigured elements.
67
+ */
68
+ export interface LayoutRelationshipGraph {
69
+ observationId: string;
70
+ requestId: string;
71
+ geometryTolerancePx: number;
72
+ targets: string[];
73
+ unresolvedTargets: UnresolvedRelationshipTarget[];
74
+ pairwiseRelationships: PairwiseLayoutRelationship[];
75
+ pageRelationships: PageLevelLayoutRelationship[];
76
+ }
77
+ export declare const MAX_CONFIGURED_TARGETS_FOR_RELATIONSHIPS = 20;
78
+ export declare const MAX_PAIRWISE_RELATIONSHIP_PAIRS: number;
79
+ /**
80
+ * A single unordered pair can carry up to one record per independent
81
+ * pairwise relationship family (horizontal-order, vertical-order,
82
+ * area-overlap, relative-width, geometric-fit, vertical-sequence - see
83
+ * `deriveLayoutRelationships` below), never more than one per family per
84
+ * pair. This is the resulting bound on `pairwiseRelationships.length`, not a
85
+ * second target-count configuration.
86
+ */
87
+ export declare const PAIRWISE_RELATIONSHIP_FAMILY_COUNT = 6;
88
+ export declare const MAX_PAIRWISE_RELATIONSHIP_RECORDS: number;
89
+ export declare function isValidLayoutRelationshipGraph(value: unknown): value is LayoutRelationshipGraph;
90
+ /**
91
+ * Bounded derived clipping concept (docs/PROJECT_MILESTONES.md Milestone 4).
92
+ * `clipped` requires both actual dimensional overflow on that axis AND a
93
+ * computed `overflow` value of `hidden`/`clip` on that axis - `auto`,
94
+ * `scroll`, and `visible` never classify as clipped solely from dimensional
95
+ * overflow. `unavailable` when the underlying overflow/geometry evidence
96
+ * cannot support a conclusion - never guessed.
97
+ */
98
+ export declare const CLIPPING_STATES: readonly ["clipped", "not-clipped", "unavailable"];
99
+ export type ClippingState = (typeof CLIPPING_STATES)[number];
100
+ export declare const CLIPPING_OVERFLOW_STYLES: readonly ["hidden", "clip"];
101
+ export type ClippingOverflowStyle = (typeof CLIPPING_OVERFLOW_STYLES)[number];
102
+ export interface TargetClippingEvidence {
103
+ horizontal: ClippingState;
104
+ vertical: ClippingState;
105
+ }
106
+ export declare function isValidTargetClippingEvidence(value: unknown): value is TargetClippingEvidence;
107
+ /**
108
+ * Pure per-target clipping derivation from one target's own existing
109
+ * `layout`/`style` evidence (never a scroll scenario - normal target
110
+ * evidence already carries `scrollWidth`/`scrollHeight`/`clientWidth`/
111
+ * `clientHeight`/`overflowX`/`overflowY`). `TargetClippingEvidence` has no
112
+ * slot in `LayoutRelationshipGraph` (that graph is spatial/page-level only,
113
+ * per the frozen Batch 1 vocabulary) - this is a standalone per-target
114
+ * derivation for callers (e.g. a later comparison engine) that need it
115
+ * directly from an `ObservationArtifact`'s `targetEvidence`, one target at a
116
+ * time. `unavailable` (never guessed) when the underlying layout/style
117
+ * evidence is not itself available - this naturally covers an unresolved
118
+ * target without any special-casing. A resolved-but-`display:none` target
119
+ * naturally computes `not-clipped` too: its `scrollWidth`/`clientWidth` are
120
+ * both `0`, so `scrollWidth > clientWidth` is false - clipping is never
121
+ * inferred from hidden-ness itself.
122
+ */
123
+ export declare function deriveTargetClipping(record: TargetEvidenceRecord): TargetClippingEvidence;
124
+ export type DeriveLayoutRelationshipsOptions = {
125
+ geometryTolerancePx?: number;
126
+ };
127
+ export type DeriveLayoutRelationshipsResult = {
128
+ ok: true;
129
+ graph: LayoutRelationshipGraph;
130
+ } | {
131
+ ok: false;
132
+ reason: string;
133
+ };
134
+ /**
135
+ * The one canonical pure derivation from an already-captured
136
+ * `ObservationArtifact` to a `LayoutRelationshipGraph` (real Chromium ->
137
+ * ObservationArtifact -> **relationship derivation** -> comparability ->
138
+ * comparison -> ComparisonArtifact, see docs/ARCHITECTURE.md). Deterministic
139
+ * and synchronous: same `observation`/`geometryTolerancePx` in, same graph
140
+ * out, every time - no Chromium, target re-resolution, DOM access, randomness,
141
+ * clock, filesystem, or network involved, and `observation` is never
142
+ * mutated.
143
+ *
144
+ * Scope, by construction:
145
+ * - only targets present in `observation.requestConfig.targets` are ever
146
+ * considered (bounded at the existing 20-target/190-pair request limit -
147
+ * never arbitrary DOM/accessibility-tree traversal);
148
+ * - a configured target missing usable geometry (never resolved, or
149
+ * resolved but reported not-visible) becomes an `unresolvedTargets` entry
150
+ * with an honest reason, never a fabricated zero-sized relation;
151
+ * - for each unordered pair of geometry-eligible targets, exactly one
152
+ * record per relationship family is derived, with `subjectTarget`/
153
+ * `relatedTarget` fixed to that pair's configured order (earlier
154
+ * configured target is always `subjectTarget`) for every family except
155
+ * `follows-vertically` (see `verticalSequenceOf`) - so
156
+ * `pairwiseRelationships.length` never exceeds
157
+ * `MAX_PAIRWISE_RELATIONSHIP_RECORDS`;
158
+ * - DOM containment is deliberately not re-derived here: it already exists
159
+ * as `targetEvidence.<name>.containment` on the observation itself (see
160
+ * `TargetContainment` in domain/schema.ts, explicitly documented there as
161
+ * "never a layout/relationship graph") and stays separate from
162
+ * `fits-inside`/`does-not-fit-inside`, which is geometry-only;
163
+ * - the page-width relationship is derived only when both
164
+ * `pageEvidence.documentWidth` and `pageEvidence.viewportWidth` are
165
+ * themselves available - never defaulted to "fits" when evidence is
166
+ * missing.
167
+ */
168
+ export declare function deriveLayoutRelationships(observation: ObservationArtifact, options?: DeriveLayoutRelationshipsOptions): DeriveLayoutRelationshipsResult;