@tienne/gestalt 0.15.0 → 0.15.2

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 (29) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.ko.md +15 -32
  3. package/README.md +183 -163
  4. package/dist/package.json +1 -1
  5. package/dist/src/execute/orchestrators/evaluation.d.ts +27 -0
  6. package/dist/src/execute/orchestrators/evaluation.d.ts.map +1 -0
  7. package/dist/src/execute/orchestrators/evaluation.js +169 -0
  8. package/dist/src/execute/orchestrators/evaluation.js.map +1 -0
  9. package/dist/src/execute/orchestrators/evolution.d.ts +50 -0
  10. package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -0
  11. package/dist/src/execute/orchestrators/evolution.js +391 -0
  12. package/dist/src/execute/orchestrators/evolution.js.map +1 -0
  13. package/dist/src/execute/orchestrators/execution.d.ts +38 -0
  14. package/dist/src/execute/orchestrators/execution.d.ts.map +1 -0
  15. package/dist/src/execute/orchestrators/execution.js +328 -0
  16. package/dist/src/execute/orchestrators/execution.js.map +1 -0
  17. package/dist/src/execute/orchestrators/planning.d.ts +26 -0
  18. package/dist/src/execute/orchestrators/planning.d.ts.map +1 -0
  19. package/dist/src/execute/orchestrators/planning.js +269 -0
  20. package/dist/src/execute/orchestrators/planning.js.map +1 -0
  21. package/dist/src/execute/orchestrators/types.d.ts +137 -0
  22. package/dist/src/execute/orchestrators/types.d.ts.map +1 -0
  23. package/dist/src/execute/orchestrators/types.js +2 -0
  24. package/dist/src/execute/orchestrators/types.js.map +1 -0
  25. package/dist/src/execute/passthrough-engine.d.ts +9 -201
  26. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  27. package/dist/src/execute/passthrough-engine.js +37 -1075
  28. package/dist/src/execute/passthrough-engine.js.map +1 -1
  29. package/package.json +1 -1
