@issuegraph/viewer 0.3.0 → 0.9.1

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 (59) hide show
  1. package/dist/clusters.d.ts +116 -0
  2. package/dist/clusters.d.ts.map +1 -1
  3. package/dist/clusters.js +85 -2
  4. package/dist/clusters.js.map +1 -1
  5. package/dist/document.d.ts +228 -5
  6. package/dist/document.d.ts.map +1 -1
  7. package/dist/document.js +204 -3
  8. package/dist/document.js.map +1 -1
  9. package/dist/element.d.ts +11 -0
  10. package/dist/element.d.ts.map +1 -1
  11. package/dist/element.js.map +1 -1
  12. package/dist/index.d.ts +17 -6
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +31 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/layout.d.ts +79 -50
  17. package/dist/layout.d.ts.map +1 -1
  18. package/dist/layout.js +371 -170
  19. package/dist/layout.js.map +1 -1
  20. package/dist/marks.d.ts +105 -0
  21. package/dist/marks.d.ts.map +1 -0
  22. package/dist/marks.js +430 -0
  23. package/dist/marks.js.map +1 -0
  24. package/dist/mount.d.ts +13 -0
  25. package/dist/mount.d.ts.map +1 -1
  26. package/dist/mount.js +69 -1
  27. package/dist/mount.js.map +1 -1
  28. package/dist/navigation.d.ts +14 -0
  29. package/dist/navigation.d.ts.map +1 -1
  30. package/dist/navigation.js +51 -0
  31. package/dist/navigation.js.map +1 -1
  32. package/dist/parts.d.ts +308 -2
  33. package/dist/parts.d.ts.map +1 -1
  34. package/dist/parts.js +845 -65
  35. package/dist/parts.js.map +1 -1
  36. package/dist/projections/graph.d.ts +25 -0
  37. package/dist/projections/graph.d.ts.map +1 -1
  38. package/dist/projections/graph.js +476 -335
  39. package/dist/projections/graph.js.map +1 -1
  40. package/dist/projections/linear.d.ts +135 -0
  41. package/dist/projections/linear.d.ts.map +1 -1
  42. package/dist/projections/linear.js +266 -31
  43. package/dist/projections/linear.js.map +1 -1
  44. package/dist/projections/tree.d.ts.map +1 -1
  45. package/dist/projections/tree.js +29 -3
  46. package/dist/projections/tree.js.map +1 -1
  47. package/dist/styles.d.ts +10 -1
  48. package/dist/styles.d.ts.map +1 -1
  49. package/dist/styles.js +1275 -132
  50. package/dist/styles.js.map +1 -1
  51. package/dist/theme.d.ts +5 -6
  52. package/dist/theme.d.ts.map +1 -1
  53. package/dist/theme.js +119 -7
  54. package/dist/theme.js.map +1 -1
  55. package/dist/vocabulary.d.ts +39 -0
  56. package/dist/vocabulary.d.ts.map +1 -1
  57. package/dist/vocabulary.js +27 -0
  58. package/dist/vocabulary.js.map +1 -1
  59. package/package.json +2 -2
@@ -30,9 +30,125 @@ export interface Cluster {
30
30
  * answer, relayed — never derived from the edges here.
31
31
  */
32
32
  readonly hasCycle: boolean;
33
+ /**
34
+ * How many members the host names in a cycle — never the whole component.
35
+ *
36
+ * A COMPONENT IS UNDIRECTED AND A CYCLE IS NOT. `connectedComponents` joins
37
+ * members across EVERY relationship, so a component holding a two-issue cycle
38
+ * can also hold fifty issues that merely touch it, and SPEC §6.6 is narrow
39
+ * about the consequence: "Issues in a cycle are not ready" — the issues, not
40
+ * the component. `hasCycle` alone cannot tell "three of three are stuck" from
41
+ * "two of fifty-two are", and a surface reading it as the former says
42
+ * something false about the other fifty.
43
+ */
44
+ readonly stuckMembers: number;
33
45
  /** The longest `blocked-by` chain, in edges. `0` when nothing blocks. */
34
46
  readonly chainDepth: number;
35
47
  }
