daftari 1.30.0 → 1.31.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 (282) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +139 -4
  3. package/dist/access/rbac.d.ts +1 -0
  4. package/dist/access/rbac.d.ts.map +1 -1
  5. package/dist/access/rbac.js +7 -0
  6. package/dist/access/rbac.js.map +1 -1
  7. package/dist/audit/checks/broken_refs.d.ts +1 -1
  8. package/dist/audit/checks/broken_refs.d.ts.map +1 -1
  9. package/dist/audit/checks/broken_refs.js +77 -22
  10. package/dist/audit/checks/broken_refs.js.map +1 -1
  11. package/dist/audit/collect.d.ts +1 -0
  12. package/dist/audit/collect.d.ts.map +1 -1
  13. package/dist/audit/collect.js +22 -2
  14. package/dist/audit/collect.js.map +1 -1
  15. package/dist/audit/index.d.ts.map +1 -1
  16. package/dist/audit/index.js +9 -3
  17. package/dist/audit/index.js.map +1 -1
  18. package/dist/audit/links.d.ts.map +1 -1
  19. package/dist/audit/links.js +9 -3
  20. package/dist/audit/links.js.map +1 -1
  21. package/dist/audit/report.d.ts.map +1 -1
  22. package/dist/audit/report.js +2 -0
  23. package/dist/audit/report.js.map +1 -1
  24. package/dist/audit/types.d.ts +4 -1
  25. package/dist/audit/types.d.ts.map +1 -1
  26. package/dist/audit/types.js.map +1 -1
  27. package/dist/backfill/derive.d.ts.map +1 -1
  28. package/dist/backfill/derive.js +1 -0
  29. package/dist/backfill/derive.js.map +1 -1
  30. package/dist/cli.d.ts.map +1 -1
  31. package/dist/cli.js +18 -0
  32. package/dist/cli.js.map +1 -1
  33. package/dist/court/precedent.d.ts.map +1 -1
  34. package/dist/court/precedent.js +6 -1
  35. package/dist/court/precedent.js.map +1 -1
  36. package/dist/curation/consumes.d.ts +24 -0
  37. package/dist/curation/consumes.d.ts.map +1 -0
  38. package/dist/curation/consumes.js +122 -0
  39. package/dist/curation/consumes.js.map +1 -0
  40. package/dist/curation/edge-staleness.d.ts +47 -0
  41. package/dist/curation/edge-staleness.d.ts.map +1 -0
  42. package/dist/curation/edge-staleness.js +258 -0
  43. package/dist/curation/edge-staleness.js.map +1 -0
  44. package/dist/curation/edges.d.ts.map +1 -1
  45. package/dist/curation/edges.js +164 -10
  46. package/dist/curation/edges.js.map +1 -1
  47. package/dist/curation/lint.d.ts +4 -1
  48. package/dist/curation/lint.d.ts.map +1 -1
  49. package/dist/curation/lint.js +61 -6
  50. package/dist/curation/lint.js.map +1 -1
  51. package/dist/curation/provenance.d.ts +2 -0
  52. package/dist/curation/provenance.d.ts.map +1 -1
  53. package/dist/curation/provenance.js +2 -0
  54. package/dist/curation/provenance.js.map +1 -1
  55. package/dist/curation/read-log.d.ts +19 -0
  56. package/dist/curation/read-log.d.ts.map +1 -0
  57. package/dist/curation/read-log.js +120 -0
  58. package/dist/curation/read-log.js.map +1 -0
  59. package/dist/curation/review-throughput.d.ts +24 -0
  60. package/dist/curation/review-throughput.d.ts.map +1 -0
  61. package/dist/curation/review-throughput.js +102 -0
  62. package/dist/curation/review-throughput.js.map +1 -0
  63. package/dist/curation/staged-actions.d.ts +11 -1
  64. package/dist/curation/staged-actions.d.ts.map +1 -1
  65. package/dist/curation/staged-actions.js +102 -24
  66. package/dist/curation/staged-actions.js.map +1 -1
  67. package/dist/curation/structural.d.ts +16 -0
  68. package/dist/curation/structural.d.ts.map +1 -0
  69. package/dist/curation/structural.js +64 -0
  70. package/dist/curation/structural.js.map +1 -0
  71. package/dist/curation/tension-blast.d.ts +4 -0
  72. package/dist/curation/tension-blast.d.ts.map +1 -1
  73. package/dist/curation/tension-blast.js +9 -0
  74. package/dist/curation/tension-blast.js.map +1 -1
  75. package/dist/curation/tension.d.ts +5 -2
  76. package/dist/curation/tension.d.ts.map +1 -1
  77. package/dist/curation/tension.js +68 -25
  78. package/dist/curation/tension.js.map +1 -1
  79. package/dist/curation/tier0.d.ts +27 -0
  80. package/dist/curation/tier0.d.ts.map +1 -0
  81. package/dist/curation/tier0.js +196 -0
  82. package/dist/curation/tier0.js.map +1 -0
  83. package/dist/curation/tier1.d.ts +30 -0
  84. package/dist/curation/tier1.d.ts.map +1 -0
  85. package/dist/curation/tier1.js +142 -0
  86. package/dist/curation/tier1.js.map +1 -0
  87. package/dist/curation/tier2.d.ts +43 -0
  88. package/dist/curation/tier2.d.ts.map +1 -0
  89. package/dist/curation/tier2.js +182 -0
  90. package/dist/curation/tier2.js.map +1 -0
  91. package/dist/curation/vault-docs.d.ts +5 -1
  92. package/dist/curation/vault-docs.d.ts.map +1 -1
  93. package/dist/curation/vault-docs.js +14 -0
  94. package/dist/curation/vault-docs.js.map +1 -1
  95. package/dist/eval/generate.js +22 -5
  96. package/dist/eval/generate.js.map +1 -1
  97. package/dist/eval/index.d.ts.map +1 -1
  98. package/dist/eval/index.js +173 -25
  99. package/dist/eval/index.js.map +1 -1
  100. package/dist/eval/llm.js +1 -1
  101. package/dist/eval/llm.js.map +1 -1
  102. package/dist/eval/prune.d.ts +24 -0
  103. package/dist/eval/prune.d.ts.map +1 -0
  104. package/dist/eval/prune.js +83 -0
  105. package/dist/eval/prune.js.map +1 -0
  106. package/dist/eval/storage.d.ts +3 -0
  107. package/dist/eval/storage.d.ts.map +1 -1
  108. package/dist/eval/storage.js +14 -0
  109. package/dist/eval/storage.js.map +1 -1
  110. package/dist/frontmatter/schema.d.ts.map +1 -1
  111. package/dist/frontmatter/schema.js +19 -1
  112. package/dist/frontmatter/schema.js.map +1 -1
  113. package/dist/frontmatter/types.d.ts +4 -1
  114. package/dist/frontmatter/types.d.ts.map +1 -1
  115. package/dist/frontmatter/types.js +8 -0
  116. package/dist/frontmatter/types.js.map +1 -1
  117. package/dist/import/index.d.ts.map +1 -1
  118. package/dist/import/index.js +44 -9
  119. package/dist/import/index.js.map +1 -1
  120. package/dist/import/langgraph-store.d.ts +53 -0
  121. package/dist/import/langgraph-store.d.ts.map +1 -0
  122. package/dist/import/langgraph-store.js +292 -0
  123. package/dist/import/langgraph-store.js.map +1 -0
  124. package/dist/index.d.ts +5 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +56 -18
  127. package/dist/index.js.map +1 -1
  128. package/dist/lifecycle/lock.d.ts +9 -1
  129. package/dist/lifecycle/lock.d.ts.map +1 -1
  130. package/dist/lifecycle/lock.js +34 -9
  131. package/dist/lifecycle/lock.js.map +1 -1
  132. package/dist/okf/export.d.ts +12 -0
  133. package/dist/okf/export.d.ts.map +1 -0
  134. package/dist/okf/export.js +115 -0
  135. package/dist/okf/export.js.map +1 -0
  136. package/dist/okf/import.d.ts +24 -0
  137. package/dist/okf/import.d.ts.map +1 -0
  138. package/dist/okf/import.js +107 -0
  139. package/dist/okf/import.js.map +1 -0
  140. package/dist/okf/index.d.ts +2 -0
  141. package/dist/okf/index.d.ts.map +1 -0
  142. package/dist/okf/index.js +147 -0
  143. package/dist/okf/index.js.map +1 -0
  144. package/dist/okf/map.d.ts +16 -0
  145. package/dist/okf/map.d.ts.map +1 -0
  146. package/dist/okf/map.js +149 -0
  147. package/dist/okf/map.js.map +1 -0
  148. package/dist/okf/types.d.ts +9 -0
  149. package/dist/okf/types.d.ts.map +1 -0
  150. package/dist/okf/types.js +48 -0
  151. package/dist/okf/types.js.map +1 -0
  152. package/dist/search/coverage.d.ts.map +1 -1
  153. package/dist/search/coverage.js +1 -1
  154. package/dist/search/coverage.js.map +1 -1
  155. package/dist/search/hybrid.d.ts +19 -0
  156. package/dist/search/hybrid.d.ts.map +1 -1
  157. package/dist/search/hybrid.js +58 -10
  158. package/dist/search/hybrid.js.map +1 -1
  159. package/dist/search/reindex.d.ts +1 -0
  160. package/dist/search/reindex.d.ts.map +1 -1
  161. package/dist/search/reindex.js +41 -11
  162. package/dist/search/reindex.js.map +1 -1
  163. package/dist/search/watcher.d.ts +2 -0
  164. package/dist/search/watcher.d.ts.map +1 -1
  165. package/dist/search/watcher.js +21 -10
  166. package/dist/search/watcher.js.map +1 -1
  167. package/dist/serve/index.d.ts +36 -0
  168. package/dist/serve/index.d.ts.map +1 -0
  169. package/dist/serve/index.js +507 -0
  170. package/dist/serve/index.js.map +1 -0
  171. package/dist/server.d.ts +10 -1
  172. package/dist/server.d.ts.map +1 -1
  173. package/dist/server.js +89 -14
  174. package/dist/server.js.map +1 -1
  175. package/dist/sleep/index.d.ts +2 -0
  176. package/dist/sleep/index.d.ts.map +1 -1
  177. package/dist/sleep/index.js +212 -21
  178. package/dist/sleep/index.js.map +1 -1
  179. package/dist/sleep/report.d.ts +3 -0
  180. package/dist/sleep/report.d.ts.map +1 -1
  181. package/dist/sleep/report.js +52 -0
  182. package/dist/sleep/report.js.map +1 -1
  183. package/dist/sleep/tension-scan-state.d.ts +19 -0
  184. package/dist/sleep/tension-scan-state.d.ts.map +1 -0
  185. package/dist/sleep/tension-scan-state.js +0 -0
  186. package/dist/sleep/tension-scan-state.js.map +1 -0
  187. package/dist/sleep/tension-scan.d.ts +44 -0
  188. package/dist/sleep/tension-scan.d.ts.map +1 -0
  189. package/dist/sleep/tension-scan.js +0 -0
  190. package/dist/sleep/tension-scan.js.map +1 -0
  191. package/dist/storage/backend.d.ts +12 -0
  192. package/dist/storage/backend.d.ts.map +1 -0
  193. package/dist/storage/backend.js +231 -0
  194. package/dist/storage/backend.js.map +1 -0
  195. package/dist/storage/backends/fs.d.ts +4 -0
  196. package/dist/storage/backends/fs.d.ts.map +1 -0
  197. package/dist/storage/backends/fs.js +99 -0
  198. package/dist/storage/backends/fs.js.map +1 -0
  199. package/dist/storage/fs-walk.d.ts +5 -0
  200. package/dist/storage/fs-walk.d.ts.map +1 -0
  201. package/dist/storage/fs-walk.js +28 -0
  202. package/dist/storage/fs-walk.js.map +1 -0
  203. package/dist/storage/index-db.d.ts +16 -0
  204. package/dist/storage/index-db.d.ts.map +1 -1
  205. package/dist/storage/index-db.js +94 -5
  206. package/dist/storage/index-db.js.map +1 -1
  207. package/dist/storage/local.d.ts +1 -0
  208. package/dist/storage/local.d.ts.map +1 -1
  209. package/dist/storage/local.js +12 -0
  210. package/dist/storage/local.js.map +1 -1
  211. package/dist/storage/sync.d.ts +25 -0
  212. package/dist/storage/sync.d.ts.map +1 -0
  213. package/dist/storage/sync.js +308 -0
  214. package/dist/storage/sync.js.map +1 -0
  215. package/dist/sync/index.d.ts +2 -0
  216. package/dist/sync/index.d.ts.map +1 -0
  217. package/dist/sync/index.js +136 -0
  218. package/dist/sync/index.js.map +1 -0
  219. package/dist/themes/clustering.d.ts +6 -11
  220. package/dist/themes/clustering.d.ts.map +1 -1
  221. package/dist/themes/clustering.js +76 -84
  222. package/dist/themes/clustering.js.map +1 -1
  223. package/dist/tools/consumes.d.ts +14 -0
  224. package/dist/tools/consumes.d.ts.map +1 -0
  225. package/dist/tools/consumes.js +99 -0
  226. package/dist/tools/consumes.js.map +1 -0
  227. package/dist/tools/curation.d.ts +2 -0
  228. package/dist/tools/curation.d.ts.map +1 -1
  229. package/dist/tools/curation.js +53 -15
  230. package/dist/tools/curation.js.map +1 -1
  231. package/dist/tools/edge-staleness.d.ts +28 -0
  232. package/dist/tools/edge-staleness.d.ts.map +1 -0
  233. package/dist/tools/edge-staleness.js +205 -0
  234. package/dist/tools/edge-staleness.js.map +1 -0
  235. package/dist/tools/edges.d.ts.map +1 -1
  236. package/dist/tools/edges.js +27 -21
  237. package/dist/tools/edges.js.map +1 -1
  238. package/dist/tools/read.d.ts +15 -1
  239. package/dist/tools/read.d.ts.map +1 -1
  240. package/dist/tools/read.js +142 -29
  241. package/dist/tools/read.js.map +1 -1
  242. package/dist/tools/receipt.d.ts.map +1 -1
  243. package/dist/tools/receipt.js +16 -7
  244. package/dist/tools/receipt.js.map +1 -1
  245. package/dist/tools/search.d.ts +1 -0
  246. package/dist/tools/search.d.ts.map +1 -1
  247. package/dist/tools/search.js +147 -5
  248. package/dist/tools/search.js.map +1 -1
  249. package/dist/tools/staged-actions.d.ts +3 -0
  250. package/dist/tools/staged-actions.d.ts.map +1 -1
  251. package/dist/tools/staged-actions.js +227 -22
  252. package/dist/tools/staged-actions.js.map +1 -1
  253. package/dist/tools/themes.d.ts +8 -0
  254. package/dist/tools/themes.d.ts.map +1 -1
  255. package/dist/tools/themes.js +208 -122
  256. package/dist/tools/themes.js.map +1 -1
  257. package/dist/tools/tier1.d.ts +14 -0
  258. package/dist/tools/tier1.d.ts.map +1 -0
  259. package/dist/tools/tier1.js +169 -0
  260. package/dist/tools/tier1.js.map +1 -0
  261. package/dist/tools/tier2.d.ts +27 -0
  262. package/dist/tools/tier2.d.ts.map +1 -0
  263. package/dist/tools/tier2.js +344 -0
  264. package/dist/tools/tier2.js.map +1 -0
  265. package/dist/tools/write.d.ts +9 -1
  266. package/dist/tools/write.d.ts.map +1 -1
  267. package/dist/tools/write.js +492 -6
  268. package/dist/tools/write.js.map +1 -1
  269. package/dist/utils/config.d.ts +52 -0
  270. package/dist/utils/config.d.ts.map +1 -1
  271. package/dist/utils/config.js +372 -2
  272. package/dist/utils/config.js.map +1 -1
  273. package/dist/utils/run-id.d.ts +3 -0
  274. package/dist/utils/run-id.d.ts.map +1 -0
  275. package/dist/utils/run-id.js +19 -0
  276. package/dist/utils/run-id.js.map +1 -0
  277. package/dist/utils/vault-gitignore.d.ts +1 -1
  278. package/dist/utils/vault-gitignore.d.ts.map +1 -1
  279. package/dist/utils/vault-gitignore.js +4 -1
  280. package/dist/utils/vault-gitignore.js.map +1 -1
  281. package/package.json +21 -1
  282. package/templates/config.yaml +8 -0
