@memnexus-ai/cli 1.7.123 → 1.7.124
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/commands/hook.js +2 -15
- package/dist/commands/hook.js.map +1 -1
- package/dist/lib/commit-context/git-reader.d.ts +1 -26
- package/dist/lib/commit-context/git-reader.d.ts.map +1 -1
- package/dist/lib/commit-context/git-reader.js +10 -139
- package/dist/lib/commit-context/git-reader.js.map +1 -1
- package/dist/lib/commit-context/types.d.ts +0 -2
- package/dist/lib/commit-context/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/commands/hook.js
CHANGED
|
@@ -75,7 +75,7 @@ async function handlePostCommit(options) {
|
|
|
75
75
|
const shouldSync = options.sync !== false; // default true
|
|
76
76
|
const summarizer = options.summarizer || 'llm';
|
|
77
77
|
// 1. Read git context
|
|
78
|
-
const git =
|
|
78
|
+
const git = (0, commit_context_1.readGitContext)(cwd);
|
|
79
79
|
// 2. Check if trivial
|
|
80
80
|
const { trivial, reason } = (0, commit_context_1.isTrivialCommit)(git);
|
|
81
81
|
if (trivial) {
|
|
@@ -237,20 +237,7 @@ async function callCommitContextApi(git, session, diff, transcript) {
|
|
|
237
237
|
const apiUrl = config_1.config.getApiUrl();
|
|
238
238
|
const apiKey = config_1.config.getApiKey();
|
|
239
239
|
const response = await axios_1.default.post(`${apiUrl}/api/commit-context`, {
|
|
240
|
-
git
|
|
241
|
-
sha: git.sha,
|
|
242
|
-
shortSha: git.shortSha,
|
|
243
|
-
branch: git.branch,
|
|
244
|
-
message: git.message,
|
|
245
|
-
author: git.author,
|
|
246
|
-
timestamp: git.timestamp,
|
|
247
|
-
filesChanged: git.filesChanged,
|
|
248
|
-
insertions: git.insertions,
|
|
249
|
-
deletions: git.deletions,
|
|
250
|
-
isMergeCommit: git.isMergeCommit,
|
|
251
|
-
prDescription: git.prDescription,
|
|
252
|
-
prNumber: git.prNumber,
|
|
253
|
-
},
|
|
240
|
+
git,
|
|
254
241
|
session: session
|
|
255
242
|
? {
|
|
256
243
|
agent: session.agent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,oDAwBC;AA5CD,kDAA0B;AAC1B,0CAAuC;AACvC,0DAe+B;AAG/B,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEtE,IAAI;SACD,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,sEAAsE;gBACtE,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAM/B;IACC,uFAAuF;IACvF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,eAAe;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;IAE/C,sBAAsB;IACtB,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,36 +6,11 @@ export declare function parseShortStat(stat: string): {
|
|
|
6
6
|
insertions: number;
|
|
7
7
|
deletions: number;
|
|
8
8
|
};
|
|
9
|
-
/**
|
|
10
|
-
* Parse a git remote URL and extract owner/repo for GitHub remotes.
|
|
11
|
-
*
|
|
12
|
-
* Supported formats:
|
|
13
|
-
* SSH: git@github.com:owner/repo.git
|
|
14
|
-
* HTTPS: https://github.com/owner/repo.git
|
|
15
|
-
* HTTPS: https://github.com/owner/repo
|
|
16
|
-
*
|
|
17
|
-
* Returns null for non-GitHub remotes (gitlab, bitbucket, custom) or on parse failure.
|
|
18
|
-
*/
|
|
19
|
-
export declare function parseGitRemoteUrl(url: string): {
|
|
20
|
-
owner: string;
|
|
21
|
-
repo: string;
|
|
22
|
-
} | null;
|
|
23
|
-
/**
|
|
24
|
-
* Fetch the open PR description for a branch from the GitHub API.
|
|
25
|
-
*
|
|
26
|
-
* Returns undefined (graceful no-op) on any error, non-2xx response,
|
|
27
|
-
* no matching PR, or if the sanitized body is too short (<50 non-whitespace chars).
|
|
28
|
-
* Caps output at 500 characters with a 3-second timeout.
|
|
29
|
-
*/
|
|
30
|
-
export declare function fetchPrDescription(owner: string, repo: string, branch: string, token: string): Promise<{
|
|
31
|
-
body: string;
|
|
32
|
-
prNumber: number;
|
|
33
|
-
} | undefined>;
|
|
34
9
|
/**
|
|
35
10
|
* Read git context for the most recent commit.
|
|
36
11
|
* @param cwd - Working directory (defaults to process.cwd())
|
|
37
12
|
*/
|
|
38
|
-
export declare function readGitContext(cwd?: string):
|
|
13
|
+
export declare function readGitContext(cwd?: string): GitContext;
|
|
39
14
|
/**
|
|
40
15
|
* Read the actual diff content for the most recent commit, truncated to maxLines.
|
|
41
16
|
* Privacy filter is applied to strip secrets from diff output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED
|
|
1
|
+
{"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,UAAU,CAyEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAc3F"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseShortStat = parseShortStat;
|
|
4
|
-
exports.parseGitRemoteUrl = parseGitRemoteUrl;
|
|
5
|
-
exports.fetchPrDescription = fetchPrDescription;
|
|
6
4
|
exports.readGitContext = readGitContext;
|
|
7
5
|
exports.readDiffContent = readDiffContent;
|
|
8
6
|
/**
|
|
@@ -29,129 +27,25 @@ function parseShortStat(stat) {
|
|
|
29
27
|
deletions: del ? parseInt(del[1], 10) : 0,
|
|
30
28
|
};
|
|
31
29
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Parse a git remote URL and extract owner/repo for GitHub remotes.
|
|
34
|
-
*
|
|
35
|
-
* Supported formats:
|
|
36
|
-
* SSH: git@github.com:owner/repo.git
|
|
37
|
-
* HTTPS: https://github.com/owner/repo.git
|
|
38
|
-
* HTTPS: https://github.com/owner/repo
|
|
39
|
-
*
|
|
40
|
-
* Returns null for non-GitHub remotes (gitlab, bitbucket, custom) or on parse failure.
|
|
41
|
-
*/
|
|
42
|
-
function parseGitRemoteUrl(url) {
|
|
43
|
-
if (!url)
|
|
44
|
-
return null;
|
|
45
|
-
const trimmed = url.trim();
|
|
46
|
-
// SSH format: git@github.com:owner/repo.git
|
|
47
|
-
const sshMatch = trimmed.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
48
|
-
if (sshMatch) {
|
|
49
|
-
return { owner: sshMatch[1], repo: sshMatch[2] };
|
|
50
|
-
}
|
|
51
|
-
// HTTPS format: https://github.com/owner/repo[.git]
|
|
52
|
-
const httpsMatch = trimmed.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
53
|
-
if (httpsMatch) {
|
|
54
|
-
return { owner: httpsMatch[1], repo: httpsMatch[2] };
|
|
55
|
-
}
|
|
56
|
-
// Non-GitHub remote or unparseable
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Fetch the open PR description for a branch from the GitHub API.
|
|
61
|
-
*
|
|
62
|
-
* Returns undefined (graceful no-op) on any error, non-2xx response,
|
|
63
|
-
* no matching PR, or if the sanitized body is too short (<50 non-whitespace chars).
|
|
64
|
-
* Caps output at 500 characters with a 3-second timeout.
|
|
65
|
-
*/
|
|
66
|
-
async function fetchPrDescription(owner, repo, branch, token) {
|
|
67
|
-
const controller = new AbortController();
|
|
68
|
-
const timeoutId = setTimeout(() => controller.abort(), 3000);
|
|
69
|
-
try {
|
|
70
|
-
// GitHub REST API does not support draft=false as a query param — filter client-side
|
|
71
|
-
const url = `https://api.github.com/repos/${owner}/${repo}/pulls?head=${owner}:${branch}&state=open`;
|
|
72
|
-
const response = await fetch(url, {
|
|
73
|
-
headers: {
|
|
74
|
-
Authorization: `Bearer ${token}`,
|
|
75
|
-
Accept: 'application/vnd.github+json',
|
|
76
|
-
},
|
|
77
|
-
signal: controller.signal,
|
|
78
|
-
});
|
|
79
|
-
if (!response.ok) {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
const data = (await response.json());
|
|
83
|
-
if (!Array.isArray(data) || data.length === 0) {
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
// Skip draft PRs — their descriptions are work-in-progress and low-quality signal
|
|
87
|
-
const pr = data.find((p) => !p.draft);
|
|
88
|
-
if (!pr) {
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
const rawBody = pr.body;
|
|
92
|
-
if (!rawBody) {
|
|
93
|
-
return undefined;
|
|
94
|
-
}
|
|
95
|
-
// Sanitize: strip markdown headers, strip HTML comments, collapse blank lines
|
|
96
|
-
let sanitized = rawBody
|
|
97
|
-
.replace(/^#{1,6}\s.*$/gm, '') // strip markdown headers
|
|
98
|
-
.replace(/<!--[\s\S]*?-->/g, '') // strip HTML comments
|
|
99
|
-
.replace(/\n{3,}/g, '\n\n') // collapse multiple blank lines
|
|
100
|
-
.trim();
|
|
101
|
-
// Minimum content check: at least 50 non-whitespace characters
|
|
102
|
-
const nonWhitespaceCount = sanitized.replace(/\s/g, '').length;
|
|
103
|
-
if (nonWhitespaceCount < 50) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
// Cap at 500 characters, truncating at word boundary if possible
|
|
107
|
-
if (sanitized.length > 500) {
|
|
108
|
-
const truncated = sanitized.slice(0, 500);
|
|
109
|
-
const lastSpace = truncated.lastIndexOf(' ');
|
|
110
|
-
sanitized = lastSpace > 400 ? truncated.slice(0, lastSpace) : truncated;
|
|
111
|
-
}
|
|
112
|
-
return { body: sanitized, prNumber: pr.number };
|
|
113
|
-
}
|
|
114
|
-
catch {
|
|
115
|
-
// Network error, timeout, JSON parse failure — graceful no-op
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
finally {
|
|
119
|
-
clearTimeout(timeoutId);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
30
|
/**
|
|
123
31
|
* Read git context for the most recent commit.
|
|
124
32
|
* @param cwd - Working directory (defaults to process.cwd())
|
|
125
33
|
*/
|
|
126
|
-
|
|
34
|
+
function readGitContext(cwd = process.cwd()) {
|
|
127
35
|
const sha = git(['rev-parse', 'HEAD'], cwd);
|
|
128
36
|
const shortSha = sha.slice(0, 7);
|
|
129
37
|
let branch = git(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
|
|
130
38
|
if (branch === 'HEAD') {
|
|
131
|
-
// Detached HEAD state
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
branch =
|
|
39
|
+
// Detached HEAD state (e.g. during git rebase) — resolve via name-rev
|
|
40
|
+
try {
|
|
41
|
+
branch = git(['name-rev', '--name-only', '--no-undefined', 'HEAD'], cwd);
|
|
42
|
+
// name-rev may append '~N' and/or '^N' suffixes for indirect refs — strip all
|
|
43
|
+
branch = branch.replace(/([~^]\d*)+$/, '');
|
|
44
|
+
// name-rev may resolve to a remote tracking ref — strip 'remotes/<remote>/' prefix
|
|
45
|
+
branch = branch.replace(/^remotes\/[^/]+\//, '');
|
|
136
46
|
}
|
|
137
|
-
|
|
138
|
-
//
|
|
139
|
-
try {
|
|
140
|
-
const nameRevResult = git(['name-rev', '--name-only', '--no-undefined', 'HEAD'], cwd);
|
|
141
|
-
// name-rev may append '~N' and/or '^N' suffixes for indirect refs — strip all
|
|
142
|
-
const resolved = nameRevResult
|
|
143
|
-
.replace(/([~^]\d*)+$/, '')
|
|
144
|
-
// name-rev may resolve to a remote tracking ref — strip 'remotes/<remote>/' prefix
|
|
145
|
-
.replace(/^remotes\/[^/]+\//, '');
|
|
146
|
-
// Only use if name-rev actually resolved to something meaningful
|
|
147
|
-
// (shallow clones can return 'HEAD~0' → strips to 'HEAD')
|
|
148
|
-
if (resolved && resolved !== 'HEAD' && resolved !== 'undefined') {
|
|
149
|
-
branch = resolved;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
// name-rev also failed — keep 'HEAD'
|
|
154
|
-
}
|
|
47
|
+
catch {
|
|
48
|
+
// name-rev also failed (no tags/branches reachable) — keep 'HEAD'
|
|
155
49
|
}
|
|
156
50
|
}
|
|
157
51
|
const message = git(['log', '-1', '--format=%s'], cwd);
|
|
@@ -199,27 +93,6 @@ async function readGitContext(cwd = process.cwd()) {
|
|
|
199
93
|
catch {
|
|
200
94
|
// Not a merge commit (HEAD^2 doesn't exist)
|
|
201
95
|
}
|
|
202
|
-
// Fetch PR metadata from GitHub if GITHUB_TOKEN is available
|
|
203
|
-
let prDescription;
|
|
204
|
-
let prNumber;
|
|
205
|
-
const githubToken = process.env.GITHUB_TOKEN;
|
|
206
|
-
if (githubToken && branch && branch !== 'HEAD') {
|
|
207
|
-
try {
|
|
208
|
-
// Parse owner/repo from git remote URL
|
|
209
|
-
const remoteUrl = git(['remote', 'get-url', 'origin'], cwd);
|
|
210
|
-
const repoCoords = parseGitRemoteUrl(remoteUrl);
|
|
211
|
-
if (repoCoords) {
|
|
212
|
-
const prMeta = await fetchPrDescription(repoCoords.owner, repoCoords.repo, branch, githubToken);
|
|
213
|
-
if (prMeta) {
|
|
214
|
-
prDescription = prMeta.body;
|
|
215
|
-
prNumber = prMeta.prNumber;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
catch {
|
|
220
|
-
// Graceful no-op — PR metadata is best-effort
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
96
|
return {
|
|
224
97
|
sha,
|
|
225
98
|
shortSha,
|
|
@@ -231,8 +104,6 @@ async function readGitContext(cwd = process.cwd()) {
|
|
|
231
104
|
insertions,
|
|
232
105
|
deletions,
|
|
233
106
|
isMergeCommit,
|
|
234
|
-
prDescription,
|
|
235
|
-
prNumber,
|
|
236
107
|
};
|
|
237
108
|
}
|
|
238
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":";;AAmBA,wCAOC;
|
|
1
|
+
{"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,6 @@ export interface GitContext {
|
|
|
13
13
|
insertions: number;
|
|
14
14
|
deletions: number;
|
|
15
15
|
isMergeCommit: boolean;
|
|
16
|
-
prDescription?: string;
|
|
17
|
-
prNumber?: number;
|
|
18
16
|
}
|
|
19
17
|
/** Parsed info from a single tool call in a session transcript */
|
|
20
18
|
export interface ToolCallInfo {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|