@qontinui/shared-types 2.4.1 → 2.5.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 (43) hide show
  1. package/dist/scheduler.d.cts +73 -0
  2. package/dist/scheduler.d.ts +73 -0
  3. package/package.json +1 -1
  4. package/src/generated/ChangeTimeline.d.ts +484 -0
  5. package/src/generated/CriterionVerification.d.ts +11 -0
  6. package/src/generated/DetectedAnimation.d.ts +32 -0
  7. package/src/generated/EarsPattern.d.ts +20 -0
  8. package/src/generated/EdgeTiming.d.ts +156 -0
  9. package/src/generated/ExternalRef.d.ts +22 -0
  10. package/src/generated/InterfaceMappingFrontmatter.d.ts +21 -0
  11. package/src/generated/JourneyArrivalDoubt.d.ts +26 -0
  12. package/src/generated/JourneyCoverage.d.ts +91 -0
  13. package/src/generated/JourneyDeadEnds.d.ts +109 -0
  14. package/src/generated/JourneyEdgeObservation.d.ts +3 -2
  15. package/src/generated/JourneyEdgeTimingAnswer.d.ts +88 -0
  16. package/src/generated/JourneyFilter.d.ts +35 -0
  17. package/src/generated/JourneyFrontier.d.ts +51 -0
  18. package/src/generated/JourneyGraph.d.ts +165 -0
  19. package/src/generated/JourneyGraphEdge.d.ts +45 -0
  20. package/src/generated/JourneyPriorKnowledge.d.ts +112 -0
  21. package/src/generated/JourneyReachable.d.ts +64 -0
  22. package/src/generated/JourneySearchFrontier.d.ts +59 -0
  23. package/src/generated/JourneySearchFrontierNode.d.ts +37 -0
  24. package/src/generated/JourneySteps.d.ts +65 -0
  25. package/src/generated/JourneyUnmeasuredDepartures.d.ts +84 -0
  26. package/src/generated/MappingRow.d.ts +23 -0
  27. package/src/generated/MetricDistribution.d.ts +54 -0
  28. package/src/generated/RequestFrontmatter.d.ts +30 -0
  29. package/src/generated/RequirementFrontmatter.d.ts +31 -0
  30. package/src/generated/ScheduledTask.d.ts +52 -0
  31. package/src/generated/ScheduledTaskType.d.ts +21 -0
  32. package/src/generated/SourceCitation.d.ts +25 -0
  33. package/src/generated/SourceCitationKind.d.ts +12 -0
  34. package/src/generated/SpecAcceptanceCriterion.d.ts +28 -0
  35. package/src/generated/SpecFrontmatter.d.ts +36 -0
  36. package/src/generated/SpecLanguage.d.ts +11 -0
  37. package/src/generated/StoryFrontmatter.d.ts +26 -0
  38. package/src/generated/TemplateRef.d.ts +17 -0
  39. package/src/generated/UnknownCode.d.ts +8 -1
  40. package/src/generated/index.ts +32 -3
  41. package/src/generated/CapabilityState.d.ts +0 -25
  42. package/src/generated/CliProfile.d.ts +0 -492
  43. package/src/generated/SessionFailure.d.ts +0 -129