48
+ /**
49
+ * What a component says about how the work inside it runs — the ONE fact a
50
+ * capsule prints under its name, resolved here so every surface prints the
51
+ * same one.
52
+ *
53
+ * IT IS A UNION BECAUSE THE THREE CASES ARE NOT VARIANTS OF ONE SENTENCE, and
54
+ * a capsule that could hold two of them printed something untrue. `chainDepth`
55
+ * is the longest ACYCLIC chain (`chainDepthOf` says so, and a prior round fixed
56
+ * it to be exactly that), so on a component the host reports as stuck the
57
+ * number is right about its own question and wrong about the reader's: a small
58
+ * finite depth beside a `cycle` badge reads as a work estimate — *four issues,
59
+ * two deep, get going* — when none of the members can ever be ready at all.
60
+ * §17d calls a cycle "the only finding that stops work outright", and frame
61
+ * `17f` draws the consequence where every other capsule draws its depth.
62
+ *
63
+ * So the depth is not suppressed at the point of drawing, which would leave two
64
+ * renderers each remembering to. There is no value to suppress: a stuck
65
+ * component has no `depth` field to print.
66
+ */
67
+ export type ClusterReach =
68
+ /**
69
+ * The host reports a cycle through this component.
70
+ *
71
+ * NAMED FOR WHAT IT CONTAINS, NOT FOR A CONSEQUENCE. This arm was `stuck`,
72
+ * and that name is only true on the `held === of` leg — a two-issue loop
73
+ * inside a fifty-two-issue component makes the component cyclic, not stuck,
74
+ * which is the whole reason the two counts are here and the label stops
75
+ * short of a readiness claim. A discriminant an exhaustive consumer reads as
76
+ * "none of this can be worked" then contradicts the sentence rendered
77
+ * beside it. Same correction as `no-chain` below, on the arm that prompted
78
+ * it.
79
+ *
80
+ * BOTH NUMBERS, because "how much of this is a loop" is the question and the
81
+ * two answers read completely differently: `held === of` is a component that
82
+ * is entirely a loop and can never produce anything, while `held < of` is a
83
+ * loop sitting inside a larger component. Saying the first about the second is
84
+ * the overreach SPEC §6.6 rules out.
85
+ *
86
+ * NEITHER NUMBER IS A READINESS COUNT, and `held` in particular is not "how
87
+ * many cannot start". An issue blocked by a cycle member never becomes ready
88
+ * either, so the stuck set is the cycle plus everything transitively behind
89
+ * it — and deriving that here would be deriving readiness inside a package
90
+ * that takes the host's answer for it. `clusterReachLabel` words the
91
+ * `held < of` arm accordingly: what the component contains, not what can run.
92
+ */
93
+ {
94
+ readonly kind: 'cyclic';
95
+ readonly held: number;
96
+ readonly of: number;
97
+ }
98
+ /** The longest `blocked-by` chain, in edges. At least one. */
99
+ | {
100
+ readonly kind: 'chain';
101
+ readonly depth: number;
102
+ }
103
+ /**
104
+ * It carries `blocked-by` edges, and none of them orders anything: the chain
105
+ * walk stepped over every one, so there is no chain to report.
106
+ *
107
+ * NAMED AFTER ITS PREDICATE, NOT AFTER WHAT THE PREDICATE IMPLIES. An earlier
108
+ * revision called this `looped`, and the inference behind that name is sound
109
+ * — a skipped edge is a back-edge, and a back-edge closes a directed loop. It
110
+ * was still the wrong name, for the reason this module's header already
111
+ * gives: **the cycle question is not asked here at all**, it is the host's
112
+ * answer relayed through `stuck`. A discriminant reading `looped` is one an
113
+ * exhaustive consumer can reasonably take as evidence of a cycle, which would
114
+ * make this package assert from a local walk exactly what it refuses to
115
+ * derive. So it says only what it saw: blocking edges, no ordering.
116
+ *
117
+ * UNREACHABLE THROUGH `normalizeDocument`, WHICH DROPS A SELF-EDGE, and
118
+ * encoded anyway. A loop of two or more always leaves at least one edge the
119
+ * walk can follow, so the only way every edge is skipped is a self-loop — and
120
+ * `clustersOf` is a public export taking a plain `NormalizedDocument` a
121
+ * consumer can build by hand. The case is here because the alternative was
122
+ * `unblocked` covering it, which is a claim about a component with a blocking
123
+ * count printed beside it.
124
+ */
125
+ | {
126
+ readonly kind: 'no-chain';
127
+ readonly edges: number;
128
+ }
129
+ /** No `blocked-by` edge at all, so nothing in the component waits on anything. */
130
+ | {
131
+ readonly kind: 'unblocked';
132
+ };
133
+ /**
134
+ * The reach of one component.
135
+ *
136
+ * Derived rather than stored, so `Cluster` keeps carrying both raw facts for a
137
+ * caller asking a different question, and the two cannot disagree.
138
+ */
139
+ export declare function clusterReach(cluster: Cluster): ClusterReach;
140
+ /**
141
+ * The reach as the capsule prints it — frame `17f`'s own words.
142
+ *
143
+ * THE WORDING LIVES BESIDE THE FACT, for the reason `why-rank` already
144
+ * establishes on this surface: two renderers drawing one fact must not each
145
+ * hold their own sentence for it, or the §16 capsule and the §17f capsule
146
+ * describe the same component differently on one screen.
147
+ *
148
+ * Total over the union, so a fourth case cannot be added without a compiler
149
+ * error here.
150
+ */
151
+ export declare function clusterReachLabel(reach: ClusterReach): string;
36
152
  /** Every component the document declares, largest first, then by first member. */