@@ -0,0 +1,258 @@
1
+ // Edge staleness (#234) — per-edge upstream-change compatibility, derived
2
+ // from tier-1 verdicts (#232) over the edge provenance classes (#233).
3
+ //
4
+ // This is deliberately the THIRD staleness vocabulary in the tree, scoped
5
+ // against the two that already exist rather than replacing them:
6
+ //
7
+ // - TTL decay (staleness.ts): time-based confidence of the DOCUMENT
8
+ // ITSELF — "this doc is old", regardless of what it depends on.
9
+ // - Audit staleness (audit/checks/staleness.ts): mtime ordering along the
10
+ // link graph, CI-gated — "this doc is older than something it links to".
11
+ // - Edge staleness (this module): "this ARTIFACT is stale WITH RESPECT TO
12
+ // a specific upstream unit, and here is what the tiers say about the
13
+ // pending change." Never a global freshness score.
14
+ //
15
+ // Classes, not a boolean (#234's core design point):
16
+ //
17
+ // current — upstream unchanged since the edge's baseline.
18
+ // pending-compatible — upstream changed, tier 1 certified the change
19
+ // misses this dependent (cosmetic staleness).
20
+ // pending-broken — upstream changed and tier 1 issued a hard hit;
21
+ // reads of the artifact serve known-wrong context.
22
+ // Only this class is an incident.
23
+ // pending-unchecked — upstream changed but the structure cannot decide
24
+ // (declared claim / earned inference — the tier-2
25
+ // residual), or the edge has no baseline to measure
26
+ // from. Awaiting a judgment no cheap tier can give.
27
+ //
28
+ // Tier-2 verdicts refine the residual (#232 tier 2): when a recorded
29
+ // semantic verdict covers the pair's CURRENT change (judged_change_ts not
30
+ // older than the unit's latest landed write), pending-unchecked resolves to
31
+ // pending-compatible (still-valid) or pending-broken (broken, with the
32
+ // logged tension named in the reason). A stale verdict — the unit changed
33
+ // again after the judgment — covers nothing and the pair re-queues.
34
+ // Compiled edges never consult verdicts: mechanical certainty is not
35
+ // overridable by a semantic opinion.
36
+ //
37
+ // Because tier 1 is deterministic and free, classification RUNS AT QUERY
38
+ // TIME — there is no verdict store that can itself go stale. "Reading tier
39
+ // verdicts" (the issue's phrasing) means running the SAME dispatch the
40
+ // vault_tier1 tool runs — classifyEdge delegates to tier1Dispatch, so the
41
+ // verdict semantics (field overlap, bookkeeping, class ceilings) cannot
42
+ // drift between the two surfaces. The dispatch rule carries over exactly:
43
+ // only a compiled edge can make pending-broken (a hard verdict needs
44
+ // mechanical certainty); declared and earned changes park in
45
+ // pending-unchecked until tier 2 exists.
46
+ //
47
+ // Baselines per class:
48
+ // compiled — the edge's compile_ts: the instant the run's snapshot of the
49
+ // unit became the artifact's input.
50
+ // declared — the artifact's own latest logged write: the last moment the
51
+ // author could have seen the cited unit. No provenance for the
52
+ // artifact → no baseline → pending-unchecked (never checked).
53
+ // earned — the edge's lastRederived: the last time the derivation
54
+ // survived a re-test.
55
+ import { forwardConsumes, listConsumesEdges } from "./consumes.js";
56
+ import { readProvenanceLog } from "./provenance.js";
57
+ import { bucketHiddenDownstream } from "./tension-blast.js";
58
+ import { changedFieldsFromProvenance, contentChangedFields, tier1Dispatch, } from "./tier1.js";
59
+ import { coveringVerdict, latestUnitChangeTs, NO_CHANGE_TS } from "./tier2.js";
60
+ // The unit's content writes since the baseline, folded to one changed-field
61
+ // set. `writes` distinguishes "nothing happened" (current) from "only
62
+ // bookkeeping churn" (compatible): both have empty changed fields.
63
+ export function changedFieldsSince(provenance, unit, baseline) {
64
+ const fields = [];
65
+ let writes = 0;
66
+ for (const e of provenance) {
67
+ if (e.file !== unit || e.action === "rejected_stale" || e.timestamp <= baseline)
68
+ continue;
69
+ writes += 1;
70
+ fields.push(...changedFieldsFromProvenance(e));
71
+ }
72
+ return { changed: contentChangedFields(fields), writes };
73
+ }
74
+ // Classifies one upstream edge by running the tier-1 dispatch on it and
75
+ // mapping the verdict: unaffected → pending-compatible (the change certifiably
76
+ // misses), affected → pending-broken (hard hit — compiled edges only, by the
77
+ // class ceiling), possibly-affected / semantic-review → pending-unchecked.
78
+ function classifyEdge(input) {
79
+ const base = {
80
+ unit: input.unit,
81
+ edge_class: input.edgeClass,
82
+ baseline: input.baseline,
83
+ };
84
+ // The tier-2 residual: a covering semantic verdict decides what structure
85
+ // could not. Consulted on BOTH pending-unchecked paths (no-baseline and
86
+ // structurally-undecidable) — only the unit's CURRENT change counts; a
87
+ // verdict from before the latest landed write covers nothing.
88
+ const tier2Resolved = (changedFields) => {
89
+ if (!input.verdicts || input.verdicts.length === 0)
90
+ return null;
91
+ const covering = coveringVerdict(input.verdicts, {
92
+ artifact: input.artifact,
93
+ unit: input.unit,
94
+ edgeClass: input.edgeClass,
95
+ latestChangeTs: latestUnitChangeTs(input.provenance, input.unit) ?? NO_CHANGE_TS,
96
+ });
97
+ if (!covering)
98
+ return null;
99
+ return covering.verdict === "still-valid"
100
+ ? {
101
+ ...base,
102
+ staleness: "pending-compatible",
103
+ changed_fields: changedFields,
104
+ reason: `tier-2 semantic verdict: still valid as of ${covering.judged_change_ts}`,
105
+ }
106
+ : {
107
+ ...base,
108
+ staleness: "pending-broken",
109
+ changed_fields: changedFields,
110
+ reason: `tier-2 semantic verdict: broken${covering.tension_id ? ` — tension ${covering.tension_id}` : ""}`,
111
+ };
112
+ };
113
+ if (input.baseline === null) {
114
+ return (tier2Resolved([]) ?? {
115
+ ...base,
116
+ staleness: "pending-unchecked",
117
+ changed_fields: [],
118
+ reason: "no baseline — the dependency predates provenance instrumentation, never checked",
119
+ });
120
+ }
121
+ const { changed, writes } = changedFieldsSince(input.provenance, input.unit, input.baseline);
122
+ if (writes === 0) {
123
+ return {
124
+ ...base,
125
+ staleness: "current",
126
+ changed_fields: [],
127
+ reason: "unchanged since baseline",
128
+ };
129
+ }
130
+ const verdict = tier1Dispatch({
131
+ unit: input.unit,
132
+ changedFields: changed,
133
+ compiled: input.compiledEdge ? [input.compiledEdge] : [],
134
+ declaredDependents: input.edgeClass === "declared" ? [input.artifact] : [],
135
+ earnedDependents: input.edgeClass === "earned" ? [input.artifact] : [],
136
+ })[0];
137
+ if (!verdict) {
138
+ // Unreachable: every class above supplies exactly one dependent.
139
+ return { ...base, staleness: "pending-unchecked", changed_fields: changed, reason: "" };
140
+ }
141
+ const staleness = verdict.verdict === "unaffected"
142
+ ? "pending-compatible"
143
+ : verdict.verdict === "affected"
144
+ ? "pending-broken"
145
+ : "pending-unchecked";
146
+ if (staleness === "pending-unchecked") {
147
+ const resolved = tier2Resolved(changed);
148
+ if (resolved)
149
+ return resolved;
150
+ }
151
+ return { ...base, staleness, changed_fields: changed, reason: verdict.reason };
152
+ }
153
+ // Loads the two logs that back compiled-edge classification, with the
154
+ // uninstrumented fast path: an absent or empty consumes log resolves to an
155
+ // empty context WITHOUT touching the provenance log — zero compiled edges
156
+ // means every broken count is provably zero, so the hottest tools pay ~one
157
+ // ENOENT check on vaults that never opted into run correlation. Returns
158
+ // null on a log-read error; serve-path callers treat that as
159
+ // "uninstrumented" (telemetry is best-effort), never as a failed request.
160
+ export async function loadCompiledStaleContext(vaultRoot) {
161
+ const consumes = await listConsumesEdges(vaultRoot);
162
+ if (!consumes.ok)
163
+ return null;
164
+ if (consumes.value.length === 0)
165
+ return { consumes: [], provenance: [] };
166
+ const provenance = await readProvenanceLog(vaultRoot);
167
+ if (!provenance.ok)
168
+ return null;
169
+ return { consumes: consumes.value, provenance: provenance.value };
170
+ }
171
+ // Compiled-edge staleness for one artifact — the read/search hot path. Only
172
+ // compiled edges can be pending-broken, so this is the complete broken set.
173
+ // `consumes` may be the full log or an already-collapsed current set: the
174
+ // newest-compile-group collapse is idempotent, so batch callers (search)
175
+ // collapse once and pass the result through per hit.
176
+ export function compiledUpstreamStaleness(artifact, consumes, provenance) {
177
+ return forwardConsumes(consumes, artifact)
178
+ .filter((e) => e.unit !== artifact)
179
+ .map((e) => classifyEdge({
180
+ artifact,
181
+ unit: e.unit,
182
+ edgeClass: "compiled",
183
+ baseline: e.compile_ts,
184
+ provenance,
185
+ compiledEdge: e,
186
+ }));
187
+ }
188
+ // Full three-class report for one artifact. Declared and earned rows extend
189
+ // the compiled set; a unit reachable through several classes keeps one row
190
+ // per class — the baselines (and therefore the verdicts) genuinely differ.
191
+ export function upstreamStaleness(input) {
192
+ const rows = compiledUpstreamStaleness(input.artifact, input.consumes, input.provenance);
193
+ // Declared baseline: the artifact's own latest landed write.
194
+ const artifactWrites = input.provenance.filter((e) => e.file === input.artifact && e.action !== "rejected_stale");
195
+ const declaredBaseline = artifactWrites[artifactWrites.length - 1]?.timestamp ?? null;
196
+ for (const unit of input.declaredUnits) {
197
+ if (unit === input.artifact)
198
+ continue;
199
+ rows.push(classifyEdge({
200
+ artifact: input.artifact,
201
+ unit,
202
+ edgeClass: "declared",
203
+ baseline: declaredBaseline,
204
+ provenance: input.provenance,
205
+ verdicts: input.verdicts,
206
+ }));
207
+ }
208
+ for (const e of input.earned) {
209
+ if (e.unit === input.artifact)
210
+ continue;
211
+ rows.push(classifyEdge({
212
+ artifact: input.artifact,
213
+ unit: e.unit,
214
+ edgeClass: "earned",
215
+ baseline: e.lastRederived,
216
+ provenance: input.provenance,
217
+ verdicts: input.verdicts,
218
+ }));
219
+ }
220
+ return rows.sort((a, b) => a.unit.localeCompare(b.unit) || a.edge_class.localeCompare(b.edge_class));
221
+ }
222
+ // THE disclosure split for every reader-facing staleness surface (#217):
223
+ // edges whose upstream unit the caller can read are disclosed in full (by
224
+ // omission of the rest); unreadable units surface ONLY as a coarse
225
+ // none/some/many bucket over their pending edges — never an exact count,
226
+ // never a severity class. vault_read, vault_search, and vault_staleness all
227
+ // call this one helper so the invariant cannot drift between surfaces.
228
+ export function splitUpstreamVisibility(rows, isReadable) {
229
+ const visible = [];
230
+ let hiddenPendingCount = 0;
231
+ for (const r of rows) {
232
+ if (isReadable(r.unit))
233
+ visible.push(r);
234
+ else if (r.staleness !== "current")
235
+ hiddenPendingCount += 1;
236
+ }
237
+ return { visible, hiddenPending: bucketHiddenDownstream(hiddenPendingCount) };
238
+ }
239
+ export function summarizeUpstream(rows) {
240
+ const summary = {
241
+ current: 0,
242
+ pending_unchecked: 0,
243
+ pending_compatible: 0,
244
+ pending_broken: 0,
245
+ };
246
+ for (const r of rows) {
247
+ if (r.staleness === "current")
248
+ summary.current += 1;
249
+ else if (r.staleness === "pending-unchecked")
250
+ summary.pending_unchecked += 1;
251
+ else if (r.staleness === "pending-compatible")
252
+ summary.pending_compatible += 1;
253
+ else
254
+ summary.pending_broken += 1;
255
+ }
256
+ return summary;
257
+ }
258
+ //# sourceMappingURL=edge-staleness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-staleness.js","sourceRoot":"","sources":["../../src/curation/edge-staleness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,16 @@
17
17
  //
