pm-orchestrator-runner 1.0.8 → 1.0.9

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 CHANGED
@@ -9,6 +9,7 @@ A CLI tool for orchestrated execution of Claude Code with evidence-based complet
9
9
  - Two-stage timeout system (soft warning + hard terminate)
10
10
  - Session management and persistence
11
11
  - Non-interactive mode for scripting and automation
12
+ - Web UI for task queue management
12
13
 
13
14
  ## Installation
14
15
 
@@ -25,21 +26,34 @@ npx pm-orchestrator-runner --help
25
26
  ### Interactive Mode
26
27
 
27
28
  ```bash
28
- # Start REPL in current directory
29
- pm-orchestrator repl
29
+ # Start REPL in current directory (default command)
30
+ pm
30
31
 
31
32
  # Start REPL with specific project
32
- pm-orchestrator repl --project /path/to/project
33
+ pm --project /path/to/project
34
+
35
+ # Explicit repl command
36
+ pm repl --namespace stable
37
+ ```
38
+
39
+ ### Web UI Mode
40
+
41
+ ```bash
42
+ # Start Web UI server
43
+ pm web --port 3000
44
+
45
+ # Verify Web UI
46
+ curl http://localhost:3000/api/health
33
47
  ```
34
48
 
35
49
  ### Non-Interactive Mode (Scripting)
36
50
 
37
51
  ```bash
38
52
  # Pipe input
39
- echo "Create a file called hello.txt with content Hello World" | pm-orchestrator repl --non-interactive --exit-on-eof
53
+ echo "Create a file called hello.txt with content Hello World" | pm --non-interactive --exit-on-eof
40
54
 
41
55
  # Heredoc input
42
- pm-orchestrator repl --non-interactive --exit-on-eof << 'EOF'
56
+ pm --non-interactive --exit-on-eof << 'EOF'
43
57
  Create README.md with content "# My Project"
44
58
  EOF
45
59
  ```
@@ -49,18 +63,20 @@ EOF
49
63
  For persistent verification root (useful for CI/CD):
50
64
 
51
65
  ```bash
52
- pm-orchestrator repl --project-mode fixed --project-root /path/to/project
66
+ pm --project-mode fixed --project-root /path/to/project
53
67
  ```
54
68
 
55
69
  ## Commands
56
70
 
57
71
  | Command | Description |
58
72
  |---------|-------------|
59
- | `pm-orchestrator repl` | Start interactive REPL mode |
60
- | `pm-orchestrator start <path>` | Start a new session on a project |
61
- | `pm-orchestrator continue <id>` | Continue a paused session |
62
- | `pm-orchestrator status <id>` | Get session status |
63
- | `pm-orchestrator validate <path>` | Validate project structure |
73
+ | `pm` | Start interactive REPL mode (default) |
74
+ | `pm repl` | Start interactive REPL mode |
75
+ | `pm web` | Start Web UI server |
76
+ | `pm start <path>` | Start a new session on a project |
77
+ | `pm continue <id>` | Continue a paused session |
78
+ | `pm status <id>` | Get session status |
79
+ | `pm validate <path>` | Validate project structure |
64
80
 
65
81
  ## REPL Options
66
82
 
@@ -72,6 +88,15 @@ pm-orchestrator repl --project-mode fixed --project-root /path/to/project
72
88
  | `--exit-on-eof` | Exit when EOF is received |
73
89
  | `--project-mode <mode>` | `temp` (default) or `fixed` |
74
90
  | `--project-root <path>` | Verification root directory |
91
+ | `--namespace <name>` | Namespace for state separation |
92
+ | `--port <number>` | Web UI port |
93
+
94
+ ## Web Options
95
+
96
+ | Option | Description |
97
+ |--------|-------------|
98
+ | `--port <number>` | Web UI port (default: 3000) |
99
+ | `--namespace <name>` | Namespace for state separation |
75
100
 
76
101
  ## REPL Commands
77
102
 
@@ -86,6 +111,24 @@ Inside the REPL:
86
111
  | `/session` | Show session info |
87
112
  | `/quit` | Exit REPL |
88
113
 
114
+ ## Web UI Verification
115
+
116
+ ```bash
117
+ # 1. Start Web UI
118
+ pm web --port 3000
119
+
120
+ # 2. Health check
121
+ curl http://localhost:3000/api/health
122
+
123
+ # 3. Submit task
124
+ curl -X POST http://localhost:3000/api/tasks \
125
+ -H "Content-Type: application/json" \
126
+ -d '{"task_group_id":"test","prompt":"hello"}'
127
+
128
+ # 4. View tasks
129
+ curl http://localhost:3000/api/task-groups
130
+ ```
131
+
89
132
  ## Environment Variables