@@ -0,0 +1,165 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyArrivalDoubt } from "./JourneyArrivalDoubt";
10
+ import type { JourneyCoverage } from "./JourneyCoverage";
11
+ import type { JourneyFilter } from "./JourneyFilter";
12
+ import type { JourneyGraphEdge } from "./JourneyGraphEdge";
13
+ import type { JourneyLedgerHealth } from "./JourneyLedgerHealth";
14
+ import type { JourneyNode } from "./JourneyNode";
15
+ import type { JourneyTrigger } from "./JourneyTrigger";
16
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
17
+
18
+ /**
19
+ * The journey graph derived from ledger rows under one filter.
20
+ */
21
+ export interface JourneyGraph {
22
+ /**
23
+ * What the graph was built over.
24
+ */
25
+ coverage: JourneyCoverage;
26
+ /**
27
+ * Aggregated edges, sorted by `(fromKey, toKey, trigger, outcome)`.
28
+ */
29
+ edges: JourneyGraphEdge[];
30
+ /**
31
+ * The filter the edge set was narrowed by.
32
+ */
33
+ filterEcho: JourneyFilter;
34
+ /**
35
+ * Observed nodes, sorted by key.
36
+ */
37
+ nodes: JourneyGraphNode[];
38
+ /**
39
+ * Unmeasured departures (filtered, withdrawn, rejected frontier with a
40
+ * valid node, excluded back and URL arrivals) placed at a node key that
41
+ * is NOT in
42
+ * `nodes`. No component query can reach such a node, but a graph-wide
43
+ * question (`dead_ends`, `requires_prior_knowledge`, the whole frontier)
44
+ * counts them.
45
+ */
46
+ offGraphDepartures: JourneyUnmeasuredDepartures;
47
+ /**
48
+ * Rows left out as contract violations, live or withdrawn (a withdrawn one
49
+ * is also counted in `coverage.edgesInvalidated`), sorted.
50
+ */
51
+ rejected: JourneyRejectedRow[];
52
+ /**
53
+ * Rejected frontier rows counted at TWO node keys (their `nodeKey`
54
+ * column and their valid node's own key disagree). Per-node counts
55
+ * include both placements; graph-wide totals subtract this, so a
56
+ * graph-wide `rejectedFrontier` plus `unplacedRejectedFrontier` is the
57
+ * number of DISTINCT rejected frontier rows by full content. (`rejected`
58
+ * lists rows by `(kind, row, reason)`, so two rows differing only in
59
+ * their node JSON share one entry there but are both counted.)
60
+ */
61
+ rejectedFrontierDoublePlaced: number;
62
+ /**
63
+ * Affordance or `pop` rows whose real destination is unknown: kept or
64
+ * trusted-excluded ones with no `toNode` (`to_node_unobserved`), ones
65
+ * that closed `settle_timeout` or `error` to a DIFFERENT node (that node
66
+ * may be an intermediate state), and ones that closed `settle_timeout`
67
+ * on the SAME node (the destination may not have rendered yet). Each
68
+ * may arrive at any node, so `requires_prior_knowledge` lists no node as
69
+ * settled while this is non-zero.
70
+ */
71
+ unknownDestinationArrivals: number;
72
+ /**
73
+ * Distinct rejected frontier rows whose node fails `validate()`.
74
+ * Nothing in such a row is trusted, its `nodeKey` column included, so it
75
+ * is placed at NO node: each may be an open affordance anywhere, and
76
+ * EVERY negative answer counts it (dimension
77
+ * `unplaced_rejected_frontier`).
78
+ */
79
+ unplacedRejectedFrontier: number;
80
+ /**
81
+ * Distinct UNTRUSTED edge rows — live or withdrawn rows that fail
82
+ * [`trusted_edge_row`] (a failed `validate()` or an unparseable
83
+ * `observedAt`). Nothing in such a row is trusted, its `fromNode` and
84
+ * trigger included, so it is placed at NO node: it may be a click from
85
+ * and to anywhere, and EVERY negative answer counts it, component and
86
+ * graph-wide alike (dimension `unplaced_rejected_rows`). While it is
87
+ * non-zero, `dead_ends` lists no dead end and `requires_prior_knowledge`
88
+ * lists no settled node.
89
+ */
90
+ unplacedRejectedRows: number;
91
+ }
92
+ /**
93
+ * One observed vertex.
94
+ */
95
+ export interface JourneyGraphNode {
96
+ /**
97
+ * Excluded affordance / pop rows arriving here from another node.
98
+ */
99
+ arrivalDoubt: JourneyArrivalDoubt;
100
+ /**
101
+ * Open frontier entries seen at this node, sorted by
102
+ * `affordanceFingerprint`.
103
+ */
104
+ frontier: FrontierEntry[];
105
+ /**
106
+ * [`JourneyNode::key`] — the node's identity.
107
+ */
108
+ key: string;
109
+ /**
110
+ * A representative node for the key (the smallest by its fields when
111
+ * rows disagree on non-identity detail such as `pageLabel`).
112
+ */
113
+ node: JourneyNode;
114
+ /**
115
+ * `true` when the node has at least one kept arrival (an edge from a
116
+ * DIFFERENT node whose `toNode` is this node — a self-loop is not an
117
+ * arrival), and NONE of them closed `changed` or
118
+ * `no_change`, whatever its trigger. Only those two outcomes confirm the
119
+ * node is a real destination: a `settle_timeout` or `error` arrival's
120
+ * observed node may be an intermediate state (a spinner, an error
121
+ * render). Such a node is never a settled dead end, nor a settled
122
+ * requires-prior-knowledge node.
123
+ */
124
+ unconfirmedDestination: boolean;
125
+ /**
126
+ * Departures from this node the navigation edge set leaves out but that
127
+ * may still lead somewhere (see [`JourneyUnmeasuredDepartures`]).
128
+ */
129
+ unmeasuredDepartures: JourneyUnmeasuredDepartures;
130
+ /**
131
+ * How many edges left this node with `outcome: to_node_unobserved` —
132
+ * actions whose destination was never seen.
133
+ */
134
+ unobservedDepartures: number;
135
+ }
136
+ /**
137
+ * A ledger row that broke the edge-observation contract and was left out of
138
+ * the graph — reported, never silently dropped.
139
+ */
140
+ export interface JourneyRejectedRow {
141
+ /**
142
+ * Edge or frontier row.
143
+ */
144
+ kind: "edge" | "frontier";
145
+ /**
146
+ * The contract violation, as `JourneyContractError` renders it (or the
147
+ * timestamp parse failure).
148
+ */
149
+ reason: string;
150
+ /**
151
+ * The edge's `id`, or `"<nodeKey> <affordanceFingerprint>"` for a
152
+ * frontier row.
153
+ */
154
+ row: string;
155
+ /**
156
+ * How many DISTINCT rows (by full serialized content) this entry stands
157
+ * for. Two rows that share `(kind, row, reason)` but differ anywhere
158
+ * else — a live and a withdrawn copy, or two fromNodes under one id —
159
+ * are one entry here with `rows: 2`. The same full-row identity is the
160
+ * one `JourneyGraph::unplaced_rejected_rows` and
161
+ * `unplaced_rejected_frontier` count by, so for edges the `rows` of the
162
+ * edge entries sum to `unplaced_rejected_rows`.
163
+ */
164
+ rows: number;
165
+ }
@@ -0,0 +1,45 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { JourneyTrigger } from "./JourneyTrigger";
9
+
10
+ /**
11
+ * Every observation of one `(from, to, trigger, outcome)` combination,
12
+ * aggregated. `to_node_unobserved` rows are not graph edges (they have no
13
+ * destination); they count on the from-node's `unobservedDepartures`.
14
+ */
15
+ export interface JourneyGraphEdge {
16
+ /**
17
+ * Earliest `observedAt` among them, RFC 3339 UTC.
18
+ */
19
+ firstObservedAt: string;
20
+ /**
21
+ * `fromNode.key()`.
22
+ */
23
+ fromKey: string;
24
+ /**
25
+ * Latest `observedAt` among them, RFC 3339 UTC.
26
+ */
27
+ lastObservedAt: string;
28
+ /**
29
+ * How many ledger rows this edge aggregates (≥ 1).
30
+ */
31
+ observations: number;
32
+ /**
33
+ * How the edge closed.
34
+ */
35
+ outcome:
36
+ "changed" | "no_change" | "error" | "settle_timeout" | "to_node_unobserved";
37
+ /**
38
+ * `toNode.key()`.
39
+ */
40
+ toKey: string;
41
+ /**
42
+ * The trigger, exactly as recorded — enough to replay the step.
43
+ */
44
+ trigger: JourneyTrigger;
45
+ }
@@ -0,0 +1,112 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyArrivalDoubt } from "./JourneyArrivalDoubt";
10
+ import type { JourneyCoverage } from "./JourneyCoverage";
11
+ import type { JourneyFilter } from "./JourneyFilter";
12
+ import type { JourneyLedgerHealth } from "./JourneyLedgerHealth";
13
+ import type { JourneyNode } from "./JourneyNode";
14
+ import type { JourneySearchFrontier } from "./JourneySearchFrontier";
15
+ import type { JourneySearchFrontierNode } from "./JourneySearchFrontierNode";
16
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
17
+
18
+ /**
19
+ * The answer of [`requires_prior_knowledge`].
20
+ */
21
+ export interface JourneyPriorKnowledge {
22
+ /**
23
+ * The graph's coverage.
24
+ */
25
+ coverage: JourneyCoverage;
26
+ /**
27
+ * The graph's filter.
28
+ */
29
+ filterEcho: JourneyFilter;
30
+ /**
31
+ * What the whole graph did not look at. A listed node never rests on an
32
+ * open frontier (any open entry moves every candidate to `unsettled`);
33
+ * this block is what the NEGATIVE about the rest — "no other node
34
+ * requires prior knowledge" — is unknown over unless it is settled.
35
+ */
36
+ frontier: JourneySearchFrontier;
37
+ /**
38
+ * Nodes that require prior knowledge, settled: they qualify, nothing
39
+ * the graph left out could reach them by a click or a back button, no
40
+ * affordance anywhere is still unexplored, and the ledger is `writing`.
41
+ * Sorted by key.
42
+ */
43
+ nodes: JourneyPriorKnowledgeNode[];
44
+ /**
45
+ * Nodes that qualify on their kept arrivals but cannot be settled, with
46
+ * the causes that could still reach them. Sorted by key.
47
+ */
48
+ unsettled: JourneyPriorKnowledgeUnsettledNode[];
49
+ }
50
+ /**
51
+ * A node users only ever arrived at without clicking anything.
52
+ */
53
+ export interface JourneyPriorKnowledgeNode {
54
+ /**
55
+ * Observed arrivals per navigation trigger (`initial`, `push`,
56
+ * `replace`, `hash` only — by definition).
57
+ */
58
+ arrivals: {
59
+ [k: string]: number;
60
+ };
61
+ /**
62
+ * The node.
63
+ */
64
+ nodeKey: string;
65
+ }
66
+ /**
67
+ * A node that qualifies on its KEPT arrivals, but that some row the graph
68
+ * left out could still reach by a click or a back button — so whether it
69
+ * requires prior knowledge is unknown.
70
+ */
71
+ export interface JourneyPriorKnowledgeUnsettledNode {
72
+ /**
73
+ * Excluded (filtered / withdrawn) affordance or pop arrivals into it.
74
+ */
75
+ arrivalDoubt: JourneyArrivalDoubt;
76
+ /**
77
+ * Its kept URL-trigger arrivals, as in [`JourneyPriorKnowledgeNode`].
78
+ */
79
+ arrivals: {
80
+ [k: string]: number;
81
+ };
82
+ /**
83
+ * The ledger is not `writing`: a click into this node may simply have
84
+ * failed to be recorded.
85
+ */
86
+ ledgerNotWriting: boolean;
87
+ /**
88
+ * The node.
89
+ */
90
+ nodeKey: string;
91
+ /**
92
+ * Open frontier entries across the WHOLE graph — listable ones, rejected
93
+ * ones placed at a node, and unplaced rejected ones, each row once. An
94
+ * affordance nobody activated anywhere may be the link into this node.
95
+ */
96
+ openFrontierEntries: number;
97
+ /**
98
+ * No observed arrival at this node closed `changed` or `no_change`
99
+ * ([`JourneyGraphNode::unconfirmed_destination`]): it may be an
100
+ * intermediate state, not a page a URL leads to.
101
+ */
102
+ unconfirmedDestination: boolean;
103
+ /**
104
+ * [`JourneyGraph::unknown_destination_arrivals`] — any of them may
105
+ * arrive here.
106
+ */
107
+ unknownDestinationArrivals: number;
108
+ /**
109
+ * [`JourneyGraph::unplaced_rejected_rows`] — any of them may arrive here.
110
+ */
111
+ unplacedRejectedRows: number;
112
+ }
@@ -0,0 +1,64 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyCoverage } from "./JourneyCoverage";
10
+ import type { JourneyFilter } from "./JourneyFilter";
11
+ import type { JourneyLedgerHealth } from "./JourneyLedgerHealth";
12
+ import type { JourneyNode } from "./JourneyNode";
13
+ import type { JourneySearchFrontier } from "./JourneySearchFrontier";
14
+ import type { JourneySearchFrontierNode } from "./JourneySearchFrontierNode";
15
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
16
+
17
+ /**
18
+ * The answer of [`reachable_from`].
19
+ */
20
+ export interface JourneyReachable {
21
+ /**
22
+ * The graph's coverage.
23
+ */
24
+ coverage: JourneyCoverage;
25
+ /**
26
+ * The graph's filter.
27
+ */
28
+ filterEcho: JourneyFilter;
29
+ /**
30
+ * The start node's key.
31
+ */
32
+ fromKey: string;
33
+ /**
34
+ * Whether the start node was observed at all. `false` means the
35
+ * question was asked about a node the ledger has never seen — the
36
+ * caller answers `unknown` (`no_observations`), never "reaches nothing".
37
+ */
38
+ fromObserved: boolean;
39
+ /**
40
+ * What the searched component (exactly the `reachable` nodes) did not
41
+ * look at. Unsettled ⇒ "X is not reachable" is unknown.
42
+ */
43
+ frontier: JourneySearchFrontier;
44
+ /**
45
+ * Every node reachable from the start, INCLUDING the start at 0 steps
46
+ * (empty when `fromObserved` is false), sorted by key.
47
+ */
48
+ reachable: JourneyReachedNode[];
49
+ }
50
+ /**
51
+ * A node reached, and its BFS distance.
52
+ */
53
+ export interface JourneyReachedNode {
54
+ /**
55
+ * The node.
56
+ */
57
+ nodeKey: string;
58
+ /**
59
+ * Shortest OBSERVED number of navigation edges from the start (0 = the
60
+ * start) — an upper bound on the true distance while the frontier is
61
+ * unsettled.
62
+ */
63
+ steps: number;
64
+ }
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyNode } from "./JourneyNode";
10
+ import type { JourneySearchFrontierNode } from "./JourneySearchFrontierNode";
11
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
12
+
13
+ /**
14
+ * What the searched part of the graph did NOT look at. Empty
15
+ * ([`Self::is_settled`]) means a negative answer over that part is a real
16
+ * negative; otherwise it is unknown.
17
+ */
18
+ export interface JourneySearchFrontier {
19
+ /**
20
+ * Open frontier entries per reason — every reason present, zeros
21
+ * included.
22
+ */
23
+ byReason: {
24
+ [k: string]: number;
25
+ };
26
+ /**
27
+ * Nodes with open frontier entries, unobserved departures or unmeasured
28
+ * departures, sorted by key.
29
+ */
30
+ nodes: JourneySearchFrontierNode[];
31
+ /**
32
+ * The off-graph part included in `unmeasuredDepartures` (all zero for a
33
+ * question about one component).
34
+ */
35
+ offGraphDepartures: JourneyUnmeasuredDepartures;
36
+ /**
37
+ * Open frontier entries across those nodes.
38
+ */
39
+ openEntries: number;
40
+ /**
41
+ * Unmeasured departures across those nodes, plus — for a graph-wide
42
+ * question — `offGraphDepartures`.
43
+ */
44
+ unmeasuredDepartures: JourneyUnmeasuredDepartures;
45
+ /**
46
+ * Unobserved departures across those nodes.
47
+ */
48
+ unobservedDepartures: number;
49
+ /**
50
+ * Rejected frontier rows that could not be placed at any node (counted
51
+ * by every question).
52
+ */
53
+ unplacedRejectedFrontier: number;
54
+ /**
55
+ * Untrusted edge rows that could not be placed at any node (counted by
56
+ * every question).
57
+ */
58
+ unplacedRejectedRows: number;
59
+ }
@@ -0,0 +1,37 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyNode } from "./JourneyNode";
10
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
11
+
12
+ /**
13
+ * One node, inside a query's searched component, that was not fully looked
14
+ * at.
15
+ */
16
+ export interface JourneySearchFrontierNode {
17
+ /**
18
+ * The node.
19
+ */
20
+ nodeKey: string;
21
+ /**
22
+ * Its open frontier entries, grouped by reason (only reasons present),
23
+ * each list sorted by `affordanceFingerprint` — the affordances that
24
+ * would have to be explored to settle the question.
25
+ */
26
+ openByReason: {
27
+ [k: string]: FrontierEntry[];
28
+ };
29
+ /**
30
+ * Departures from it the navigation edge set left out.
31
+ */
32
+ unmeasuredDepartures: JourneyUnmeasuredDepartures;
33
+ /**
34
+ * Departures from it whose destination was never observed.
35
+ */
36
+ unobservedDepartures: number;
37
+ }
@@ -0,0 +1,65 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { FrontierEntry } from "./FrontierEntry";
9
+ import type { JourneyCoverage } from "./JourneyCoverage";
10
+ import type { JourneyFilter } from "./JourneyFilter";
11
+ import type { JourneyGraphEdge } from "./JourneyGraphEdge";
12
+ import type { JourneyLedgerHealth } from "./JourneyLedgerHealth";
13
+ import type { JourneyNode } from "./JourneyNode";
14
+ import type { JourneySearchFrontier } from "./JourneySearchFrontier";
15
+ import type { JourneySearchFrontierNode } from "./JourneySearchFrontierNode";
16
+ import type { JourneyTrigger } from "./JourneyTrigger";
17
+ import type { JourneyUnmeasuredDepartures } from "./JourneyUnmeasuredDepartures";
18
+
19
+ /**
20
+ * The answer of [`steps_to`].
21
+ */
22
+ export interface JourneySteps {
23
+ /**
24
+ * The graph's coverage.
25
+ */
26
+ coverage: JourneyCoverage;
27
+ /**
28
+ * The graph's filter.
29
+ */
30
+ filterEcho: JourneyFilter;
31
+ /**
32
+ * The start node's key.
33
+ */
34
+ fromKey: string;
35
+ /**
36
+ * Whether the start node was observed.
37
+ */
38
+ fromObserved: boolean;
39
+ /**
40
+ * What the component reachable from the start did not look at.
41
+ */
42
+ frontier: JourneySearchFrontier;
43
+ /**
44
+ * The edges of one shortest path, in order (empty when `steps` is null
45
+ * or 0). Among equally short paths, the one whose next node key is
46
+ * byte-wise smallest at every step; between parallel edges, the
47
+ * smallest edge in graph order.
48
+ */
49
+ path: JourneyGraphEdge[];
50
+ /**
51
+ * Shortest OBSERVED number of navigation edges from start to target — an
52
+ * upper bound on the true distance while the frontier is unsettled;
53
+ * `null` = no observed path (which is a negative only when `frontier` is settled and
54
+ * both endpoints were observed).
55
+ */
56
+ steps?: number | null;
57
+ /**
58
+ * The target node's key.
59
+ */
60
+ toKey: string;
61
+ /**
62
+ * Whether the target node was observed.
63
+ */
64
+ toObserved: boolean;
65
+ }
@@ -0,0 +1,84 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ /**
9
+ * Departures from one node that the NAVIGATION edge set (affordance +
10
+ * `changed`) leaves out, yet that may still lead somewhere — so a negative
11
+ * answer over a component containing the node stays `unknown`, never
12
+ * `absent`. The navigation counters count only `affordance`-triggered rows
13
+ * (a typed URL is not a way the app offers); excluded back-button (`pop`)
14
+ * rows have their own counter, [`Self::excluded_back_arrivals`]. A filtered
15
+ * or withdrawn click or back that closed `no_change`, or `error` on its own
16
+ * node, is never counted: that exclusion is a genuine negative (a URL-trigger
17
+ * row never is one). (A REJECTED row is not counted here at all: nothing in it is
18
+ * trusted, so it is placed at no node — see
19
+ * [`JourneyGraph::unplaced_rejected_rows`].) Each counter is its own
20
+ * `coverage.unmeasured` dimension — see [`JourneySearchFrontier::unmeasured`]
21
+ * for the dimension names and codes.
22
+ */
23
+ export interface JourneyUnmeasuredDepartures {
24
+ /**
25
+ * `error` edges to a DIFFERENT node: the action errored yet the
26
+ * configuration moved. Dimension `errored_departures`.
27
+ */
28
+ errored: number;
29
+ /**
30
+ * Back-button (`pop`) rows from this node that are not a kept, changed
31
+ * exit: valid `pop` rows the filter excluded or that were withdrawn
32
+ * (unless a genuine negative: `no_change`, or `error` on its own node),
33
+ * kept `pop` edges to ANOTHER node whose outcome is `error` or
34
+ * `settle_timeout`, and kept `pop` self-loops that closed
35
+ * `settle_timeout` (the same rules as an affordance edge's). A REJECTED pop row is not here — nothing in a rejected row
36
+ * is trusted, so it counts in `JourneyGraph::unplaced_rejected_rows`.
37
+ * Not a navigation
38
+ * departure, so a question about one component ignores it; the
39
+ * graph-wide questions it can change — `dead_ends`' `backOnly`,
40
+ * `requires_prior_knowledge`, the whole frontier — count it. Dimension
41
+ * `excluded_back_arrivals`.
42
+ */
43
+ excludedBackArrivals: number;
44
+ /**
45
+ * Valid URL-trigger rows (`initial` / `push` / `replace` / `hash`) from
46
+ * this node that the filter excluded or that were withdrawn, WHATEVER
47
+ * their outcome (a URL row is an arrival, never a genuine negative). A typed URL is not a navigation departure, so a question
48
+ * about one component ignores it; but it is an ARRIVAL that decides
49
+ * `requires_prior_knowledge`, and it may reveal a node no kept row
50
+ * shows, so the graph-wide questions (`requires_prior_knowledge`,
51
+ * `dead_ends`, the whole frontier) count it. Dimension
52
+ * `excluded_url_arrivals`.
53
+ */
54
+ excludedUrlArrivals: number;
55
+ /**
56
+ * Live, valid affordance rows the request's filter (`since` /
57
+ * `appVersion` / `runKind`) excluded, unless they are a genuine negative
58
+ * (`no_change`, or `error` on their own node). Dimension
59
+ * `filtered_departures`.
60
+ */
61
+ filteredOut: number;
62
+ /**
63
+ * Frontier rows at this node that failed `validate()` — treated as OPEN
64
+ * entries the read cannot list. A row whose `nodeKey` column disagrees
65
+ * with its `node` is counted at BOTH keys (the column's, and the valid
66
+ * node's), since either may be the true one. Dimension
67
+ * `rejected_frontier`.
68
+ */
69
+ rejectedFrontier: number;
70
+ /**
71
+ * Affordance edges that closed `settle_timeout` — to a DIFFERENT node
72
+ * (the destination may be an intermediate render), or to the SAME node
73
+ * (the destination may not have rendered before the snapshot). Not a
74
+ * navigation step, but not a negative either. Dimension
75
+ * `settle_timeout_departures`.
76
+ */
77
+ settleTimeout: number;
78
+ /**
79
+ * Withdrawn affordance rows (`invalidatedAt` set) that pass `validate()`,
80
+ * unless they are a genuine negative (`no_change`, or `error` on their
81
+ * own node). Dimension `withdrawn_departures`.
82
+ */
83
+ withdrawn: number;
84
+ }
@@ -0,0 +1,23 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ /**
9
+ * One row of an interface mapping.
10
+ */
11
+ export interface MappingRow {
12
+ /**
13
+ * The business rule or requirement (`spec_ref`) the row implements.
14
+ */
15
+ rule_ref?: string | null;
16
+ source_field: string;
17
+ target_field: string;
18
+ /**
19
+ * The transformation applied, in prose or a short expression.
20
+ */
21
+ transform?: string | null;
22
+ [k: string]: unknown;
23
+ }