18
18
  // - Index: the `derives_from_edges` table in .daftari/index.db — a derived
19
19
  // cache rebuilt from the jsonl on reindex (rebuildEdgesIndex /
20
- // materializeEdges). It exists for the future loop's traversal engine,
21
- // which wants concurrent SQL reads; v1 read paths read the jsonl
22
- // directly, the same posture staged actions take.
20
+ // materializeEdges) and, since #236, the AUTHORITATIVE read path:
21
+ // listEdges/getEdge query the table, never the jsonl. Coherence is kept
22
+ // two ways: every edge write re-materializes the table (write-through),
23
+ // and every read first compares a stat marker of the jsonl against the
24
+ // one recorded at the last materialization, rebuilding on mismatch — so
25
+ // an external append (or a lost write-through) self-heals on the next
26
+ // read. Live strength/status are ALWAYS recomputed from the row's
27
+ // (k_survived, last_rederived) at read time; the stored status is at most
28
+ // a conservative prefilter (see listEdges), because it is frozen at
29
+ // `last_age_decay` while real strength keeps aging.
23
30
  //
24
31
  // Collapse rules (the strength model, locked Q1–Q4 + §5.3.1):
25
32
  // - The first observe in a cycle SEEDS the edge: k_survived = 0. Birth is
@@ -38,11 +45,11 @@
38
45
  // All file I/O is synchronous on purpose, like staged-actions: append runs in
