@tagma/sdk 0.4.2 → 0.4.3

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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/stdin-approval.d.ts +6 -0
  3. package/dist/adapters/stdin-approval.d.ts.map +1 -0
  4. package/dist/adapters/stdin-approval.js +90 -0
  5. package/dist/adapters/stdin-approval.js.map +1 -0
  6. package/dist/adapters/websocket-approval.d.ts +28 -0
  7. package/dist/adapters/websocket-approval.d.ts.map +1 -0
  8. package/dist/adapters/websocket-approval.js +145 -0
  9. package/dist/adapters/websocket-approval.js.map +1 -0
  10. package/dist/approval.d.ts +13 -0
  11. package/dist/approval.d.ts.map +1 -0
  12. package/dist/approval.js +91 -0
  13. package/dist/approval.js.map +1 -0
  14. package/dist/bootstrap.d.ts +2 -0
  15. package/dist/bootstrap.d.ts.map +1 -0
  16. package/dist/bootstrap.js +30 -0
  17. package/dist/bootstrap.js.map +1 -0
  18. package/dist/completions/exit-code.d.ts +3 -0
  19. package/dist/completions/exit-code.d.ts.map +1 -0
  20. package/dist/completions/exit-code.js +25 -0
  21. package/dist/completions/exit-code.js.map +1 -0
  22. package/dist/completions/file-exists.d.ts +3 -0
  23. package/dist/completions/file-exists.d.ts.map +1 -0
  24. package/dist/completions/file-exists.js +58 -0
  25. package/dist/completions/file-exists.js.map +1 -0
  26. package/dist/completions/output-check.d.ts +3 -0
  27. package/dist/completions/output-check.d.ts.map +1 -0
  28. package/dist/completions/output-check.js +81 -0
  29. package/dist/completions/output-check.js.map +1 -0
  30. package/dist/config-ops.d.ts +55 -0
  31. package/dist/config-ops.d.ts.map +1 -0
  32. package/dist/config-ops.js +258 -0
  33. package/dist/config-ops.js.map +1 -0
  34. package/dist/dag.d.ts +46 -0
  35. package/dist/dag.d.ts.map +1 -0
  36. package/dist/dag.js +193 -0
  37. package/dist/dag.js.map +1 -0
  38. package/dist/drivers/claude-code.d.ts +3 -0
  39. package/dist/drivers/claude-code.d.ts.map +1 -0
  40. package/dist/drivers/claude-code.js +210 -0
  41. package/dist/drivers/claude-code.js.map +1 -0
  42. package/dist/engine.d.ts +89 -0
  43. package/dist/engine.d.ts.map +1 -0
  44. package/dist/engine.js +815 -0
  45. package/dist/engine.js.map +1 -0
  46. package/dist/hooks.d.ts +73 -0
  47. package/dist/hooks.d.ts.map +1 -0
  48. package/dist/hooks.js +103 -0
  49. package/dist/hooks.js.map +1 -0
  50. package/dist/logger.d.ts +61 -0
  51. package/dist/logger.d.ts.map +1 -0
  52. package/dist/logger.js +151 -0
  53. package/dist/logger.js.map +1 -0
  54. package/dist/middlewares/static-context.d.ts +3 -0
  55. package/dist/middlewares/static-context.d.ts.map +1 -0
  56. package/dist/middlewares/static-context.js +36 -0
  57. package/dist/middlewares/static-context.js.map +1 -0
  58. package/dist/pipeline-runner.d.ts +50 -0
  59. package/dist/pipeline-runner.d.ts.map +1 -0
  60. package/dist/pipeline-runner.js +139 -0
  61. package/dist/pipeline-runner.js.map +1 -0
  62. package/dist/registry.d.ts +43 -0
  63. package/dist/registry.d.ts.map +1 -0
  64. package/dist/registry.js +182 -0
  65. package/dist/registry.js.map +1 -0
  66. package/dist/runner.d.ts +19 -0
  67. package/dist/runner.d.ts.map +1 -0
  68. package/dist/runner.js +364 -0
  69. package/dist/runner.js.map +1 -0
  70. package/dist/schema.d.ts +27 -0
  71. package/dist/schema.d.ts.map +1 -0
  72. package/dist/schema.js +373 -0
  73. package/dist/schema.js.map +1 -0
  74. package/dist/sdk.d.ts +27 -0
  75. package/dist/sdk.d.ts.map +1 -0
  76. package/dist/sdk.js +33 -0
  77. package/dist/sdk.js.map +1 -0
  78. package/dist/templates.d.ts +20 -0
  79. package/dist/templates.d.ts.map +1 -0
  80. package/dist/templates.js +93 -0
  81. package/dist/templates.js.map +1 -0
  82. package/dist/triggers/file.d.ts +3 -0
  83. package/dist/triggers/file.d.ts.map +1 -0
  84. package/dist/triggers/file.js +123 -0
  85. package/dist/triggers/file.js.map +1 -0
  86. package/dist/triggers/manual.d.ts +3 -0
  87. package/dist/triggers/manual.d.ts.map +1 -0
  88. package/dist/triggers/manual.js +73 -0
  89. package/dist/triggers/manual.js.map +1 -0
  90. package/dist/types.d.ts +4 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +14 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/utils.d.ts +14 -0
  95. package/dist/utils.d.ts.map +1 -0
  96. package/dist/utils.js +138 -0
  97. package/dist/utils.js.map +1 -0
  98. package/dist/validate-raw.d.ts +26 -0
  99. package/dist/validate-raw.d.ts.map +1 -0
  100. package/dist/validate-raw.js +260 -0
  101. package/dist/validate-raw.js.map +1 -0
  102. package/package.json +26 -17
  103. package/src/approval.ts +5 -3
  104. package/src/registry.ts +214 -214
  105. package/scripts/preinstall.js +0 -38
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DriverPlugin } from '../types';
2
+ export declare const ClaudeCodeDriver: DriverPlugin;
3
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/drivers/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,UAAU,CAAC;AAgIlB,eAAO,MAAM,gBAAgB,EAAE,YA8F9B,CAAC"}
@@ -0,0 +1,210 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { isAbsolute, relative, dirname, join } from 'node:path';
3
+ // Claude Code CLI reference: https://code.claude.com/docs/en/cli-reference
4
+ const MODEL_MAP = {
5
+ high: 'opus', medium: 'sonnet', low: 'haiku',
6
+ };
7
+ function resolveModel(tier) {
8
+ return MODEL_MAP[tier] ?? 'sonnet';
9
+ }
10
+ function resolveTools(permissions) {
11
+ const tools = ['Grep', 'Glob'];
12
+ if (permissions.read)
13
+ tools.push('Read');
14
+ if (permissions.write)
15
+ tools.push('Edit', 'Write');
16
+ if (permissions.execute)
17
+ tools.push('Bash');
18
+ return tools.join(',');
19
+ }
20
+ // Maps our Permissions to Claude Code's --permission-mode. In print (-p) mode
21
+ // Claude needs non-interactive permission handling:
22
+ // - `bypassPermissions` skips all checks (required for reliable Bash automation
23
+ // under `execute: true`, matches the "full trust" semantics of that tier).
24
+ // - `dontAsk` auto-denies anything outside `--allowedTools`, which is exactly
25
+ // what we want for read/write tiers: the allowedTools whitelist already
26
+ // enumerates what Claude may do, and dontAsk makes violations fail fast
27
+ // instead of hanging on a prompt no one can answer in headless mode.
28
+ // See: https://code.claude.com/docs/en/permission-modes
29
+ function resolvePermissionMode(permissions) {
30
+ if (permissions.execute)
31
+ return 'bypassPermissions';
32
+ return 'dontAsk';
33
+ }
34
+ // Returns true if `sub` is inside `root` (or equal to it).
35
+ function isInside(root, sub) {
36
+ const rel = relative(root, sub);
37
+ return rel === '' || (!rel.startsWith('..') && !isAbsolute(rel));
38
+ }
39
+ // Claude Code requires CLAUDE_CODE_GIT_BASH_PATH on Windows pointing to
40
+ // Git Bash (bin\bash.exe under a Git for Windows install). See:
41
+ // https://code.claude.com/docs/en/troubleshooting#windows-claude-code-on-windows-requires-git-bash
42
+ // The path must use native Windows backslashes — forward slashes are rejected
43
+ // by Claude Code's path validation.
44
+ function resolveGitBashEnv() {
45
+ if (process.platform !== 'win32')
46
+ return {};
47
+ // Respect user-provided value if it points to an actual file. If the user
48
+ // set it to a non-existent path, fall through to discovery rather than
49
+ // propagating the broken config.
50
+ const existing = process.env.CLAUDE_CODE_GIT_BASH_PATH;
51
+ if (existing && existsSync(existing))
52
+ return {};
53
+ const discovered = discoverGitBash();
54
+ return discovered ? { CLAUDE_CODE_GIT_BASH_PATH: discovered } : {};
55
+ }
56
+ function discoverGitBash() {
57
+ // Strategy 1: find git.exe in PATH (equivalent to `where.exe git`) and
58
+ // walk up looking for bin\bash.exe under a Git install root. Git for
59
+ // Windows may expose multiple git.exe locations (cmd\git.exe,
60
+ // mingw64\bin\git.exe, mingw64\libexec\git-core\git.exe), so we walk up
61
+ // several levels rather than assuming a fixed depth.
62
+ const gitExe = findExeInPath('git.exe');
63
+ if (gitExe) {
64
+ let dir = dirname(gitExe);
65
+ for (let depth = 0; depth < 5; depth++) {
66
+ const candidate = join(dir, 'bin', 'bash.exe');
67
+ if (existsSync(candidate))
68
+ return candidate;
69
+ const parent = dirname(dir);
70
+ if (parent === dir)
71
+ break;
72
+ dir = parent;
73
+ }
74
+ }
75
+ // Strategy 2: check common Git for Windows install locations.
76
+ // Uses %ProgramFiles%/%LOCALAPPDATA%/%USERPROFILE% env vars so it works on
77
+ // systems where those aren't mapped to C:\ (e.g. localized Windows).
78
+ const programFiles = process.env['ProgramFiles'] ?? 'C:\\Program Files';
79
+ const programFilesX86 = process.env['ProgramFiles(x86)'] ?? 'C:\\Program Files (x86)';
80
+ const localAppData = process.env['LOCALAPPDATA'];
81
+ const userProfile = process.env['USERPROFILE'];
82
+ const candidates = [
83
+ join(programFiles, 'Git', 'bin', 'bash.exe'),
84
+ join(programFilesX86, 'Git', 'bin', 'bash.exe'),
85
+ // Git for Windows user-level install
86
+ localAppData && join(localAppData, 'Programs', 'Git', 'bin', 'bash.exe'),
87
+ // Scoop
88
+ userProfile && join(userProfile, 'scoop', 'apps', 'git', 'current', 'bin', 'bash.exe'),
89
+ // Chocolatey default
90
+ 'C:\\tools\\git\\bin\\bash.exe',
91
+ ].filter((p) => Boolean(p));
92
+ for (const c of candidates) {
93
+ if (existsSync(c))
94
+ return c;
95
+ }
96
+ // Strategy 3: scan PATH for any entry containing "git" (e.g. Git's
97
+ // mingw64/bin or usr/bin already in PATH), walk up to find bash.exe.
98
+ // Catches custom install locations.
99
+ const pathEntries = (process.env.PATH ?? '').split(';');
100
+ for (const entry of pathEntries) {
101
+ if (!/git/i.test(entry))
102
+ continue;
103
+ const normalized = entry.replace(/\//g, '\\').replace(/\\+$/, '');
104
+ const parts = normalized.split('\\');
105
+ for (let depth = 1; depth <= 4; depth++) {
106
+ const root = parts.slice(0, parts.length - depth).join('\\');
107
+ if (!root)
108
+ continue;
109
+ const candidate = root + '\\bin\\bash.exe';
110
+ if (existsSync(candidate))
111
+ return candidate;
112
+ }
113
+ }
114
+ return null;
115
+ }
116
+ function findExeInPath(exe) {
117
+ const pathDirs = (process.env.PATH ?? '').split(';');
118
+ for (const dir of pathDirs) {
119
+ if (!dir)
120
+ continue;
121
+ const full = join(dir, exe);
122
+ if (existsSync(full))
123
+ return full;
124
+ }
125
+ return null;
126
+ }
127
+ export const ClaudeCodeDriver = {
128
+ name: 'claude-code',
129
+ capabilities: {
130
+ sessionResume: true,
131
+ systemPrompt: true,
132
+ outputFormat: true,
133
+ },
134
+ resolveModel,
135
+ resolveTools,
136
+ async buildCommand(task, track, ctx) {
137
+ const permissions = task.permissions ?? track.permissions;
138
+ const model = resolveModel(task.model_tier ?? track.model_tier ?? 'medium');
139
+ const tools = resolveTools(permissions);
140
+ const permissionMode = resolvePermissionMode(permissions);
141
+ // Pass the prompt via stdin instead of as a -p argument value. On Windows,
142
+ // multi-line strings in CLI arguments break cmd.exe argument parsing when
143
+ // the executable is a .cmd wrapper — newlines cause all subsequent flags
144
+ // (--output-format, --model, etc.) to be silently dropped.
145
+ const stdin = task.prompt;
146
+ const args = [
147
+ 'claude',
148
+ '-p', // no value — prompt is piped via stdin
149
+ '--model', model,
150
+ '--allowedTools', tools,
151
+ '--permission-mode', permissionMode,
152
+ '--output-format', 'json',
153
+ // NOTE: do NOT use --verbose here. It changes stdout from a single JSON
154
+ // result object to a JSON event-stream array, breaking parseResult's
155
+ // session_id extraction (needed for continue_from) and normalizedOutput.
156
+ // The engine already captures stdout/stderr for pipeline logs.
157
+ // Pin to project+local settings only; don't inherit arbitrary user-level
158
+ // config (hooks, MCP servers, etc.) into pipeline automation.
159
+ '--setting-sources', 'project,local',
160
+ ];
161
+ // If the task runs in a subdirectory of the project, grant read/edit
162
+ // access to the project root via --add-dir so Claude can still see
163
+ // shared files (configs, types, etc.) outside task.cwd.
164
+ const effectiveCwd = task.cwd ?? ctx.workDir;
165
+ if (effectiveCwd !== ctx.workDir && isInside(ctx.workDir, effectiveCwd)) {
166
+ args.push('--add-dir', ctx.workDir);
167
+ }
168
+ // Native session resume
169
+ if (task.continue_from) {
170
+ const sessionId = ctx.sessionMap.get(task.continue_from);
171
+ if (sessionId) {
172
+ args.push('--resume', sessionId);
173
+ }
174
+ }
175
+ // --append-system-prompt MUST be last: its value may contain newlines,
176
+ // and on Windows cmd.exe can silently drop any flags that follow a
177
+ // newline-containing argument.
178
+ const profile = task.agent_profile ?? track.agent_profile;
179
+ if (profile) {
180
+ args.push('--append-system-prompt', profile);
181
+ }
182
+ return { args, cwd: effectiveCwd, env: resolveGitBashEnv(), stdin };
183
+ },
184
+ parseResult(stdout) {
185
+ try {
186
+ let json = JSON.parse(stdout);
187
+ // --verbose produces a JSON array of events; extract the final "result"
188
+ // event so session_id and normalizedOutput are correctly populated.
189
+ if (Array.isArray(json)) {
190
+ const resultEvent = json.findLast((e) => e.type === 'result');
191
+ if (!resultEvent)
192
+ return { normalizedOutput: stdout };
193
+ json = resultEvent;
194
+ }
195
+ // Extract canonical text: strip JSON envelope so downstream drivers
196
+ // get the actual AI response, not metadata
197
+ const normalizedOutput = json.result ?? json.text ?? json.content ?? stdout;
198
+ return {
199
+ sessionId: json.session_id,
200
+ normalizedOutput: typeof normalizedOutput === 'string'
201
+ ? normalizedOutput
202
+ : JSON.stringify(normalizedOutput),
203
+ };
204
+ }
205
+ catch {
206
+ return { normalizedOutput: stdout };
207
+ }
208
+ },
209
+ };
210
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/drivers/claude-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import type { PipelineConfig, TaskState, TaskStatus } from './types';
2
+ import { type LogLevel } from './logger';
3
+ import { type ApprovalGateway } from './approval';
4
+ export declare class TriggerBlockedError extends Error {
5
+ readonly code: "TRIGGER_BLOCKED";
6
+ constructor(message: string);
7
+ }
8
+ export declare class TriggerTimeoutError extends Error {
9
+ readonly code: "TRIGGER_TIMEOUT";
10
+ constructor(message: string);
11
+ }
12
+ export interface EngineResult {
13
+ readonly success: boolean;
14
+ readonly runId: string;
15
+ readonly logPath: string;
16
+ readonly summary: {
17
+ total: number;
18
+ success: number;
19
+ failed: number;
20
+ skipped: number;
21
+ timeout: number;
22
+ blocked: number;
23
+ };
24
+ readonly states: ReadonlyMap<string, TaskState>;
25
+ }
26
+ export type PipelineEvent = {
27
+ readonly type: 'task_status_change';
28
+ readonly taskId: string;
29
+ readonly status: TaskStatus;
30
+ readonly prevStatus: TaskStatus;
31
+ readonly runId: string;
32
+ readonly state: TaskState;
33
+ } | {
34
+ readonly type: 'pipeline_start';
35
+ readonly runId: string;
36
+ readonly states: ReadonlyMap<string, TaskState>;
37
+ } | {
38
+ readonly type: 'pipeline_end';
39
+ readonly runId: string;
40
+ readonly success: boolean;
41
+ }
42
+ /**
43
+ * Fine-grained log line emitted alongside every write to pipeline.log.
44
+ * Consumers use this to stream the full run process into UIs without
45
+ * tailing the log file. `taskId` is non-null for task-scoped lines and
46
+ * null for pipeline-wide messages (e.g. configuration dumps, DAG
47
+ * topology, pipeline start/end).
48
+ */
49
+ | {
50
+ readonly type: 'task_log';
51
+ readonly runId: string;
52
+ readonly taskId: string | null;
53
+ readonly level: LogLevel;
54
+ readonly timestamp: string;
55
+ readonly text: string;
56
+ };
57
+ export interface RunPipelineOptions {
58
+ readonly approvalGateway?: ApprovalGateway;
59
+ /**
60
+ * Maximum number of per-run log directories to retain under `<workDir>/.tagma/logs/`.
61
+ * Oldest directories are deleted after each run. Defaults to 20. Set to 0 to disable cleanup.
62
+ */
63
+ readonly maxLogRuns?: number;
64
+ /**
65
+ * Caller-supplied run ID. When provided the engine uses this instead of
66
+ * generating its own via `generateRunId()`, keeping the editor and SDK
67
+ * log directories aligned on the same ID.
68
+ */
69
+ readonly runId?: string;
70
+ /**
71
+ * External AbortSignal — aborting it cancels the pipeline immediately.
72
+ * Equivalent to the pipeline timeout firing, but caller-controlled.
73
+ */
74
+ readonly signal?: AbortSignal;
75
+ /**
76
+ * Called on every pipeline/task status transition.
77
+ * Use for real-time UI updates (e.g. updating a visual workflow graph).
78
+ */
79
+ readonly onEvent?: (event: PipelineEvent) => void;
80
+ /**
81
+ * Skip the engine's built-in `loadPlugins(config.plugins)` call.
82
+ * Use this when the host has already pre-loaded plugins from a custom
83
+ * resolution path (e.g. a user workspace's node_modules) so the engine
84
+ * doesn't re-resolve them via Node's default cwd-based import.
85
+ */
86
+ readonly skipPluginLoading?: boolean;
87
+ }
88
+ export declare function runPipeline(config: PipelineConfig, workDir: string, options?: RunPipelineOptions): Promise<EngineResult>;
89
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAA2B,SAAS,EAAE,UAAU,EAI/D,MAAM,SAAS,CAAC;AAWjB,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAM3E,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AA4FD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAC/C,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;KACnD,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjD;AAID,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACjL;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACtF;;;;;;GAMG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvK,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAWD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CA8rBvB"}