orquesta-agent 0.2.235 → 0.2.239
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 +45 -0
- package/dist/cli-auth-detect.d.ts +17 -0
- package/dist/cli-auth-detect.d.ts.map +1 -0
- package/dist/cli-auth-detect.js +31 -0
- package/dist/cli-auth-detect.js.map +1 -0
- package/dist/executor.d.ts +12 -4
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +232 -70
- package/dist/executor.js.map +1 -1
- package/dist/fs-browse.d.ts +35 -0
- package/dist/fs-browse.d.ts.map +1 -0
- package/dist/fs-browse.js +106 -0
- package/dist/fs-browse.js.map +1 -0
- package/dist/hook.d.ts +26 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +170 -21
- package/dist/hook.js.map +1 -1
- package/dist/index.js +37 -15
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +42 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +100 -28
- package/dist/init.js.map +1 -1
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +4 -0
- package/dist/sandbox.js.map +1 -1
- package/dist/supabase.d.ts +35 -9
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +40 -4
- package/dist/supabase.js.map +1 -1
- package/dist/types/hook-types.d.ts +49 -1
- package/dist/types/hook-types.d.ts.map +1 -1
- package/dist/ui/onboarding.js +1 -1
- package/dist/ui/onboarding.js.map +1 -1
- package/dist/ui/public/app.js +11 -1
- package/dist/ui/public/index.html +1 -0
- package/dist/ui/public/style.css +1 -0
- package/dist/ui/public/welcome.html +2 -0
- package/dist/ui/server.d.ts +1 -1
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/ui/server.js +114 -45
- package/dist/ui/server.js.map +1 -1
- package/dist/ui/types.d.ts +1 -1
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ws-client.d.ts +15 -3
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +42 -4
- package/dist/ws-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only file browsing for the dashboard's Code Browser.
|
|
3
|
+
*
|
|
4
|
+
* A project bought as "Solo Orquesta" has no GitHub repository and no SSH
|
|
5
|
+
* credentials — the two sources the browser knew about — so the panel was
|
|
6
|
+
* permanently blocked even though the agent is connected and the files are
|
|
7
|
+
* right there on the machine. This answers `fs:list` / `fs:read` from the
|
|
8
|
+
* agent's own working directory. QA-68.
|
|
9
|
+
*
|
|
10
|
+
* Read-only on purpose, and confined to the working directory: it resolves
|
|
11
|
+
* every requested path and refuses anything that lands outside, symlinks
|
|
12
|
+
* included, so a crafted path cannot be used to read the rest of the disk.
|
|
13
|
+
*/
|
|
14
|
+
export interface BrowseItem {
|
|
15
|
+
name: string;
|
|
16
|
+
path: string;
|
|
17
|
+
type: 'file' | 'dir';
|
|
18
|
+
size: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function listDirectory(root: string, requestedPath?: string): {
|
|
21
|
+
path: string;
|
|
22
|
+
items: BrowseItem[];
|
|
23
|
+
truncated: boolean;
|
|
24
|
+
} | {
|
|
25
|
+
error: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function readFileForBrowser(root: string, requestedPath?: string): {
|
|
28
|
+
path: string;
|
|
29
|
+
name: string;
|
|
30
|
+
content: string;
|
|
31
|
+
size: number;
|
|
32
|
+
} | {
|
|
33
|
+
error: string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=fs-browse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-browse.d.ts","sourceRoot":"","sources":["../src/fs-browse.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAsCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;CACnB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAyCpB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2BpB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import * as logger from './logger.js';
|
|
4
|
+
/** A listing is a directory pane — long enough to be useful, short enough to send. */
|
|
5
|
+
const MAX_ENTRIES = 1000;
|
|
6
|
+
/** Above this a file stops being something you read in a browser pane. */
|
|
7
|
+
const MAX_FILE_BYTES = 1024 * 1024;
|
|
8
|
+
/**
|
|
9
|
+
* Resolve `rel` beneath `root`, or null when it escapes.
|
|
10
|
+
*
|
|
11
|
+
* Both the lexical path and its realpath are checked: `..` is caught by the
|
|
12
|
+
* first, a symlink pointing out of the tree only by the second.
|
|
13
|
+
*/
|
|
14
|
+
function resolveInside(root, rel) {
|
|
15
|
+
const base = path.resolve(root);
|
|
16
|
+
const cleaned = (rel || '').replace(/^[/\\]+/, '');
|
|
17
|
+
const target = path.resolve(base, cleaned === '.' ? '' : cleaned);
|
|
18
|
+
const contains = (p) => p === base || p.startsWith(base + path.sep);
|
|
19
|
+
if (!contains(target))
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
const real = fs.realpathSync(target);
|
|
23
|
+
const realBase = fs.realpathSync(base);
|
|
24
|
+
if (real !== realBase && !real.startsWith(realBase + path.sep))
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Does not exist yet / cannot be resolved — the caller's stat will report it.
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
}
|
|
32
|
+
/** Path as the dashboard addresses it: relative to the root, forward slashes. */
|
|
33
|
+
function toRelative(root, absolute) {
|
|
34
|
+
const rel = path.relative(path.resolve(root), absolute);
|
|
35
|
+
return rel.split(path.sep).join('/');
|
|
36
|
+
}
|
|
37
|
+
export function listDirectory(root, requestedPath) {
|
|
38
|
+
const target = resolveInside(root, requestedPath);
|
|
39
|
+
if (!target)
|
|
40
|
+
return { error: 'Path is outside the working directory' };
|
|
41
|
+
let entries;
|
|
42
|
+
try {
|
|
43
|
+
const stat = fs.statSync(target);
|
|
44
|
+
if (!stat.isDirectory())
|
|
45
|
+
return { error: 'Not a directory' };
|
|
46
|
+
entries = fs.readdirSync(target, { withFileTypes: true });
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
return { error: err instanceof Error ? err.message : 'Could not read directory' };
|
|
50
|
+
}
|
|
51
|
+
// `.git` is megabytes of objects nobody browses, and the GitHub source does
|
|
52
|
+
// not show it either — keeping it out keeps the two sources looking alike.
|
|
53
|
+
const visible = entries.filter(e => e.name !== '.git');
|
|
54
|
+
const truncated = visible.length > MAX_ENTRIES;
|
|
55
|
+
const items = [];
|
|
56
|
+
for (const entry of visible.slice(0, MAX_ENTRIES)) {
|
|
57
|
+
const absolute = path.join(target, entry.name);
|
|
58
|
+
let size = 0;
|
|
59
|
+
let isDir = entry.isDirectory();
|
|
60
|
+
try {
|
|
61
|
+
const stat = fs.statSync(absolute); // follows symlinks, so a linked dir reads as a dir
|
|
62
|
+
size = stat.isFile() ? stat.size : 0;
|
|
63
|
+
isDir = stat.isDirectory();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Broken symlink or a race with a delete — list it as an empty file.
|
|
67
|
+
}
|
|
68
|
+
items.push({
|
|
69
|
+
name: entry.name,
|
|
70
|
+
path: toRelative(root, absolute),
|
|
71
|
+
type: isDir ? 'dir' : 'file',
|
|
72
|
+
size,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
items.sort((a, b) => (a.type !== b.type ? (a.type === 'dir' ? -1 : 1) : a.name.localeCompare(b.name)));
|
|
76
|
+
return { path: toRelative(root, target), items, truncated };
|
|
77
|
+
}
|
|
78
|
+
export function readFileForBrowser(root, requestedPath) {
|
|
79
|
+
const target = resolveInside(root, requestedPath);
|
|
80
|
+
if (!target)
|
|
81
|
+
return { error: 'Path is outside the working directory' };
|
|
82
|
+
try {
|
|
83
|
+
const stat = fs.statSync(target);
|
|
84
|
+
if (!stat.isFile())
|
|
85
|
+
return { error: 'Not a file' };
|
|
86
|
+
if (stat.size > MAX_FILE_BYTES) {
|
|
87
|
+
return { error: `File is too large to open here (${Math.round(stat.size / 1024)} KB)` };
|
|
88
|
+
}
|
|
89
|
+
const buffer = fs.readFileSync(target);
|
|
90
|
+
// A NUL byte early on is the usual, cheap "this is not text" signal.
|
|
91
|
+
if (buffer.subarray(0, 8000).includes(0)) {
|
|
92
|
+
return { error: 'Binary file' };
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
path: toRelative(root, target),
|
|
96
|
+
name: path.basename(target),
|
|
97
|
+
content: buffer.toString('utf-8'),
|
|
98
|
+
size: stat.size,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
logger.debug(`[fs-browse] read failed: ${err instanceof Error ? err.message : err}`);
|
|
103
|
+
return { error: err instanceof Error ? err.message : 'Could not read file' };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=fs-browse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-browse.js","sourceRoot":"","sources":["../src/fs-browse.ts"],"names":[],"mappings":"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"}
|
package/dist/hook.d.ts
CHANGED
|
@@ -7,5 +7,30 @@
|
|
|
7
7
|
* Zero npm dependencies — uses only Node.js built-ins for fast startup.
|
|
8
8
|
* Always exits 0 to never block Claude.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
import type { HookClient } from './types/hook-types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Which tool invoked us. The explicit flag (written by `init`) wins; otherwise
|
|
13
|
+
* fall back to the payload shape. Claude Code sends `session_id`, Cursor sends
|
|
14
|
+
* `conversation_id`, and only Cursor uses camelCase event names.
|
|
15
|
+
*/
|
|
16
|
+
export declare function detectClient(hookData: any, explicit?: string): HookClient;
|
|
17
|
+
/**
|
|
18
|
+
* Map a Cursor hook payload onto the Claude Code field names the handlers below
|
|
19
|
+
* already speak. Claude Code payloads pass through untouched.
|
|
20
|
+
*
|
|
21
|
+
* Cursor differences we bridge:
|
|
22
|
+
* - `conversation_id` is the stable session id (`generation_id` changes per turn)
|
|
23
|
+
* - `workspace_roots[0]` / $CURSOR_PROJECT_DIR stands in for `cwd`
|
|
24
|
+
* - `postToolUse` returns `tool_output`, not `tool_result`
|
|
25
|
+
* - shell runs and file edits arrive as their OWN events rather than as a
|
|
26
|
+
* generic tool event, so we synthesize Bash/Edit tool calls for them
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeHookData(raw: any): any;
|
|
29
|
+
/**
|
|
30
|
+
* Identity of a tool call for de-duplication. Content-based rather than
|
|
31
|
+
* id-based on purpose: the SAME shell command reaching us through two different
|
|
32
|
+
* Cursor hooks carries two different `tool_use_id`s but identical content.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toolDedupeKey(toolName: string, toolInput: Record<string, unknown>): string;
|
|
35
|
+
export declare function handleHookEvent(event: string, clientOpt?: string): Promise<void>;
|
|
11
36
|
//# sourceMappingURL=hook.d.ts.map
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,uBAAuB,CAAA;AAY9B;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAOzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAwC/C;AAicD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAU1F;AAID,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDtF"}
|
package/dist/hook.js
CHANGED
|
@@ -10,6 +10,83 @@
|
|
|
10
10
|
import * as fs from 'fs';
|
|
11
11
|
import * as path from 'path';
|
|
12
12
|
import * as os from 'os';
|
|
13
|
+
// --- Client normalization ---
|
|
14
|
+
// Cursor event names, used to detect the client when no --client flag was passed
|
|
15
|
+
// (e.g. a hooks.json written by an older orquesta-agent, or hand-edited).
|
|
16
|
+
const CURSOR_EVENT_NAMES = new Set([
|
|
17
|
+
'beforeSubmitPrompt', 'postToolUse', 'postToolUseFailure', 'preToolUse',
|
|
18
|
+
'afterFileEdit', 'beforeShellExecution', 'afterShellExecution',
|
|
19
|
+
'afterAgentResponse', 'afterAgentThought', 'sessionStart', 'sessionEnd', 'stop',
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Which tool invoked us. The explicit flag (written by `init`) wins; otherwise
|
|
23
|
+
* fall back to the payload shape. Claude Code sends `session_id`, Cursor sends
|
|
24
|
+
* `conversation_id`, and only Cursor uses camelCase event names.
|
|
25
|
+
*/
|
|
26
|
+
export function detectClient(hookData, explicit) {
|
|
27
|
+
if (explicit === 'cursor' || explicit === 'claude')
|
|
28
|
+
return explicit;
|
|
29
|
+
if (hookData?.conversation_id && !hookData?.session_id)
|
|
30
|
+
return 'cursor';
|
|
31
|
+
if (typeof hookData?.hook_event_name === 'string' && CURSOR_EVENT_NAMES.has(hookData.hook_event_name)) {
|
|
32
|
+
return 'cursor';
|
|
33
|
+
}
|
|
34
|
+
return 'claude';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Map a Cursor hook payload onto the Claude Code field names the handlers below
|
|
38
|
+
* already speak. Claude Code payloads pass through untouched.
|
|
39
|
+
*
|
|
40
|
+
* Cursor differences we bridge:
|
|
41
|
+
* - `conversation_id` is the stable session id (`generation_id` changes per turn)
|
|
42
|
+
* - `workspace_roots[0]` / $CURSOR_PROJECT_DIR stands in for `cwd`
|
|
43
|
+
* - `postToolUse` returns `tool_output`, not `tool_result`
|
|
44
|
+
* - shell runs and file edits arrive as their OWN events rather than as a
|
|
45
|
+
* generic tool event, so we synthesize Bash/Edit tool calls for them
|
|
46
|
+
*/
|
|
47
|
+
export function normalizeHookData(raw) {
|
|
48
|
+
const d = { ...(raw || {}) };
|
|
49
|
+
if (!d.session_id)
|
|
50
|
+
d.session_id = d.conversation_id;
|
|
51
|
+
if (!d.cwd) {
|
|
52
|
+
d.cwd = (Array.isArray(d.workspace_roots) && d.workspace_roots[0])
|
|
53
|
+
|| process.env.CURSOR_PROJECT_DIR
|
|
54
|
+
|| process.env.CLAUDE_PROJECT_DIR
|
|
55
|
+
|| undefined;
|
|
56
|
+
}
|
|
57
|
+
if (d.tool_result === undefined && d.tool_output !== undefined) {
|
|
58
|
+
d.tool_result = d.tool_output;
|
|
59
|
+
}
|
|
60
|
+
switch (d.hook_event_name) {
|
|
61
|
+
case 'beforeShellExecution':
|
|
62
|
+
case 'afterShellExecution':
|
|
63
|
+
if (!d.tool_name)
|
|
64
|
+
d.tool_name = 'Bash';
|
|
65
|
+
if (!d.tool_input)
|
|
66
|
+
d.tool_input = { command: d.command };
|
|
67
|
+
if (d.tool_result === undefined && d.output !== undefined)
|
|
68
|
+
d.tool_result = d.output;
|
|
69
|
+
break;
|
|
70
|
+
case 'afterFileEdit': {
|
|
71
|
+
if (!d.tool_name)
|
|
72
|
+
d.tool_name = 'Edit';
|
|
73
|
+
const edits = Array.isArray(d.edits) ? d.edits : [];
|
|
74
|
+
if (!d.tool_input) {
|
|
75
|
+
d.tool_input = {
|
|
76
|
+
file_path: d.file_path,
|
|
77
|
+
old_string: edits[0]?.old_string,
|
|
78
|
+
new_string: edits[0]?.new_string,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (d.tool_result === undefined) {
|
|
82
|
+
const n = edits.length;
|
|
83
|
+
d.tool_result = { content: `${n} edit${n === 1 ? '' : 's'} applied to ${d.file_path}` };
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return d;
|
|
89
|
+
}
|
|
13
90
|
// --- Utility functions ---
|
|
14
91
|
function readStdin() {
|
|
15
92
|
return new Promise((resolve) => {
|
|
@@ -161,22 +238,29 @@ async function fetchCoordinationBlock(config) {
|
|
|
161
238
|
return '';
|
|
162
239
|
}
|
|
163
240
|
}
|
|
164
|
-
async function handlePromptSubmit(hookData, config) {
|
|
241
|
+
async function handlePromptSubmit(hookData, config, client = 'claude') {
|
|
165
242
|
// Inject a short Orquesta context block into Claude's context.
|
|
166
243
|
// Claude Code captures UserPromptSubmit stdout and feeds it to the model.
|
|
167
244
|
// Wrapped defensively — never let this break the logging path.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
245
|
+
//
|
|
246
|
+
// Cursor is DELIBERATELY excluded: its hooks must emit either nothing or a
|
|
247
|
+
// well-formed JSON permission object on stdout, so writing a plain-text block
|
|
248
|
+
// there risks blocking the user's prompt. Mirroring still works — we just
|
|
249
|
+
// don't inject context. See the Cursor hooks docs for the stdout contract.
|
|
250
|
+
if (client !== 'cursor') {
|
|
251
|
+
try {
|
|
252
|
+
process.stdout.write(buildOrquestaContext(config));
|
|
253
|
+
// Inject active coordination channels too, if any. Fetched per-prompt so newly-created
|
|
254
|
+
// bridges are visible immediately. ~1s upper bound — race against a short timeout.
|
|
255
|
+
const coord = await Promise.race([
|
|
256
|
+
fetchCoordinationBlock(config),
|
|
257
|
+
new Promise(resolve => setTimeout(() => resolve(''), 1500)),
|
|
258
|
+
]);
|
|
259
|
+
if (coord)
|
|
260
|
+
process.stdout.write(coord);
|
|
261
|
+
}
|
|
262
|
+
catch { }
|
|
178
263
|
}
|
|
179
|
-
catch { }
|
|
180
264
|
// Clean stale session files
|
|
181
265
|
cleanStaleSessionFiles();
|
|
182
266
|
const sessionId = hookData.session_id;
|
|
@@ -185,11 +269,13 @@ async function handlePromptSubmit(hookData, config) {
|
|
|
185
269
|
// Extract prompt content from hook data
|
|
186
270
|
const promptContent = hookData.prompt
|
|
187
271
|
|| hookData.message?.content
|
|
188
|
-
|| '(Claude Code session)';
|
|
272
|
+
|| (client === 'cursor' ? '(Cursor session)' : '(Claude Code session)');
|
|
189
273
|
// Create prompt in Orquesta
|
|
190
274
|
const { ok, data } = await apiCall(`${config.apiUrl}/api/orquesta-cli/prompts`, 'POST', config.token, {
|
|
191
275
|
content: typeof promptContent === 'string' ? promptContent : JSON.stringify(promptContent),
|
|
192
|
-
|
|
276
|
+
// Must be one of prompts_cli_type_check (see 20260814_cli_type_cursor.sql) —
|
|
277
|
+
// an unlisted value fails the CHECK and the prompt is never created.
|
|
278
|
+
cliType: client === 'cursor' ? 'cursor-cli' : 'claude-code',
|
|
193
279
|
// Spell out the target project. Hooks enrolled from the terminal cockpit
|
|
194
280
|
// carry an ORG-scoped token (oclt_), which may write to any project in the
|
|
195
281
|
// org — so the server rejects the prompt outright ("projectId is required
|
|
@@ -197,7 +283,7 @@ async function handlePromptSubmit(hookData, config) {
|
|
|
197
283
|
// resolve it themselves and simply ignore this field.
|
|
198
284
|
projectId: config.projectId,
|
|
199
285
|
context: {
|
|
200
|
-
source: 'claude-code-hook',
|
|
286
|
+
source: client === 'cursor' ? 'cursor-hook' : 'claude-code-hook',
|
|
201
287
|
cwd: hookData.cwd,
|
|
202
288
|
sessionId,
|
|
203
289
|
},
|
|
@@ -229,6 +315,12 @@ async function handleToolUse(hookData, config) {
|
|
|
229
315
|
const toolName = hookData.tool_name || 'unknown';
|
|
230
316
|
const toolInput = hookData.tool_input || {};
|
|
231
317
|
const toolResult = hookData.tool_result;
|
|
318
|
+
// Drop repeats of an action we already mirrored (see SessionState.seenToolKeys).
|
|
319
|
+
const dedupeKey = toolDedupeKey(toolName, toolInput);
|
|
320
|
+
const seen = session.seenToolKeys || [];
|
|
321
|
+
if (seen.includes(dedupeKey))
|
|
322
|
+
return;
|
|
323
|
+
session.seenToolKeys = [...seen, dedupeKey].slice(-20);
|
|
232
324
|
// Increment sequence
|
|
233
325
|
session.sequence += 1;
|
|
234
326
|
const seq = session.sequence;
|
|
@@ -292,7 +384,40 @@ async function handleToolUse(hookData, config) {
|
|
|
292
384
|
// Update session state with new sequence
|
|
293
385
|
writeSessionState(sessionId, session);
|
|
294
386
|
}
|
|
295
|
-
|
|
387
|
+
/**
|
|
388
|
+
* Mirror the assistant's final answer.
|
|
389
|
+
*
|
|
390
|
+
* Only Cursor drives this today: its `stop` payload carries no text, so
|
|
391
|
+
* `afterAgentResponse` is the sole place the answer is exposed to a hook.
|
|
392
|
+
* Without it the mirrored prompt would show every tool call but no conclusion.
|
|
393
|
+
*/
|
|
394
|
+
async function handleAssistantText(hookData, config) {
|
|
395
|
+
const sessionId = hookData.session_id;
|
|
396
|
+
if (!sessionId)
|
|
397
|
+
return;
|
|
398
|
+
const session = readSessionState(sessionId);
|
|
399
|
+
if (!session)
|
|
400
|
+
return;
|
|
401
|
+
const text = typeof hookData.text === 'string'
|
|
402
|
+
? hookData.text
|
|
403
|
+
: (typeof hookData.message?.content === 'string' ? hookData.message.content : '');
|
|
404
|
+
if (!text.trim())
|
|
405
|
+
return;
|
|
406
|
+
session.sequence += 1;
|
|
407
|
+
await apiCall(`${session.apiUrl}/api/prompts/${session.promptId}/logs`, 'POST', session.token, {
|
|
408
|
+
logs: [{
|
|
409
|
+
type: 'output',
|
|
410
|
+
level: 'info',
|
|
411
|
+
sequence: session.sequence,
|
|
412
|
+
output: {
|
|
413
|
+
content: truncate(text, 10000),
|
|
414
|
+
stream: 'assistant',
|
|
415
|
+
},
|
|
416
|
+
}],
|
|
417
|
+
});
|
|
418
|
+
writeSessionState(sessionId, session);
|
|
419
|
+
}
|
|
420
|
+
async function handleStop(hookData, config, client = 'claude') {
|
|
296
421
|
const sessionId = hookData.session_id;
|
|
297
422
|
if (!sessionId)
|
|
298
423
|
return;
|
|
@@ -308,7 +433,7 @@ async function handleStop(hookData, config) {
|
|
|
308
433
|
sequence: session.sequence,
|
|
309
434
|
system: {
|
|
310
435
|
event: 'complete',
|
|
311
|
-
message: 'Claude Code session completed',
|
|
436
|
+
message: client === 'cursor' ? 'Cursor session completed' : 'Claude Code session completed',
|
|
312
437
|
},
|
|
313
438
|
}],
|
|
314
439
|
});
|
|
@@ -350,8 +475,25 @@ function sanitizeToolInput(toolName, input) {
|
|
|
350
475
|
function truncate(str, maxLen) {
|
|
351
476
|
return str.length > maxLen ? str.slice(0, maxLen) + '...' : str;
|
|
352
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* Identity of a tool call for de-duplication. Content-based rather than
|
|
480
|
+
* id-based on purpose: the SAME shell command reaching us through two different
|
|
481
|
+
* Cursor hooks carries two different `tool_use_id`s but identical content.
|
|
482
|
+
*/
|
|
483
|
+
export function toolDedupeKey(toolName, toolInput) {
|
|
484
|
+
let payload;
|
|
485
|
+
try {
|
|
486
|
+
// Stable key regardless of property order.
|
|
487
|
+
const keys = Object.keys(toolInput).sort();
|
|
488
|
+
payload = JSON.stringify(keys.map(k => [k, toolInput[k]]));
|
|
489
|
+
}
|
|
490
|
+
catch {
|
|
491
|
+
payload = String(Object.keys(toolInput).sort().join(','));
|
|
492
|
+
}
|
|
493
|
+
return `${toolName}:${truncate(payload, 500)}`;
|
|
494
|
+
}
|
|
353
495
|
// --- Main entry point ---
|
|
354
|
-
export async function handleHookEvent(event) {
|
|
496
|
+
export async function handleHookEvent(event, clientOpt) {
|
|
355
497
|
try {
|
|
356
498
|
// Find project config
|
|
357
499
|
const config = findOrquestaConfig(process.cwd());
|
|
@@ -371,23 +513,30 @@ export async function handleHookEvent(event) {
|
|
|
371
513
|
process.exit(0);
|
|
372
514
|
}
|
|
373
515
|
}
|
|
516
|
+
// Cursor speaks a different dialect of the same protocol — translate before
|
|
517
|
+
// any handler sees it, so the handlers stay single-shape.
|
|
518
|
+
const client = detectClient(hookData, clientOpt);
|
|
519
|
+
hookData = normalizeHookData(hookData);
|
|
374
520
|
// Route to handler
|
|
375
521
|
switch (event) {
|
|
376
522
|
case 'prompt-submit':
|
|
377
|
-
await handlePromptSubmit(hookData, config);
|
|
523
|
+
await handlePromptSubmit(hookData, config, client);
|
|
378
524
|
break;
|
|
379
525
|
case 'tool-use':
|
|
380
526
|
await handleToolUse(hookData, config);
|
|
381
527
|
break;
|
|
528
|
+
case 'assistant-text':
|
|
529
|
+
await handleAssistantText(hookData, config);
|
|
530
|
+
break;
|
|
382
531
|
case 'stop':
|
|
383
|
-
await handleStop(hookData, config);
|
|
532
|
+
await handleStop(hookData, config, client);
|
|
384
533
|
break;
|
|
385
534
|
default:
|
|
386
535
|
process.stderr.write(`[orquesta-hook] Unknown event: ${event}\n`);
|
|
387
536
|
}
|
|
388
537
|
}
|
|
389
538
|
catch (err) {
|
|
390
|
-
// Never block
|
|
539
|
+
// Never block the host IDE — log error and exit cleanly
|
|
391
540
|
process.stderr.write(`[orquesta-hook] Error: ${err}\n`);
|
|
392
541
|
}
|
|
393
542
|
process.exit(0);
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAOxB,4BAA4B;AAE5B,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,8DAA8D;QAC9D,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,GAAG,GAAG,QAAQ,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,MAA+B,CAAA;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAK;QACzB,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,SAAS,OAAO,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,KAAmB;IAC/D,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAA;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACxC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;gBAC1B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,GAAW,EACX,MAAc,EACd,KAAa,EACb,IAA8B;IAE9B,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAA;IAED,kDAAkD;IAClD,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;QAC5C,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAAA;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAA;IAEF,IAAI,IAAI,GAAQ,IAAI,CAAA;IACpB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAA;AAC7B,CAAC;AAED,yBAAyB;AAEzB,SAAS,oBAAoB,CAAC,MAA6B;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,GAAG,MAAM,uBAAuB,MAAM,CAAC,SAAS,EAAE,CAAA;IACvE,OAAO;QACL,kEAAkE,IAAI,IAAI;QAC1E,cAAc,YAAY,EAAE;QAC5B,2FAA2F;QAC3F,EAAE;QACF,yBAAyB;QACzB,yEAAyE;QACzE,kBAAkB,MAAM,+EAA+E;QACvG,kIAAkI;QAClI,EAAE;QACF,4FAA4F;QAC5F,kBAAkB,MAAM,6EAA6E;QACrG,iPAAiP;QACjP,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,6FAA6F;AAC7F,kGAAkG;AAClG,KAAK,UAAU,sBAAsB,CAAC,MAA6B;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,iCAAiC,EAAE;YAClE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;SACrD,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAgM,CAAA;QACxN,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;QACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACpC,MAAM,KAAK,GAAa;YACtB,gDAAgD,QAAQ,CAAC,MAAM,+BAA+B,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2CAA2C,CAAC,CAAC,QAAQ,IAAI,mBAAmB,kIAAkI;YAC5U,EAAE;SACH,CAAA;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAA;YAChI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,cAAc,QAAQ,EAAE,CAAC,CAAA;YACtE,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC,KAAK,0DAA0D,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAA;YACtM,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;YACxE,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC,KAAK,gGAAgG,CAAC,CAAA;YAC7N,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,EAAE,iDAAiD,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAA;YAC7J,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iMAAiM,CAAC,CAAA;QAC7M,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAa,EAAE,MAA6B;IAC5E,+DAA+D;IAC/D,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;QAClD,uFAAuF;QACvF,mFAAmF;QACnF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC/B,sBAAsB,CAAC,MAAM,CAAC;YAC9B,IAAI,OAAO,CAAS,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;SACpE,CAAC,CAAA;QACF,IAAI,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,4BAA4B;IAC5B,sBAAsB,EAAE,CAAA;IAExB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,wCAAwC;IACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;WAChC,QAAQ,CAAC,OAAO,EAAE,OAAO;WACzB,uBAAuB,CAAA;IAE5B,4BAA4B;IAC5B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAChC,GAAG,MAAM,CAAC,MAAM,2BAA2B,EAC3C,MAAM,EACN,MAAM,CAAC,KAAK,EACZ;QACE,OAAO,EAAE,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAC1F,OAAO,EAAE,aAAa;QACtB,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,sDAAsD;QACtD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS;SACV;QACD,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,SAAS;KACzD,CACF,CAAA;IAED,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1F,OAAM;IACR,CAAC;IAED,2CAA2C;IAC3C,iBAAiB,CAAC,SAAS,EAAE;QAC3B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAa,EAAE,MAA6B;IACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAM,CAAC,oCAAoC;IAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAA;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAA;IAEvC,qBAAqB;IACrB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAA;IAE5B,+BAA+B;IAC/B,MAAM,IAAI,GAAU,EAAE,CAAA;IAEtB,gDAAgD;IAChD,IAAI,WAAW,GAAG,SAAS,QAAQ,EAAE,CAAA;IACrC,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,WAAW,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAC/D,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACtD,WAAW,GAAG,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACtD,WAAW,GAAG,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACvD,WAAW,GAAG,SAAS,SAAS,CAAC,SAAS,EAAE,CAAA;IAC9C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACpD,WAAW,GAAG,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAA;IAC3C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACpD,WAAW,GAAG,SAAS,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAC7F,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;YACnC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC;YAClD,OAAO,EAAE,WAAW;SACrB;KACF,CAAC,CAAA;IAEF,kBAAkB;IAClB,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO;WAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM;WAC5B,CAAC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK;WAC1C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAA;IAEnC,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;QACzG,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACxC,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,WAAW;gBACrB,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;gBAClC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;aACrD;SACF,CAAC,CAAA;QACF,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,OAAO,EACxD,MAAM,EACN,OAAO,CAAC,KAAK,EACb,EAAE,IAAI,EAAE,CACT,CAAA;IAED,yCAAyC;IACzC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACvC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAa,EAAE,MAA6B;IACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,sBAAsB;IACtB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrB,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,OAAO,EACxD,MAAM,EACN,OAAO,CAAC,KAAK,EACb;QACE,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE;oBACN,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,+BAA+B;iBACzC;aACF,CAAC;KACH,CACF,CAAA;IAED,2BAA2B;IAC3B,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,EAAE,EACnD,OAAO,EACP,OAAO,CAAC,KAAK,EACb;QACE,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CACF,CAAA;IAED,wBAAwB;IACxB,kBAAkB,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED,kBAAkB;AAElB,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;QACxC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;QAC3B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;KAClC,CAAA;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAA;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAA8B;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IACjF,MAAM,SAAS,GAA4B,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAClD,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACjF,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAc;IAC3C,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;AACjE,CAAC;AAED,2BAA2B;AAE3B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa;IACjD,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0CAA0C;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,4BAA4B;QAC5B,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAA;QAC7B,IAAI,QAAQ,GAAQ,EAAE,CAAA;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,QAAQ,KAAkB,EAAE,CAAC;YAC3B,KAAK,eAAe;gBAClB,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC1C,MAAK;YACP,KAAK,UAAU;gBACb,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACrC,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAClC,MAAK;YACP;gBACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,IAAI,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kDAAkD;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAQxB,+BAA+B;AAE/B,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,oBAAoB,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY;IACvE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB;IAC9D,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM;CAChF,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAa,EAAE,QAAiB;IAC3D,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACnE,IAAI,QAAQ,EAAE,eAAe,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,QAAQ,CAAA;IACvE,IAAI,OAAO,QAAQ,EAAE,eAAe,KAAK,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACtG,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAA;IAE5B,IAAI,CAAC,CAAC,CAAC,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,eAAe,CAAA;IACnD,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;eAC7D,OAAO,CAAC,GAAG,CAAC,kBAAkB;eAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB;eAC9B,SAAS,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/D,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAA;IAC/B,CAAC;IAED,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB;YACxB,IAAI,CAAC,CAAC,CAAC,SAAS;gBAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAA;YACtC,IAAI,CAAC,CAAC,CAAC,UAAU;gBAAE,CAAC,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;YACxD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAA;YACnF,MAAK;QACP,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,SAAS;gBAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAA;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;YACnD,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBAClB,CAAC,CAAC,UAAU,GAAG;oBACb,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU;oBAChC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU;iBACjC,CAAA;YACH,CAAC;YACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;gBACtB,CAAC,CAAC,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;YACzF,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,4BAA4B;AAE5B,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,8DAA8D;QAC9D,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,GAAG,GAAG,QAAQ,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,MAA+B,CAAA;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAK;QACzB,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,SAAS,OAAO,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,KAAmB;IAC/D,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAA;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACxC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;gBAC1B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,GAAW,EACX,MAAc,EACd,KAAa,EACb,IAA8B;IAE9B,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAA;IAED,kDAAkD;IAClD,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;QAC5C,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAAA;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAA;IAEF,IAAI,IAAI,GAAQ,IAAI,CAAA;IACpB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAA;AAC7B,CAAC;AAED,yBAAyB;AAEzB,SAAS,oBAAoB,CAAC,MAA6B;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,GAAG,MAAM,uBAAuB,MAAM,CAAC,SAAS,EAAE,CAAA;IACvE,OAAO;QACL,kEAAkE,IAAI,IAAI;QAC1E,cAAc,YAAY,EAAE;QAC5B,2FAA2F;QAC3F,EAAE;QACF,yBAAyB;QACzB,yEAAyE;QACzE,kBAAkB,MAAM,+EAA+E;QACvG,kIAAkI;QAClI,EAAE;QACF,4FAA4F;QAC5F,kBAAkB,MAAM,6EAA6E;QACrG,iPAAiP;QACjP,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,6FAA6F;AAC7F,kGAAkG;AAClG,KAAK,UAAU,sBAAsB,CAAC,MAA6B;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,iCAAiC,EAAE;YAClE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;SACrD,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAgM,CAAA;QACxN,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;QACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACpC,MAAM,KAAK,GAAa;YACtB,gDAAgD,QAAQ,CAAC,MAAM,+BAA+B,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2CAA2C,CAAC,CAAC,QAAQ,IAAI,mBAAmB,kIAAkI;YAC5U,EAAE;SACH,CAAA;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAA;YAChI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,cAAc,QAAQ,EAAE,CAAC,CAAA;YACtE,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC,KAAK,0DAA0D,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAA;YACtM,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;YACxE,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC,KAAK,gGAAgG,CAAC,CAAA;YAC7N,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,EAAE,iDAAiD,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAA;YAC7J,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iMAAiM,CAAC,CAAA;QAC7M,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAa,EACb,MAA6B,EAC7B,SAAqB,QAAQ;IAE7B,+DAA+D;IAC/D,0EAA0E;IAC1E,+DAA+D;IAC/D,EAAE;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;YAClD,uFAAuF;YACvF,mFAAmF;YACnF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC/B,sBAAsB,CAAC,MAAM,CAAC;gBAC9B,IAAI,OAAO,CAAS,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aACpE,CAAC,CAAA;YACF,IAAI,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,4BAA4B;IAC5B,sBAAsB,EAAE,CAAA;IAExB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,wCAAwC;IACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;WAChC,QAAQ,CAAC,OAAO,EAAE,OAAO;WACzB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAA;IAEzE,4BAA4B;IAC5B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAChC,GAAG,MAAM,CAAC,MAAM,2BAA2B,EAC3C,MAAM,EACN,MAAM,CAAC,KAAK,EACZ;QACE,OAAO,EAAE,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAC1F,6EAA6E;QAC7E,qEAAqE;QACrE,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;QAC3D,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,sDAAsD;QACtD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB;YAChE,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS;SACV;QACD,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,SAAS;KACzD,CACF,CAAA;IAED,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1F,OAAM;IACR,CAAC;IAED,2CAA2C;IAC3C,iBAAiB,CAAC,SAAS,EAAE;QAC3B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAa,EAAE,MAA6B;IACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAM,CAAC,oCAAoC;IAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAA;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAA;IAEvC,iFAAiF;IACjF,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAM;IACpC,OAAO,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;IAEtD,qBAAqB;IACrB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAA;IAE5B,+BAA+B;IAC/B,MAAM,IAAI,GAAU,EAAE,CAAA;IAEtB,gDAAgD;IAChD,IAAI,WAAW,GAAG,SAAS,QAAQ,EAAE,CAAA;IACrC,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,WAAW,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAC/D,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACtD,WAAW,GAAG,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACtD,WAAW,GAAG,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACvD,WAAW,GAAG,SAAS,SAAS,CAAC,SAAS,EAAE,CAAA;IAC9C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACpD,WAAW,GAAG,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAA;IAC3C,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACpD,WAAW,GAAG,SAAS,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAC7F,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;YACnC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC;YAClD,OAAO,EAAE,WAAW;SACrB;KACF,CAAC,CAAA;IAEF,kBAAkB;IAClB,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO;WAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM;WAC5B,CAAC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK;WAC1C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAA;IAEnC,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;QACzG,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACxC,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,WAAW;gBACrB,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;gBAClC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;aACrD;SACF,CAAC,CAAA;QACF,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,OAAO,EACxD,MAAM,EACN,OAAO,CAAC,KAAK,EACb,EAAE,IAAI,EAAE,CACT,CAAA;IAED,yCAAyC;IACzC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAa,EAAE,MAA6B;IAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC5C,CAAC,CAAC,QAAQ,CAAC,IAAI;QACf,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAM;IAExB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrB,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,OAAO,EACxD,MAAM,EACN,OAAO,CAAC,KAAK,EACb;QACE,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;oBAC9B,MAAM,EAAE,WAAW;iBACpB;aACF,CAAC;KACH,CACF,CAAA;IAED,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACvC,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,QAAa,EACb,MAA6B,EAC7B,SAAqB,QAAQ;IAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAA;IACrC,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,sBAAsB;IACtB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrB,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,OAAO,EACxD,MAAM,EACN,OAAO,CAAC,KAAK,EACb;QACE,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE;oBACN,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,+BAA+B;iBAC5F;aACF,CAAC;KACH,CACF,CAAA;IAED,2BAA2B;IAC3B,MAAM,OAAO,CACX,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,EAAE,EACnD,OAAO,EACP,OAAO,CAAC,KAAK,EACb;QACE,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CACF,CAAA;IAED,wBAAwB;IACxB,kBAAkB,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED,kBAAkB;AAElB,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;QACxC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;QAC3B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;KAClC,CAAA;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAA;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAA8B;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IACjF,MAAM,SAAS,GAA4B,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAClD,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACjF,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAc;IAC3C,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAkC;IAChF,IAAI,OAAe,CAAA;IACnB,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAA;AAChD,CAAC;AAED,2BAA2B;AAE3B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,SAAkB;IACrE,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0CAA0C;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,4BAA4B;QAC5B,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAA;QAC7B,IAAI,QAAQ,GAAQ,EAAE,CAAA;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAChD,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAEtC,mBAAmB;QACnB,QAAQ,KAAkB,EAAE,CAAC;YAC3B,KAAK,eAAe;gBAClB,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAClD,MAAK;YACP,KAAK,UAAU;gBACb,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACrC,MAAK;YACP,KAAK,gBAAgB;gBACnB,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC3C,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC1C,MAAK;YACP;gBACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,IAAI,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wDAAwD;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|