39
46
  // one critical section with no intervening await. The guarantee is
40
47
  // per-process, which suffices under the one-daftari-per-vault process lock.
41
- import { appendFileSync, mkdirSync, readFileSync } from "node:fs";
48
+ import { appendFileSync, mkdirSync, readFileSync, statSync } from "node:fs";
42
49
  import { join } from "node:path";
43
50
  import { err, ok } from "../frontmatter/types.js";
44
51
  import { getProvider } from "../search/vector.js";
45
- import { clearDerivesFromEdges, openIndexDb, upsertDerivesFromEdge, } from "../storage/index-db.js";
52
+ import { clearDerivesFromEdges, getDerivesFromEdgePair, getMeta, listDerivesFromEdgeRows, openIndexDb, setMeta, upsertDerivesFromEdge, } from "../storage/index-db.js";
46
53
  // --- calibration constants (provisional — open decision §12/#8) -------------
47
54
  //
48
55
  // These three numbers are the v1 defaults of the strength model, exported so
@@ -76,6 +83,23 @@ export const PREMISE_VOTES = ["from", "to", "symmetric"];
76
83
  export function edgesPath(vaultRoot) {
77
84
  return join(vaultRoot, ".daftari", "edges.jsonl");
78
85
  }
86
+ // --- jsonl freshness marker ---------------------------------------------------
87
+ // Meta key recording the stat of edges.jsonl at the last materialization. A
88
+ // read whose current stat differs knows the table is stale and rebuilds first.
89
+ const EDGES_LOG_STAT_META_KEY = "edges_log_stat";
90
+ // Size + mtime identify the jsonl version cheaply. The log is append-only, so
91
+ // size alone almost suffices; mtime guards a same-size replacement.
92
+ function edgesLogStatMarker(vaultRoot) {
93
+ try {
94
+ const st = statSync(edgesPath(vaultRoot));
95
+ return `${st.size}:${st.mtimeMs}`;
96
+ }
97
+ catch (e) {
98
+ if (e.code === "ENOENT")
99
+ return "absent";
100
+ throw e;
101
+ }
102
+ }
79
103
  // --- time helpers ------------------------------------------------------------
