instar 1.3.1647 → 1.3.1649

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 (116) hide show
  1. package/dashboard/console/console.css +3 -0
  2. package/dashboard/console/maturation-board-model.js +51 -0
  3. package/dashboard/console/maturation-board.js +17 -1
  4. package/dist/commands/server.d.ts.map +1 -1
  5. package/dist/commands/server.js +20 -0
  6. package/dist/commands/server.js.map +1 -1
  7. package/dist/core/PostUpdateMigrator.d.ts +5 -0
  8. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  9. package/dist/core/PostUpdateMigrator.js +24 -0
  10. package/dist/core/PostUpdateMigrator.js.map +1 -1
  11. package/dist/core/SessionManager.d.ts +6 -121
  12. package/dist/core/SessionManager.d.ts.map +1 -1
  13. package/dist/core/SessionManager.js +40 -7
  14. package/dist/core/SessionManager.js.map +1 -1
  15. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  16. package/dist/core/devGatedFeatures.js +6 -0
  17. package/dist/core/devGatedFeatures.js.map +1 -1
  18. package/dist/core/sessionCapacityRefusedError.d.ts +8 -0
  19. package/dist/core/sessionCapacityRefusedError.d.ts.map +1 -0
  20. package/dist/core/sessionCapacityRefusedError.js +13 -0
  21. package/dist/core/sessionCapacityRefusedError.js.map +1 -0
  22. package/dist/core/types.d.ts +11 -0
  23. package/dist/core/types.d.ts.map +1 -1
  24. package/dist/core/types.js.map +1 -1
  25. package/dist/data/standards-guard-index.json +1 -1
  26. package/dist/data/standards-guard-index.meta.json +2 -2
  27. package/dist/data/standards-registry.meta.json +1 -1
  28. package/dist/messaging/TelegramAdapter.d.ts +10 -0
  29. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  30. package/dist/messaging/TelegramAdapter.js +12 -1
  31. package/dist/messaging/TelegramAdapter.js.map +1 -1
  32. package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts +2 -0
  33. package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts.map +1 -1
  34. package/dist/messaging/telegram-origin/TelegramOriginBoot.js +2 -0
  35. package/dist/messaging/telegram-origin/TelegramOriginBoot.js.map +1 -1
  36. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts +16 -0
  37. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts.map +1 -1
  38. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js +23 -2
  39. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js.map +1 -1
  40. package/dist/messaging/telegram-origin/TelegramOriginService.d.ts +1 -0
  41. package/dist/messaging/telegram-origin/TelegramOriginService.d.ts.map +1 -1
  42. package/dist/messaging/telegram-origin/TelegramOriginService.js +5 -2
  43. package/dist/messaging/telegram-origin/TelegramOriginService.js.map +1 -1
  44. package/dist/monitoring/BlockerLifecycleService.d.ts +26 -3
  45. package/dist/monitoring/BlockerLifecycleService.d.ts.map +1 -1
  46. package/dist/monitoring/BlockerLifecycleService.js +92 -17
  47. package/dist/monitoring/BlockerLifecycleService.js.map +1 -1
  48. package/dist/monitoring/FeatureEvidenceLog.d.ts +53 -0
  49. package/dist/monitoring/FeatureEvidenceLog.d.ts.map +1 -0
  50. package/dist/monitoring/FeatureEvidenceLog.js +99 -0
  51. package/dist/monitoring/FeatureEvidenceLog.js.map +1 -0
  52. package/dist/monitoring/LadderEvidenceReader.d.ts +31 -0
  53. package/dist/monitoring/LadderEvidenceReader.d.ts.map +1 -0
  54. package/dist/monitoring/LadderEvidenceReader.js +204 -0
  55. package/dist/monitoring/LadderEvidenceReader.js.map +1 -0
  56. package/dist/monitoring/MaturationBoard.d.ts +1 -1
  57. package/dist/monitoring/MaturationBoard.d.ts.map +1 -1
  58. package/dist/monitoring/MaturationBoard.js +5 -1
  59. package/dist/monitoring/MaturationBoard.js.map +1 -1
  60. package/dist/monitoring/MaturationLadder.d.ts +214 -0
  61. package/dist/monitoring/MaturationLadder.d.ts.map +1 -0
  62. package/dist/monitoring/MaturationLadder.js +495 -0
  63. package/dist/monitoring/MaturationLadder.js.map +1 -0
  64. package/dist/monitoring/MaturationLadderService.d.ts +189 -0
  65. package/dist/monitoring/MaturationLadderService.d.ts.map +1 -0
  66. package/dist/monitoring/MaturationLadderService.js +593 -0
  67. package/dist/monitoring/MaturationLadderService.js.map +1 -0
  68. package/dist/monitoring/maturationUniverse.d.ts +14 -0
  69. package/dist/monitoring/maturationUniverse.d.ts.map +1 -0
  70. package/dist/monitoring/maturationUniverse.js +54 -0
  71. package/dist/monitoring/maturationUniverse.js.map +1 -0
  72. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  73. package/dist/native/instar-desktop-host +0 -0
  74. package/dist/scaffold/templates.d.ts.map +1 -1
  75. package/dist/scaffold/templates.js +2 -1
  76. package/dist/scaffold/templates.js.map +1 -1
  77. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  78. package/dist/scheduler/JobScheduler.js +6 -1
  79. package/dist/scheduler/JobScheduler.js.map +1 -1
  80. package/dist/server/AgentServer.d.ts +5 -0
  81. package/dist/server/AgentServer.d.ts.map +1 -1
  82. package/dist/server/AgentServer.js +115 -1
  83. package/dist/server/AgentServer.js.map +1 -1
  84. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  85. package/dist/server/CapabilityIndex.js +9 -0
  86. package/dist/server/CapabilityIndex.js.map +1 -1
  87. package/dist/server/maturationBoardRoutes.d.ts +2 -0
  88. package/dist/server/maturationBoardRoutes.d.ts.map +1 -1
  89. package/dist/server/maturationBoardRoutes.js +34 -1
  90. package/dist/server/maturationBoardRoutes.js.map +1 -1
  91. package/dist/server/maturationLadderRoutes.d.ts +29 -0
  92. package/dist/server/maturationLadderRoutes.d.ts.map +1 -0
  93. package/dist/server/maturationLadderRoutes.js +143 -0
  94. package/dist/server/maturationLadderRoutes.js.map +1 -0
  95. package/dist/server/routes.d.ts.map +1 -1
  96. package/dist/server/routes.js +5 -1
  97. package/dist/server/routes.js.map +1 -1
  98. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  99. package/dist/testing/selfActionRegistry.js +37 -0
  100. package/dist/testing/selfActionRegistry.js.map +1 -1
  101. package/package.json +1 -1
  102. package/skills/spec-converge/scripts/write-convergence-tag.mjs +5 -2
  103. package/src/core/FeatureMaturationPlanGate.mjs +15 -1
  104. package/src/data/builtin-manifest.json +66 -66
  105. package/src/data/feature-ladders.json +191 -0
  106. package/src/data/standards-guard-index.json +1 -1
  107. package/src/data/standards-guard-index.meta.json +2 -2
  108. package/src/data/standards-registry.meta.json +1 -1
  109. package/src/data/state-coherence-registry.json +32 -0
  110. package/src/scaffold/templates.ts +2 -1
  111. package/upgrades/1.3.1648.md +29 -0
  112. package/upgrades/1.3.1649.md +28 -0
  113. package/upgrades/job-alert-global-cap.eli16.md +9 -0
  114. package/upgrades/side-effects/echo-bugs-recovered-reply-history.md +67 -0
  115. package/upgrades/side-effects/feature-maturation-ladder.md +69 -0
  116. package/upgrades/side-effects/job-alert-global-cap.md +66 -0