90
133
 
91
134
  | Variable | Description |
@@ -106,7 +149,7 @@ Inside the REPL:
106
149
  npm install -g pm-orchestrator-runner
107
150
 
108
151
  # Verify command is available
109
- pm-orchestrator repl --help
152
+ pm --help
110
153
  ```
111
154
 
112
155
  ## License
@@ -3,11 +3,13 @@
3
3
  * PM Orchestrator Runner - CLI Entry Point
4
4
  *
5
5
  * Usage:
6
- * pm-orchestrator repl [--project <path>] - Start interactive REPL
7
- * pm-orchestrator start <path> [options] - Start a new session (per spec 05_CLI.md L20)
8
- * pm-orchestrator continue <session-id> - Continue a session
9
- * pm-orchestrator status <session-id> - Get session status
10
- * pm-orchestrator validate <path> - Validate project structure (per spec 05_CLI.md L23)
6
+ * pm [options] - Start interactive REPL (default)
7
+ * pm repl [--project <path>] - Start interactive REPL
8
+ * pm web [--port <number>] - Start Web UI server
9
+ * pm start <path> [options] - Start a new session (per spec 05_CLI.md L20)
10
+ * pm continue <session-id> - Continue a session
11
+ * pm status <session-id> - Get session status
12
+ * pm validate <path> - Validate project structure (per spec 05_CLI.md L23)
11
13
  */
12
14
  export {};
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
package/dist/cli/index.js CHANGED
@@ -4,11 +4,13 @@
4
4
  * PM Orchestrator Runner - CLI Entry Point
5
5
  *
6
6
  * Usage:
7
- * pm-orchestrator repl [--project <path>] - Start interactive REPL
8
- * pm-orchestrator start <path> [options] - Start a new session (per spec 05_CLI.md L20)
9
- * pm-orchestrator continue <session-id> - Continue a session
10
- * pm-orchestrator status <session-id> - Get session status
11
- * pm-orchestrator validate <path> - Validate project structure (per spec 05_CLI.md L23)
7
+ * pm [options] - Start interactive REPL (default)
8
+ * pm repl [--project <path>] - Start interactive REPL
9
+ * pm web [--port <number>] - Start Web UI server
10
+ * pm start <path> [options] - Start a new session (per spec 05_CLI.md L20)
11
+ * pm continue <session-id> - Continue a session
12
+ * pm status <session-id> - Get session status
13
+ * pm validate <path> - Validate project structure (per spec 05_CLI.md L23)
12
14
  */
13
15
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
16
  if (k2 === undefined) k2 = k;
@@ -47,6 +49,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
47
49
  const path = __importStar(require("path"));
48
50
  const cli_interface_1 = require("./cli-interface");
49
51
  const repl_interface_1 = require("../repl/repl-interface");
52
+ const server_1 = require("../web/server");
53
+ const queue_1 = require("../queue");
50
54
  const namespace_1 = require("../config/namespace");
51
55
  /**
52
56
  * Help text
@@ -55,14 +59,16 @@ const HELP_TEXT = `
55
59
  PM Orchestrator Runner - CLI
56
60
 
57
61
  Usage:
58
- pm-orchestrator <command> [options]
62
+ pm [options] Start interactive REPL (default)
63
+ pm <command> [options] Run a specific command
59
64
 
60
65
  Commands:
61
- repl Start interactive REPL mode
62
- start <path> Start a new session on a project (per spec 05_CLI.md L20)
66
+ repl Start interactive REPL mode (default if no command)
67
+ web Start Web UI server for task queue management
68
+ start <path> Start a new session on a project
63
69
  continue <session-id> Continue a paused session
64
70
  status <session-id> Get session status
65
- validate <path> Validate project structure (per spec 05_CLI.md L23)
71
+ validate <path> Validate project structure
66
72
 
67
73
  REPL Options:
68
74
  --project <path> Project path (default: current directory)
@@ -73,32 +79,32 @@ REPL Options:
73
79
  --project-root <path> Verification root directory (required if --project-mode=fixed)
74
80
  --print-project-path Print PROJECT_PATH=<path> on startup
75
81
  --namespace <name> Namespace for state separation (default: 'default')
76
- Per spec/21_STABLE_DEV.md: separates QueueStore, state dir, Web UI port
77
82
  Examples: 'stable', 'dev', 'test-1'
78
83
  --port <number> Web UI port (default: 3000 for 'default'/'stable', 3001 for 'dev')
