@webannotates/code-agent-runner-core 0.1.0 → 0.2.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/README.md +1 -1
- package/dist/providers.d.ts +2 -0
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +46 -19
- package/dist/providers.js.map +1 -1
- package/dist/runner.d.ts +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +15 -3
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# WebAnnotate Code-Agent Runner Core
|
|
2
2
|
|
|
3
|
-
Shared engine for polling, capability detection, isolated worktrees, Codex
|
|
3
|
+
Shared engine for polling, capability detection, isolated worktrees, Codex, Claude Code, OpenCode, and GitHub Copilot CLI execution, validation, push handling, and the local-only job ledger.
|
package/dist/providers.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { AgentExecutionResult, CodeAgentMode, CodeAgentProvider } from './types.js';
|
|
2
2
|
export declare function runCodex(cwd: string, prompt: string, mode: CodeAgentMode, onProgress?: (message: string) => void): Promise<AgentExecutionResult>;
|
|
3
3
|
export declare function runClaude(cwd: string, prompt: string, mode: CodeAgentMode, onProgress?: (message: string) => void): Promise<AgentExecutionResult>;
|
|
4
|
+
export declare function runOpenCode(cwd: string, prompt: string, mode: CodeAgentMode, onProgress?: (message: string) => void): Promise<AgentExecutionResult>;
|
|
5
|
+
export declare function runCopilot(cwd: string, prompt: string, mode: CodeAgentMode, onProgress?: (message: string) => void): Promise<AgentExecutionResult>;
|
|
4
6
|
export declare function runProvider(provider: CodeAgentProvider, cwd: string, prompt: string, mode: CodeAgentMode, onProgress?: (message: string) => void): Promise<AgentExecutionResult>;
|
|
5
7
|
//# sourceMappingURL=providers.d.ts.map
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAoBxF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAatJ;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CASvJ;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAYzJ;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CASxJ;AASD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,iCAIhJ"}
|
package/dist/providers.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { runCommand } from './process.js';
|
|
2
|
-
function
|
|
2
|
+
function jsonFinalMessage(stdout) {
|
|
3
3
|
let final = '';
|
|
4
4
|
for (const line of stdout.split(/\r?\n/)) {
|
|
5
5
|
try {
|
|
6
6
|
const event = JSON.parse(line);
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const candidate = event.item?.type === 'agent_message'
|
|
8
|
+
? event.item.text
|
|
9
|
+
: event.part?.type === 'text'
|
|
10
|
+
? event.part.text
|
|
11
|
+
: event.message?.content || event.result || event.text;
|
|
12
|
+
if (typeof candidate === 'string' && candidate.trim())
|
|
13
|
+
final = candidate;
|
|
9
14
|
}
|
|
10
15
|
catch {
|
|
11
16
|
// Ignore non-JSON diagnostic lines.
|
|
@@ -15,7 +20,7 @@ function codexFinalMessage(stdout) {
|
|
|
15
20
|
}
|
|
16
21
|
export async function runCodex(cwd, prompt, mode, onProgress) {
|
|
17
22
|
const sandbox = mode === 'plan' ? 'read-only' : 'workspace-write';
|
|
18
|
-
const result = await runCommand('codex', ['exec', '--json', '--sandbox', sandbox, prompt], {
|
|
23
|
+
const result = await runCommand('codex', ['-a', 'never', 'exec', '--json', '--sandbox', sandbox, prompt], {
|
|
19
24
|
cwd,
|
|
20
25
|
timeoutMs: 60 * 60_000,
|
|
21
26
|
onLine: line => {
|
|
@@ -29,7 +34,7 @@ export async function runCodex(cwd, prompt, mode, onProgress) {
|
|
|
29
34
|
});
|
|
30
35
|
if (result.code !== 0)
|
|
31
36
|
throw new Error(result.stderr.trim() || 'Codex exited before completing the task.');
|
|
32
|
-
return { finalMessage:
|
|
37
|
+
return { finalMessage: jsonFinalMessage(result.stdout), rawOutput: result.stdout };
|
|
33
38
|
}
|
|
34
39
|
export async function runClaude(cwd, prompt, mode, onProgress) {
|
|
35
40
|
const permissionMode = mode === 'plan' ? 'plan' : 'acceptEdits';
|
|
@@ -40,21 +45,43 @@ export async function runClaude(cwd, prompt, mode, onProgress) {
|
|
|
40
45
|
});
|
|
41
46
|
if (result.code !== 0)
|
|
42
47
|
throw new Error(result.stderr.trim() || 'Claude Code exited before completing the task.');
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
return { finalMessage: jsonFinalMessage(result.stdout), rawOutput: result.stdout };
|
|
49
|
+
}
|
|
50
|
+
export async function runOpenCode(cwd, prompt, mode, onProgress) {
|
|
51
|
+
const permission = mode === 'plan'
|
|
52
|
+
? { '*': 'deny', read: 'allow', glob: 'allow', grep: 'allow', lsp: 'allow' }
|
|
53
|
+
: { '*': 'allow', question: 'deny', external_directory: 'deny' };
|
|
54
|
+
const result = await runCommand('opencode', ['run', '--format', 'json', prompt], {
|
|
55
|
+
cwd,
|
|
56
|
+
timeoutMs: 60 * 60_000,
|
|
57
|
+
env: { OPENCODE_PERMISSION: JSON.stringify(permission) },
|
|
58
|
+
onLine: () => onProgress?.('OpenCode is working'),
|
|
59
|
+
});
|
|
60
|
+
if (result.code !== 0)
|
|
61
|
+
throw new Error(result.stderr.trim() || 'OpenCode exited before completing the task.');
|
|
62
|
+
return { finalMessage: jsonFinalMessage(result.stdout), rawOutput: result.stdout };
|
|
63
|
+
}
|
|
64
|
+
export async function runCopilot(cwd, prompt, mode, onProgress) {
|
|
65
|
+
const permissions = mode === 'plan' ? 'read' : 'read,write,shell';
|
|
66
|
+
const result = await runCommand('copilot', ['-p', prompt, '-s', '--no-ask-user', `--allow-tool=${permissions}`], {
|
|
67
|
+
cwd,
|
|
68
|
+
timeoutMs: 60 * 60_000,
|
|
69
|
+
onLine: () => onProgress?.('GitHub Copilot CLI is working'),
|
|
70
|
+
});
|
|
71
|
+
if (result.code !== 0)
|
|
72
|
+
throw new Error(result.stderr.trim() || 'GitHub Copilot CLI exited before completing the task.');
|
|
73
|
+
return { finalMessage: result.stdout.trim(), rawOutput: result.stdout };
|
|
52
74
|
}
|
|
75
|
+
const localProviderRegistry = {
|
|
76
|
+
local_codex: runCodex,
|
|
77
|
+
local_claude: runClaude,
|
|
78
|
+
local_opencode: runOpenCode,
|
|
79
|
+
local_copilot: runCopilot,
|
|
80
|
+
};
|
|
53
81
|
export function runProvider(provider, cwd, prompt, mode, onProgress) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
throw new Error(`Unsupported local provider: ${provider}`);
|
|
82
|
+
const adapter = localProviderRegistry[provider];
|
|
83
|
+
if (!adapter)
|
|
84
|
+
throw new Error(`Unsupported local provider: ${provider}`);
|
|
85
|
+
return adapter(cwd, prompt, mode, onProgress);
|
|
59
86
|
}
|
|
60
87
|
//# sourceMappingURL=providers.js.map
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,SAAS,
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RunnerCapabilities, RunnerConfig } from './types.js';
|
|
2
|
-
export declare const RUNNER_VERSION = "0.
|
|
2
|
+
export declare const RUNNER_VERSION = "0.2.0";
|
|
3
3
|
export declare function detectCapabilities(config?: RunnerConfig): Promise<RunnerCapabilities>;
|
|
4
4
|
export declare function diagnose(config: RunnerConfig): Promise<{
|
|
5
5
|
capabilities: RunnerCapabilities;
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;AAE7E,eAAO,MAAM,cAAc,UAAU,CAAA;AAErC,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;AAE7E,eAAO,MAAM,cAAc,UAAU,CAAA;AAErC,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgD3F;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,YAAY;;;cAEN,MAAM;eAAS,OAAO;gBAAU,MAAM;;;;GAUlF;AA6CD,qBAAa,oBAAoB;IAInB,OAAO,CAAC,MAAM;IAAgB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHlE,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAEnB,MAAM,EAAE,YAAY,EAAmB,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAsB;IAE/H,IAAI;IAKE,GAAG;CAkCV;AAED,wBAAgB,iBAAiB,WAEhC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAE5C"}
|
package/dist/runner.js
CHANGED
|
@@ -6,20 +6,25 @@ import { changedFiles, commitAndPush, prepareWorkspace, removePlanWorkspace, val
|
|
|
6
6
|
import { commandAvailable, runCommand } from './process.js';
|
|
7
7
|
import { runProvider } from './providers.js';
|
|
8
8
|
import { cleanupExpiredWorktrees, recordLocalJob } from './local-jobs.js';
|
|
9
|
-
export const RUNNER_VERSION = '0.
|
|
9
|
+
export const RUNNER_VERSION = '0.2.0';
|
|
10
10
|
export async function detectCapabilities(config) {
|
|
11
|
-
const [codexInstalled, claudeInstalled, git] = await Promise.all([
|
|
11
|
+
const [codexInstalled, claudeInstalled, opencodeInstalled, copilotInstalled, git] = await Promise.all([
|
|
12
12
|
commandAvailable('codex'),
|
|
13
13
|
commandAvailable('claude'),
|
|
14
|
+
commandAvailable('opencode'),
|
|
15
|
+
commandAvailable('copilot'),
|
|
14
16
|
commandAvailable('git'),
|
|
15
17
|
]);
|
|
16
|
-
const [codexAuthenticated, claudeAuthenticated] = await Promise.all([
|
|
18
|
+
const [codexAuthenticated, claudeAuthenticated, opencodeAuthenticated] = await Promise.all([
|
|
17
19
|
codexInstalled
|
|
18
20
|
? runCommand('codex', ['login', 'status'], { timeoutMs: 15_000 }).then(result => result.code === 0).catch(() => false)
|
|
19
21
|
: false,
|
|
20
22
|
claudeInstalled
|
|
21
23
|
? runCommand('claude', ['auth', 'status', '--json'], { timeoutMs: 15_000 }).then(result => result.code === 0).catch(() => false)
|
|
22
24
|
: false,
|
|
25
|
+
opencodeInstalled
|
|
26
|
+
? runCommand('opencode', ['auth', 'list'], { timeoutMs: 15_000 }).then(result => result.code === 0).catch(() => false)
|
|
27
|
+
: false,
|
|
23
28
|
]);
|
|
24
29
|
const repositories = [];
|
|
25
30
|
if (git && config) {
|
|
@@ -40,6 +45,11 @@ export async function detectCapabilities(config) {
|
|
|
40
45
|
claude: claudeInstalled && claudeAuthenticated,
|
|
41
46
|
claudeInstalled,
|
|
42
47
|
claudeAuthenticated,
|
|
48
|
+
opencode: opencodeInstalled && opencodeAuthenticated,
|
|
49
|
+
opencodeInstalled,
|
|
50
|
+
opencodeAuthenticated,
|
|
51
|
+
copilot: copilotInstalled,
|
|
52
|
+
copilotInstalled,
|
|
43
53
|
git,
|
|
44
54
|
githubPush: git,
|
|
45
55
|
repositories,
|
|
@@ -83,6 +93,8 @@ async function executeJob(client, config, job) {
|
|
|
83
93
|
return;
|
|
84
94
|
}
|
|
85
95
|
const files = await changedFiles(workspace.cwd);
|
|
96
|
+
if (!files.length)
|
|
97
|
+
throw new Error('Agent completed without changing files.');
|
|
86
98
|
const validationOutput = await validateChanges(workspace.cwd);
|
|
87
99
|
let commitSha;
|
|
88
100
|
if (job.mode === 'fix_pr') {
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClI,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGzE,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAqB;IAC5D,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type CodeAgentProvider = 'github_copilot' | 'local_codex' | 'local_claude';
|
|
1
|
+
export type CodeAgentProvider = 'github_copilot' | 'local_codex' | 'local_claude' | 'local_opencode' | 'local_copilot';
|
|
2
2
|
export type CodeAgentMode = 'plan' | 'fix' | 'fix_pr';
|
|
3
3
|
export type CodeAgentJobStatus = 'queued' | 'claimed' | 'running' | 'completed' | 'failed' | 'cancelled' | 'expired';
|
|
4
4
|
export type RunnerCapabilities = {
|
|
@@ -8,6 +8,11 @@ export type RunnerCapabilities = {
|
|
|
8
8
|
claude: boolean;
|
|
9
9
|
claudeInstalled: boolean;
|
|
10
10
|
claudeAuthenticated: boolean;
|
|
11
|
+
opencode: boolean;
|
|
12
|
+
opencodeInstalled: boolean;
|
|
13
|
+
opencodeAuthenticated: boolean;
|
|
14
|
+
copilot: boolean;
|
|
15
|
+
copilotInstalled: boolean;
|
|
11
16
|
git: boolean;
|
|
12
17
|
githubPush: boolean;
|
|
13
18
|
repositories: string[];
|
|
@@ -20,6 +25,8 @@ export type RunnerJob = {
|
|
|
20
25
|
annotationId: string;
|
|
21
26
|
provider: CodeAgentProvider;
|
|
22
27
|
mode: CodeAgentMode;
|
|
28
|
+
jobKind?: 'code_fix' | 'regression_test';
|
|
29
|
+
sourceJobId?: string | null;
|
|
23
30
|
status: CodeAgentJobStatus;
|
|
24
31
|
repository: string;
|
|
25
32
|
targetBranch: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,GAAG,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAA;AACtH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;AACrD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;AAEpH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,qBAAqB,EAAE,OAAO,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,OAAO,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA"}
|