80
104
  // Second-resolution ISO, the same record format staged-actions uses.
81
105
  function toSecondISO(d) {
@@ -307,6 +331,29 @@ function deriveEdge(state, now) {
307
331
  };
308
332
  }
309
333
  // --- producer / consumer -----------------------------------------------------
334
+ // Write-through: re-materialize the table after a jsonl append. A full rebuild
335
+ // rather than a row upsert because a new observation can FLIP the stored
336
+ // output orientation (premise votes), which a keyed upsert would leave as a
337
+ // stale twin. Best-effort by design: the append above is the canonical write,
338
+ // and a failure here leaves the marker stale, so the next read self-heals via
339
+ // ensureFreshEdgesIndex — the cache can be behind, never wrong.
340
+ function writeThroughEdgesIndex(vaultRoot) {
341
+ try {
342
+ const opened = openIndexDb(vaultRoot, getProvider().dim);
343
+ if (!opened.ok)
344
+ return;
345
+ const db = opened.value;
346
+ try {
347
+ rebuildEdgesIndex(db, vaultRoot);
348
+ }
349
+ finally {
350
+ db.close();
351
+ }
352
+ }
353
+ catch {
354
+ // Self-heal on the next read.
355
+ }
356
+ }
310
357
  // Records a (re-)derivation observation. Validation is defensive — the tool
