@agentic-coding-framework/orchestrator-core 0.2.0 → 0.3.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.
- package/dist/__tests__/dispatch.test.d.ts +2 -0
- package/dist/__tests__/dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/dispatch.test.js +373 -0
- package/dist/__tests__/dispatch.test.js.map +1 -0
- package/dist/__tests__/rules.test.d.ts +2 -0
- package/dist/__tests__/rules.test.d.ts.map +1 -0
- package/dist/__tests__/rules.test.js +125 -0
- package/dist/__tests__/rules.test.js.map +1 -0
- package/dist/__tests__/state.test.d.ts +2 -0
- package/dist/__tests__/state.test.d.ts.map +1 -0
- package/dist/__tests__/state.test.js +229 -0
- package/dist/__tests__/state.test.js.map +1 -0
- package/dist/auto.d.ts +3 -58
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +125 -35
- package/dist/auto.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +47 -5
- package/dist/cli.js.map +1 -0
- package/dist/dispatch.d.ts +40 -90
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/dispatch.js +111 -59
- package/dist/dispatch.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -0
- package/dist/rules.d.ts +21 -38
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +17 -67
- package/dist/rules.js.map +1 -0
- package/dist/state.d.ts +15 -37
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +57 -2
- package/dist/state.js.map +1 -0
- package/package.json +2 -22
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* start-story <project-root> <story-id> Begin a new User Story (micro-waterfall)
|
|
9
9
|
* start-custom <project-root> <instruction> Begin a custom ad-hoc task
|
|
10
10
|
* dispatch <project-root> Dispatch next step (prints prompt)
|
|
11
|
+
* peek <project-root> [FIX P1] Read-only dispatch preview
|
|
11
12
|
* apply-handoff <project-root> Parse HANDOFF.md → update STATE
|
|
12
13
|
* approve <project-root> [note] Approve review step
|
|
13
14
|
* reject <project-root> <reason> [note] Reject review step
|
|
@@ -24,11 +25,12 @@ function usage() {
|
|
|
24
25
|
console.error(`Usage: orchestrator <command> [args]
|
|
25
26
|
|
|
26
27
|
Commands:
|
|
27
|
-
auto <project-root> <message...>
|
|
28
|
+
auto <project-root> <message...> Unified entry — classify message & route automatically
|
|
28
29
|
init <project-root> <project-name> Initialize .ai/STATE.json
|
|
29
30
|
start-story <project-root> <story-id> Begin a new User Story (micro-waterfall)
|
|
30
31
|
start-custom <project-root> <instruction> Begin a custom ad-hoc task
|
|
31
32
|
dispatch <project-root> Dispatch next step (prints prompt to stdout)
|
|
33
|
+
peek <project-root> [NEW] Read-only dispatch preview (no state mutation)
|
|
32
34
|
apply-handoff <project-root> Parse HANDOFF.md → update STATE.json
|
|
33
35
|
post-check <project-root> Run step's post_check command
|
|
34
36
|
approve <project-root> [note] Approve review step
|
|
@@ -138,7 +140,10 @@ try {
|
|
|
138
140
|
}
|
|
139
141
|
const label = args[2] || undefined; // optional label
|
|
140
142
|
const agentTeams = args[3] === "--agent-teams";
|
|
141
|
-
const state = (0, dispatch_1.startCustom)(projectRoot, instruction, {
|
|
143
|
+
const state = (0, dispatch_1.startCustom)(projectRoot, instruction, {
|
|
144
|
+
label,
|
|
145
|
+
agentTeams,
|
|
146
|
+
});
|
|
142
147
|
console.log(`Started custom task: "${instruction}"`);
|
|
143
148
|
console.log(` label: ${state.story}, step: ${state.step}, task_type: ${state.task_type}`);
|
|
144
149
|
break;
|
|
@@ -162,14 +167,46 @@ try {
|
|
|
162
167
|
break;
|
|
163
168
|
case "blocked":
|
|
164
169
|
console.error(`[dispatch] BLOCKED: ${result.reason}`);
|
|
165
|
-
|
|
170
|
+
// [FIX P1] Use exit(0) — blocked is an expected orchestrator state,
|
|
171
|
+
// not an error. exit(1) breaks dispatch-claude-code.sh (set -e).
|
|
172
|
+
process.exit(0);
|
|
166
173
|
break;
|
|
167
174
|
case "already_running":
|
|
168
175
|
console.error(`[dispatch] Already running (${result.elapsed_min} min)`);
|
|
169
176
|
break;
|
|
170
177
|
case "timeout":
|
|
171
178
|
console.error(`[dispatch] TIMEOUT at ${result.step} (${result.elapsed_min} min)`);
|
|
172
|
-
|
|
179
|
+
// [FIX P1] Use exit(0) — timeout is an expected orchestrator state.
|
|
180
|
+
// exit(1) would abort dispatch-claude-code.sh before it can retry.
|
|
181
|
+
process.exit(0);
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
// [FIX P1] New command: read-only dispatch preview
|
|
187
|
+
case "peek": {
|
|
188
|
+
const projectRoot = resolveRoot(args[0]);
|
|
189
|
+
const result = (0, dispatch_1.peek)(projectRoot);
|
|
190
|
+
switch (result.type) {
|
|
191
|
+
case "dispatched":
|
|
192
|
+
console.log(result.prompt);
|
|
193
|
+
console.error(`[peek] Would dispatch: step=${result.step} attempt=${result.attempt}`);
|
|
194
|
+
break;
|
|
195
|
+
case "done":
|
|
196
|
+
console.error(`[peek] DONE: ${result.summary}`);
|
|
197
|
+
break;
|
|
198
|
+
case "needs_human":
|
|
199
|
+
console.error(`[peek] NEEDS HUMAN REVIEW`);
|
|
200
|
+
console.error(result.message);
|
|
201
|
+
break;
|
|
202
|
+
case "blocked":
|
|
203
|
+
console.error(`[peek] BLOCKED: ${result.reason}`);
|
|
204
|
+
break;
|
|
205
|
+
case "already_running":
|
|
206
|
+
console.error(`[peek] Already running (${result.elapsed_min} min)`);
|
|
207
|
+
break;
|
|
208
|
+
case "timeout":
|
|
209
|
+
console.error(`[peek] TIMEOUT at ${result.step} (${result.elapsed_min} min)`);
|
|
173
210
|
break;
|
|
174
211
|
}
|
|
175
212
|
break;
|
|
@@ -226,7 +263,11 @@ try {
|
|
|
226
263
|
const projectRoot = resolveRoot(args[0]);
|
|
227
264
|
const result = (0, dispatch_1.detectFramework)(projectRoot);
|
|
228
265
|
console.log(JSON.stringify(result, null, 2));
|
|
229
|
-
const levelNames = [
|
|
266
|
+
const levelNames = [
|
|
267
|
+
"Not adopted",
|
|
268
|
+
"Partial adoption",
|
|
269
|
+
"Full adoption",
|
|
270
|
+
];
|
|
230
271
|
console.error(`Framework adoption: Level ${result.level} — ${levelNames[result.level]}`);
|
|
231
272
|
break;
|
|
232
273
|
}
|
|
@@ -252,3 +293,4 @@ catch (err) {
|
|
|
252
293
|
console.error(`Error: ${err.message}`);
|
|
253
294
|
process.exit(1);
|
|
254
295
|
}
|
|
296
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatch.d.ts
CHANGED
|
@@ -5,35 +5,37 @@
|
|
|
5
5
|
* to drive the micro-waterfall pipeline. All decisions are deterministic —
|
|
6
6
|
* zero LLM tokens.
|
|
7
7
|
*
|
|
8
|
-
* Main entry
|
|
8
|
+
* Main entry points:
|
|
9
|
+
* dispatch(projectRoot) — dispatch next step (mutates STATE)
|
|
10
|
+
* peek(projectRoot) — [FIX P1] read-only dispatch preview (no mutation)
|
|
9
11
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
+
import { State } from "./state";
|
|
13
|
+
import { StepRule } from "./rules";
|
|
12
14
|
export type DispatchResult = {
|
|
13
15
|
type: "dispatched";
|
|
14
|
-
step:
|
|
16
|
+
step: string;
|
|
15
17
|
attempt: number;
|
|
16
18
|
prompt: string;
|
|
17
|
-
fw_lv:
|
|
19
|
+
fw_lv: number;
|
|
18
20
|
} | {
|
|
19
|
-
type: "
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
type: "done";
|
|
22
|
+
story: string;
|
|
23
|
+
summary: string;
|
|
22
24
|
} | {
|
|
23
25
|
type: "needs_human";
|
|
24
|
-
step:
|
|
26
|
+
step: string;
|
|
25
27
|
message: string;
|
|
26
28
|
} | {
|
|
27
|
-
type: "
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
type: "blocked";
|
|
30
|
+
step: string;
|
|
31
|
+
reason: string;
|
|
30
32
|
} | {
|
|
31
33
|
type: "already_running";
|
|
32
|
-
step:
|
|
34
|
+
step: string;
|
|
33
35
|
elapsed_min: number;
|
|
34
36
|
} | {
|
|
35
37
|
type: "timeout";
|
|
36
|
-
step:
|
|
38
|
+
step: string;
|
|
37
39
|
elapsed_min: number;
|
|
38
40
|
};
|
|
39
41
|
/**
|
|
@@ -47,30 +49,38 @@ export type DispatchResult = {
|
|
|
47
49
|
* steps, etc.).
|
|
48
50
|
*/
|
|
49
51
|
export declare function dispatch(projectRoot: string): DispatchResult;
|
|
52
|
+
/**
|
|
53
|
+
* [FIX P1] Read-only dispatch preview — returns the same DispatchResult
|
|
54
|
+
* as dispatch() but never writes to STATE.json.
|
|
55
|
+
*
|
|
56
|
+
* Use cases:
|
|
57
|
+
* - dispatch-claude-code.sh: check if dispatch would succeed before committing
|
|
58
|
+
* - Monitoring / debugging without state contamination
|
|
59
|
+
* - OpenClaw dry-run checks
|
|
60
|
+
*/
|
|
61
|
+
export declare function peek(projectRoot: string): DispatchResult;
|
|
50
62
|
/**
|
|
51
63
|
* Build the dispatch prompt from the template.
|
|
52
64
|
* Pure template filling — zero LLM reasoning.
|
|
53
65
|
*/
|
|
54
66
|
export declare function buildPrompt(state: State, rule: StepRule): string;
|
|
55
|
-
|
|
56
|
-
export interface HandoffResult {
|
|
67
|
+
export interface HandoffData {
|
|
57
68
|
story: string | null;
|
|
58
69
|
step: string | null;
|
|
59
70
|
attempt: number | null;
|
|
60
|
-
status:
|
|
61
|
-
reason:
|
|
71
|
+
status: string | null;
|
|
72
|
+
reason: string | null;
|
|
62
73
|
files_changed: string[];
|
|
63
74
|
tests_pass: number | null;
|
|
64
75
|
tests_fail: number | null;
|
|
65
76
|
tests_skip: number | null;
|
|
66
|
-
/** The markdown body (everything after the second ---) */
|
|
67
77
|
body: string;
|
|
68
78
|
}
|
|
69
79
|
/**
|
|
70
80
|
* Parse HANDOFF.md — prioritize YAML front matter, fallback to grep.
|
|
71
81
|
* Direct translation of Protocol's hook pseudocode.
|
|
72
82
|
*/
|
|
73
|
-
export declare function parseHandoff(projectRoot: string):
|
|
83
|
+
export declare function parseHandoff(projectRoot: string): HandoffData | null;
|
|
74
84
|
/**
|
|
75
85
|
* After executor exits, read HANDOFF.md and update STATE.json accordingly.
|
|
76
86
|
* This is the TypeScript equivalent of the Protocol's post-execution hook.
|
|
@@ -93,7 +103,7 @@ export declare function approveReview(projectRoot: string, humanNote?: string):
|
|
|
93
103
|
/**
|
|
94
104
|
* Reject the review with a reason and optional note.
|
|
95
105
|
*/
|
|
96
|
-
export declare function rejectReview(projectRoot: string, reason:
|
|
106
|
+
export declare function rejectReview(projectRoot: string, reason: string, humanNote?: string): void;
|
|
97
107
|
/**
|
|
98
108
|
* Begin a new User Story. Resets state to bdd step with attempt 1.
|
|
99
109
|
* Auto-initializes STATE.json if the project hasn't adopted the framework yet.
|
|
@@ -102,33 +112,10 @@ export declare function startStory(projectRoot: string, storyId: string, options
|
|
|
102
112
|
agentTeams?: boolean;
|
|
103
113
|
}): State;
|
|
104
114
|
/**
|
|
105
|
-
*
|
|
106
|
-
* OpenClaw calls this when the user asks "
|
|
107
|
-
*
|
|
108
|
-
* Returns structured data that OpenClaw LLM can translate to natural language.
|
|
115
|
+
* Detect whether a project uses the Agentic Coding Framework.
|
|
116
|
+
* OpenClaw calls this when the user asks "is this project using the framework?"
|
|
109
117
|
*/
|
|
110
|
-
export
|
|
111
|
-
project: string;
|
|
112
|
-
task_type: string;
|
|
113
|
-
story: string | null;
|
|
114
|
-
step: string;
|
|
115
|
-
status: string;
|
|
116
|
-
attempt: number;
|
|
117
|
-
max_attempts: number;
|
|
118
|
-
reason: string | null;
|
|
119
|
-
tests: {
|
|
120
|
-
pass: number;
|
|
121
|
-
fail: number;
|
|
122
|
-
skip: number;
|
|
123
|
-
} | null;
|
|
124
|
-
lint_pass: boolean | null;
|
|
125
|
-
files_changed: string[];
|
|
126
|
-
blocked_by: string[];
|
|
127
|
-
human_note: string | null;
|
|
128
|
-
memory_summary: string | null;
|
|
129
|
-
has_framework: FrameworkDetection;
|
|
130
|
-
}
|
|
131
|
-
export interface FrameworkDetection {
|
|
118
|
+
export declare function detectFramework(projectRoot: string): {
|
|
132
119
|
has_state: boolean;
|
|
133
120
|
has_memory: boolean;
|
|
134
121
|
has_context: boolean;
|
|
@@ -136,62 +123,25 @@ export interface FrameworkDetection {
|
|
|
136
123
|
has_sdd: boolean;
|
|
137
124
|
has_handoff: boolean;
|
|
138
125
|
has_history: boolean;
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Detect whether a project uses the Agentic Coding Framework.
|
|
144
|
-
* OpenClaw calls this when the user asks "is this project using the framework?"
|
|
145
|
-
*/
|
|
146
|
-
export declare function detectFramework(projectRoot: string): FrameworkDetection;
|
|
126
|
+
level: number;
|
|
127
|
+
};
|
|
147
128
|
/**
|
|
148
129
|
* Get comprehensive project status for OpenClaw to summarize to the user.
|
|
149
|
-
* Works for ANY project — with or without the Agentic Coding Framework.
|
|
150
|
-
*
|
|
151
|
-
* - Framework project (has STATE.json): returns full state + memory summary
|
|
152
|
-
* - Non-framework project: returns framework detection + whatever files exist
|
|
153
130
|
*/
|
|
154
|
-
export declare function queryProjectStatus(projectRoot: string):
|
|
155
|
-
/** Project entry returned by listProjects */
|
|
156
|
-
export interface ProjectEntry {
|
|
157
|
-
/** Project name (from STATE.json, package.json, or directory name) */
|
|
158
|
-
name: string;
|
|
159
|
-
/** Directory name relative to workspace root */
|
|
160
|
-
dir: string;
|
|
161
|
-
/** Current step ("none" if not using framework) */
|
|
162
|
-
step: string;
|
|
163
|
-
/** Current status ("not_initialized" if not using framework) */
|
|
164
|
-
status: string;
|
|
165
|
-
/** Current story ID */
|
|
166
|
-
story: string | null;
|
|
167
|
-
/** Whether this project uses the Agentic Coding Framework */
|
|
168
|
-
has_framework: boolean;
|
|
169
|
-
}
|
|
131
|
+
export declare function queryProjectStatus(projectRoot: string): Record<string, unknown>;
|
|
170
132
|
/**
|
|
171
|
-
* Scan a workspace directory for all projects
|
|
172
|
-
* OpenClaw calls this when the user asks "list my projects" or "switch project".
|
|
173
|
-
*
|
|
174
|
-
* A directory is considered a "project" if it contains any of:
|
|
175
|
-
* - .ai/STATE.json (framework project)
|
|
176
|
-
* - package.json (Node.js project)
|
|
177
|
-
* - go.mod (Go project)
|
|
178
|
-
* - Cargo.toml (Rust project)
|
|
179
|
-
* - pyproject.toml or setup.py (Python project)
|
|
180
|
-
* - .git/ (any git repo)
|
|
133
|
+
* Scan a workspace directory for all projects.
|
|
181
134
|
*/
|
|
182
|
-
export declare function listProjects(workspaceRoot: string):
|
|
135
|
+
export declare function listProjects(workspaceRoot: string): Record<string, unknown>[];
|
|
183
136
|
/**
|
|
184
137
|
* Begin a custom (ad-hoc) task. The orchestrator forwards the instruction
|
|
185
138
|
* to Claude Code with full project context, without going through the
|
|
186
139
|
* micro-waterfall pipeline.
|
|
187
140
|
*
|
|
188
141
|
* Pipeline: custom → update-memory → done
|
|
189
|
-
* Auto-initializes STATE.json if the project hasn't adopted the framework yet.
|
|
190
|
-
*
|
|
191
|
-
* Use cases: refactoring, code review, bug fix, DevOps, documentation,
|
|
192
|
-
* testing, migration, performance optimization, security, cleanup, etc.
|
|
193
142
|
*/
|
|
194
143
|
export declare function startCustom(projectRoot: string, instruction: string, options?: {
|
|
195
144
|
label?: string;
|
|
196
145
|
agentTeams?: boolean;
|
|
197
146
|
}): State;
|
|
147
|
+
//# sourceMappingURL=dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAOL,KAAK,EACN,MAAM,SAAS,CAAC;AACjB,OAAO,EAIL,QAAQ,EACT,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAI3D;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAExD;AAkJD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CA0GhE;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAapE;AAyID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CA4CvD;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAC9C,OAAO,CAoBT;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAWN;AAmDD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,KAAK,CAuBP;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAiCA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8D/E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAsE7E;AAID;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrD,KAAK,CAwBP"}
|