79
84
 
80
- Run Options:
81
- --config <path> Path to config file
82
- --dry-run Validate without executing
83
- --max-files <n> Maximum files limit
84
- --max-tests <n> Maximum tests limit
85
- --max-seconds <n> Maximum seconds limit
86
- --verbose Verbose output
87
- --quiet Minimal output
88
- --stream Stream progress events
89
- --format <type> Output format (json, compact)
85
+ Web Options:
86
+ --port <number> Web UI port (default: 3000)
87
+ --namespace <name> Namespace for state separation
90
88
 
91
89
  General Options:
92
90
  --help, -h Show this help message
93
91
  --version, -v Show version
94
92
 
95
93
  Examples:
96
- pm-orchestrator repl
97
- pm-orchestrator repl --project ./my-project
98
- pm-orchestrator repl --non-interactive --exit-on-eof
99
- pm-orchestrator repl --project-mode fixed --project-root /path/to/project
100
- pm-orchestrator start ./my-project --dry-run
101
- pm-orchestrator continue session-2025-01-15-abc123
94
+ pm # Start REPL in current directory
95
+ pm --project ./my-project # Start REPL with specific project
96
+ pm repl --namespace stable # Start REPL with stable namespace
97
+ pm web --port 3000 # Start Web UI on port 3000
98
+ pm start ./my-project --dry-run # Start session with dry-run
99
+ pm continue session-2025-01-15-abc123 # Continue a session
100
+
101
+ Web UI Verification:
102
+ 1. Start Web UI: pm web --port 3000
103
+ 2. Health check: curl http://localhost:3000/api/health
104
+ 3. Submit task: curl -X POST http://localhost:3000/api/tasks \\
105
+ -H "Content-Type: application/json" \\
106
+ -d '{"task_group_id":"test","prompt":"hello"}'
107
+ 4. View tasks: curl http://localhost:3000/api/task-groups
102
108
  `;
103
109
  /**
104
110
  * Version
@@ -170,13 +176,126 @@ function parseReplArgs(args) {
170
176
  }
171
177
  return result;
172
178
  }
179
+ /**
180
+ * Start REPL with given arguments
181
+ */
182
+ async function startRepl(replArgs) {
183
+ // CRITICAL: evidenceDir must use projectPath, not process.cwd()
184
+ // This ensures files are created in the project directory, not where the CLI was invoked
185
+ const projectPath = replArgs.projectPath || process.cwd();
186
+ // Build namespace configuration (per spec/21_STABLE_DEV.md)
187
+ // Fail-closed: buildNamespaceConfig throws on invalid namespace
188
+ const namespaceConfig = (0, namespace_1.buildNamespaceConfig)({
189
+ namespace: replArgs.namespace,
190
+ projectRoot: projectPath,
191
+ port: replArgs.port,
192
+ });
193
+ const repl = new repl_interface_1.REPLInterface({
194
+ projectPath,
195
+ evidenceDir: replArgs.evidenceDir || path.join(namespaceConfig.stateDir, 'evidence'),
196
+ authMode: 'claude-code',
197
+ forceNonInteractive: replArgs.nonInteractive,
198
+ projectMode: replArgs.projectMode,
199
+ projectRoot: replArgs.projectRoot,
200
+ printProjectPath: replArgs.printProjectPath,
201
+ namespace: namespaceConfig.namespace,
202
+ namespaceConfig,
203
+ });
204
+ // Start REPL and wait for it to complete
205
+ // CRITICAL: Don't use setTimeout to force exit - let REPL handle EOF properly
206
+ // The REPL's start() returns a Promise that resolves after queue drain
207
+ await repl.start();
208
+ // After REPL completes, exit with appropriate code
209
+ if (replArgs.exitOnEof || replArgs.nonInteractive) {
210
+ process.exit(repl.getExitCode());
211
+ }
212
+ }
213
+ /**
214
+ * Parse Web-specific arguments
215
+ */
216
+ function parseWebArgs(args) {
217
+ const result = {};
218
+ for (let i = 0; i < args.length; i++) {
219
+ const arg = args[i];
220
+ // Port
221
+ if (arg === '--port' && args[i + 1]) {
222
+ const portStr = args[++i];
223
+ const port = parseInt(portStr, 10);
224
+ if (isNaN(port) || port < 1 || port > 65535) {
225
+ console.error(`Invalid port: ${portStr}. Must be a number between 1 and 65535.`);
226
+ process.exit(1);
227
+ }
228
+ result.port = port;
229
+ }
230
+ // Namespace
231
+ else if (arg === '--namespace' && args[i + 1]) {
232
+ const ns = args[++i];
233
+ const error = (0, namespace_1.validateNamespace)(ns);
234
+ if (error) {
235
+ console.error(`Invalid namespace: ${error}`);
236
+ process.exit(1);
237
+ }
238
+ result.namespace = ns;
239
+ }
240
+ }
241
+ return result;
242
+ }
243
+ /**
244
+ * Generate a simple session ID for web server
245
+ */
246
+ function generateWebSessionId() {
247
+ const now = new Date();
248
+ const dateStr = now.toISOString().slice(0, 10);
249
+ const random = Math.random().toString(36).substring(2, 8);
250
+ return `web-${dateStr}-${random}`;
251
+ }
252
+ /**
253
+ * Start Web UI server
254
+ */
255
+ async function startWebServer(webArgs) {
256
+ const projectPath = process.cwd();
257
+ // Build namespace configuration
258
+ const namespaceConfig = (0, namespace_1.buildNamespaceConfig)({
259
+ namespace: webArgs.namespace,
260
+ projectRoot: projectPath,
261
+ port: webArgs.port,
262
+ });
263
+ const port = webArgs.port || namespaceConfig.port;
264
+ const queueStore = (0, queue_1.createNamespacedQueueStore)({
265
+ namespace: namespaceConfig.namespace,
266
+ tableName: namespaceConfig.tableName,
267
+ });
268
+ const server = new server_1.WebServer({
269
+ port,
270
+ queueStore,
271
+ sessionId: generateWebSessionId(),
272
+ });
273
+ console.log(`Starting Web UI server on port ${port}...`);
274
+ console.log(`Namespace: ${namespaceConfig.namespace}`);
275
+ console.log(`State directory: ${namespaceConfig.stateDir}`);
276
+ console.log('');
277
+ console.log('Verification steps:');
278
+ console.log(` 1. Health check: curl http://localhost:${port}/api/health`);
279
+ console.log(` 2. Submit task: curl -X POST http://localhost:${port}/api/tasks \\`);
280
+ console.log(' -H "Content-Type: application/json" \\');
281
+ console.log(' -d \'{"task_group_id":"test","prompt":"hello"}\'');
282
+ console.log(` 3. View tasks: curl http://localhost:${port}/api/task-groups`);
283
+ console.log('');
284
+ await server.start();
285
+ }
286
+ /**
287
+ * Check if argument looks like an option (starts with -)
288
+ */
289
+ function isOption(arg) {
290
+ return arg.startsWith('-');
291
+ }
173
292
  /**
174
293
  * Main entry point
175
294
  */