37
153
  export declare function clustersOf(document: NormalizedDocument,
38
154
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"clusters.d.ts","sourceRoot":"","sources":["../src/clusters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAuID,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,kBAAkB;AAC5B;;;;;;;GAOG;AACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,SAAS,OAAO,EAAE,CAiDpB"}
1
+ {"version":3,"file":"clusters.d.ts","sourceRoot":"","sources":["../src/clusters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,YAAY;AACtB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACzE,8DAA8D;GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACpD;;;;;;;;;;;;;;;;;;;;;GAqBG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACvD,kFAAkF;GAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAc3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAoC7D;AAuID,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,kBAAkB;AAC5B;;;;;;;GAOG;AACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,SAAS,OAAO,EAAE,CA2DpB"}
package/dist/clusters.js CHANGED
@@ -20,6 +20,77 @@
20
20
  * differ, and both were on one screen. One answer, given, is the rule this
21
21
  * package already applies to the order; the cycle badge follows it.
22
22
  */
23
+ /**
24
+ * The reach of one component.
25
+ *
26
+ * Derived rather than stored, so `Cluster` keeps carrying both raw facts for a
27
+ * caller asking a different question, and the two cannot disagree.
28
+ */
29
+ export function clusterReach(cluster) {
30
+ if (cluster.stuckMembers > 0) {
31
+ return { kind: 'cyclic', held: cluster.stuckMembers, of: cluster.members.length };
32
+ }
33
+ // ASKED OF THE EDGES, NOT OF THE WALK'S ANSWER. `chainDepth === 0` and "has
34
+ // no blocking edge" agree on every document `normalizeDocument` can produce,
35
+ // and they are not the same claim: the depth is what the walk COULD FOLLOW,
36
+ // and it skips a back-edge. Reading `unblocked` off it would render "no
37
+ // blocking chain" beside a non-zero blocking count on the same card — the
38
+ // exact shape of contradiction `ClusterReach` exists to make unrepresentable,
39
+ // rebuilt one predicate down.
40
+ if (cluster.blockedByEdges === 0)
41
+ return { kind: 'unblocked' };
42
+ if (cluster.chainDepth === 0)
43
+ return { kind: 'no-chain', edges: cluster.blockedByEdges };
44
+ return { kind: 'chain', depth: cluster.chainDepth };
45
+ }
46
+ /**
47
+ * The reach as the capsule prints it — frame `17f`'s own words.
48
+ *
49
+ * THE WORDING LIVES BESIDE THE FACT, for the reason `why-rank` already
50
+ * establishes on this surface: two renderers drawing one fact must not each
51
+ * hold their own sentence for it, or the §16 capsule and the §17f capsule
52
+ * describe the same component differently on one screen.
53
+ *
54
+ * Total over the union, so a fourth case cannot be added without a compiler
55
+ * error here.
56
+ */
57
+ export function clusterReachLabel(reach) {
58
+ switch (reach.kind) {
59
+ // ONE ARM MAKES A READINESS CLAIM, AND ONLY BECAUSE IT CANNOT BE WRONG.
60
+ //
61
+ // `held === of` is a component that is entirely a loop: SPEC §6.6 says
62
+ // issues in a cycle are not ready, so "nothing can start" follows for every
63
+ // member with nothing to derive. That is the frame's own capsule — three
64
+ // issues, all of them the loop — and its words are kept.
65
+ //
66
+ // `held < of` says what the component CONTAINS and stops there. The obvious
67
+ // reading, "the other members are fine", is false: an issue blocked by a
68
+ // cycle member never becomes ready either, so the truly-stuck set is the
69
+ // cycle plus everything transitively behind it. Computing that here would
70
+ // mean deriving READINESS inside the viewer — the one thing this package
71
+ // refuses, because the host's model already answers it and two answers to
72
+ // one question on one screen is the defect the cycle badge itself was
73
+ // rewritten to remove. The rail beside this canvas is the surface that
74
+ // holds that answer, and it is complete at any size.
75
+ //
76
+ // NEITHER ARM PRINTS A DEPTH. A partly-stuck component has a real chain
77
+ // among its reachable members, but this slot answers "what is in here that
78
+ // changes how it runs", and a loop outranks how deep the rest goes.
79
+ case 'cyclic':
80
+ return reach.held === reach.of
81
+ ? 'nothing can start'
82
+ : `${String(reach.held)} of ${String(reach.of)} in a cycle`;
83
+ case 'chain':
84
+ return `deepest chain ${String(reach.depth)}`;
85
+ // NAMES THE EDGES, so the sentence cannot contradict the count drawn beside
86
+ // it: something blocks, and none of it puts the work in an order. It does
87
+ // not name a loop either, for the reason the arm's own note gives.
88
+ case 'no-chain':
89
+ return `${String(reach.edges)} blocking ${reach.edges === 1 ? 'edge' : 'edges'}, none ordering`;
90
+ case 'unblocked':
91
+ return 'no blocking chain';
92
+ }
93
+ }
23
94
  function connectedComponents(document, drawn) {
24
95
  const adjacency = new Map();
25
96
  const touch = (key) => {
@@ -197,8 +268,20 @@ drawn) {
197
268
  // THE HOST'S ANSWER, LOOKED UP — never re-derived. A cycle the reader
198
269
  // found touches this component when any member of it is a member here; the
199
270
  // set is built once above, so the whole pass stays linear.
200
- const hasCycle = members.some((member) => stuck.has(member));
201
- return { members, blockedByEdges, hasCycle, chainDepth: chainDepthOf(members, blockedBy) };
271
+ // COUNTED, NOT JUST TESTED. `some` answers whether the component touches a
272
+ // cycle; how MUCH of it the cycle holds is a different question, and the
273
+ // one a reader acts on. Same single pass over the members either way.
274
+ let stuckMembers = 0;
275
+ for (const member of members)
276
+ if (stuck.has(member))
277
+ stuckMembers += 1;
278
+ return {
279
+ members,
280
+ blockedByEdges,
281
+ hasCycle: stuckMembers > 0,
282
+ stuckMembers,
283
+ chainDepth: chainDepthOf(members, blockedBy),
284
+ };
202
285
  });
203
286
  // CODE UNITS, NOT `localeCompare`. This package promises deterministic
204
287
  // rendering, and `localeCompare` without an explicit locale uses the RUNTIME's
@@ -1 +1 @@
1
- {"version":3,"file":"clusters.js","sourceRoot":"","sources":["../src/clusters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clusters.js","sourceRoot":"","sources":["../src/clusters.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,16 @@ export interface ViewerIssue {
161
161
  readonly previewOnly?: PreviewOnly | undefined;
162
162
  /** Set when two host signals disagreed about this row. Absent means they agreed, or there was one. */
163
163
  readonly disagreement?: Disagreement | undefined;
164
+ /**
165
+ * The block's `evidence` field, when the host read one.
166
+ *
167
+ * ABSENT READS `asserted`, which §16d states in those words — so the type is
168
+ * optional rather than defaulted, and the row draws a chip only for
169
+ * `verified`. A panel that printed "asserted" on every row would spend a chip
170
+ * slot saying nothing, and defaulting the value here would make an absent
171
+ * field indistinguishable from a stated one.
172
+ */
173
+ readonly evidence?: 'asserted' | 'verified' | undefined;
164
174
  }
165
175
  /** One relationship, exactly as the format declares it. */
166
176
  export interface ViewerEdge {
@@ -175,9 +185,14 @@ export interface ViewerEdge {
175
185
  */
176
186
  export interface ViewerSlot {
177
187
  /**
178
- * The 1-based rank, or `null` when the slot is held. A held slot renders `—`
179
- * rather than a number: it has no position in the sequence, and printing one
180
- * would claim work is queued that nothing can start.
188
+ * The 1-based rank, or `null` when the host's order cannot place the slot.
189
+ *
190
+ * NOT THE SAME AS "HELD". `RULINGS.md` §1 (Claude Design, 2026-09-20) draws
191
+ * both arms: a held slot whose blocker is *inside* the previewed order keeps
192
+ * its rank — `#512 ⊘ blocked-by #488` sits at rank 2 while #488 sits at 1 —
193
+ * and one whose blocker is outside it renders `—` and names a
194
+ * {@link wouldBeRank} instead. `ready` is the field that answers whether
195
+ * anything may start; this one answers where the row sits.
181
196
  */
182
197
  readonly rank: number | null;
183
198
  /** The member that placed the slot — the detail surface's subject. */
@@ -193,6 +208,25 @@ export interface ViewerSlot {
193
208
  * dashed one when held.
194
209
  */
195
210
  readonly readyAfterRank?: number | null | undefined;
211
+ /**
212
+ * The position this slot WOULD take, for a slot the order could not place.
213
+ *
214
+ * §16a prints it beside the id — `#530 · would be rank 4` — so a row that
215
+ * shows `—` still answers *where would this have been*. Absent or `null`
216
+ * whenever {@link rank} carries a number, and a host that does not compute
217
+ * one omits it: the slot then reads exactly as it did before this field.
218
+ *
219
+ * NOT A COLLISION with the rank of the same number. §16a draws `#503` at
220
+ * rank 4 and `#530` as *would be rank 4* at once, because a would-be rank is
221
+ * the position the slot would TAKE — #530 arriving among the P1s lands at 4
222
+ * and pushes #503 to 5. It consumes nothing, so the numbers below it are
223
+ * unchanged, which is the whole reason the two can read alike.
224
+ *
225
+ * THE VIEWER NEVER COMPUTES IT. The order is the host's, and counting a
226
+ * position here would state the reader's slice as a fact about the order —
227
+ * the same rule that keeps {@link OrderCounts} supplied.
228
+ */
229
+ readonly wouldBeRank?: number | null | undefined;
196
230
  }
197
231
  /** An issue the order deliberately never works. */
198
232
  export interface ViewerExclusion {
@@ -205,8 +239,8 @@ export interface ViewerExclusion {
205
239
  export interface ViewerOrder {
206
240
  /**
207
241
  * Every slot in derivation order. A HELD slot keeps its position — it is
208
- * never moved to the end — so its rank column reads `—` exactly where the
209
- * work would have sat.
242
+ * never moved to the end — so the row that explains why the work is not
243
+ * running sits exactly where the work would have sat.
210
244
  */
211
245
  readonly slots: readonly ViewerSlot[];
212
246
  readonly excluded: readonly ViewerExclusion[];
@@ -265,6 +299,154 @@ export interface Freshness {
265
299
  */
266
300
  readonly refresh?: string | undefined;
267
301
  }
302
+ /**
303
+ * A control the host will perform, offered beside a condition.
304
+ *
305
+ * The same rule the refresh button already follows: the viewer draws it only
306
+ * because a host supplied a word for it, publishes the command, and wires
307
+ * nothing. `href` turns it into a link instead — some hosts route rather than
308
+ * act — and is validated against the same scheme allowlist a deep link is,
309
+ * because it becomes the same executable surface when it reaches the DOM.
310
+ */
311
+ export interface ConditionAction {
312
+ readonly label: string;
313
+ readonly href?: string | undefined;
314
+ }
315
+ /**
316
+ * What the host says is true of the panel as a whole, in the three shapes the
317
+ * design names beyond a populated order.
318
+ *
319
+ * A HOST FACT, LIKE EVERY OTHER FIELD HERE. Whether an import is in flight,
320
+ * whether the index could be read, and why nothing is eligible are answers only
321
+ * the host holds — the viewer holds a document, and a document cannot say why
322
+ * it is short. Deriving `empty` from an order with no slots would be the same
323
+ * mistake `OrderCounts` exists to avoid: a fact about the reader's slice stated
324
+ * as a fact about the world.
325
+ *
326
+ * EVERY STRING IS THE HOST'S WORDS, none of them the package's. The sentences
327
+ * this state needs are claims about a host's own runner — that it stays armed,
328
+ * that it continues on its last known order — and a rendering package has no
329
+ * standing to make them.
330
+ *
331
+ * ONE KIND AT A TIME, AND THAT IS A NARROWING RATHER THAN A CLAIM ABOUT THE
332
+ * WORLD. A repository can be importing AND have nothing eligible; a host in
333
+ * that position states `importing`, and because a stated condition replaces the
334
+ * projection's own empty sentence, the reader is told one thing rather than
335
+ * two. A union is used over a list because this type is published: widening a
336
+ * union later is additive, and narrowing a list is not.
337
+ */
338
+ export type ViewerCondition =
339
+ /** The first import is still running. The order below is real and incomplete. */
340
+ {
341
+ readonly kind: 'importing';
342
+ readonly headline: string;
343
+ /** That ranks will change as the rest arrive. */
344
+ readonly caution: string;
345
+ /** Honest progress, as the host counts it: `412 of ~1,200 issues`. */
346
+ readonly progress: string;
347
+ readonly glyph?: string | undefined;
348
+ }
349
+ /** Nothing is eligible. The host says why, and that its pipeline stays armed. */
350
+ | {
351
+ readonly kind: 'empty';
352
+ readonly headline: string;
353
+ readonly reason: string;
354
+ readonly assurance: string;
355
+ readonly action?: ConditionAction | undefined;
356
+ readonly glyph?: string | undefined;
357
+ }
358
+ /** The index could not be read. The order shown is the last one that could. */
359
+ | {
360
+ readonly kind: 'error';
361
+ readonly headline: string;
362
+ readonly assurance: string;
363
+ /**
364
+ * The label of a retry control. WHEN PRESENT, AND ONLY THEN, the viewer
365
+ * publishes `retry:index` and wires nothing — re-reading an index is
366
+ * fetching, which this layer never does.
367
+ *
368
+ * NAMESPACED, AND NOT THE BARE WORD. `data-ig-command` is one namespace
369
+ * shared with `@issuegraph/editor` and with whatever the host publishes
370
+ * beside it, and a bare `retry` already means "retry that write" to the
371
+ * editor's own reducer. Two meanings on one name is a control that looks
372
+ * wired and does the wrong thing, or nothing.
373
+ */
374
+ readonly retry?: string | undefined;
375
+ readonly glyph?: string | undefined;
376
+ }
377
+ /**
378
+ * A FILTER IS ON AND NOTHING MATCHED IT. The order is intact; the host is
379
+ * only declining to draw part of it.
380
+ *
381
+ * THIS IS NOT A ZERO, AND THAT IS THE WHOLE REASON THE KIND EXISTS. §16i
382
+ * enumerates four zeros and **none of them is "a filter is on"** — so a
383
+ * narrowed document with no rows left was falling through to the projection's
384
+ * own derived sentence, *"Nothing is in the order right now"*, while the
385
+ * order it describes still held every one of its ranks. `RULINGS.md` §2:
386
+ * that is *"a false statement about the data, and it is the one thing this
387
+ * panel exists not to make."*
388
+ *
389
+ * It is the same defect {@link statesItsOwnCause} already names one input
390
+ * over — *"its own derived sentence is not a fallback explanation but a false
391
+ * one"* — reached by narrowing rather than by a host condition, which is why
392
+ * the remedy is the same: the host RECORDS what it did, and the projection
393
+ * stops deriving.
394
+ *
395
+ * THE DENOMINATOR IS REQUIRED, not optional, because it is the half that
396
+ * does the work. *"No flagged rows match"* alone still reads as absence;
397
+ * *"8 issues are ranked"* beside it cannot. A kind that let a host omit it
398
+ * would let the lie back in through a missing field.
399
+ */
400
+ | {
401
+ readonly kind: 'filtered';
402
+ /** What did not match: `No flagged rows match.` */
403
+ readonly headline: string;
404
+ /** What still exists regardless: `8 issues are ranked`. */
405
+ readonly denominator: string;
406
+ /** The way back, which §17d requires be one click: `clear the filter`. */
407
+ readonly action?: ConditionAction | undefined;
408
+ readonly glyph?: string | undefined;
409
+ };
410
+ /**
411
+ * How much of the host's backlog declares Issuegraph relationships at all.
412
+ *
413
+ * THE DAY-ONE FACT, and it is the host's for the same reason `OrderCounts` is:
414
+ * the document here may be a window or a slice, so a count taken over it would
415
+ * state the reader's scroll position as a fact about the repository. The host
416
+ * has the whole backlog; the host counts.
417
+ *
418
+ * TWO INDEPENDENT FIELDS, and which of them to supply is the host's call. The
419
+ * design draws a header count where adoption is partial and a footer line where
420
+ * it is absent; a viewer that picked between them from `declaring === 0` would
421
+ * be deriving a state from a number, which is the thing this port exists to
422
+ * stop. So both are optional and neither implies the other.
423
+ */
424
+ export interface Adoption {
425
+ /** `12 of 48 declare relationships`. Both non-negative integers. */
426
+ readonly counts?: {
427
+ readonly declaring: number;
428
+ readonly total: number;
429
+ } | undefined;
430
+ /** One quiet line for the panel footer. The host's sentence, link and dismiss word. */
431
+ readonly note?: {
432
+ readonly text: string;
433
+ /**
434
+ * A SHORT LINK BESIDE THE SENTENCE, never the sentence itself.
435
+ *
436
+ * The design asks this line to read quiet — it is the day-one panel's
437
+ * only commentary, on a state that has to feel complete rather than
438
+ * lacking. Hanging the href on `text` made the whole sentence one
439
+ * underlined anchor, which is the loudest element on the panel and the
440
+ * opposite of what was asked for. So the label is its own field.
441
+ */
442
+ readonly link?: {
443
+ readonly text: string;
444
+ readonly href: string;
445
+ } | undefined;
446
+ /** The label of a dismiss control. Absent draws none; the viewer never hides its own line. */
447
+ readonly dismiss?: string | undefined;
448
+ } | undefined;
449
+ }
268
450
  /**
269
451
  * THE HOST-FACTS PORT: the half of the design the graph cannot derive.
270
452
  *
@@ -275,11 +457,34 @@ export interface Freshness {
275
457
  * viewer constant: no cap, no clock, no repository name.
276
458
  */
277
459
  export interface HostFacts {
460
+ /**
461
+ * What backlog this is — the qualified repository, beside the surface name.
462
+ *
463
+ * ADDED FOR §17, and on this port rather than a second one for the reason
464
+ * every other fact here is on it: a workspace that took its identity from
465
+ * one place and its freshness from another could name one repository while
466
+ * stamping another's read. The viewer draws no link for it — that would mean
467
+ * knowing a tracker's URL shape, which is the knowledge this layer exists
468
+ * not to have.
469
+ */
470
+ readonly identity?: string | undefined;
471
+ /**
472
+ * The label of §17a's `First pass →` entry.
473
+ *
474
+ * PRESENT MEANS THE HOST OFFERS ONE, absent means it does not — the same
475
+ * shape as `Freshness.refresh`, and for the same reason: the control is
476
+ * drawn with `data-ig-command` and wired to nothing, because whether a
477
+ * backlog has a first pass to run is the host's answer and running it is the
478
+ * host's job.
479
+ */
480
+ readonly firstPass?: string | undefined;
278
481
  /** How many ready slots may run at once. A non-negative integer. */
279
482
  readonly concurrencyCap?: number | undefined;
280
483
  readonly counts?: OrderCounts | undefined;
281
484
  readonly running?: readonly RunningJob[] | undefined;
282
485
  readonly freshness?: Freshness | undefined;
486
+ readonly condition?: ViewerCondition | undefined;
487
+ readonly adoption?: Adoption | undefined;
283
488
  }
284
489
  /** Everything the viewer draws. */
285
490
  export interface ViewerDocument {
@@ -308,10 +513,14 @@ export interface ViewerDocument {
308
513
  }
309
514
  /** The host facts after normalisation: `running` always a list, the rest present only when the host stated them. */
310
515
  export interface NormalizedHostFacts {
516
+ readonly identity?: string | undefined;
517
+ readonly firstPass?: string | undefined;
311
518
  readonly concurrencyCap?: number | undefined;
312
519
  readonly counts?: OrderCounts | undefined;
313
520
  readonly running: readonly RunningJob[];
314
521
  readonly freshness?: Freshness | undefined;
522
+ readonly condition?: ViewerCondition | undefined;
523
+ readonly adoption?: Adoption | undefined;
315
524
  }
316
525
  /**
317
526
  * A normalised document plus an index over it. The index exists so no
@@ -358,6 +567,20 @@ export interface NormalizeResult {
358
567
  */
359
568
  readonly diagnostics: readonly string[];
360
569
  }
570
+ /**
571
+ * Whether a URL may be put in an `href` at all.
572
+ *
573
+ * EXPORTED BECAUSE A SIBLING OWES IT. `@issuegraph/editor` draws §17d's
574
+ * `Open in GitHub` link from a URL its HOST resolves, and an `href` is a
575
+ * script-execution sink that escaping does not close — `renderMarkup` escapes
576
+ * attribute TEXT and has no opinion about schemes. The alternative was a second
577
+ * allowlist out there, which is precisely the "second implementation whose
578
+ * input space drifts" this package's barrel exists to prevent, and it would
579
+ * have had to re-derive the canonicalization below rather than the easy part.
580
+ *
581
+ * The rule this package already applies to its own document links, unchanged.
582
+ */
583
+ export declare function isLinkable(url: string): boolean;
361
584
  /**
362
585
  * Read a document into the shape every projection consumes.
363
586
  *
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}