oficina-opencode 2.0.1 → 2.1.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 (92) hide show
  1. package/README.md +164 -14
  2. package/commands/oficina.md +22 -9
  3. package/dist/core/atomic.d.ts +85 -0
  4. package/dist/core/atomic.d.ts.map +1 -0
  5. package/dist/core/atomic.js +186 -0
  6. package/dist/core/atomic.js.map +1 -0
  7. package/dist/core/bus.d.ts +76 -56
  8. package/dist/core/bus.d.ts.map +1 -1
  9. package/dist/core/bus.js +141 -100
  10. package/dist/core/bus.js.map +1 -1
  11. package/dist/core/catalog.d.ts +27 -0
  12. package/dist/core/catalog.d.ts.map +1 -1
  13. package/dist/core/catalog.js +41 -6
  14. package/dist/core/catalog.js.map +1 -1
  15. package/dist/core/cost.d.ts +275 -0
  16. package/dist/core/cost.d.ts.map +1 -0
  17. package/dist/core/cost.js +724 -0
  18. package/dist/core/cost.js.map +1 -0
  19. package/dist/core/docsync.d.ts +124 -0
  20. package/dist/core/docsync.d.ts.map +1 -0
  21. package/dist/core/docsync.js +191 -0
  22. package/dist/core/docsync.js.map +1 -0
  23. package/dist/core/evidence.d.ts +314 -0
  24. package/dist/core/evidence.d.ts.map +1 -0
  25. package/dist/core/evidence.js +602 -0
  26. package/dist/core/evidence.js.map +1 -0
  27. package/dist/core/fsx.d.ts.map +1 -1
  28. package/dist/core/fsx.js +7 -1
  29. package/dist/core/fsx.js.map +1 -1
  30. package/dist/core/gates.d.ts +9 -2
  31. package/dist/core/gates.d.ts.map +1 -1
  32. package/dist/core/gates.js +19 -3
  33. package/dist/core/gates.js.map +1 -1
  34. package/dist/core/ids.d.ts +48 -0
  35. package/dist/core/ids.d.ts.map +1 -0
  36. package/dist/core/ids.js +87 -0
  37. package/dist/core/ids.js.map +1 -0
  38. package/dist/core/leases.d.ts +45 -0
  39. package/dist/core/leases.d.ts.map +1 -1
  40. package/dist/core/leases.js +85 -17
  41. package/dist/core/leases.js.map +1 -1
  42. package/dist/core/office.d.ts +72 -1
  43. package/dist/core/office.d.ts.map +1 -1
  44. package/dist/core/office.js +173 -6
  45. package/dist/core/office.js.map +1 -1
  46. package/dist/core/paths.d.ts +11 -1
  47. package/dist/core/paths.d.ts.map +1 -1
  48. package/dist/core/paths.js +28 -4
  49. package/dist/core/paths.js.map +1 -1
  50. package/dist/core/recovery.d.ts +87 -0
  51. package/dist/core/recovery.d.ts.map +1 -0
  52. package/dist/core/recovery.js +325 -0
  53. package/dist/core/recovery.js.map +1 -0
  54. package/dist/core/sandbox.d.ts +179 -0
  55. package/dist/core/sandbox.d.ts.map +1 -0
  56. package/dist/core/sandbox.js +546 -0
  57. package/dist/core/sandbox.js.map +1 -0
  58. package/dist/core/state.d.ts +7 -0
  59. package/dist/core/state.d.ts.map +1 -1
  60. package/dist/core/state.js +15 -1
  61. package/dist/core/state.js.map +1 -1
  62. package/dist/core/stores.d.ts +65 -0
  63. package/dist/core/stores.d.ts.map +1 -0
  64. package/dist/core/stores.js +115 -0
  65. package/dist/core/stores.js.map +1 -0
  66. package/dist/core/tripwire.d.ts +87 -0
  67. package/dist/core/tripwire.d.ts.map +1 -0
  68. package/dist/core/tripwire.js +203 -0
  69. package/dist/core/tripwire.js.map +1 -0
  70. package/dist/core/types.d.ts +33 -1
  71. package/dist/core/types.d.ts.map +1 -1
  72. package/dist/core/types.js +1 -0
  73. package/dist/core/types.js.map +1 -1
  74. package/dist/hooks/scopeGuard.d.ts +86 -13
  75. package/dist/hooks/scopeGuard.d.ts.map +1 -1
  76. package/dist/hooks/scopeGuard.js +296 -62
  77. package/dist/hooks/scopeGuard.js.map +1 -1
  78. package/dist/index.d.ts +10 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +185 -2
  81. package/dist/index.js.map +1 -1
  82. package/dist/tools/index.d.ts.map +1 -1
  83. package/dist/tools/index.js +158 -0
  84. package/dist/tools/index.js.map +1 -1
  85. package/docs/COMPATIBILITY.md +98 -0
  86. package/docs/GARANTIAS.md +190 -0
  87. package/docs/PLAN-V2.1.md +144 -0
  88. package/docs/QUE-ES.md +15 -0
  89. package/docs/catalog-facts.json +27 -0
  90. package/package.json +6 -2
  91. package/skills/oficina/SKILL.md +191 -69
  92. package/skills/oficina/reference/mesh.md +11 -2
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Requirement-to-Evidence Graph: la capa que falta entre "compila" y "está".
3
+ *
4
+ * Los gates técnicos dicen que el código no está roto. No dicen que la card
5
+ * resolvió lo que el usuario pidió. Una card puede compilar, pasar lint,
6
+ * pasar todos los tests y aun así tener la autenticación mal, porque ningún
7
+ * test contemplaba ese escenario: el criterio de aceptación era "el login
8
+ * valida credenciales" y la suite solo verificaba que `login()` devolvía 200.
9
+ *
10
+ * Este módulo cierra ese hueco. Cada criterio de aceptación se convierte en
11
+ * un nodo de requisito; cada evidencia (artefacto, test, gate, inspección,
12
+ * evidencia externa) se engancha a un requisito con un nivel de verificación.
13
+ * La regla que gobierna todo el módulo: si a un requisito obligatorio le
14
+ * falta evidencia suficiente, la card NO puede declararse done.
15
+ *
16
+ * Decisiones de diseño que conviene no romper:
17
+ *
18
+ * 1. La pirámide de niveles ordena CONFianza, no cantidad:
19
+ * 1 = estático (compila, lintea), 2 = comportamiento (algo lo ejercita),
20
+ * 3 = validación de requisitos (alguien lo contrastó contra el criterio),
21
+ * 4 = auditoría independiente (otro agente, no el owner, lo revisó).
22
+ * `reachedLevel` es el MÁXIMO de la evidencia del requisito, nunca el
23
+ * promedio: promediar dejaría pasar una card con un test y cinco gates
24
+ * cuando ningún requisito tiene un test.
25
+ *
26
+ * 2. El módulo no llama a `Date.now()`. Todo timestamp entra por `clock` o
27
+ * por `recordedAt`; sin ninguno se usa un epoch fijo. Un grafo que depende
28
+ * del reloj no es reproducible y sus tests miden el reloj, no el grafo.
29
+ *
30
+ * 3. No hay IO. Todo entra por parámetros y sale por el return. El módulo no
31
+ * sabe dónde viven los artefactos: recibe rutas como strings.
32
+ *
33
+ * 4. La evidencia se vincula por el TEXTO EXACTO del criterio de aceptación,
34
+ * no por índice, porque el texto es lo que el humano lee y lo que el
35
+ * Commander escribió; el índice solo desambigua duplicados. Si el texto no
36
+ * coincide, la evidencia se engancha igual por índice pero queda un riesgo
37
+ * visible: prefiero evidencia mal etiquetada con riesgo a evidencia
38
+ * perdida en silencio.
39
+ *
40
+ * 5. El módulo no importa `Card` de `types.ts`. Necesita el id y los
41
+ * criterios de aceptación, y nada más: acoplarse al schema completo de la
42
+ * card haría que cada cambio de card_schema rompiera el grafo de evidencia
43
+ * sin que tenga relación alguna con él.
44
+ */
45
+ /**
46
+ * Nivel de verificación alcanzado por una evidencia.
47
+ *
48
+ * La pirámide: 1 estático, 2 comportamiento, 3 validación de requisitos,
49
+ * 4 auditoría independiente.
50
+ */
51
+ export type VerificationLevel = 1 | 2 | 3 | 4;
52
+ /** Naturaleza de una evidencia. */
53
+ export type EvidenceKind = "artifact" | "test" | "gate" | "inspection" | "external";
54
+ /** Una evidencia concreta, atada a un requisito. */
55
+ export interface EvidenceNode {
56
+ id: string;
57
+ cardId: string;
58
+ /** Texto exacto del criterio de aceptación que esta evidencia respalda. */
59
+ requirement: string;
60
+ /** Índice del criterio de aceptación (0-based). -1 si se desconoce. */
61
+ requirementIndex: number;
62
+ /** Si el criterio respaldado es obligatorio. */
63
+ mandatory: boolean;
64
+ kind: EvidenceKind;
65
+ level: VerificationLevel;
66
+ /** Ruta del artefacto, nombre del test, id del gate. */
67
+ ref: string;
68
+ note: string;
69
+ /** ISO. */
70
+ recordedAt: string;
71
+ /** Id del agente que la registró. */
72
+ recordedBy: string;
73
+ /**
74
+ * `false` cuando la evidencia documenta un FALLO (un gate rojo, un test
75
+ * que se rompió). En ese caso no suma al nivel alcanzado: documentar que
76
+ * algo falló es honestidad, no verificación.
77
+ */
78
+ passed?: boolean;
79
+ }
80
+ /** Un criterio de aceptación con la evidencia que lo respalda. */
81
+ export interface RequirementNode {
82
+ id: string;
83
+ cardId: string;
84
+ requirement: string;
85
+ index: number;
86
+ mandatory: boolean;
87
+ evidence: EvidenceNode[];
88
+ /** Nivel más alto alcanzado por la evidencia. 0 = sin evidencia. */
89
+ reachedLevel: VerificationLevel | 0;
90
+ status: "satisfied" | "partial" | "unsatisfied";
91
+ /** Riesgos pendientes sobre este requisito. */
92
+ risks: string[];
93
+ }
94
+ /** El grafo completo de una card. */
95
+ export interface EvidenceGraph {
96
+ cardId: string;
97
+ requirements: RequirementNode[];
98
+ /** Requisitos obligatorios sin evidencia suficiente. */
99
+ missingMandatory: string[];
100
+ /** true solo si todos los obligatorios están satisfied. */
101
+ complete: boolean;
102
+ /** Nivel global más bajo entre los requisitos obligatorios. 0 si no hay. */
103
+ minLevel: VerificationLevel | 0;
104
+ summary: string;
105
+ /**
106
+ * Nivel exigido con el que se construyó el grafo.
107
+ *
108
+ * Vive en el grafo para que `addEvidence` pueda recomputar el estado de un
109
+ * requisito con el mismo criterio con el que se lo evaluó al inicio. Si
110
+ * quien arma el grafo no lo setea, se usa `DEFAULT_REQUIRED_LEVEL`.
111
+ */
112
+ requiredLevel?: VerificationLevel;
113
+ /** Evidencia que no se pudo vincular a ningún criterio de aceptación. */
114
+ orphanedEvidence?: EvidenceNode[];
115
+ }
116
+ /**
117
+ * Datos de la card que el grafo necesita.
118
+ *
119
+ * Una `Card` completa del sistema satisface esta forma: el grafo no necesita
120
+ * el estado, el owner ni el scope, solo los criterios de aceptación y el id.
121
+ */
122
+ export interface EvidenceCard {
123
+ id: string;
124
+ acceptance: string[];
125
+ }
126
+ /** Opciones de construcción del grafo. */
127
+ export interface GraphOptions {
128
+ /**
129
+ * Cuántos criterios de aceptación son obligatorios, contados desde el
130
+ * primero. Por defecto 2.
131
+ */
132
+ mandatoryCount?: number;
133
+ /**
134
+ * Índices explícitos de criterios obligatorios. Si viene, gana sobre
135
+ * `mandatoryCount`: hay cards cuyo criterio obligatorio no es el primero
136
+ * (por ejemplo, el segundo es el que corta el objetivo).
137
+ */
138
+ mandatoryIndexes?: number[];
139
+ /** Nivel mínimo para considerar un requisito `satisfied`. Por defecto 2. */
140
+ requiredLevel?: VerificationLevel;
141
+ /** Reloj inyectable. Sin reloj ni `recordedAt`, se usa un epoch fijo. */
142
+ clock?: () => number;
143
+ /** Timestamp fijo para toda la evidencia del grafo. */
144
+ recordedAt?: string;
145
+ }
146
+ /** Opciones de construcción de una evidencia. */
147
+ export interface EvidenceOptions {
148
+ /** Índice del criterio de aceptación al que se vincula. */
149
+ requirementIndex?: number;
150
+ /** Si el criterio es obligatorio. Se sincroniza al vincular la evidencia. */
151
+ mandatory?: boolean;
152
+ note?: string;
153
+ /** Id del agente que registra la evidencia. */
154
+ recordedBy?: string;
155
+ /** Timestamp ISO. */
156
+ recordedAt?: string;
157
+ /** Reloj inyectable. */
158
+ clock?: () => number;
159
+ /** Nivel explícito. Se recorta al máximo que admite cada tipo de evidencia. */
160
+ level?: VerificationLevel;
161
+ /** Owner de la card, para distinguir inspección de auditoría. */
162
+ owner?: string;
163
+ /** Revisor de la card, para distinguir inspección de auditoría. */
164
+ reviewer?: string;
165
+ }
166
+ /** Límites de cierre exigidos por quien decide si la card puede terminar. */
167
+ export interface EvidenceLimits {
168
+ /**
169
+ * Nivel mínimo exigido. Por defecto 2 (comportamiento). Si el grafo se
170
+ * construyó con un nivel más estricto, manda el más estricto: nadie baja
171
+ * el listón por pedido.
172
+ */
173
+ requiredLevel?: VerificationLevel;
174
+ /**
175
+ * Si una card sin criterios de aceptación puede cerrarse. Por defecto no:
176
+ * sin criterios no hay nada verificable, y dar por cumplidos requisitos
177
+ * inexistentes es exactamente el agujero que este módulo tapa.
178
+ */
179
+ requireAcceptance?: boolean;
180
+ }
181
+ /**
182
+ * Forma mínima de un resultado de gate que este módulo sabe leer.
183
+ *
184
+ * Se declara estructuralmente, sin importar `GateResult` de `types.ts`, a
185
+ * propósito: el grafo de evidencia tiene que sobrevivir a un cambio en la
186
+ * representación interna de los gates. Si el objeto trae `phase`/`outcome`
187
+ * (una fase) o `technical[]` (un gate completo), el módulo lo entiende.
188
+ */
189
+ export interface GateEvidenceInput {
190
+ phase?: string;
191
+ outcome?: string;
192
+ detail?: string;
193
+ reason?: string;
194
+ passed?: boolean;
195
+ technical?: GateEvidenceInput[];
196
+ security?: GateEvidenceInput[];
197
+ }
198
+ /** Cuántos criterios de aceptación son obligatorios por defecto. */
199
+ export declare const DEFAULT_MANDATORY_COUNT = 2;
200
+ /** Nivel de evidencia exigido por defecto: comportamiento, no estático. */
201
+ export declare const DEFAULT_REQUIRED_LEVEL: VerificationLevel;
202
+ /**
203
+ * Epoch por defecto para la evidencia sin reloj inyectado.
204
+ *
205
+ * Feo a propósito: mejor una fecha obviamente sintética que un timestamp
206
+ * silenciosamente dependiente del momento en que corrió el test.
207
+ */
208
+ export declare const DEFAULT_RECORDED_AT = "1970-01-01T00:00:00.000Z";
209
+ /** Agente por defecto cuando nadie dice quién registró la evidencia. */
210
+ export declare const DEFAULT_RECORDED_BY = "unknown";
211
+ /** Id estable de un nodo de requisito. */
212
+ export declare function requirementId(cardId: string, index: number): string;
213
+ /** Id estable de un nodo de evidencia. */
214
+ export declare function evidenceId(cardId: string, requirementIndex: number, kind: EvidenceKind, ref: string): string;
215
+ /**
216
+ * Crea un nodo de requisito por cada criterio de aceptación de la card.
217
+ *
218
+ * Los primeros `mandatoryCount` criterios (2 por defecto) quedan obligatorios.
219
+ * La obligatoriedad existe porque no todos los criterios cortan el objetivo:
220
+ * "el botón dice Hola" puede quedar sin probar y la card sigue sirviendo,
221
+ * pero "el login valida credenciales" no.
222
+ */
223
+ export declare function buildRequirementNodes(card: EvidenceCard, options?: GraphOptions): RequirementNode[];
224
+ /**
225
+ * Agrega una evidencia al grafo y recalcula el estado.
226
+ *
227
+ * La función es pura: no muta el grafo recibido, devuelve uno nuevo. Quien
228
+ * la llame puede conservar el anterior para comparar versiones.
229
+ */
230
+ export declare function addEvidence(graph: EvidenceGraph, node: EvidenceNode): EvidenceGraph;
231
+ /**
232
+ * Construye el grafo de evidencia de una card.
233
+ *
234
+ * Es el camino normal: se pasa la card, la lista de evidencia y las opciones.
235
+ * La evidencia se aplica en orden, así que el orden de la lista importa
236
+ * para el orden interno (no para el estado, que se recalcula siempre).
237
+ */
238
+ export declare function buildEvidenceGraph(card: EvidenceCard, evidence: EvidenceNode[], options?: GraphOptions): EvidenceGraph;
239
+ /**
240
+ * Evidencia de artefacto: un archivo de `.oficina/artifacts/<cardId>/`.
241
+ *
242
+ * Tope nivel 2. Un `handoff.md` describe lo que el agente dice que hizo;
243
+ * believe, but verify: el artefacto es el relato, no la ejecución.
244
+ */
245
+ export declare function evidenceFromArtifact(artifactPath: string, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
246
+ /**
247
+ * Evidencia de test: un test citado que ejercita el requisito.
248
+ *
249
+ * Tope nivel 2: un test demuestra comportamiento, no criterio de negocio
250
+ * auditado. Si el test fue citado pero no lo cubre, el riesgo queda escrito
251
+ * en la nota; la auditoría de nivel 4 es la que verifica esa cobertura.
252
+ */
253
+ export declare function evidenceFromTest(testRef: string, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
254
+ /**
255
+ * Evidencia de gate: el resultado de una fase ejecutada.
256
+ *
257
+ * Nivel 2 solo para la fase de tests; el resto de fases son estáticas
258
+ * (nivel 1). Un gate que falló se registra igual, con `passed: false`: saber
259
+ * qué se rompió es información, no verificación.
260
+ */
261
+ export declare function evidenceFromGate(gateResult: GateEvidenceInput, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
262
+ /**
263
+ * Evidencia de inspección manual documentada.
264
+ *
265
+ * Una inspección es nivel 3: alguien se puso a contrastar el resultado
266
+ * contra el criterio. Pasa a nivel 4 SOLO si la hizo un revisor distinto del
267
+ * owner, porque ahí deja de ser la opinión del autor y pasa a ser una
268
+ * auditoría que puede contradecirlo.
269
+ */
270
+ export declare function evidenceFromInspection(inspectionRef: string, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
271
+ /**
272
+ * Evidencia de auditoría independiente: la revisó un agente que no es el
273
+ * owner.
274
+ *
275
+ * A diferencia de `evidenceFromInspection`, acá el nivel 4 es parte del
276
+ * contrato: si no hay owner y revisor distintos, la auditoría no ocurrió y
277
+ * se lanza el error en vez de devolver una evidencia de nivel 3 con cara de
278
+ * auditoría. Un "audit" que en realidad es auto-revisión es el peor de los
279
+ * dos mundos: parece verificado y no lo está.
280
+ */
281
+ export declare function evidenceFromAudit(auditRef: string, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
282
+ /**
283
+ * Evidencia externa: un link, una captura, un reporte de terceros.
284
+ *
285
+ * Nivel 1 por defecto. No se puede verificar desde adentro del repo, así que
286
+ * por sí sola no demuestra comportamiento; quien la registra puede subirla de
287
+ * nivel si documentó el contexto.
288
+ */
289
+ export declare function evidenceFromExternal(externalRef: string, cardId: string, requirement: string, opts?: EvidenceOptions): EvidenceNode;
290
+ /**
291
+ * ¿Se puede declarar `done` esta card?
292
+ *
293
+ * Es el corazón del módulo. Responde con una razón legible, en español, que
294
+ * diga QUÉ falta — no solo que falta. Un "no" sin explicación hace que el
295
+ * agente adivine y vuelva a hacer lo mismo.
296
+ *
297
+ * Reglas:
298
+ * - Sin criterios de aceptación no hay nada verificable → no cierra.
299
+ * - Si algún requisito obligatorio no está `satisfied` → no cierra.
300
+ * - Si el nivel mínimo entre los obligatorios no alcanza el exigido → no cierra.
301
+ */
302
+ export declare function canCloseCard(graph: EvidenceGraph, limits?: EvidenceLimits): {
303
+ ok: boolean;
304
+ reason: string;
305
+ };
306
+ /**
307
+ * Renderiza el grafo como markdown legible.
308
+ *
309
+ * Va al artefacto de la card: un humano tiene que poder leer, en treinta
310
+ * segundos, si los criterios de aceptación del Commander están respaldados
311
+ * o si son deseos.
312
+ */
313
+ export declare function renderEvidenceGraph(graph: EvidenceGraph): string;
314
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/core/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAQH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE7C,mCAAmC;AACnC,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,MAAM,GACN,MAAM,GACN,YAAY,GACZ,UAAU,CAAA;AAEd,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAA;IACxB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,iBAAiB,CAAA;IACxB,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,oEAAoE;IACpE,YAAY,EAAE,iBAAiB,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAAA;IAC/C,+CAA+C;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,EAAE,CAAA;IAC/B,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,iBAAiB,GAAG,CAAC,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAA;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAMD,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,EAAE,iBAAqB,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,6BAA6B,CAAA;AAE7D,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAoD5C,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5G;AA+BD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,YAAiB,GAAG,eAAe,EAAE,CAavG;AAoGD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa,CAanF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,aAAa,CAgBf;AAkCD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAYd;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAWd;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAkBd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAad;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAiBd;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,YAAY,CAWd;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,GAAE,cAAmB,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA6C/G;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAoFhE"}