311
358
  // layer validates too — but this is the durable boundary, so it re-checks.
312
359
  export async function observeEdge(vaultRoot, input) {
@@ -351,6 +398,7 @@ export async function observeEdge(vaultRoot, input) {
351
398
  const reason = e instanceof Error ? e.message : String(e);
352
399
  return err(new Error(`cannot record edge observation: ${reason}`));
353
400
  }
401
+ writeThroughEdgesIndex(vaultRoot);
354
402
  const after = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(record.from, record.to)));
355
403
  if (!after)
356
404
  return err(new Error("edge not found after write"));
@@ -395,14 +443,53 @@ export async function contestEdge(vaultRoot, input) {
395
443
  const reason = e instanceof Error ? e.message : String(e);
396
444
  return err(new Error(`cannot record edge contest: ${reason}`));
397
445
  }
446
+ writeThroughEdgesIndex(vaultRoot);
398
447
  const after = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(from, to)));
399
448
  if (!after)
400
449
  return err(new Error("edge not found after write"));
401
450
  return ok(deriveEdge(after, new Date()));
402
451
  }
403
- // Collapsed edges with live aged strength, strongest first (ties by key for a
404
- // stable order). A missing log is not an error — nothing has been observed.
405
- export async function listEdges(vaultRoot, filter = {}, now = new Date()) {
452
+ // Rehydrates the public edge shape from a materialized row, recomputing live
453
+ // strength/status at `now`. The stored strength/status are frozen at
454
+ // `last_age_decay`; only (k_survived, last_rederived) which no amount of
455
+ // aging changes — plus the revoked flag are trusted from the row.
456
+ function deriveEdgeFromRow(row, now) {
457
+ const revoked = row.status === "revoked";
458
+ const strength = revoked ? 0 : agedStrength(row.k_survived, row.last_rederived, now);
459
+ const status = revoked
460
+ ? "revoked"
461
+ : strength >= EDGE_TRIGGER_STRENGTH
462
+ ? "trigger-bearing"
463
+ : "candidate";
464
+ return {
465
+ fromPath: row.from_path,
466
+ toPath: row.to_path,
467
+ strength,
468
+ kSurvived: row.k_survived,
469
+ firstObserved: row.first_observed,
470
+ lastRederived: row.last_rederived,
471
+ status,
472
+ directionVerdict: row.direction_verdict,
473
+ observations: row.observations,
474
+ contestedAt: row.contested_at,
475
+ contestReason: row.contest_reason,
476
+ };
477
+ }
478
+ // Rebuilds the table iff the jsonl's stat no longer matches the marker stored
479
+ // at the last materialization. This is what lets reads trust the table: an
480
+ // external append, a manual log edit, or a lost write-through all surface as
481
+ // a marker mismatch and heal here before the query runs.
482
+ function ensureFreshEdgesIndex(db, vaultRoot) {
483
+ if (getMeta(db, EDGES_LOG_STAT_META_KEY) === edgesLogStatMarker(vaultRoot))
484
+ return ok(undefined);
485
+ const rebuilt = rebuildEdgesIndex(db, vaultRoot);
486
+ return rebuilt.ok ? ok(undefined) : rebuilt;
487
+ }
488
+ // Degraded read path: collapse the canonical jsonl directly. Used only when
489
+ // the index db cannot be OPENED (e.g. a read-only .daftari, where sqlite
490
+ // cannot create WAL sidecars) — the jsonl is the canonical store, so falling
491
+ // back costs performance, never correctness.
492
+ function listEdgesFromLog(vaultRoot, filter, now) {
406
493
  try {
407
494
  let edges = [...collapse(readRawRecords(vaultRoot)).values()].map((s) => deriveEdge(s, now));
408
495
  if (filter.fromPath)
@@ -421,15 +508,74 @@ export async function listEdges(vaultRoot, filter = {}, now = new Date()) {
421
508
  return err(new Error(`cannot read edges: ${reason}`));
422
509
  }
423
510
  }
511
+ // Materialized edges with live aged strength, strongest first (ties by key for
512
+ // a stable order). An empty/missing log is not an error — nothing observed.
513
+ export async function listEdges(vaultRoot, filter = {}, now = new Date()) {
514
+ const opened = openIndexDb(vaultRoot, getProvider().dim);
515
+ if (!opened.ok)
516
+ return listEdgesFromLog(vaultRoot, filter, now);
517
+ const db = opened.value;
518
+ try {
519
+ const fresh = ensureFreshEdgesIndex(db, vaultRoot);
520
+ if (!fresh.ok)
521
+ return err(new Error(`cannot read edges: ${fresh.error.message}`));
522
+ // Status PREFILTER on the stored column. "revoked" is exact (a write-only
523
+ // flag, and writes re-materialize). The two live statuses are a function
524
+ // of aging strength, so either may have drifted since materialization —
525
+ // fetch both and let the recomputed status decide.
526
+ const statusIn = filter.status === undefined
527
+ ? undefined
528
+ : filter.status === "revoked"
529
+ ? ["revoked"]
530
+ : ["candidate", "trigger-bearing"];
531
+ let edges = listDerivesFromEdgeRows(db, {
532
+ fromPath: filter.fromPath,
533
+ toPath: filter.toPath,
534
+ statusIn,
535
+ }).map((row) => deriveEdgeFromRow(row, now));
536
+ if (filter.status)
537
+ edges = edges.filter((e) => e.status === filter.status);
538
+ edges.sort((a, b) => b.strength - a.strength ||
539
+ a.fromPath.localeCompare(b.fromPath) ||
540
+ a.toPath.localeCompare(b.toPath));
541
+ return ok(edges);
542
+ }
543
+ catch (e) {
544
+ const reason = e instanceof Error ? e.message : String(e);
545
+ return err(new Error(`cannot read edges: ${reason}`));
546
+ }
547
+ finally {
548
+ db.close();
549
+ }
550
+ }
424
551
  export async function getEdge(vaultRoot, fromPath, toPath, now = new Date()) {
552
+ const opened = openIndexDb(vaultRoot, getProvider().dim);
553
+ if (!opened.ok) {
554
+ // Same degraded posture as listEdgesFromLog: canonical store, no cache.
555
+ try {
556
+ const state = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(fromPath, toPath)));
557
+ return ok(state ? deriveEdge(state, now) : null);
558
+ }
559
+ catch (e) {
560
+ const reason = e instanceof Error ? e.message : String(e);
561
+ return err(new Error(`cannot read edge: ${reason}`));
562
+ }
563
+ }
564
+ const db = opened.value;
425
565
  try {
426
- const state = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(fromPath, toPath)));
427
- return ok(state ? deriveEdge(state, now) : null);
566
+ const fresh = ensureFreshEdgesIndex(db, vaultRoot);
567
+ if (!fresh.ok)
568
+ return err(new Error(`cannot read edge: ${fresh.error.message}`));
569
+ const row = getDerivesFromEdgePair(db, fromPath, toPath);
570
+ return ok(row ? deriveEdgeFromRow(row, now) : null);
428
571
  }