@@ -0,0 +1,214 @@
1
+ /**
2
+ * MaturationLadder — the pure core of the measured path to default-on.
3
+ *
4
+ * Spec: docs/specs/feature-maturation-ladder.md (Justin, topic 136110, 2026-11-03).
5
+ *
6
+ * This module parses the registry (src/data/feature-ladders.json), derives each
7
+ * feature's rung from what the code actually ships, turns the next rung into a
8
+ * D7 contract, and reduces D7's rows to one plain state. It reads no files,
9
+ * calls nothing and decides nothing: D7 stays the only thing that says `ready`,
10
+ * and the review job's model stays the only thing that decides a move.
11
+ */
12
+ import type { MaturationEvaluationContract } from '../core/InitiativeTracker.js';
13
+ export declare const LADDERS_SCHEMA = "feature-ladders/1";
14
+ export declare const LADDER_RESPONSE_SCHEMA = "maturation-ladder/1";
15
+ /** Observed rungs. `dark` is "nobody runs it"; no test-agent role exists to observe yet. */
16
+ export declare const OBSERVED_RUNGS: readonly ['dark', 'dry-run', 'dev-agent-live', 'fleet'];
17
+ export type ObservedRung = typeof OBSERVED_RUNGS[number];
18
+ /** Rungs a feature can be asked to earn. */
19
+ export type TargetRung = 'dev-agent-live' | 'fleet';
20
+ export type MetricRole = 'ran' | 'quality' | 'harm';
21
+ export type MetricSource = 'jsonl-log' | 'feature-metrics' | 'guard-posture' | 'feature-summary';
22
+ export type MetricDirection = 'at-least' | 'at-most';
23
+ export interface JsonlLogRef {
24
+ file: string;
25
+ where?: Record<string, string | number | boolean>;
26
+ of?: Record<string, string | number | boolean>;
27
+ value: 'count' | 'ratio';
28
+ timeField?: string;
29
+ /** Keep only the last row per this field's value, so a re-graded event counts once. */
30
+ dedupe?: string;
31
+ }
32
+ export interface FeatureMetricsRef {
33
+ feature: string;
34
+ field: 'errorRate' | 'fireRate' | 'realLlmCalls';
35
+ }
36
+ export interface GuardPostureRef {
37
+ key: string;
38
+ }
39
+ export interface FeatureSummaryRef {
40
+ ref: string;
41
+ }
42
+ export interface LadderMetric {
43
+ id: string;
44
+ role: MetricRole;
45
+ source: MetricSource;
46
+ ref: JsonlLogRef | FeatureMetricsRef | GuardPostureRef | FeatureSummaryRef;
47
+ direction: MetricDirection;
48
+ threshold: number;
49
+ minSamples: number;
50
+ windowDays: number;
51
+ }
52
+ export type RungAdvance = {
53
+ kind: 'config';
54
+ set: Record<string, string | number | boolean>;
55
+ } | {
56
+ kind: 'owner-driver';
57
+ driver: string;
58
+ } | {
59
+ kind: 'code';
60
+ };
61
+ export interface LadderRung {
62
+ soakDays: number;
63
+ advance: RungAdvance;
64
+ metrics: LadderMetric[];
65
+ }
66
+ export interface LadderPreference {
67
+ decidedBy: string;
68
+ reason: string;
69
+ decidedAt: string;
70
+ ref: string;
71
+ }
72
+ export interface LadderEntry {
73
+ id: string;
74
+ title: string;
75
+ aliases: string[];
76
+ /** D7 feature id. The spec-born initiative's id when one exists; else derived from `id`. */
77
+ subject: string;
78
+ /**
79
+ * `on`: the value meaning fully live, default `enabled: true`.
80
+ * `dryRunPath`: where its dry-run lives when not `<path>.dryRun`.
81
+ * `dryRunDefault`: the code treats an absent dry-run as on, with no shipped key to read.
82
+ */
83
+ flag: {
84
+ path: string;
85
+ on?: string | boolean;
86
+ dryRunPath?: string;
87
+ dryRunDefault?: boolean;
88
+ } | null;
89
+ disposition: 'ladder' | 'composed' | 'retire';
90
+ composedInto?: string;
91
+ retire?: {
92
+ reason: string;
93
+ ref: string;
94
+ };
95
+ final: 'default-on' | 'default-off-by-preference';
96
+ preference?: LadderPreference;
97
+ risk: 'standard' | 'sensitive';
98
+ /** Fires only on incidents, so idle is healthy: `no-opportunity`, not `no-data`. */
99
+ rare?: boolean;
100
+ /** How to start it safely when nothing runs it yet: a setting under its flag, normally a dry-run. */
101
+ start?: {
102
+ set: Record<string, string | number | boolean>;
103
+ };
104
+ /** The setting is read at boot, so a move needs a restart to take effect. */
105
+ restartNeeded?: boolean;
106
+ tracking: {
107
+ state: 'measured' | 'needed';
108
+ plan: string;
109
+ };
110
+ rungs: Partial<Record<TargetRung, LadderRung>>;
111
+ }
112
+ export interface LadderRegistry {
113
+ schema: typeof LADDERS_SCHEMA;
114
+ entries: LadderEntry[];
115
+ }
116
+ export type LadderParseResult = {
117
+ ok: true;
118
+ registry: LadderRegistry;
119
+ } | {
120
+ ok: false;
121
+ reason: string;
122
+ };
123
+ /**
124
+ * Evidence files may only live in an agent's log or state folders, and only as
125
+ * JSONL. Registry entries are reviewed code, so this is a second lock rather
126
+ * than the first: a typo must not reach a credential file.
127
+ */
128
+ export declare const EVIDENCE_FILE_RE: RegExp;
129
+ export declare function isEvidenceFileAllowed(file: string): boolean;
130
+ /** D7 only accepts kebab ids, and flag paths are dotted. */
131
+ export declare function subjectFromId(id: string): string;
132
+ /** Validate the registry. A bad file is refused whole, naming the failing field. */
133
+ export declare function parseLadderRegistry(text: string): LadderParseResult;
134
+ /**
135
+ * The rung comes from what is shipped and what runs here, never from a label.
136
+ * The shipped default alone decides `fleet`; a shipped dry-run is not fleet.
137
+ */
138
+ export declare function deriveLadderRung(entry: LadderEntry, liveConfig: unknown, shippedDefaults: unknown): {
139
+ rung: ObservedRung;
140
+ flagMissing: boolean;
141
+ };
142
+ export declare function nextRung(entry: LadderEntry, rung: ObservedRung): TargetRung | null;
143
+ /** The rung just below `target`, whose bar a feature already crossed. */
144
+ export declare function crossedRung(entry: LadderEntry, rung: ObservedRung): LadderRung | null;
145
+ /** D7's contract for the rung this feature is working toward. Same scorer, more subjects. */
146
+ export declare function contractForRung(rung: LadderRung): MaturationEvaluationContract;
147
+ /** Stable D7 source ref for a ladder metric. `feature-summary` keeps its own ref. */
148
+ export declare function projectionRef(m: LadderMetric): string;
149
+ export type LadderState = 'retire-pending' | 'composed' | 'held' | 'harmed' | 'at-final' | 'not-started' | 'no-opportunity' | 'no-data' | 'hold' | 'collecting' | 'soaking' | 'ready-to-advance';
150
+ export interface MetricReading {
151
+ metric: LadderMetric;
152
+ value: number | null;
153
+ samples: number;
154
+ /** Newest matching row, when known. */
155
+ newestAt: number | null;
156
+ /** Days of the window the log actually covers, when rotation may have cut it. */
157
+ coverageDays?: number;
158
+ /** Why no number exists (a read failed, the file is too big, or the data was cut). */
159
+ reason?: string;
160
+ }
161
+ export interface EvaluationRow {
162
+ status: string;
163
+ dueSlotMs: number;
164
+ contractHash: string;
165
+ }
166
+ export interface LadderStateInput {
167
+ entry: LadderEntry;
168
+ rung: ObservedRung;
169
+ target: TargetRung | null;
170
+ /** Readings for the next rung's metrics. */
171
+ readings: MetricReading[];
172
+ /** Readings for the crossed rung's `harm` and `ran` metrics, windowed from the move. */
173
+ afterMove: MetricReading[];
174
+ /** D7 rows for this subject, any order. */
175
+ evaluations: EvaluationRow[];
176
+ contractHash: string | null;
177
+ now: number;
178
+ /** When a move for this feature was last applied here, if any. */
179
+ lastMoveAt: number | null;
180
+ /** This agent's operator holds it, with a reason. */
181
+ heldReason: string | null;
182
+ }
183
+ export interface MetricView {
184
+ id: string;
185
+ role: MetricRole;
186
+ direction: MetricDirection;
187
+ threshold: number;
188
+ minSamples: number;
189
+ value: number | null;
190
+ samples: number;
191
+ pass: boolean | null;
192
+ coverageDays?: number;
193
+ reason?: string;
194
+ }
195
+ export interface LadderStateResult {
196
+ state: LadderState;
197
+ /** Why, in a word or two, when the state alone does not say. */
198
+ because?: string;
199
+ soak: {
200
+ days: number;
201
+ needed: number;
202
+ };
203
+ metrics: MetricView[];
204
+ passing: number;
205
+ total: number;
206
+ }
207
+ export declare function raiseDue(state: LadderState, lastRaisedAt: number | undefined, now: number): boolean;
208
+ export declare const HARM_WATCH_DAYS = 14;
209
+ export declare const SILENT_AFTER_MOVE_DAYS = 3;
210
+ export declare function metricPasses(direction: MetricDirection, value: number, threshold: number): boolean;
211
+ /** Whole days of unbroken D7 `ready` under this contract. Any other row restarts it. */
212
+ export declare function soakDays(evaluations: EvaluationRow[], contractHash: string | null, now: number): number;
213
+ export declare function computeLadderState(input: LadderStateInput): LadderStateResult;
214
+ //# sourceMappingURL=MaturationLadder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaturationLadder.d.ts","sourceRoot":"","sources":["../../src/monitoring/MaturationLadder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAEjF,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAE5D,4FAA4F;AAC5F,eAAO,MAAM,cAAc,YAAI,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAU,CAAC;AACtF,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AACzD,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AACjG,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,iBAAiB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;CAAE;AACxG,MAAM,WAAW,eAAe;IAAG,GAAG,EAAE,MAAM,CAAA;CAAE;AAChD,MAAM,WAAW,iBAAiB;IAAG,GAAG,EAAE,MAAM,CAAA;CAAE;AAElD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,CAAC;IAC3E,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAEvG,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACnG,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,2BAA2B,CAAC;IAClD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qGAAqG;IACrG,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;KAAE,CAAC;IAC3D,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE;QAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,OAAO,cAAc,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE;AAEzF,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAUlC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAwF,CAAC;AAItH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMhD;AAoGD,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAoGnE;AA8BD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,OAAO,EACnB,eAAe,EAAE,OAAO,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAY9C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,CAMlF;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,CAIrF;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,4BAA4B,CAa9E;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAMrD;AAID,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAC9E,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAE1F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,wFAAwF;IACxF,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAInG;AAED,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,wBAAgB,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAElG;AAkBD,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUvG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAqC7E"}