mstro-app 0.4.52 → 0.5.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.
- package/README.md +10 -5
- package/bin/mstro.js +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.js +7 -2
- package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +1 -1
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/headless/runner.d.ts.map +1 -1
- package/dist/server/cli/headless/runner.js +63 -67
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +9 -4
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/improvisation-history-store.d.ts +16 -0
- package/dist/server/cli/improvisation-history-store.d.ts.map +1 -0
- package/dist/server/cli/improvisation-history-store.js +52 -0
- package/dist/server/cli/improvisation-history-store.js.map +1 -0
- package/dist/server/cli/improvisation-movements.d.ts +31 -0
- package/dist/server/cli/improvisation-movements.d.ts.map +1 -0
- package/dist/server/cli/improvisation-movements.js +93 -0
- package/dist/server/cli/improvisation-movements.js.map +1 -0
- package/dist/server/cli/improvisation-output-queue.d.ts +13 -0
- package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -0
- package/dist/server/cli/improvisation-output-queue.js +40 -0
- package/dist/server/cli/improvisation-output-queue.js.map +1 -0
- package/dist/server/cli/improvisation-retry.d.ts +21 -51
- package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
- package/dist/server/cli/improvisation-retry.js +18 -433
- package/dist/server/cli/improvisation-retry.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +10 -8
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +53 -148
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/cli/retry/retry-best-result.d.ts +4 -0
- package/dist/server/cli/retry/retry-best-result.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-best-result.js +61 -0
- package/dist/server/cli/retry/retry-best-result.js.map +1 -0
- package/dist/server/cli/retry/retry-context-loss.d.ts +6 -0
- package/dist/server/cli/retry/retry-context-loss.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-context-loss.js +68 -0
- package/dist/server/cli/retry/retry-context-loss.js.map +1 -0
- package/dist/server/cli/retry/retry-premature-completion.d.ts +5 -0
- package/dist/server/cli/retry/retry-premature-completion.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-premature-completion.js +81 -0
- package/dist/server/cli/retry/retry-premature-completion.js.map +1 -0
- package/dist/server/cli/retry/retry-recovery-strategies.d.ts +13 -0
- package/dist/server/cli/retry/retry-recovery-strategies.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-recovery-strategies.js +166 -0
- package/dist/server/cli/retry/retry-recovery-strategies.js.map +1 -0
- package/dist/server/cli/retry/retry-resume-strategy.d.ts +12 -0
- package/dist/server/cli/retry/retry-resume-strategy.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-resume-strategy.js +22 -0
- package/dist/server/cli/retry/retry-resume-strategy.js.map +1 -0
- package/dist/server/cli/retry/retry-runner-factory.d.ts +11 -0
- package/dist/server/cli/retry/retry-runner-factory.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-runner-factory.js +60 -0
- package/dist/server/cli/retry/retry-runner-factory.js.map +1 -0
- package/dist/server/cli/retry/retry-tool-results.d.ts +9 -0
- package/dist/server/cli/retry/retry-tool-results.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-tool-results.js +24 -0
- package/dist/server/cli/retry/retry-tool-results.js.map +1 -0
- package/dist/server/cli/retry/retry-types.d.ts +30 -0
- package/dist/server/cli/retry/retry-types.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-types.js +4 -0
- package/dist/server/cli/retry/retry-types.js.map +1 -0
- package/dist/server/index.js +21 -109
- package/dist/server/index.js.map +1 -1
- package/dist/server/server-setup.d.ts +16 -1
- package/dist/server/server-setup.d.ts.map +1 -1
- package/dist/server/server-setup.js +107 -0
- package/dist/server/server-setup.js.map +1 -1
- package/dist/server/services/plan/board-config.d.ts +21 -0
- package/dist/server/services/plan/board-config.d.ts.map +1 -0
- package/dist/server/services/plan/board-config.js +112 -0
- package/dist/server/services/plan/board-config.js.map +1 -0
- package/dist/server/services/plan/composer.d.ts +1 -1
- package/dist/server/services/plan/composer.d.ts.map +1 -1
- package/dist/server/services/plan/composer.js +7 -5
- package/dist/server/services/plan/composer.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +48 -48
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +157 -455
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/issue-loader.d.ts +16 -0
- package/dist/server/services/plan/issue-loader.d.ts.map +1 -0
- package/dist/server/services/plan/issue-loader.js +46 -0
- package/dist/server/services/plan/issue-loader.js.map +1 -0
- package/dist/server/services/plan/issue-writer.d.ts +34 -0
- package/dist/server/services/plan/issue-writer.d.ts.map +1 -0
- package/dist/server/services/plan/issue-writer.js +110 -0
- package/dist/server/services/plan/issue-writer.js.map +1 -0
- package/dist/server/services/plan/output-manager.d.ts.map +1 -1
- package/dist/server/services/plan/output-manager.js +2 -1
- package/dist/server/services/plan/output-manager.js.map +1 -1
- package/dist/server/services/plan/progress-log.d.ts +11 -0
- package/dist/server/services/plan/progress-log.d.ts.map +1 -0
- package/dist/server/services/plan/progress-log.js +81 -0
- package/dist/server/services/plan/progress-log.js.map +1 -0
- package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/prompt-builder.js +48 -31
- package/dist/server/services/plan/prompt-builder.js.map +1 -1
- package/dist/server/services/plan/readiness-planner.d.ts +15 -0
- package/dist/server/services/plan/readiness-planner.d.ts.map +1 -0
- package/dist/server/services/plan/readiness-planner.js +41 -0
- package/dist/server/services/plan/readiness-planner.js.map +1 -0
- package/dist/server/services/plan/review-gate.d.ts +31 -0
- package/dist/server/services/plan/review-gate.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.js +52 -2
- package/dist/server/services/plan/review-gate.js.map +1 -1
- package/dist/server/services/platform.d.ts +56 -0
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +154 -52
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/websocket/file-download-handler.d.ts +17 -0
- package/dist/server/services/websocket/file-download-handler.d.ts.map +1 -0
- package/dist/server/services/websocket/file-download-handler.js +165 -0
- package/dist/server/services/websocket/file-download-handler.js.map +1 -0
- package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.js +28 -2
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler-context.d.ts +15 -0
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +7 -0
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +73 -11
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/msg-id-tracker.d.ts +21 -0
- package/dist/server/services/websocket/msg-id-tracker.d.ts.map +1 -0
- package/dist/server/services/websocket/msg-id-tracker.js +77 -0
- package/dist/server/services/websocket/msg-id-tracker.js.map +1 -0
- package/dist/server/services/websocket/quality-handlers.js +15 -3
- package/dist/server/services/websocket/quality-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +2 -2
- package/dist/server/services/websocket/session-handlers.d.ts +48 -2
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +204 -65
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/dist/server/services/websocket/session-initialization.d.ts +2 -2
- package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
- package/dist/server/services/websocket/session-initialization.js +75 -17
- package/dist/server/services/websocket/session-initialization.js.map +1 -1
- package/dist/server/services/websocket/session-registry.d.ts +29 -1
- package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
- package/dist/server/services/websocket/session-registry.js +53 -4
- package/dist/server/services/websocket/session-registry.js.map +1 -1
- package/dist/server/services/websocket/tab-broadcast.d.ts +24 -0
- package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-broadcast.js +13 -0
- package/dist/server/services/websocket/tab-broadcast.js.map +1 -0
- package/dist/server/services/websocket/tab-event-buffer.d.ts +103 -0
- package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-event-buffer.js +107 -0
- package/dist/server/services/websocket/tab-event-buffer.js.map +1 -0
- package/dist/server/services/websocket/tab-event-replay.d.ts +20 -0
- package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-event-replay.js +21 -0
- package/dist/server/services/websocket/tab-event-replay.js.map +1 -0
- package/dist/server/services/websocket/tab-handlers.d.ts +0 -1
- package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-handlers.js +2 -9
- package/dist/server/services/websocket/tab-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +15 -6
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +6 -4
- package/dist/server/services/websocket/types.js.map +1 -1
- package/package.json +1 -1
- package/server/README.md +1 -1
- package/server/cli/headless/claude-invoker-stall.ts +7 -2
- package/server/cli/headless/claude-invoker.ts +1 -1
- package/server/cli/headless/runner.ts +67 -72
- package/server/cli/headless/stall-assessor.ts +9 -4
- package/server/cli/headless/types.ts +1 -1
- package/server/cli/improvisation-history-store.ts +62 -0
- package/server/cli/improvisation-movements.ts +120 -0
- package/server/cli/improvisation-output-queue.ts +42 -0
- package/server/cli/improvisation-retry.ts +25 -600
- package/server/cli/improvisation-session-manager.ts +74 -160
- package/server/cli/retry/retry-best-result.ts +70 -0
- package/server/cli/retry/retry-context-loss.ts +87 -0
- package/server/cli/retry/retry-premature-completion.ts +113 -0
- package/server/cli/retry/retry-recovery-strategies.ts +247 -0
- package/server/cli/retry/retry-resume-strategy.ts +33 -0
- package/server/cli/retry/retry-runner-factory.ts +70 -0
- package/server/cli/retry/retry-tool-results.ts +31 -0
- package/server/cli/retry/retry-types.ts +32 -0
- package/server/index.ts +37 -123
- package/server/server-setup.ts +126 -1
- package/server/services/plan/agents/assess-stall.md +11 -4
- package/server/services/plan/board-config.ts +122 -0
- package/server/services/plan/composer.ts +7 -5
- package/server/services/plan/executor.ts +214 -467
- package/server/services/plan/issue-loader.ts +64 -0
- package/server/services/plan/issue-writer.ts +137 -0
- package/server/services/plan/output-manager.ts +2 -1
- package/server/services/plan/progress-log.ts +92 -0
- package/server/services/plan/prompt-builder.ts +73 -35
- package/server/services/plan/readiness-planner.ts +50 -0
- package/server/services/plan/review-gate.ts +102 -2
- package/server/services/platform.ts +163 -58
- package/server/services/websocket/file-download-handler.ts +191 -0
- package/server/services/websocket/git-worktree-handlers.ts +29 -2
- package/server/services/websocket/handler-context.ts +15 -0
- package/server/services/websocket/handler.ts +76 -12
- package/server/services/websocket/msg-id-tracker.ts +84 -0
- package/server/services/websocket/quality-handlers.ts +16 -3
- package/server/services/websocket/quality-review-agent.ts +2 -2
- package/server/services/websocket/session-handlers.ts +213 -68
- package/server/services/websocket/session-initialization.ts +83 -19
- package/server/services/websocket/session-registry.ts +61 -4
- package/server/services/websocket/tab-broadcast.ts +38 -0
- package/server/services/websocket/tab-event-buffer.ts +159 -0
- package/server/services/websocket/tab-event-replay.ts +42 -0
- package/server/services/websocket/tab-handlers.ts +2 -9
- package/server/services/websocket/types.ts +17 -4
|
@@ -6,13 +6,16 @@
|
|
|
6
6
|
* reconciles state, and repeats.
|
|
7
7
|
*
|
|
8
8
|
* Implementation is split across focused modules:
|
|
9
|
+
* - board-config.ts — board.md metadata reads, workspace.json active board resolution
|
|
9
10
|
* - config-installer.ts — tool permissions install/uninstall
|
|
10
11
|
* - issue-prompt-builder.ts — per-issue prompt construction
|
|
12
|
+
* - issue-writer.ts — issue front-matter updates, recovery, revert, cancellation notes
|
|
11
13
|
* - output-manager.ts — output path resolution, listing, publishing
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
14
|
+
* - progress-log.ts — progress.md writer + output dir creation
|
|
15
|
+
* - review-gate.ts — AI-powered quality gate (review, parse, persist, full pipeline)
|
|
14
16
|
*/
|
|
15
17
|
import { EventEmitter } from 'node:events';
|
|
18
|
+
import { DEFAULT_MAX_PARALLEL_AGENTS } from './board-config.js';
|
|
16
19
|
export type ExecutionStatus = 'idle' | 'starting' | 'executing' | 'paused' | 'stopping' | 'complete' | 'error';
|
|
17
20
|
export interface ExecutionMetrics {
|
|
18
21
|
issuesCompleted: number;
|
|
@@ -22,44 +25,54 @@ export interface ExecutionMetrics {
|
|
|
22
25
|
/** IDs of issues being executed in the current wave */
|
|
23
26
|
currentWaveIds: string[];
|
|
24
27
|
}
|
|
28
|
+
/** Scope options for a single run. Passed to start(), startBoard(), startEpic(). */
|
|
29
|
+
export interface StartOptions {
|
|
30
|
+
/** Epic file path — restricts execution to issues under that epic. */
|
|
31
|
+
epic?: string;
|
|
32
|
+
/** Board ID to execute (e.g. "BOARD-001"). */
|
|
33
|
+
board?: string;
|
|
34
|
+
/** Optional worktree directory for running agents. PM data is always read from workingDir. */
|
|
35
|
+
executionDir?: string;
|
|
36
|
+
}
|
|
25
37
|
export declare class PlanExecutor extends EventEmitter {
|
|
26
38
|
private status;
|
|
27
|
-
private workingDir;
|
|
39
|
+
private readonly workingDir;
|
|
40
|
+
private readonly extraEnv?;
|
|
28
41
|
private shouldStop;
|
|
29
42
|
private shouldPause;
|
|
30
43
|
/** AbortController for killing running HeadlessRunner processes on stop. */
|
|
31
44
|
private waveAbortController;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
private boardDir;
|
|
37
|
-
/** Board ID being executed (e.g. "BOARD-001") */
|
|
38
|
-
private boardId;
|
|
45
|
+
/** Resolved context for the current/last run — rebuilt each runStart(). */
|
|
46
|
+
private context;
|
|
47
|
+
/** Options from the last run; replayed on resume() to preserve scope. */
|
|
48
|
+
private lastStartOptions;
|
|
39
49
|
private configInstaller;
|
|
40
|
-
/** Flag to prevent start() from clearing scope set by startBoard/startEpic */
|
|
41
|
-
private _scopeSetByCall;
|
|
42
|
-
/** Extra environment variables forwarded to HeadlessRunner child processes (e.g. API keys) */
|
|
43
|
-
private extraEnv?;
|
|
44
|
-
/** Optional worktree directory for running AI agents. PM data is always read from workingDir. */
|
|
45
|
-
private executionDir;
|
|
46
50
|
private metrics;
|
|
47
51
|
constructor(workingDir: string, options?: {
|
|
48
52
|
extraEnv?: Record<string, string>;
|
|
49
53
|
});
|
|
50
|
-
private validateIssuePath;
|
|
51
54
|
getStatus(): ExecutionStatus;
|
|
52
55
|
getMetrics(): ExecutionMetrics;
|
|
53
56
|
startEpic(epicPath: string): Promise<void>;
|
|
54
57
|
/** Start execution, optionally scoped to a specific board. */
|
|
55
58
|
startBoard(boardId: string, executionDir?: string): Promise<void>;
|
|
56
|
-
start(): Promise<void>;
|
|
57
|
-
/** Run waves until done, paused, stopped, or stalled. */
|
|
58
|
-
private runWaveLoop;
|
|
59
|
-
private hasDeadIssues;
|
|
59
|
+
start(options?: StartOptions): Promise<void>;
|
|
60
60
|
pause(): void;
|
|
61
61
|
stop(): void;
|
|
62
62
|
resume(): Promise<void>;
|
|
63
|
+
private runStart;
|
|
64
|
+
/** Build an immutable execution context from start options. */
|
|
65
|
+
private buildContext;
|
|
66
|
+
/**
|
|
67
|
+
* Forward module-emitted warnings as executor 'output' events so they flow
|
|
68
|
+
* through to the WebSocket broadcast like inline warnings always have.
|
|
69
|
+
*/
|
|
70
|
+
private emitWarn;
|
|
71
|
+
private setIssueStatus;
|
|
72
|
+
/** Run waves until done, paused, stopped, or stalled. */
|
|
73
|
+
private runWaveLoop;
|
|
74
|
+
private effectiveBoardId;
|
|
75
|
+
private hasDeadIssues;
|
|
63
76
|
private executeWave;
|
|
64
77
|
/** Run a single issue via its own headless Claude Code instance with retry logic. */
|
|
65
78
|
private runSingleIssue;
|
|
@@ -74,39 +87,26 @@ export declare class PlanExecutor extends EventEmitter {
|
|
|
74
87
|
* and either confirmed `done` (passed) or reverted to `todo` (failed).
|
|
75
88
|
*/
|
|
76
89
|
private reconcileWaveResults;
|
|
77
|
-
/**
|
|
78
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Finalize a single issue whose status reached `in_review`/`done`. Runs the
|
|
92
|
+
* review pipeline unless the issue opted out via `reviewGate: 'none'`.
|
|
93
|
+
* Returns true when the issue is confirmed done (counted toward completions).
|
|
94
|
+
*/
|
|
95
|
+
private finalizeCompletedIssue;
|
|
79
96
|
/**
|
|
80
97
|
* Recover from a previous interrupted execution by reverting stale
|
|
81
98
|
* `in_progress` and `in_review` issues back to `todo`. Without this,
|
|
82
99
|
* these issues block the dependency graph and cause the executor to
|
|
83
100
|
* find zero ready issues, making "Implement" appear to do nothing.
|
|
84
101
|
*/
|
|
85
|
-
private
|
|
86
|
-
/** Read the board's maxParallelAgents setting, falling back to default. */
|
|
87
|
-
private getBoardMaxParallelAgents;
|
|
88
|
-
/** Read the board's custom review criteria, if set. */
|
|
89
|
-
private getBoardReviewCriteria;
|
|
102
|
+
private runStaleRecovery;
|
|
90
103
|
private pickReadyIssues;
|
|
91
|
-
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
private
|
|
97
|
-
/** Check if all issues in a board are done and mark board as completed. */
|
|
98
|
-
private tryCompleteBoardIfDone;
|
|
99
|
-
private resolveActiveBoardId;
|
|
100
|
-
private buildCompletionReason;
|
|
101
|
-
/** Detect issues stuck in non-terminal states with no path to completion. */
|
|
102
|
-
private detectDeadState;
|
|
103
|
-
private revertIncompleteIssues;
|
|
104
|
-
private appendCancellationNote;
|
|
105
|
-
private updateIssueFrontMatter;
|
|
106
|
-
private ensureOutputDirs;
|
|
107
|
-
private appendProgressEntry;
|
|
108
|
-
private writeProgressLines;
|
|
109
|
-
/** Resolve the active board's directory path for outputs, reviews, and progress. */
|
|
110
|
-
private resolveBoardDir;
|
|
104
|
+
/**
|
|
105
|
+
* Load issues for the active execution scope. Returns the resolved boardId
|
|
106
|
+
* alongside the issues so callers can branch on board-specific logic without
|
|
107
|
+
* re-resolving the scope.
|
|
108
|
+
*/
|
|
109
|
+
private loadScopedIssues;
|
|
111
110
|
}
|
|
111
|
+
export { DEFAULT_MAX_PARALLEL_AGENTS };
|
|
112
112
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/executor.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/executor.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,2BAA2B,EAK5B,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAW/G,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiBD,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAyB;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAuB;IACtC,yEAAyE;IACzE,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAMb;gBAEU,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAQ/E,SAAS,IAAI,eAAe;IAC5B,UAAU,IAAI,gBAAgB;IAE9B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,8DAA8D;IAC9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,KAAK,IAAI,IAAI;IAEb,IAAI,IAAI,IAAI;IAQZ,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAST,QAAQ;IAqCtB,+DAA+D;IAC/D,OAAO,CAAC,YAAY;IAgBpB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAEd;YAEY,cAAc;IAQ5B,yDAAyD;YAC3C,WAAW;IAuBzB,OAAO,CAAC,gBAAgB;YAIV,aAAa;YASb,WAAW;IAyDzB,qFAAqF;YACvE,cAAc;IAuC5B;;;OAGG;YACW,YAAY;IAoC1B;;;;OAIG;YACW,oBAAoB;IA6BlC;;;;OAIG;YACW,sBAAsB;IAkCpC;;;;;OAKG;YACW,gBAAgB;YAmBhB,eAAe;IAyB7B;;;;OAIG;YACW,gBAAgB;CAU/B;AAGD,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|