429
572
  catch (e) {
430
573
  const reason = e instanceof Error ? e.message : String(e);
431
574
  return err(new Error(`cannot read edge: ${reason}`));
432
575
  }
576
+ finally {
577
+ db.close();
578
+ }
433
579
  }
434
580
  // --- sqlite index rebuild ----------------------------------------------------
435
581
  // Collapses the jsonl and repopulates the `derives_from_edges` table from
@@ -439,6 +585,10 @@ export async function getEdge(vaultRoot, fromPath, toPath, now = new Date()) {
439
585
  // agedStrength). One transaction, so a mid-rebuild failure rolls back.
440
586
  export function rebuildEdgesIndex(db, vaultRoot, now = new Date()) {
441
587
  try {
588
+ // Stat BEFORE reading: if the log grows between the stat and the read, the
589
+ // marker undercounts and the next read harmlessly rebuilds again. Statting
590
+ // after would risk marking content the collapse never saw as fresh.
591
+ const marker = edgesLogStatMarker(vaultRoot);
442
592
  const edges = [...collapse(readRawRecords(vaultRoot)).values()].map((s) => deriveEdge(s, now));
443
593
  const at = toSecondISO(now);
444
594
  const rows = edges.map((e) => ({
@@ -451,11 +601,15 @@ export function rebuildEdgesIndex(db, vaultRoot, now = new Date()) {
451
601
  last_age_decay: at,
452
602
  status: e.status,
453
603
  direction_verdict: e.directionVerdict,
604
+ observations: e.observations,
605
+ contested_at: e.contestedAt,
606
+ contest_reason: e.contestReason,
454
607
  }));
455
608
  const write = db.transaction(() => {
456
609
  clearDerivesFromEdges(db);
457
610
  for (const row of rows)
458
611
  upsertDerivesFromEdge(db, row);
612
+ setMeta(db, EDGES_LOG_STAT_META_KEY, marker);
459
613
  });
460
614
  write();
461
615
  return ok({ count: rows.length });
@@ -1 +1 @@
1
- {"version":3,"file":"edges.js","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edges.js","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,sDAAsD;AACtD,EAAE;AACF,6EAA6E;AAC7E,mEAAmE;AACnE,sEAAsE;AACtE,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,sEAAsE;AACtE,8EAA8E;AAC9E,wEAAwE;AACxE,wDAAwD;AACxD,EAAE;AACF,8DAA8D;AAC9D,4EAA4E;AAC5E,qEAAqE;AACrE,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,oDAAoD;AACpD,uEAAuE;AACvE,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,mEAAmE;AACnE,4EAA4E;AAE5E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,qBAAqB,EAErB,sBAAsB,EACtB,OAAO,EAEP,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,sEAAsE;AACtE,2EAA2E;AAC3E,2EAA2E;AAC3E,YAAY;AAEZ,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,0EAA0E;AAC1E,yEAAyE;AACzE,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,eAAe;AACf,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAU,CAAC;AAG5E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAU,CAAC;AAGlF,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAU,CAAC;AAsDlE,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,CAAC;AAED,iFAAiF;AAEjF,4EAA4E;AAC5E,+EAA+E;AAC/E,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAEjD,8EAA8E;AAC9E,oEAAoE;AACpE,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACpE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,qEAAqE;AACrE,SAAS,WAAW,CAAC,CAAO;IAC1B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,GAAW,EAAE,GAAS;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;AACxD,CAAC;AAED,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,aAAqB,EAAE,GAAS;IAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;AAChD,CAAC;AAiBD,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC9D,MAAM,CAAC,CAAC;IACV,CAAC;IACD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;YACjD,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,8BAA8B;YAC9B,IACE,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;gBAClD,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAC5B,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;gBAC1B,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;gBAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACnC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,EAAU;IACvC,6EAA6E;IAC7E,OAAO,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,cAAc;AACd,SAAS,SAAS,CAAC,IAAY,EAAE,EAAU;IACzC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AA6BD,2EAA2E;AAC3E,yEAAyE;AACzE,uCAAuC;AACvC,SAAS,kBAAkB,CAAC,KAAuB;IACjD,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAC/C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAC7D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,aAAmC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAE,CAAiB;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,2EAA2E;AAC3E,sEAAsE;AACtE,4EAA4E;AAC5E,wCAAwC;AACxC,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,uEAAuE;AACvE,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,2BAA2B;AAC3B,SAAS,QAAQ,CAAC,OAAwB;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAY,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAY,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,4EAA4E;QAC5E,yEAAyE;QACzE,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,SAAS,GAAuB,IAAI,CAAC;QACzC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,SAAS,GAAG,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,mEAAmE;YACnE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO;gBAAE,SAAS;YAC5C,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC;YAC1B,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,UAAU;QACV,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,yEAAyE;YACzE,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,+DAA+D;YAC/D,mEAAmE;YACnE,MAAM,QAAQ,GACZ,GAAG,CAAC,KAAK,KAAK,IAAI;gBAClB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAC3B,SAA+B,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnD,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;gBAC1B,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;gBACf,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC5B,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACb,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;gBAC7B,YAAY,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3B,IAAI,SAAS;YAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,UAAU,GACd,GAAG,CAAC,KAAK,KAAK,IAAI;YAClB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;YAC3B,SAA+B,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACnD,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;YAC1B,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,UAAU,CAAC;YACnF,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,oBAAoB,EAAE,CAAC;gBACjD,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClE,gEAAgE;gBAChE,gDAAgD;gBAChD,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,mEAAmE;QACnE,mDAAmD;IACrD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAgB,EAAE,GAAS;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAe,KAAK,CAAC,OAAO;QACtC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,IAAI,qBAAqB;YACjC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,WAAW,CAAC;IAElB,6EAA6E;IAC7E,+DAA+D;IAC/D,gFAAgF;IAChF,mEAAmE;IACnE,iFAAiF;IACjF,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC9B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC1B,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B;YAChF,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY;YACtE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU;QACpE,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM;QACN,gBAAgB,EAAE,OAAO;QACzB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,+EAA+E;AAC/E,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,KAAuB;IAEvB,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAU,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAE,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvF,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IACE,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,CAAE,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EACjE,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,6CAA6C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC3B,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACvB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE;QAC5B,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;QAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;IAEF,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CACnD,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAC9C,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,6EAA6E;AAC7E,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,KAAuB;IAEvB,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC7E,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sCAAsC,IAAI,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,EAAE;QACF,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE;QAC5B,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;KAC5B,CAAC;IAEF,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAQD,6EAA6E;AAC7E,qEAAqE;AACrE,2EAA2E;AAC3E,kEAAkE;AAClE,SAAS,iBAAiB,CAAC,GAAuB,EAAE,GAAS;IAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACrF,MAAM,MAAM,GAAe,OAAO;QAChC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,IAAI,qBAAqB;YACjC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,WAAW,CAAC;IAClB,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,QAAQ;QACR,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM;QACN,gBAAgB,EAAE,GAAG,CAAC,iBAAqC;QAC3D,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,aAAa,EAAE,GAAG,CAAC,cAAc;KAClC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,yDAAyD;AACzD,SAAS,qBAAqB,CAAC,EAAW,EAAE,SAAiB;IAC3D,IAAI,OAAO,CAAC,EAAE,EAAE,uBAAuB,CAAC,KAAK,kBAAkB,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9C,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,6CAA6C;AAC7C,SAAS,gBAAgB,CACvB,SAAiB,EACjB,MAAuB,EACvB,GAAS;IAET,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7F,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACnC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,SAA0B,EAAE,EAC5B,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,mDAAmD;QACnD,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,KAAK,SAAS;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,CAAC,CAAC,CAAC,SAAS,CAAC;gBACb,CAAC,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,uBAAuB,CAAC,EAAE,EAAE;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ;SACT,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACnC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAiB,EACjB,QAAgB,EAChB,MAAc,EACd,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CACnD,OAAO,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CACxC,CAAC;YACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,0EAA0E;AAC1E,qEAAqE;AACrE,4EAA4E;AAC5E,iEAAiE;AACjE,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAC/B,EAAW,EACX,SAAiB,EACjB,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC;QACH,2EAA2E;QAC3E,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/F,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAyB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,CAAC,CAAC,QAAQ;YACrB,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,cAAc,EAAE,CAAC,CAAC,aAAa;YAC/B,cAAc,EAAE,CAAC,CAAC,aAAa;YAC/B,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,iBAAiB,EAAE,CAAC,CAAC,gBAAgB;YACrC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,cAAc,EAAE,CAAC,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QACJ,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,EAAE,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,wEAAwE;AACxE,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}