@qontinui/shared-types 2.4.0 → 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.
- package/dist/scheduler.d.cts +74 -1
- package/dist/scheduler.d.ts +74 -1
- package/package.json +1 -1
- package/src/generated/ChangeTimeline.d.ts +484 -0
- package/src/generated/CriterionVerification.d.ts +11 -0
- package/src/generated/DetectedAnimation.d.ts +32 -0
- package/src/generated/EarsPattern.d.ts +20 -0
- package/src/generated/EdgeTiming.d.ts +156 -0
- package/src/generated/ExternalRef.d.ts +22 -0
- package/src/generated/InterfaceMappingFrontmatter.d.ts +21 -0
- package/src/generated/JourneyArrivalDoubt.d.ts +26 -0
- package/src/generated/JourneyCoverage.d.ts +91 -0
- package/src/generated/JourneyDeadEnds.d.ts +109 -0
- package/src/generated/JourneyEdgeObservation.d.ts +3 -2
- package/src/generated/JourneyEdgeTimingAnswer.d.ts +88 -0
- package/src/generated/JourneyFilter.d.ts +35 -0
- package/src/generated/JourneyFrontier.d.ts +51 -0
- package/src/generated/JourneyGraph.d.ts +165 -0
- package/src/generated/JourneyGraphEdge.d.ts +45 -0
- package/src/generated/JourneyPriorKnowledge.d.ts +112 -0
- package/src/generated/JourneyReachable.d.ts +64 -0
- package/src/generated/JourneySearchFrontier.d.ts +59 -0
- package/src/generated/JourneySearchFrontierNode.d.ts +37 -0
- package/src/generated/JourneySteps.d.ts +65 -0
- package/src/generated/JourneyUnmeasuredDepartures.d.ts +84 -0
- package/src/generated/MappingRow.d.ts +23 -0
- package/src/generated/MetricDistribution.d.ts +54 -0
- package/src/generated/RequestFrontmatter.d.ts +30 -0
- package/src/generated/RequirementFrontmatter.d.ts +31 -0
- package/src/generated/ScheduledTask.d.ts +52 -0
- package/src/generated/ScheduledTaskType.d.ts +22 -1
- package/src/generated/SourceCitation.d.ts +25 -0
- package/src/generated/SourceCitationKind.d.ts +12 -0
- package/src/generated/SpecAcceptanceCriterion.d.ts +28 -0
- package/src/generated/SpecFrontmatter.d.ts +36 -0
- package/src/generated/SpecLanguage.d.ts +11 -0
- package/src/generated/StoryFrontmatter.d.ts +26 -0
- package/src/generated/TemplateRef.d.ts +17 -0
- package/src/generated/UnknownCode.d.ts +8 -1
- package/src/generated/index.ts +32 -3
- package/src/generated/CapabilityState.d.ts +0 -25
- package/src/generated/CliProfile.d.ts +0 -492
- 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
|
+
}
|