@@ -0,0 +1,391 @@
1
+ import { ExecuteError, ExecuteSessionNotFoundError, TaskExecutionError, } from '../../core/errors.js';
2
+ import { ok, err } from '../../core/result.js';
3
+ import { EventType } from '../../events/types.js';
4
+ import { EXECUTE_EXECUTION_SYSTEM_PROMPT, EVOLVE_STRUCTURAL_FIX_SYSTEM_PROMPT, EVOLVE_CONTEXTUAL_SYSTEM_PROMPT, buildStructuralFixPrompt, buildContextualEvolvePrompt, buildReExecutionPrompt, } from '../prompts.js';
5
+ import { DRIFT_THRESHOLD } from '../../core/constants.js';
6
+ import { validateSpecPatch } from '../spec-patch-validator.js';
7
+ import { applySpecPatch } from '../spec-patch-applier.js';
8
+ import { identifyImpactedTasks } from '../impact-identifier.js';
9
+ import { checkTermination } from '../termination-detector.js';
10
+ import { mergeSystemPrompt } from '../../agent/prompt-resolver.js';
11
+ import { classifyStagnation } from '../../resilience/stagnation-detector.js';
12
+ import { suggestPersona, buildLateralContext, buildEscalationContext, } from '../../resilience/lateral.js';
13
+ export class EvolutionOrchestrator {
14
+ sessionManager;
15
+ eventStore;
16
+ agentRegistry;
17
+ constructor(sessionManager, eventStore, agentRegistry, _roleAgentRegistry) {
18
+ this.sessionManager = sessionManager;
19
+ this.eventStore = eventStore;
20
+ this.agentRegistry = agentRegistry;
21
+ }
22
+ /**
23
+ * evolve_fix: Structural 실패 시 fix context를 반환하거나, fix 결과를 제출한다.
24
+ * - fixTasks 없으면: fixContext 반환 (caller가 fix 생성)
25
+ * - fixTasks 있으면: fix 기록 후 re-evaluate를 위한 상태 복원
26
+ */
27
+ startStructuralFix(sessionId, fixTasks) {
28
+ try {
29
+ const session = this.sessionManager.get(sessionId);
30
+ // Call 1: Return fix context (no fixTasks submitted)
31
+ if (!fixTasks) {
32
+ if (!session.structuralResult || session.structuralResult.allPassed) {
33
+ return err(new ExecuteError('No structural failures to fix'));
34
+ }
35
+ this.sessionManager.startStructuralFix(sessionId);
36
+ const failedCommands = session.structuralResult.commands.filter((c) => c.exitCode !== 0);
37
+ return ok({
38
+ session: this.sessionManager.get(sessionId),
39
+ fixContext: {
40
+ systemPrompt: mergeSystemPrompt(EVOLVE_STRUCTURAL_FIX_SYSTEM_PROMPT, this.agentRegistry, 'evaluate'),
41
+ fixPrompt: buildStructuralFixPrompt(session.spec, failedCommands, session.taskResults),
42
+ phase: 'evolving',
43
+ stage: 'fix',
44
+ failedCommands,
45
+ },
46
+ });
47
+ }
48
+ // Call 2: Submit fix results
49
+ this.sessionManager.completeStructuralFix(sessionId, fixTasks);
50
+ // Reset evaluation state for re-evaluate
51
+ const updated = this.sessionManager.get(sessionId);
52
+ updated.evaluateStage = undefined;
53
+ updated.structuralResult = undefined;
54
+ updated.evaluationResult = undefined;
55
+ updated.status = 'executing';
56
+ updated.updatedAt = new Date().toISOString();
57
+ return ok({
58
+ session: updated,
59
+ });
60
+ }
61
+ catch (e) {
62
+ if (e instanceof ExecuteSessionNotFoundError)
63
+ return err(e);
64
+ return err(new ExecuteError(`Failed structural fix: ${e instanceof Error ? e.message : String(e)}`));
65
+ }
66
+ }
67
+ /**
68
+ * evolve: Contextual evolution 시작.
69
+ * - evaluationResult에서 gap 분석 후 evolveContext 반환
70
+ * - caller가 SpecPatch를 생성
71
+ * - terminateReason='caller'이면 즉시 종료
72
+ */
73
+ startContextualEvolve(sessionId, terminateReason) {
74
+ try {
75
+ const session = this.sessionManager.get(sessionId);
76
+ // Caller-initiated termination
77
+ if (terminateReason === 'caller') {
78
+ this.sessionManager.terminate(sessionId, 'caller');
79
+ return ok({
80
+ session: this.sessionManager.get(sessionId),
81
+ terminated: true,
82
+ terminationReason: 'caller',
83
+ });
84
+ }
85
+ if (!session.evaluationResult) {
86
+ return err(new ExecuteError('No evaluation result found. Run evaluate first.'));
87
+ }
88
+ // Check termination conditions
89
+ const termination = checkTermination({
90
+ evolutionHistory: session.evolutionHistory,
91
+ currentScore: session.evaluationResult.overallScore,
92
+ currentGoalAlignment: session.evaluationResult.goalAlignment,
93
+ structuralFixCount: this.countStructuralFixes(session),
94
+ contextualCount: session.evolutionHistory.length,
95
+ });
96
+ if (termination) {
97
+ // Success → terminate normally
98
+ if (termination.reason === 'success') {
99
+ this.sessionManager.terminate(sessionId, 'success');
100
+ return ok({
101
+ session: this.sessionManager.get(sessionId),
102
+ terminated: true,
103
+ terminationReason: 'success',
104
+ });
105
+ }
106
+ // Non-success → lateral thinking
107
+ const pattern = classifyStagnation({
108
+ evolutionHistory: session.evolutionHistory,
109
+ currentScore: session.evaluationResult.overallScore,
110
+ termination,
111
+ });
112
+ const persona = suggestPersona(pattern, session.lateralTriedPersonas);
113
+ if (persona) {
114
+ this.sessionManager.startLateral(sessionId, persona, pattern);
115
+ const lateralCtx = buildLateralContext(persona, pattern, session.spec, session.evaluationResult, session.evolutionHistory, session.lateralAttempts + 1);
116
+ return ok({
117
+ session: this.sessionManager.get(sessionId),
118
+ lateralContext: lateralCtx,
119
+ });
120
+ }
121
+ // All personas exhausted → human escalation
122
+ this.sessionManager.terminate(sessionId, 'human_escalation');
123
+ this.eventStore.append('execute', sessionId, EventType.EVOLVE_HUMAN_ESCALATION, {
124
+ triedPersonas: session.lateralTriedPersonas,
125
+ bestScore: Math.max(...session.evolutionHistory.map((g) => g.evaluationScore), session.evaluationResult.overallScore),
126
+ });
127
+ const escalation = buildEscalationContext(session.lateralTriedPersonas, session.evaluationResult, session.evolutionHistory);
128
+ return ok({
129
+ session: this.sessionManager.get(sessionId),
130
+ humanEscalation: escalation,
131
+ terminated: true,
132
+ terminationReason: 'human_escalation',
133
+ });
134
+ }
135
+ return ok({
136
+ session,
137
+ evolveContext: {
138
+ systemPrompt: mergeSystemPrompt(EVOLVE_CONTEXTUAL_SYSTEM_PROMPT, this.agentRegistry, 'evaluate'),
139
+ evolvePrompt: buildContextualEvolvePrompt(session.spec, session.evaluationResult, session.evolutionHistory),
140
+ phase: 'evolving',
141
+ stage: 'evolve',
142
+ evaluationResult: session.evaluationResult,
143
+ evolutionHistory: session.evolutionHistory,
144
+ },
145
+ });
146
+ }
147
+ catch (e) {
148
+ if (e instanceof ExecuteSessionNotFoundError)
149
+ return err(e);
150
+ return err(new ExecuteError(`Failed contextual evolve: ${e instanceof Error ? e.message : String(e)}`));
151
+ }
152
+ }
153
+ /**
154
+ * evolve_patch: Spec 패치 제출 → 검증 → 적용 → impacted tasks 식별 → re-execute context 반환
155
+ */
156
+ submitSpecPatch(sessionId, patch) {
157
+ try {
158
+ const session = this.sessionManager.get(sessionId);
159
+ if (!session.executionPlan) {
160
+ return err(new ExecuteError('No execution plan found'));
161
+ }
162
+ // Validate patch
163
+ const validation = validateSpecPatch(patch, session.spec);
164
+ if (!validation.valid) {
165
+ const msgs = validation.errors.map((e) => `${e.field}: ${e.message}`).join('; ');
166
+ return err(new ExecuteError(`Invalid spec patch: ${msgs}`));
167
+ }
168
+ // Apply patch
169
+ const generation = session.currentGeneration + 1;
170
+ const { newSpec, delta } = applySpecPatch(session.spec, patch, generation);
171
+ // Record generation snapshot BEFORE applying
172
+ this.sessionManager.recordEvolutionGeneration(sessionId, {
173
+ generation: session.currentGeneration,
174
+ spec: session.spec,
175
+ evaluationScore: session.evaluationResult?.overallScore ?? 0,
176
+ goalAlignment: session.evaluationResult?.goalAlignment ?? 0,
177
+ delta,
178
+ });
179
+ // Apply patch to session
180
+ this.sessionManager.patchSpec(sessionId, patch, newSpec, delta);
181
+ // Identify impacted tasks
182
+ const driftThreshold = DRIFT_THRESHOLD;
183
+ const impactedTaskIds = identifyImpactedTasks(session.executionPlan.atomicTasks, session.driftHistory, delta, driftThreshold);
184
+ if (impactedTaskIds.length === 0) {
185
+ // No tasks need re-execution, just re-evaluate
186
+ return ok({
187
+ session: this.sessionManager.get(sessionId),
188
+ impactedTaskIds: [],
189
+ });
190
+ }
191
+ // Start re-execution
192
+ this.sessionManager.startReExecution(sessionId, impactedTaskIds);
193
+ const updatedSession = this.sessionManager.get(sessionId);
194
+ const reExecuteContext = this.buildReExecuteContext(updatedSession, impactedTaskIds, delta);
195
+ return ok({
196
+ session: updatedSession,
197
+ reExecuteContext: reExecuteContext ?? undefined,
198
+ impactedTaskIds,
199
+ });
200
+ }
201
+ catch (e) {
202
+ if (e instanceof ExecuteSessionNotFoundError)
203
+ return err(e);
204
+ return err(new ExecuteError(`Failed to submit spec patch: ${e instanceof Error ? e.message : String(e)}`));
205
+ }
206
+ }
207
+ /**
208
+ * evolve_re_execute: Re-execution 중 태스크 결과 제출
209
+ */
210
+ submitReExecuteTaskResult(sessionId, taskResult) {
211
+ try {
212
+ const session = this.sessionManager.get(sessionId);
213
+ if (!session.executionPlan) {
214
+ return err(new ExecuteError('No execution plan found'));
215
+ }
216
+ // Validate task exists
217
+ const task = session.executionPlan.atomicTasks.find((t) => t.taskId === taskResult.taskId);
218
+ if (!task) {
219
+ return err(new TaskExecutionError(`Task "${taskResult.taskId}" not found in execution plan`));
220
+ }
221
+ this.sessionManager.addEvolveTaskResult(sessionId, taskResult);
222
+ const updatedSession = this.sessionManager.get(sessionId);
223
+ const nextContext = this.buildNextReExecuteTaskContext(updatedSession);
224
+ return ok({
225
+ session: updatedSession,
226
+ reExecuteContext: nextContext ?? undefined,
227
+ allTasksCompleted: nextContext === null,
228
+ });
229
+ }
230
+ catch (e) {
231
+ if (e instanceof ExecuteSessionNotFoundError)
232
+ return err(e);
233
+ return err(new TaskExecutionError(`Failed to submit re-execute task result: ${e instanceof Error ? e.message : String(e)}`));
234
+ }
235
+ }
236
+ /**
237
+ * evolve_lateral: 다음 lateral persona를 suggest하거나 human_escalation 반환.
238
+ * evolve에서 자동 분기되지만, caller가 명시적으로 다음 persona를 요청할 때도 사용.
239
+ */
240
+ startLateralEvolve(sessionId) {
241
+ try {
242
+ const session = this.sessionManager.get(sessionId);
243
+ if (!session.evaluationResult) {
244
+ return err(new ExecuteError('No evaluation result found. Run evaluate first.'));
245
+ }
246
+ // Check termination again (might have succeeded after lateral re-execute)
247
+ const termination = checkTermination({
248
+ evolutionHistory: session.evolutionHistory,
249
+ currentScore: session.evaluationResult.overallScore,
250
+ currentGoalAlignment: session.evaluationResult.goalAlignment,
251
+ structuralFixCount: this.countStructuralFixes(session),
252
+ contextualCount: session.evolutionHistory.length,
253
+ });
254
+ if (termination?.reason === 'success') {
255
+ this.sessionManager.terminate(sessionId, 'success');
256
+ return ok({
257
+ session: this.sessionManager.get(sessionId),
258
+ terminated: true,
259
+ terminationReason: 'success',
260
+ });
261
+ }
262
+ // Classify stagnation for next persona suggestion
263
+ const pattern = termination
264
+ ? classifyStagnation({
265
+ evolutionHistory: session.evolutionHistory,
266
+ currentScore: session.evaluationResult.overallScore,
267
+ termination,
268
+ })
269
+ : 'spinning'; // fallback if no termination yet
270
+ const persona = suggestPersona(pattern, session.lateralTriedPersonas);
271
+ if (persona) {
272
+ this.sessionManager.startLateral(sessionId, persona, pattern);
273
+ const lateralCtx = buildLateralContext(persona, pattern, session.spec, session.evaluationResult, session.evolutionHistory, session.lateralAttempts + 1);
274
+ return ok({
275
+ session: this.sessionManager.get(sessionId),
276
+ lateralContext: lateralCtx,
277
+ });
278
+ }
279
+ // All personas exhausted → human escalation
280
+ this.sessionManager.terminate(sessionId, 'human_escalation');
281
+ this.eventStore.append('execute', sessionId, EventType.EVOLVE_HUMAN_ESCALATION, {
282
+ triedPersonas: session.lateralTriedPersonas,
283
+ bestScore: Math.max(...session.evolutionHistory.map((g) => g.evaluationScore), session.evaluationResult.overallScore),
284
+ });
285
+ const escalation = buildEscalationContext(session.lateralTriedPersonas, session.evaluationResult, session.evolutionHistory);
286
+ return ok({
287
+ session: this.sessionManager.get(sessionId),
288
+ humanEscalation: escalation,
289
+ terminated: true,
290
+ terminationReason: 'human_escalation',
291
+ });
292
+ }
293
+ catch (e) {
294
+ if (e instanceof ExecuteSessionNotFoundError)
295
+ return err(e);
296
+ return err(new ExecuteError(`Failed lateral evolve: ${e instanceof Error ? e.message : String(e)}`));
297
+ }
298
+ }
299
+ /**
300
+ * evolve_lateral_result: Lateral thinking 결과(specPatch) 제출.
301
+ * completeLateral() 후 기존 submitSpecPatch() 위임.
302
+ */
303
+ submitLateralResult(sessionId, lateralResult) {
304
+ try {
305
+ // Validate session exists
306
+ this.sessionManager.get(sessionId);
307
+ // Complete lateral phase
308
+ this.sessionManager.completeLateral(sessionId, lateralResult.persona, lateralResult.description);
309
+ // Delegate to existing submitSpecPatch
310
+ return this.submitSpecPatch(sessionId, lateralResult.specPatch);
311
+ }
312
+ catch (e) {
313
+ if (e instanceof ExecuteSessionNotFoundError)
314
+ return err(e);
315
+ return err(new ExecuteError(`Failed to submit lateral result: ${e instanceof Error ? e.message : String(e)}`));
316
+ }
317
+ }
318
+ countStructuralFixes(session) {
319
+ // Count from event history: how many EVOLVE_STRUCTURAL_FIX_STARTED events
320
+ const events = this.eventStore.replay('execute', session.sessionId);
321
+ return events.filter((e) => e.eventType === EventType.EVOLVE_STRUCTURAL_FIX_STARTED).length;
322
+ }
323
+ buildReExecuteContext(session, impactedTaskIds, delta) {
324
+ if (!session.executionPlan)
325
+ return null;
326
+ const plan = session.executionPlan;
327
+ const completedIds = new Set(session.taskResults
328
+ .filter((r) => r.status === 'completed' || r.status === 'skipped')
329
+ .map((r) => r.taskId));
330
+ // Find first impacted task that's not yet completed
331
+ const topoOrder = plan.dagValidation.topologicalOrder;
332
+ for (const taskId of topoOrder) {
333
+ if (!impactedTaskIds.includes(taskId))
334
+ continue;
335
+ if (completedIds.has(taskId))
336
+ continue;
337
+ const task = plan.atomicTasks.find((t) => t.taskId === taskId);
338
+ if (!task)
339
+ continue;
340
+ const depsResolved = task.dependsOn.every((dep) => completedIds.has(dep));
341
+ if (!depsResolved)
342
+ continue;
343
+ const patchSummary = `Fields changed: ${delta.fieldsChanged.join(', ')}`;
344
+ return {
345
+ systemPrompt: mergeSystemPrompt(EXECUTE_EXECUTION_SYSTEM_PROMPT, this.agentRegistry, 'execute'),
346
+ taskPrompt: buildReExecutionPrompt(task, session.spec, session.taskResults, patchSummary),
347
+ phase: 'evolving',
348
+ stage: 're_execute',
349
+ currentTask: task,
350
+ impactedTaskIds,
351
+ patchSummary,
352
+ };
353
+ }
354
+ return null;
355
+ }
356
+ buildNextReExecuteTaskContext(session) {
357
+ if (!session.executionPlan)
358
+ return null;
359
+ // Find impacted tasks that are not yet completed
360
+ const plan = session.executionPlan;
361
+ const completedIds = new Set(session.taskResults
362
+ .filter((r) => r.status === 'completed' || r.status === 'skipped')
363
+ .map((r) => r.taskId));
364
+ const topoOrder = plan.dagValidation.topologicalOrder;
365
+ for (const taskId of topoOrder) {
366
+ if (completedIds.has(taskId))
367
+ continue;
368
+ const task = plan.atomicTasks.find((t) => t.taskId === taskId);
369
+ if (!task)
370
+ continue;
371
+ const depsResolved = task.dependsOn.every((dep) => completedIds.has(dep));
372
+ if (!depsResolved)
373
+ continue;
374
+ const delta = session.evolutionHistory.length > 0
375
+ ? session.evolutionHistory[session.evolutionHistory.length - 1].delta
376
+ : { fieldsChanged: [] };
377
+ const patchSummary = `Fields changed: ${delta.fieldsChanged.join(', ')}`;
378
+ return {
379
+ systemPrompt: mergeSystemPrompt(EXECUTE_EXECUTION_SYSTEM_PROMPT, this.agentRegistry, 'execute'),
380
+ taskPrompt: buildReExecutionPrompt(task, session.spec, session.taskResults, patchSummary),
381
+ phase: 'evolving',
382
+ stage: 're_execute',
383
+ currentTask: task,
384
+ impactedTaskIds: [],
385
+ patchSummary,
386
+ };
387
+ }
388
+ return null;
389
+ }
390
+ }
391
+ //# sourceMappingURL=evolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evolution.js","sourceRoot":"","sources":["../../../../src/execute/orchestrators/evolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { TaskExecutionResult, RoleMatch, RolePerspective, RoleConsensus } from '../../core/types.js';
2
+ import { ExecuteError } from '../../core/errors.js';
3
+ import { type Result } from '../../core/result.js';
4
+ import { EventStore } from '../../events/store.js';
5
+ import { ExecuteSessionManager } from '../session.js';
6
+ import type { AgentRegistry } from '../../agent/registry.js';
7
+ import type { RoleAgentRegistry } from '../../agent/role-agent-registry.js';
8
+ import type { TaskExecutionContext, PassthroughRoleMatchResult, PassthroughRoleConsensusResult, PassthroughExecutionStartResult, PassthroughTaskSubmitResult } from './types.js';
9
+ export declare class ExecutionOrchestrator {
10
+ private sessionManager;
11
+ private eventStore;
12
+ private agentRegistry?;
13
+ private roleAgentRegistry?;
14
+ constructor(sessionManager: ExecuteSessionManager, eventStore: EventStore, agentRegistry?: AgentRegistry | undefined, roleAgentRegistry?: RoleAgentRegistry | undefined);
15
+ startExecution(sessionId: string): Result<PassthroughExecutionStartResult, ExecuteError>;
16
+ submitTaskResult(sessionId: string, taskResult: TaskExecutionResult, driftThreshold?: number): Result<PassthroughTaskSubmitResult, ExecuteError>;
17
+ /**
18
+ * role_match: 2-call passthrough pattern.
19
+ * - Call 1 (no matchResult): Returns matchContext for current task
20
+ * - Call 2 (with matchResult): Stores matches, returns perspectivePrompts
21
+ */
22
+ roleMatch(sessionId: string, matchResult?: RoleMatch[]): Result<PassthroughRoleMatchResult, ExecuteError>;
23
+ /**
24
+ * role_consensus: 2-call passthrough pattern.
25
+ * - Call 1 (perspectives, no consensus): Returns synthesisContext
26
+ * - Call 2 (consensus): Stores consensus, returns roleGuidance
27
+ */
28
+ roleConsensus(sessionId: string, perspectives?: RolePerspective[], consensus?: RoleConsensus): Result<PassthroughRoleConsensusResult, ExecuteError>;
29
+ /**
30
+ * suggestedFiles를 searchByHybrid(키워드+의미론)로 업그레이드.
31
+ * buildNextTaskContext()는 동기 유지, 호출측에서 필요 시 이 메서드로 보강한다.
32
+ */
33
+ hydrateSuggestedFiles(context: TaskExecutionContext, repoRoot: string): Promise<TaskExecutionContext>;
34
+ private getCurrentTask;
35
+ private buildNextTaskContext;
36
+ private findSimilarTasks;
37
+ }
38
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../src/execute/orchestrators/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,mBAAmB,EAEnB,SAAS,EACT,eAAe,EACf,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAQtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,KAAK,EACV,oBAAoB,EAEpB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AA8BpB,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,iBAAiB,CAAC;gBAHlB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAG/C,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,+BAA+B,EAAE,YAAY,CAAC;IAmCxF,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,mBAAmB,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC,2BAA2B,EAAE,YAAY,CAAC;IAoFpD;;;;OAIG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,SAAS,EAAE,GACxB,MAAM,CAAC,0BAA0B,EAAE,YAAY,CAAC;IA2EnD;;;;OAIG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,eAAe,EAAE,EAChC,SAAS,CAAC,EAAE,aAAa,GACxB,MAAM,CAAC,8BAA8B,EAAE,YAAY,CAAC;IA6DvD;;;OAGG;IACG,qBAAqB,CACzB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAgBhC,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,oBAAoB;IAuE5B,OAAO,CAAC,gBAAgB;CAezB"}