claude-mcp-workflow 0.1.0 → 0.1.6
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/.claude-plugin/plugin.json +2 -2
- package/.mcp.json +1 -2
- package/README.md +87 -14
- package/build/dashboard.d.ts.map +1 -1
- package/build/dashboard.js +9 -1
- package/build/dashboard.js.map +1 -1
- package/build/engine.d.ts +20 -1
- package/build/engine.d.ts.map +1 -1
- package/build/engine.js +367 -9
- package/build/engine.js.map +1 -1
- package/build/executor.d.ts +8 -0
- package/build/executor.d.ts.map +1 -0
- package/build/executor.js +177 -0
- package/build/executor.js.map +1 -0
- package/build/index.js +8 -1
- package/build/index.js.map +1 -1
- package/build/loader.d.ts.map +1 -1
- package/build/loader.js +37 -4
- package/build/loader.js.map +1 -1
- package/build/modifier.d.ts +1 -9
- package/build/modifier.d.ts.map +1 -1
- package/build/modifier.js +4 -0
- package/build/modifier.js.map +1 -1
- package/build/template.d.ts +2 -0
- package/build/template.d.ts.map +1 -0
- package/build/template.js +21 -0
- package/build/template.js.map +1 -0
- package/build/tools.d.ts.map +1 -1
- package/build/tools.js +44 -32
- package/build/tools.js.map +1 -1
- package/build/types.d.ts +527 -1
- package/build/types.d.ts.map +1 -1
- package/build/types.js +30 -11
- package/build/types.js.map +1 -1
- package/dashboard/index.html +139 -12
- package/hooks/workflow-start.sh +24 -0
- package/package.json +5 -3
- package/templates/bug-fix.yaml +64 -33
- package/templates/code-review.yaml +211 -41
- package/templates/coding.yaml +15 -7
- package/templates/debugging.yaml +12 -6
- package/templates/file-code.yaml +11 -5
- package/templates/file-review.yaml +48 -7
- package/templates/github-init.yaml +81 -0
- package/templates/investigate.yaml +14 -5
- package/templates/master.yaml +136 -38
- package/templates/new-feature.yaml +15 -6
- package/templates/planning.yaml +28 -4
- package/templates/reflection.yaml +39 -3
- package/templates/review-push.yaml +63 -0
- package/templates/skills/coding-skill-selector/SKILL.md +5 -3
- package/templates/skills/lang-haxe/SKILL.md +159 -1
- package/templates/skills/preferences/SKILL.md +39 -2
- package/templates/skills/task-delegation/SKILL.md +7 -15
- package/templates/skills/workflow-authoring/SKILL.md +136 -0
- package/templates/testing.yaml +2 -2
- package/templates/web-research.yaml +1 -1
- package/dashboard/dagre.min.js +0 -801
- package/templates/refactoring.yaml +0 -56
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workflow",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Structured workflow orchestration for AI agents via finite-state machines",
|
|
3
|
+
"version": "0.1.6",
|
|
4
|
+
"description": "Structured workflow orchestration for AI agents via finite-state machines. Dashboard: http://localhost:3100",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "AxGord",
|
|
7
7
|
"email": "axgord@gmail.com",
|
package/.mcp.json
CHANGED
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="package
|
|
6
|
+
<a href="https://www.npmjs.com/package/claude-mcp-workflow"><img src="https://img.shields.io/npm/v/claude-mcp-workflow" alt="npm"></a>
|
|
7
7
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
8
8
|
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.7-3178c6" alt="TypeScript"></a>
|
|
9
9
|
<a href="https://code.claude.com/docs/en/plugins"><img src="https://img.shields.io/badge/Claude_Code-Plugin-ff6600" alt="Claude Code Plugin"></a>
|
|
@@ -20,27 +20,33 @@ A Claude Code plugin that drives agents through YAML-defined state machines. The
|
|
|
20
20
|
- **Three-tier loading** — bundled templates < global (`~/.claude/workflows/`) < project (`.claude/workflows/`)
|
|
21
21
|
- **Snapshot isolation** — workflow definitions frozen at session start; hot-reloads don't affect running sessions
|
|
22
22
|
- **Runtime overlays** — modify workflows on the fly without touching YAML files
|
|
23
|
+
- **Action states** — `exec` runs shell commands, `fetch` makes HTTP requests, with auto-routing by exit code or HTTP status
|
|
23
24
|
- **Web dashboard** — real-time session monitoring with DAG graph visualization
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
25
|
+
- **18 bundled workflows** — complete agent lifecycle from routing to reflection
|
|
26
|
+
- **9 bundled skills** — reusable knowledge modules auto-provisioned on first run
|
|
26
27
|
- **SessionStart hook** — auto-provisions missing skills and injects workflow context
|
|
27
28
|
|
|
28
29
|
## Quick Start
|
|
29
30
|
|
|
30
|
-
### From
|
|
31
|
+
### From npm (recommended)
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
/plugin install workflow@claude-plugin-directory
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### From GitHub
|
|
33
|
+
Create a `marketplace.json` and add it as a source, or install directly:
|
|
37
34
|
|
|
38
35
|
```bash
|
|
39
|
-
# 1. Add
|
|
40
|
-
/plugin marketplace add
|
|
36
|
+
# 1. Add a marketplace with this plugin
|
|
37
|
+
/plugin marketplace add <marketplace-with-workflow>
|
|
41
38
|
|
|
42
|
-
# 2. Install
|
|
43
|
-
/plugin install workflow
|
|
39
|
+
# 2. Install
|
|
40
|
+
/plugin install workflow@<marketplace-name>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
See [Creating a marketplace](https://code.claude.com/docs/en/plugin-marketplaces) for how to set up an npm-based marketplace with this plugin:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"name": "workflow",
|
|
48
|
+
"source": { "source": "npm", "package": "claude-mcp-workflow" }
|
|
49
|
+
}
|
|
44
50
|
```
|
|
45
51
|
|
|
46
52
|
### Manual (for development)
|
|
@@ -103,6 +109,67 @@ states:
|
|
|
103
109
|
outcome: complete # or "fail"
|
|
104
110
|
```
|
|
105
111
|
|
|
112
|
+
## Action States
|
|
113
|
+
|
|
114
|
+
States can run shell commands or HTTP requests automatically — the agent doesn't participate, the engine handles execution and routes to the next state based on the result.
|
|
115
|
+
|
|
116
|
+
### `exec` — run a shell command
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
run_tests:
|
|
120
|
+
type: exec
|
|
121
|
+
command: "npm test"
|
|
122
|
+
cwd: "{{context.cwd}}"
|
|
123
|
+
timeout: 30000
|
|
124
|
+
on_success: analyze
|
|
125
|
+
on_error: fix
|
|
126
|
+
success_prompt: "Tests passed:\n{{stdout}}"
|
|
127
|
+
error_prompt: "Tests failed (exit {{exit_code}}):\n{{stderr}}"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### `fetch` — make an HTTP request
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
check_api:
|
|
134
|
+
type: fetch
|
|
135
|
+
url: "http://localhost:8888/ping"
|
|
136
|
+
method: GET
|
|
137
|
+
timeout: 5000
|
|
138
|
+
retry:
|
|
139
|
+
max: 60
|
|
140
|
+
interval: 500
|
|
141
|
+
on_success: ready
|
|
142
|
+
on_error: wait
|
|
143
|
+
success_prompt: "API ready: {{body}}"
|
|
144
|
+
error_prompt: "Not responding: {{error}}"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Routing
|
|
148
|
+
|
|
149
|
+
Action states route via `on_success`/`on_error`, or by specific codes using `cases`:
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
run_tests:
|
|
153
|
+
type: exec
|
|
154
|
+
command: "npm test"
|
|
155
|
+
cases:
|
|
156
|
+
"0": all_passed
|
|
157
|
+
"1": tests_failed
|
|
158
|
+
"2": no_tests_found
|
|
159
|
+
default: unknown_error
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Template variables
|
|
163
|
+
|
|
164
|
+
All prompts support `{{mustache}}` templates. Context values are available everywhere via `{{context.key}}`. After action execution, result variables are also available:
|
|
165
|
+
|
|
166
|
+
| Source | Variables |
|
|
167
|
+
|--------|-----------|
|
|
168
|
+
| `exec` | `{{stdout}}`, `{{stderr}}`, `{{exit_code}}`, `{{pid}}` (background) |
|
|
169
|
+
| `fetch` | `{{status}}`, `{{body}}`, `{{error}}` |
|
|
170
|
+
|
|
171
|
+
Action states can be chained — `exec` → `exec` → `fetch` → `prompt` — up to 20 steps without agent involvement.
|
|
172
|
+
|
|
106
173
|
## Three-Tier Loading
|
|
107
174
|
|
|
108
175
|
Workflows load from three sources in ascending priority — later tiers override earlier ones:
|
|
@@ -123,7 +190,6 @@ A project workflow named `coding` overrides the bundled `coding` template. Same-
|
|
|
123
190
|
| `coding` | Code writing pipeline: think → delegate → write → review → verify |
|
|
124
191
|
| `bug-fix` | Standard bug fix: classify → diagnose → fix → verify |
|
|
125
192
|
| `new-feature` | New feature implementation with planning and testing |
|
|
126
|
-
| `refactoring` | Bring every touched file to current standards |
|
|
127
193
|
| `debugging` | Diagnose first, fix never (until diagnosed) |
|
|
128
194
|
| `code-review` | Code review with per-file deep analysis |
|
|
129
195
|
| `explore` | Codebase exploration — understand structure, trace code, find patterns |
|
|
@@ -135,6 +201,8 @@ A project workflow named `coding` overrides the bundled `coding` template. Same-
|
|
|
135
201
|
| `subagent` | Lightweight routing for sub-agents (no chat/plan/reflect) |
|
|
136
202
|
| `file-code` | Per-file coding — spawned by coding/bug-fix for each file |
|
|
137
203
|
| `file-review` | Per-file deep review — spawned by code-review for each file |
|
|
204
|
+
| `review-push` | Review uncommitted changes, then commit and push to GitHub |
|
|
205
|
+
| `github-init` | Initialize git repo and create private GitHub repository |
|
|
138
206
|
|
|
139
207
|

|
|
140
208
|
|
|
@@ -152,6 +220,7 @@ Skills are reusable knowledge modules loaded by workflows via `Skill()`. Auto-pr
|
|
|
152
220
|
| `lang-python` | Python language gotchas |
|
|
153
221
|
| `math` | Math overflow boundary gotchas |
|
|
154
222
|
| `web-reading` | Fetch web content via subagents |
|
|
223
|
+
| `workflow-authoring` | Reference for creating workflows with exec/fetch action states |
|
|
155
224
|
|
|
156
225
|
## MCP Tools
|
|
157
226
|
|
|
@@ -195,6 +264,7 @@ The web dashboard runs on `localhost:3100` and provides real-time monitoring:
|
|
|
195
264
|
| `WORKFLOW_DIR` | `~/.claude/workflows/` | Global workflow YAML directory |
|
|
196
265
|
| `STATE_DIR` | `~/.claude/workflow-state/` | Session JSON persistence |
|
|
197
266
|
| `DASHBOARD_PORT` | `3100` | Web dashboard HTTP port |
|
|
267
|
+
| `DASHBOARD_HOST` | `127.0.0.1` | Web dashboard bind address |
|
|
198
268
|
|
|
199
269
|
## Status Line
|
|
200
270
|
|
|
@@ -240,6 +310,7 @@ Then in `~/.claude/settings.json`:
|
|
|
240
310
|
npm run build # tsc → compiles src/ to build/
|
|
241
311
|
npm run dev # tsc --watch
|
|
242
312
|
npm start # node build/index.js
|
|
313
|
+
npm test # vitest run
|
|
243
314
|
```
|
|
244
315
|
|
|
245
316
|
### Architecture
|
|
@@ -252,6 +323,8 @@ npm start # node build/index.js
|
|
|
252
323
|
| `src/storage.ts` | JSON persistence with atomic writes and lockfile mutex |
|
|
253
324
|
| `src/modifier.ts` | Runtime overlays + create (YAML writer) |
|
|
254
325
|
| `src/tools.ts` | MCP tool registrations + response formatting |
|
|
326
|
+
| `src/executor.ts` | Action state execution — shell commands (`exec`) and HTTP requests (`fetch`) |
|
|
327
|
+
| `src/template.ts` | Mustache-style `{{var}}` template rendering for action parameters |
|
|
255
328
|
| `src/dashboard.ts` | Express REST API + static file serving |
|
|
256
329
|
| `src/types.ts` | Zod schemas, TypeScript types, constants |
|
|
257
330
|
|
package/build/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyG1C,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGpF"}
|
package/build/dashboard.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import express from "express";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
3
4
|
import { fileURLToPath } from "node:url";
|
|
4
5
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
6
|
function buildApp(storage, loader) {
|
|
@@ -61,6 +62,12 @@ function buildApp(storage, loader) {
|
|
|
61
62
|
res.status(500).json({ error: err.message });
|
|
62
63
|
}
|
|
63
64
|
});
|
|
65
|
+
// Serve dagre from node_modules (works both in dev and when installed as a dependency)
|
|
66
|
+
const require = createRequire(import.meta.url);
|
|
67
|
+
const dagrePath = require.resolve("@dagrejs/dagre/dist/dagre.min.js");
|
|
68
|
+
app.get("/dagre.min.js", (_req, res) => {
|
|
69
|
+
res.sendFile(dagrePath);
|
|
70
|
+
});
|
|
64
71
|
// Serve dashboard HTML
|
|
65
72
|
const dashboardDir = path.resolve(__dirname, "..", "dashboard");
|
|
66
73
|
app.use(express.static(dashboardDir));
|
|
@@ -70,7 +77,8 @@ function buildApp(storage, loader) {
|
|
|
70
77
|
return app;
|
|
71
78
|
}
|
|
72
79
|
function tryListen(app, port) {
|
|
73
|
-
const
|
|
80
|
+
const host = process.env.DASHBOARD_HOST || "127.0.0.1";
|
|
81
|
+
const server = app.listen(port, host);
|
|
74
82
|
server.on("listening", () => {
|
|
75
83
|
console.error(`Dashboard running at http://localhost:${port}`);
|
|
76
84
|
});
|
package/build/dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
|
package/build/engine.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { StackFrame, HistoryEntry, StateDefinition } from "./types.js";
|
|
2
2
|
import type { Storage } from "./storage.js";
|
|
3
3
|
import type { Loader } from "./loader.js";
|
|
4
|
+
import type { Executor } from "./executor.js";
|
|
4
5
|
export interface TransitionResult {
|
|
5
6
|
readonly prompt: string;
|
|
6
7
|
readonly warnings: string[];
|
|
@@ -23,14 +24,24 @@ export interface StatusResult {
|
|
|
23
24
|
readonly context: Record<string, unknown>;
|
|
24
25
|
readonly taskOps: TaskOp[];
|
|
25
26
|
readonly visitCount: number;
|
|
27
|
+
readonly forcePrompt?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export declare class Engine {
|
|
30
|
+
private static readonly GLOBAL_WORKFLOWS;
|
|
28
31
|
private readonly _storage;
|
|
29
32
|
private readonly _loader;
|
|
33
|
+
private readonly _executor;
|
|
30
34
|
private readonly _snapshots;
|
|
31
|
-
constructor(storage: Storage, loader: Loader);
|
|
35
|
+
constructor(storage: Storage, loader: Loader, executor: Executor);
|
|
32
36
|
/** Find the most recently updated active session for the current Claude Code PID. */
|
|
33
37
|
resolveSessionId(sessionId?: string): string;
|
|
38
|
+
private static _isPidAlive;
|
|
39
|
+
/**
|
|
40
|
+
* Check if the session belongs to the current Claude Code process.
|
|
41
|
+
* When force=true, skip the check but warn if the owner process is still alive.
|
|
42
|
+
* Returns a warning string if force was used, undefined otherwise.
|
|
43
|
+
*/
|
|
44
|
+
assertOwnership(sessionId: string, force?: boolean): string | undefined;
|
|
34
45
|
start(workflowName: string, actor?: string, parentSessionId?: string): Promise<StatusResult>;
|
|
35
46
|
transition(sessionId: string, transitionName: string, actor?: string): Promise<StatusResult>;
|
|
36
47
|
abort(sessionId: string): Promise<void>;
|
|
@@ -41,12 +52,20 @@ export declare class Engine {
|
|
|
41
52
|
* Returns the new status if pop succeeded, or null if still pending.
|
|
42
53
|
*/
|
|
43
54
|
retryPendingPop(sessionId: string): Promise<StatusResult | null>;
|
|
55
|
+
/** Abandon active sessions whose owner PID is no longer alive. */
|
|
56
|
+
reapOrphanedSessions(): Promise<string[]>;
|
|
44
57
|
setContext(sessionId: string, key: string, value: unknown, actor?: string): Promise<void>;
|
|
58
|
+
private _isActionState;
|
|
59
|
+
private _isSkillGate;
|
|
60
|
+
private _handleSkillGate;
|
|
61
|
+
private _buildTemplateVars;
|
|
62
|
+
private _executeActionState;
|
|
45
63
|
private _pushSubWorkflow;
|
|
46
64
|
private _popStack;
|
|
47
65
|
private _formatChildrenBlockError;
|
|
48
66
|
private _getActiveChildren;
|
|
49
67
|
private _cascadeAbandonChildren;
|
|
68
|
+
private _getProjectWorkflows;
|
|
50
69
|
private _getWorkflow;
|
|
51
70
|
private _resolveState;
|
|
52
71
|
private _applyTransitionOverrides;
|
package/build/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,eAAe,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,eAAe,EAGhB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAID,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAIrC;IAEH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2D;gBAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAMhE,qFAAqF;IAC9E,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAWnD,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B;;;;OAIG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAejE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0E5F,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiI5F,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAMjD;;;;OAIG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAsB7E,kEAAkE;IACrD,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAczC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetG,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;YAIN,gBAAgB;IAqH9B,OAAO,CAAC,kBAAkB;YAeZ,mBAAmB;YAuInB,gBAAgB;YA6ChB,SAAS;IAyHvB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,kBAAkB;YAMZ,uBAAuB;IAkBrC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,YAAY;CA0DrB"}
|