176
295
  async function main() {
177
296
  const args = process.argv.slice(2);
178
- // Check for help
179
- if (args.includes('--help') || args.includes('-h') || args.length === 0) {
297
+ // Check for help (explicit request only)
298
+ if (args.includes('--help') || args.includes('-h')) {
180
299
  console.log(HELP_TEXT);
181
300
  process.exit(0);
182
301
  }
@@ -185,41 +304,29 @@ async function main() {
185
304
  console.log(VERSION);
186
305
  process.exit(0);
187
306
  }
188
- const command = args[0];
189
- const restArgs = args.slice(1);
307
+ // Determine command and arguments
308
+ // If no args or first arg is an option, default to REPL
309
+ let command;
310
+ let restArgs;
311
+ if (args.length === 0 || isOption(args[0])) {
312
+ // No command specified or first arg is an option -> default to REPL
313
+ command = 'repl';
314
+ restArgs = args;
315
+ }
316
+ else {
317
+ command = args[0];
318
+ restArgs = args.slice(1);
319
+ }
190
320
  try {
191
321
  switch (command) {
192
322
  case 'repl': {
193
323
  const replArgs = parseReplArgs(restArgs);
194
- // CRITICAL: evidenceDir must use projectPath, not process.cwd()
195
- // This ensures files are created in the project directory, not where the CLI was invoked
196
- const projectPath = replArgs.projectPath || process.cwd();
197
- // Build namespace configuration (per spec/21_STABLE_DEV.md)
198
- // Fail-closed: buildNamespaceConfig throws on invalid namespace
199
- const namespaceConfig = (0, namespace_1.buildNamespaceConfig)({
200
- namespace: replArgs.namespace,
201
- projectRoot: projectPath,
202
- port: replArgs.port,
203
- });
204
- const repl = new repl_interface_1.REPLInterface({
205
- projectPath,
206
- evidenceDir: replArgs.evidenceDir || path.join(namespaceConfig.stateDir, 'evidence'),
207
- authMode: 'claude-code',
208
- forceNonInteractive: replArgs.nonInteractive,
209
- projectMode: replArgs.projectMode,
210
- projectRoot: replArgs.projectRoot,
211
- printProjectPath: replArgs.printProjectPath,
212
- namespace: namespaceConfig.namespace,
213
- namespaceConfig,
214
- });
215
- // Start REPL and wait for it to complete
216
- // CRITICAL: Don't use setTimeout to force exit - let REPL handle EOF properly
217
- // The REPL's start() returns a Promise that resolves after queue drain
218
- await repl.start();
219
- // After REPL completes, exit with appropriate code
220
- if (replArgs.exitOnEof || replArgs.nonInteractive) {
221
- process.exit(repl.getExitCode());
222
- }
324
+ await startRepl(replArgs);
325
+ break;
326
+ }
327
+ case 'web': {
328
+ const webArgs = parseWebArgs(restArgs);
329
+ await startWebServer(webArgs);
223
330
  break;
224
331
  }
225
332
  case 'start': // Per spec 05_CLI.md L20
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * StepwiseMockExecutor
3
+ *
4
+ * A mock executor that returns different results based on call count.
5
+ * Used for testing the self-heal mediation loop.
6
+ *
7
+ * Per spec:
8
+ * - Step 1: Returns buggy implementation -> INCOMPLETE
9
+ * - Step 2: Returns fixed implementation -> COMPLETE
10
+ */
11
+ import type { IExecutor, ExecutorTask, ExecutorResult, AuthCheckResult } from './claude-code-executor';
12
+ /**
13
+ * Step configuration for StepwiseMockExecutor
14
+ */
15
+ export interface StepConfig {
16
+ /** Status to return for this step */
17
+ status: ExecutorResult['status'];
18
+ /** Output message */
19
+ output: string;
20
+ /** Files to create/modify (relative paths) */
21
+ filesToCreate?: Array<{
22
+ path: string;
23
+ content: string;
24
+ }>;
25
+ /** Whether npm test should pass after this step */
26
+ testShouldPass?: boolean;
27
+ /** Custom handler for complex scenarios */
28
+ customHandler?: (task: ExecutorTask, projectPath: string) => Promise<Partial<ExecutorResult>>;
29
+ }
30
+ /**
31
+ * Configuration for StepwiseMockExecutor
32
+ */
33
+ export interface StepwiseMockConfig {
34
+ /** Path to the project being tested */
35
+ projectPath: string;
36
+ /** Steps to execute in order */
37
+ steps: StepConfig[];
38
+ /** Default status when steps are exhausted */
39
+ defaultStatus?: ExecutorResult['status'];
40
+ }
41
+ /**
42
+ * StepwiseMockExecutor
43
+ *
44
+ * Varies results based on call count to simulate:
45
+ * 1. Initial buggy implementation (INCOMPLETE)
46
+ * 2. Correction/fix (COMPLETE)
47
+ */
48
+ export declare class StepwiseMockExecutor implements IExecutor {
49
+ private callCount;
50
+ private config;
51
+ private executionLog;
52
+ constructor(config: StepwiseMockConfig);
53
+ /**
54
+ * Get current call count
55
+ */
56
+ getCallCount(): number;
57
+ /**
58
+ * Get execution log for verification
59
+ */
60
+ getExecutionLog(): typeof this.executionLog;
61
+ /**
62
+ * Reset executor state
63
+ */
64
+ reset(): void;
65
+ isClaudeCodeAvailable(): Promise<boolean>;
66
+ checkAuthStatus(): Promise<AuthCheckResult>;
67
+ execute(task: ExecutorTask): Promise<ExecutorResult>;
68
+ }
69
+ /**
70
+ * Create a StepwiseMockExecutor configured for the tiny-cli self-heal test
71
+ *
72
+ * Step 1: Creates buggy implementation (tests fail) -> INCOMPLETE
73
+ * Step 2: Creates fixed implementation (tests pass) -> COMPLETE
74
+ */
75
+ export declare function createTinyCliMockExecutor(projectPath: string): StepwiseMockExecutor;
76
+ //# sourceMappingURL=stepwise-mock-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepwise-mock-executor.d.ts","sourceRoot":"","sources":["../../src/executor/stepwise-mock-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EAEd,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;CAC/F;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAOZ;gBAEI,MAAM,EAAE,kBAAkB;IAItC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,OAAO,IAAI,CAAC,YAAY;IAI3C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKP,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;IAI3C,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;CA2F3D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAgMnF"}