@detergent-software/atk 7.5.0-dev.2 → 7.5.0-dev.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.
- package/build/hooks/useSetupState.js +2 -2
- package/build/hooks/useSetupState.js.map +1 -1
- package/build/lib/paths.d.ts +15 -0
- package/build/lib/paths.d.ts.map +1 -1
- package/build/lib/paths.js +33 -0
- package/build/lib/paths.js.map +1 -1
- package/build/lib/setup.d.ts.map +1 -1
- package/build/lib/setup.js +40 -1
- package/build/lib/setup.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { useEffect, useReducer } from 'react';
|
|
|
2
2
|
import { loadAllAdapters } from '../lib/adapter.js';
|
|
3
3
|
import { loadConfig, loadProjectConfig } from '../lib/config.js';
|
|
4
4
|
import { readLockfile } from '../lib/lockfile.js';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveSetupRoot } from '../lib/paths.js';
|
|
6
6
|
import { performSetupCreation } from '../lib/setup.js';
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
// Initial state factory
|
|
@@ -109,7 +109,7 @@ export function useSetupState(flags) {
|
|
|
109
109
|
let cancelled = false;
|
|
110
110
|
const load = async () => {
|
|
111
111
|
const { flags: f } = state;
|
|
112
|
-
const resolvedDir =
|
|
112
|
+
const resolvedDir = resolveSetupRoot(f.projectRoot);
|
|
113
113
|
const [allAdapters, config, existingLockfile, projConfig] = await Promise.all([
|
|
114
114
|
loadAllAdapters(),
|
|
115
115
|
loadConfig(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSetupState.js","sourceRoot":"","sources":["../../src/hooks/useSetupState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useSetupState.js","sourceRoot":"","sources":["../../src/hooks/useSetupState.ts"],"names":[],"mappings":"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"}
|
package/build/lib/paths.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ export declare function toRelativePosix(projectDir: string, absolutePath: string
|
|
|
19
19
|
* 3. `.git/` directory
|
|
20
20
|
* 4. Fallback to the resolved cwd
|
|
21
21
|
*
|
|
22
|
+
* The walk stops before it reaches the user's home directory: `~/.claude`
|
|
23
|
+
* (and often `~/.git` from dotfile repos) is user-level tool config, not a
|
|
24
|
+
* project marker, so a marker-less project must never resolve to `$HOME`.
|
|
25
|
+
*
|
|
22
26
|
* Walk results are cached per starting directory for the lifetime of the process.
|
|
23
27
|
*/
|
|
24
28
|
export declare function findProjectRoot(explicitRoot?: string): string;
|
|
@@ -27,4 +31,15 @@ export declare function findProjectRoot(explicitRoot?: string): string;
|
|
|
27
31
|
* can control the filesystem layout without stale cached values.
|
|
28
32
|
*/
|
|
29
33
|
export declare function resetProjectRootCache(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve the project root for `atk setup`.
|
|
36
|
+
*
|
|
37
|
+
* Setup establishes a project rather than discovering an existing one, so it
|
|
38
|
+
* never walks up to ancestor markers: an explicit `--project-root` is
|
|
39
|
+
* validated and returned as-is; otherwise the current working directory is
|
|
40
|
+
* the project root. (The marker walk once resolved a marker-less project to
|
|
41
|
+
* an ancestor — including the user's home directory via `~/.claude` — and
|
|
42
|
+
* setup silently wrote its files there.)
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveSetupRoot(explicitRoot?: string): string;
|
|
30
45
|
//# sourceMappingURL=paths.d.ts.map
|
package/build/lib/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhF;AAgBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CA8C7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D"}
|
package/build/lib/paths.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
2
3
|
import { dirname, join, relative, resolve } from 'node:path';
|
|
3
4
|
/**
|
|
4
5
|
* Convert an absolute path to a project-relative path with forward slashes.
|
|
@@ -34,6 +35,10 @@ const ROOT_MARKERS = ['.atk-lock.json', '.claude', '.git'];
|
|
|
34
35
|
* 3. `.git/` directory
|
|
35
36
|
* 4. Fallback to the resolved cwd
|
|
36
37
|
*
|
|
38
|
+
* The walk stops before it reaches the user's home directory: `~/.claude`
|
|
39
|
+
* (and often `~/.git` from dotfile repos) is user-level tool config, not a
|
|
40
|
+
* project marker, so a marker-less project must never resolve to `$HOME`.
|
|
41
|
+
*
|
|
37
42
|
* Walk results are cached per starting directory for the lifetime of the process.
|
|
38
43
|
*/
|
|
39
44
|
export function findProjectRoot(explicitRoot) {
|
|
@@ -49,8 +54,13 @@ export function findProjectRoot(explicitRoot) {
|
|
|
49
54
|
if (cached !== undefined) {
|
|
50
55
|
return cached;
|
|
51
56
|
}
|
|
57
|
+
const home = resolve(homedir());
|
|
52
58
|
let current = start;
|
|
53
59
|
while (true) {
|
|
60
|
+
if (isSamePath(current, home)) {
|
|
61
|
+
// Home (and anything above it) is never a project root.
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
54
64
|
for (const marker of ROOT_MARKERS) {
|
|
55
65
|
try {
|
|
56
66
|
if (existsSync(join(current, marker))) {
|
|
@@ -79,4 +89,27 @@ export function findProjectRoot(explicitRoot) {
|
|
|
79
89
|
export function resetProjectRootCache() {
|
|
80
90
|
projectRootCache.clear();
|
|
81
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Resolve the project root for `atk setup`.
|
|
94
|
+
*
|
|
95
|
+
* Setup establishes a project rather than discovering an existing one, so it
|
|
96
|
+
* never walks up to ancestor markers: an explicit `--project-root` is
|
|
97
|
+
* validated and returned as-is; otherwise the current working directory is
|
|
98
|
+
* the project root. (The marker walk once resolved a marker-less project to
|
|
99
|
+
* an ancestor — including the user's home directory via `~/.claude` — and
|
|
100
|
+
* setup silently wrote its files there.)
|
|
101
|
+
*/
|
|
102
|
+
export function resolveSetupRoot(explicitRoot) {
|
|
103
|
+
if (explicitRoot !== undefined) {
|
|
104
|
+
return findProjectRoot(explicitRoot);
|
|
105
|
+
}
|
|
106
|
+
return resolve(process.cwd());
|
|
107
|
+
}
|
|
108
|
+
/** Compare two resolved paths, case-insensitively on Windows. */
|
|
109
|
+
function isSamePath(a, b) {
|
|
110
|
+
if (process.platform === 'win32') {
|
|
111
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
112
|
+
}
|
|
113
|
+
return a === b;
|
|
114
|
+
}
|
|
82
115
|
//# sourceMappingURL=paths.js.map
|
package/build/lib/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,YAAoB;IACtE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,CAAS;IACtC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,wDAAwD;AACxD,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"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"}
|
package/build/lib/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,eAAO,MAAM,WAAW,QAA4B,CAAC;AAMrD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8FtG"}
|
package/build/lib/setup.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
+
import { mkdir } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
2
4
|
import { loadAdapter } from './adapter.js';
|
|
3
5
|
import { saveProjectConfig } from './config.js';
|
|
4
6
|
import { ensureGitignoreEntries, ensureGitignorePatterns } from './gitignore.js';
|
|
@@ -61,13 +63,25 @@ export async function performSetupCreation(options) {
|
|
|
61
63
|
label: 'Created .atk-lock.json',
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
|
-
// 3. Ensure
|
|
66
|
+
// 3. Ensure each selected tool's marker directory exists and .atkrc.json is
|
|
67
|
+
// in .gitignore via the adapters' gitignore entries
|
|
65
68
|
const allAdded = [];
|
|
66
69
|
let anyAdapterLoaded = false;
|
|
67
70
|
for (const tool of selectedTools) {
|
|
68
71
|
try {
|
|
69
72
|
const adapter = await loadAdapter(tool);
|
|
70
73
|
anyAdapterLoaded = true;
|
|
74
|
+
try {
|
|
75
|
+
const createdMarker = await ensureToolMarkerDir(projectDir, adapter);
|
|
76
|
+
if (createdMarker) {
|
|
77
|
+
actions.push({ detail: `${adapter.displayName} config directory`, label: `Created ${createdMarker}` });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
// Marker creation failure is non-fatal; install will create it later
|
|
82
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
83
|
+
warnings.push(`Failed to create config directory for "${tool}": ${message}`);
|
|
84
|
+
}
|
|
71
85
|
const { added } = await ensureGitignoreEntries(projectDir, adapter);
|
|
72
86
|
allAdded.push(...added);
|
|
73
87
|
}
|
|
@@ -95,4 +109,29 @@ export async function performSetupCreation(options) {
|
|
|
95
109
|
}
|
|
96
110
|
return { actions, warnings };
|
|
97
111
|
}
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Helpers
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
/**
|
|
116
|
+
* Ensure the tool's primary config-detection directory exists (e.g. `.claude/`
|
|
117
|
+
* for Claude Code) so the project is recognizable as using the tool right
|
|
118
|
+
* after setup — selecting a tool during setup is an explicit statement that
|
|
119
|
+
* the tool is used here, even if it has never been run in this project yet.
|
|
120
|
+
*
|
|
121
|
+
* Only creates a directory when none of the adapter's detection indicators
|
|
122
|
+
* are already present. Returns the created directory (as listed in
|
|
123
|
+
* `configDetection`) or null when nothing was created.
|
|
124
|
+
*/
|
|
125
|
+
async function ensureToolMarkerDir(projectDir, adapter) {
|
|
126
|
+
const anyIndicatorPresent = adapter.configDetection.some((indicator) => existsSync(join(projectDir, indicator)));
|
|
127
|
+
if (anyIndicatorPresent)
|
|
128
|
+
return null;
|
|
129
|
+
// Directory indicators use a trailing slash (e.g. ".claude/"); the first
|
|
130
|
+
// one is the tool's primary config directory.
|
|
131
|
+
const dirIndicator = adapter.configDetection.find((indicator) => indicator.endsWith('/'));
|
|
132
|
+
if (dirIndicator === undefined)
|
|
133
|
+
return null;
|
|
134
|
+
await mkdir(join(projectDir, dirIndicator), { recursive: true });
|
|
135
|
+
return dirIndicator;
|
|
136
|
+
}
|
|
98
137
|
//# sourceMappingURL=setup.js.map
|
package/build/lib/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7E,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAuBrD,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IACtE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACnE,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAE/E,qCAAqC;IACrC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,2EAA2E,CACvG,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE3F,iCAAiC;IACjC,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,gEAAgE;QAChE,MAAM,eAAe,GAAG;YACtB,GAAG,QAAQ;YACX,WAAW,EAAE,CAAU;YACvB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;QACF,MAAM,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,8BAA8B;YACvE,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,CAAC,UAAU,EAAE;YAC9B,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ;YACtD,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,gBAAgB,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACrE,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,mBAAmB,EAAE,KAAK,EAAE,WAAW,aAAa,EAAE,EAAE,CAAC,CAAC;gBACzG,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,qEAAqE;gBACrE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,QAAQ,CAAC,IAAI,CAAC,0CAA0C,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;YAC/E,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,4EAA4E;YAC5E,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,QAAQ,CAAC,IAAI,CAAC,+BAA+B,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gFAAgF;QAChF,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;YACpG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,QAAQ,CAAC,IAAI,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,sBAAsB;QACtB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,OAAgB;IACrE,MAAM,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACjH,IAAI,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAErC,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC;AACtB,CAAC"}
|