@nithin554/code-crawler 0.1.65 → 0.1.67
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/.claude-plugin/marketplace.json +16 -0
- package/.claude-plugin/plugin.json +20 -0
- package/README.md +35 -4
- package/dist/config.d.ts +12 -0
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/graph/store.js +3 -0
- package/dist/graph/store.js.map +1 -1
- package/dist/index.js +31 -3
- package/dist/index.js.map +1 -1
- package/dist/projects.d.ts +112 -0
- package/dist/projects.js +273 -0
- package/dist/projects.js.map +1 -0
- package/dist/server.d.ts +6 -2
- package/dist/server.js +37 -5
- package/dist/server.js.map +1 -1
- package/mcp.json +15 -0
- package/package.json +5 -2
- package/plugin.json +20 -0
- package/skills/code-crawler/SKILL.md +18 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "code-crawler",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "nithin554"
|
|
5
|
+
},
|
|
6
|
+
"metadata": {
|
|
7
|
+
"description": "Agent plugin packaging for Code Crawler"
|
|
8
|
+
},
|
|
9
|
+
"plugins": [
|
|
10
|
+
{
|
|
11
|
+
"name": "code-crawler",
|
|
12
|
+
"source": "./",
|
|
13
|
+
"description": "Static and dynamic call tracing MCP server backed by a SQLite property graph of your codebase"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "code-crawler",
|
|
3
|
+
"displayName": "Code Crawler",
|
|
4
|
+
"description": "Static and dynamic call tracing MCP server backed by a SQLite property graph of your codebase",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "nithin554",
|
|
7
|
+
"url": "https://github.com/nithin554"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://nithin554.github.io/code-crawler/",
|
|
10
|
+
"repository": "https://github.com/nithin554/code-crawler",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"code-analysis",
|
|
14
|
+
"call-graph",
|
|
15
|
+
"static-analysis",
|
|
16
|
+
"mcp",
|
|
17
|
+
"dead-code",
|
|
18
|
+
"impact-analysis"
|
|
19
|
+
]
|
|
20
|
+
}
|
package/README.md
CHANGED
|
@@ -138,6 +138,9 @@ Environment variables:
|
|
|
138
138
|
| `CODECRAWLER_MAX_FILE_BYTES` | `1000000` | Files larger than this are skipped, not parsed |
|
|
139
139
|
| `CODECRAWLER_RESPECT_GITIGNORE` | `true` | Honor the project's `.gitignore` during discovery |
|
|
140
140
|
| `CODECRAWLER_HELPFUL_ERRORS` | `true` | Fuzzy suggestions on symbol misses |
|
|
141
|
+
| `CODECRAWLER_PLUGIN` | unset | Plugin mode: resolve one database per project at call time instead of opening one file at startup |
|
|
142
|
+
| `CODECRAWLER_PLUGIN_ROOT` | unset | Plugin install directory, never indexed as a project |
|
|
143
|
+
| `CODECRAWLER_PLUGIN_DATA` | temp dir | Writable directory for the no-project fallback database |
|
|
141
144
|
|
|
142
145
|
Invalid values never crash the server: booleans fall back to their default and
|
|
143
146
|
integers are clamped to their documented range, each with a one-line warning on
|
|
@@ -256,6 +259,31 @@ if green, **auto-releases**:
|
|
|
256
259
|
|
|
257
260
|
## Using as an MCP server
|
|
258
261
|
|
|
262
|
+
### Install as an agent plugin
|
|
263
|
+
|
|
264
|
+
The repository is also an agent plugin, so Claude Code and Copilot CLI can install the
|
|
265
|
+
server and the skill together:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# Claude Code
|
|
269
|
+
/plugin marketplace add nithin554/code-crawler
|
|
270
|
+
/plugin install code-crawler@code-crawler
|
|
271
|
+
|
|
272
|
+
# Copilot CLI
|
|
273
|
+
copilot plugin marketplace add nithin554/code-crawler
|
|
274
|
+
copilot plugin install code-crawler@code-crawler
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
The plugin runs `npx -y @nithin554/code-crawler serve`. Agent Plugins clients start a
|
|
278
|
+
plugin's stdio servers inside the plugin directory, so the server does not treat that
|
|
279
|
+
directory as your checkout: it resolves a project from `crawl_project`, the client's
|
|
280
|
+
workspace roots, or the project this session already selected, and keeps that graph in
|
|
281
|
+
`<project>/.code-crawler/index.db` — one database per repository, the same layout the CLI
|
|
282
|
+
uses. `CODECRAWLER_DB` still pins a single file when you want one.
|
|
283
|
+
|
|
284
|
+
The same skill is published to [ClawHub](https://clawhub.ai) as `code-crawler`, versioned by
|
|
285
|
+
the release tag: release `v0.1.67` publishes `code-crawler@0.1.67`.
|
|
286
|
+
|
|
259
287
|
### One command
|
|
260
288
|
|
|
261
289
|
[`add-mcp`](https://github.com/neon-solutions/add-mcp) registers the server in whichever
|
|
@@ -278,10 +306,13 @@ with your checkout as its working directory: with `-g` and an unrelated working
|
|
|
278
306
|
|
|
279
307
|
### One server per project
|
|
280
308
|
|
|
281
|
-
|
|
282
|
-
the model is one registration per repository — which is what the
|
|
283
|
-
gives you.
|
|
284
|
-
|
|
309
|
+
Outside plugin mode a server process opens one database at startup and a database holds
|
|
310
|
+
exactly one project, so the model is one registration per repository — which is what the
|
|
311
|
+
per-project config above gives you. The plugin install instead resolves a database per
|
|
312
|
+
project at call time, so one plugin serves every repository you open. Re-crawling a repository reuses its existing file and only re-parses what changed;
|
|
313
|
+
two repositories never share a file, so they cannot clash. Only a few project databases stay
|
|
314
|
+
open at once (idle ones are closed), and every handle is released when the client
|
|
315
|
+
disconnects.
|
|
285
316
|
|
|
286
317
|
### MCP Registry / `npx`
|
|
287
318
|
|
package/dist/config.d.ts
CHANGED
|
@@ -12,6 +12,18 @@ export declare const DB_FILE_NAME = "index.db";
|
|
|
12
12
|
export declare function databasePathFor(projectRoot: string): string;
|
|
13
13
|
/** The database used when no project can be determined, so each caller still gets a file. */
|
|
14
14
|
export declare function userDatabasePath(): string;
|
|
15
|
+
/** Project root that owns `start`, or `undefined` when no marker or database is found. */
|
|
16
|
+
export declare function findProjectRoot(start: string): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Nearest directory at or above `start` that either already owns a database or looks like a
|
|
19
|
+
* project root. `undefined` when the walk reaches the filesystem root with neither.
|
|
20
|
+
*
|
|
21
|
+
* The user's home directory never answers for the directories beneath it. It is the fallback
|
|
22
|
+
* location, not a project: an unmarked folder under `~` that inherited `~/.code-crawler`
|
|
23
|
+
* would share one file with every other unmarked folder, and a crawl there would collide
|
|
24
|
+
* with whatever the fallback file held last.
|
|
25
|
+
*/
|
|
26
|
+
export declare function nearestDatabaseRoot(start: string): string | undefined;
|
|
15
27
|
/**
|
|
16
28
|
* Database for the project that encloses `start`. Used when the caller knows what is being
|
|
17
29
|
* indexed, so a crawl of `repo/src` shares the database of `repo` rather than growing a
|
package/dist/config.js
CHANGED
|
@@ -35,6 +35,10 @@ export function databasePathFor(projectRoot) {
|
|
|
35
35
|
export function userDatabasePath() {
|
|
36
36
|
return path.join(os.homedir(), DB_DIR_NAME, DB_FILE_NAME);
|
|
37
37
|
}
|
|
38
|
+
/** Project root that owns `start`, or `undefined` when no marker or database is found. */
|
|
39
|
+
export function findProjectRoot(start) {
|
|
40
|
+
return nearestDatabaseRoot(start);
|
|
41
|
+
}
|
|
38
42
|
/**
|
|
39
43
|
* Nearest directory at or above `start` that either already owns a database or looks like a
|
|
40
44
|
* project root. `undefined` when the walk reaches the filesystem root with neither.
|
|
@@ -44,7 +48,7 @@ export function userDatabasePath() {
|
|
|
44
48
|
* would share one file with every other unmarked folder, and a crawl there would collide
|
|
45
49
|
* with whatever the fallback file held last.
|
|
46
50
|
*/
|
|
47
|
-
function nearestDatabaseRoot(start) {
|
|
51
|
+
export function nearestDatabaseRoot(start) {
|
|
48
52
|
const home = path.resolve(os.homedir());
|
|
49
53
|
let dir = path.resolve(start);
|
|
50
54
|
for (;;) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;GAKG;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;AAC3C,gDAAgD;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEvC;;;GAGG;AACH,MAAM,eAAe,GAAG;IACtB,MAAM;IACN,cAAc;IACd,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,QAAQ;IACR,YAAY;CACb,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACzE,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/store.js
CHANGED
|
@@ -159,6 +159,9 @@ export class GraphStore {
|
|
|
159
159
|
if (dir && dir !== ".")
|
|
160
160
|
fs.mkdirSync(dir, { recursive: true });
|
|
161
161
|
this.db = new Database(dbPath);
|
|
162
|
+
// A project database can be shared by the CLI and a plugin server: wait for
|
|
163
|
+
// the write lock instead of failing the call with SQLITE_BUSY.
|
|
164
|
+
this.db.pragma("busy_timeout = 5000");
|
|
162
165
|
this.db.pragma("journal_mode = WAL");
|
|
163
166
|
this.db.pragma("foreign_keys = ON");
|
|
164
167
|
this.db.exec(SCHEMA);
|
package/dist/graph/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/graph/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/graph/store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { loadConfig } from "./config.js";
|
|
|
6
6
|
import { crawlProject } from "./crawler.js";
|
|
7
7
|
import { searchSymbols } from "./graph/queries.js";
|
|
8
8
|
import { GraphStore } from "./graph/store.js";
|
|
9
|
+
import { PluginProjects, pluginDataDir, pluginModeFromEnv, pluginRootFromEnv, } from "./projects.js";
|
|
9
10
|
import { createServer } from "./server.js";
|
|
10
11
|
/**
|
|
11
12
|
* code-crawler CLI:
|
|
@@ -32,6 +33,9 @@ Environment:
|
|
|
32
33
|
CODECRAWLER_MAX_DEPTH Traversal depth cap
|
|
33
34
|
CODECRAWLER_MAX_FILE_BYTES Skip source files larger than this (default 1000000)
|
|
34
35
|
CODECRAWLER_RESPECT_GITIGNORE Honor .gitignore during crawl (default true)
|
|
36
|
+
CODECRAWLER_PLUGIN Plugin mode: one database per project (set by plugin manifests)
|
|
37
|
+
CODECRAWLER_PLUGIN_ROOT Plugin install directory, never indexed as a project
|
|
38
|
+
CODECRAWLER_PLUGIN_DATA Writable plugin directory for the fallback database
|
|
35
39
|
`);
|
|
36
40
|
}
|
|
37
41
|
function makeStore(config) {
|
|
@@ -46,10 +50,34 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
46
50
|
case undefined:
|
|
47
51
|
case "serve": {
|
|
48
52
|
const config = loadConfig();
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
// A plugin client starts the server inside the plugin directory. Pick one
|
|
54
|
+
// database per project instead of binding to that directory. An explicit
|
|
55
|
+
// CODECRAWLER_DB still wins and keeps the CLI's fixed-file behavior.
|
|
56
|
+
const pluginRoot = pluginModeFromEnv() ? pluginRootFromEnv() : undefined;
|
|
57
|
+
const projects = pluginModeFromEnv()
|
|
58
|
+
? new PluginProjects({
|
|
59
|
+
config,
|
|
60
|
+
pluginRoot,
|
|
61
|
+
dataDir: pluginDataDir(pluginRoot),
|
|
62
|
+
makeStore,
|
|
63
|
+
log: (message) => console.error(`code-crawler: ${message}`),
|
|
64
|
+
})
|
|
65
|
+
: undefined;
|
|
66
|
+
const storeConfig = projects ? { ...config, dbPath: projects.fallbackDatabasePath } : config;
|
|
67
|
+
// Plugin mode opens the fallback database only when no project is ever
|
|
68
|
+
// detected, so merely starting the server writes no database file.
|
|
69
|
+
const store = projects ? () => projects.fallbackStore() : makeStore(storeConfig);
|
|
70
|
+
const server = createServer(store, storeConfig, { projects });
|
|
51
71
|
const transport = new StdioServerTransport();
|
|
52
|
-
|
|
72
|
+
// Release SQLite handles (and checkpoint their WAL files) on the way out.
|
|
73
|
+
// `exit` is synchronous and does not suppress the default signal behavior
|
|
74
|
+
// the way a SIGINT/SIGTERM listener would.
|
|
75
|
+
transport.onclose = () => projects?.close();
|
|
76
|
+
if (projects)
|
|
77
|
+
process.once("exit", () => projects.close());
|
|
78
|
+
console.error(projects
|
|
79
|
+
? "code-crawler: MCP server ready (plugin mode: one database per project)"
|
|
80
|
+
: `code-crawler: MCP server ready (db: ${config.dbPath})`);
|
|
53
81
|
await server.connect(transport);
|
|
54
82
|
break;
|
|
55
83
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAe,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AAEH,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type Config } from "./config.js";
|
|
2
|
+
import { GraphStore } from "./graph/store.js";
|
|
3
|
+
/**
|
|
4
|
+
* Plugin installs start the server inside the plugin directory, which is not the
|
|
5
|
+
* user's checkout. The CLI can rely on the process cwd (and `CODECRAWLER_DB` for
|
|
6
|
+
* one fixed file); a plugin server must instead pick a database per project, the
|
|
7
|
+
* same `<project>/.code-crawler/index.db` the CLI would use.
|
|
8
|
+
*
|
|
9
|
+
* Project identity comes from, in order:
|
|
10
|
+
* 1. the path passed to `crawl_project`,
|
|
11
|
+
* 2. the client's workspace roots (`roots/list`, when exposed),
|
|
12
|
+
* 3. the project this session already selected,
|
|
13
|
+
* 4. the process cwd, when it is a real project and not the plugin root.
|
|
14
|
+
*
|
|
15
|
+
* The selection is session state: one manager per MCP server connection, never a
|
|
16
|
+
* pointer file shared by every client session. Two sessions in different projects
|
|
17
|
+
* therefore cannot steer each other's database.
|
|
18
|
+
*/
|
|
19
|
+
export type StoreFactory = (config: Config) => GraphStore;
|
|
20
|
+
/** A store, or a factory for one. Plugin mode passes a factory so simply
|
|
21
|
+
* starting the server does not create a database file nobody asked for. */
|
|
22
|
+
export type StoreSource = GraphStore | (() => GraphStore);
|
|
23
|
+
/** Keep the number of open SQLite handles bounded in a long-lived session. */
|
|
24
|
+
export declare const MAX_OPEN_STORES = 8;
|
|
25
|
+
export interface PluginProjectOptions {
|
|
26
|
+
config: Config;
|
|
27
|
+
/** Directory the plugin was installed into; never indexed as a project. */
|
|
28
|
+
pluginRoot?: string;
|
|
29
|
+
/** Writable directory for the fallback database. */
|
|
30
|
+
dataDir?: string;
|
|
31
|
+
makeStore?: StoreFactory;
|
|
32
|
+
/** Resolve the process cwd; injectable for tests. */
|
|
33
|
+
cwd?: () => string;
|
|
34
|
+
log?: (message: string) => void;
|
|
35
|
+
}
|
|
36
|
+
/** `CODECRAWLER_PLUGIN=1` opts into per-project resolution. */
|
|
37
|
+
export declare function pluginModeFromEnv(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Plugin root from the client placeholder (`${PLUGIN_ROOT}` /
|
|
40
|
+
* `${CLAUDE_PLUGIN_ROOT}`). An unexpanded placeholder falls back to the cwd,
|
|
41
|
+
* but only when that cwd really looks like a plugin root — otherwise the client
|
|
42
|
+
* launched the server inside a project and the cwd is what we want.
|
|
43
|
+
*/
|
|
44
|
+
export declare function pluginRootFromEnv(cwd?: string): string | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Writable plugin data directory for the no-project fallback database. Clients
|
|
47
|
+
* substitute `${PLUGIN_DATA}` / `${CLAUDE_PLUGIN_DATA}`; without it, use a
|
|
48
|
+
* stable temp directory keyed by the plugin root.
|
|
49
|
+
*/
|
|
50
|
+
export declare function pluginDataDir(pluginRoot?: string): string;
|
|
51
|
+
export declare class PluginProjects {
|
|
52
|
+
private readonly config;
|
|
53
|
+
private readonly makeStore;
|
|
54
|
+
private readonly pluginRoot?;
|
|
55
|
+
private readonly dataDir;
|
|
56
|
+
private readonly cwd;
|
|
57
|
+
private readonly log;
|
|
58
|
+
private activeRoot?;
|
|
59
|
+
/** Open stores stay open until shutdown so a parallel tool call can finish. */
|
|
60
|
+
private readonly stores;
|
|
61
|
+
/** Project roots with a tool call in flight; never evicted mid-call. */
|
|
62
|
+
private readonly inUse;
|
|
63
|
+
private fallbackDb?;
|
|
64
|
+
private rootsProvider?;
|
|
65
|
+
private cachedRoots?;
|
|
66
|
+
private rootsGeneration;
|
|
67
|
+
private rootsPending?;
|
|
68
|
+
constructor(options: PluginProjectOptions);
|
|
69
|
+
/** The database used until a project is known. */
|
|
70
|
+
get fallbackDatabasePath(): string;
|
|
71
|
+
/** Project whose database the current tool call uses (`undefined` = fallback). */
|
|
72
|
+
get activeProjectRoot(): string | undefined;
|
|
73
|
+
/** Route to the client's workspace roots. */
|
|
74
|
+
setRootsProvider(provider: () => Promise<string[]>): void;
|
|
75
|
+
/** Drop the cached roots after `roots/list_changed`. */
|
|
76
|
+
invalidateRoots(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Store for one tool call. `explicitProjectPath` is the argument the caller
|
|
79
|
+
* named (`crawl_project`), which always wins over roots and history.
|
|
80
|
+
*/
|
|
81
|
+
forCall(explicitProjectPath?: string): Promise<GraphStore>;
|
|
82
|
+
/**
|
|
83
|
+
* Resolve the store for one tool call, run `fn` against it, and release it.
|
|
84
|
+
* Concurrency: the store is reference counted for the duration of the call,
|
|
85
|
+
* so eviction never closes a database another call is still using.
|
|
86
|
+
*/
|
|
87
|
+
withCall<T>(explicitProjectPath: string | undefined, fn: (store: GraphStore) => T | Promise<T>): Promise<T>;
|
|
88
|
+
/** Release every SQLite handle (called on transport close and signals). */
|
|
89
|
+
close(): void;
|
|
90
|
+
private resolveRoot;
|
|
91
|
+
private roots;
|
|
92
|
+
private open;
|
|
93
|
+
/** Close the least recently used handle, but only when no call is using it. */
|
|
94
|
+
private evictIdleStores;
|
|
95
|
+
/**
|
|
96
|
+
* Database used when no project can be identified (a chat with no workspace).
|
|
97
|
+
* Created lazily: plugin mode must not write a database just by starting up.
|
|
98
|
+
*/
|
|
99
|
+
fallbackStore(): GraphStore;
|
|
100
|
+
private closeStore;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Bind each tool call to a store through AsyncLocalStorage while every handler
|
|
104
|
+
* keeps using one `GraphStore`-typed value. Concurrent calls cannot observe each
|
|
105
|
+
* other's project, and a plain `createServer(store, config)` (tests, the CLI)
|
|
106
|
+
* resolves to `source` unchanged. A factory source is only called on first use,
|
|
107
|
+
* so plugin mode writes no fallback database until a call needs it.
|
|
108
|
+
*/
|
|
109
|
+
export declare function scopedStore(source: StoreSource): {
|
|
110
|
+
store: GraphStore;
|
|
111
|
+
run: <T>(store: GraphStore, fn: () => T) => T;
|
|
112
|
+
};
|
package/dist/projects.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { databasePathFor, findProjectRoot } from "./config.js";
|
|
7
|
+
import { GraphStore } from "./graph/store.js";
|
|
8
|
+
/** Keep the number of open SQLite handles bounded in a long-lived session. */
|
|
9
|
+
export const MAX_OPEN_STORES = 8;
|
|
10
|
+
function isInside(candidate, ancestor) {
|
|
11
|
+
const relative = path.relative(path.resolve(ancestor), path.resolve(candidate));
|
|
12
|
+
return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
|
|
13
|
+
}
|
|
14
|
+
/** A plugin manifest owns this directory when it carries both manifest files. */
|
|
15
|
+
function looksLikePluginRoot(dir) {
|
|
16
|
+
return ((fs.existsSync(path.join(dir, "plugin.json")) && fs.existsSync(path.join(dir, "mcp.json"))) ||
|
|
17
|
+
fs.existsSync(path.join(dir, ".claude-plugin", "plugin.json")));
|
|
18
|
+
}
|
|
19
|
+
/** `CODECRAWLER_PLUGIN=1` opts into per-project resolution. */
|
|
20
|
+
export function pluginModeFromEnv() {
|
|
21
|
+
// An explicit database means "use this one file", exactly like the CLI.
|
|
22
|
+
return process.env.CODECRAWLER_PLUGIN === "1" && !process.env.CODECRAWLER_DB;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Plugin root from the client placeholder (`${PLUGIN_ROOT}` /
|
|
26
|
+
* `${CLAUDE_PLUGIN_ROOT}`). An unexpanded placeholder falls back to the cwd,
|
|
27
|
+
* but only when that cwd really looks like a plugin root — otherwise the client
|
|
28
|
+
* launched the server inside a project and the cwd is what we want.
|
|
29
|
+
*/
|
|
30
|
+
export function pluginRootFromEnv(cwd = process.cwd()) {
|
|
31
|
+
const raw = process.env.CODECRAWLER_PLUGIN_ROOT;
|
|
32
|
+
if (raw && !raw.includes("${") && path.isAbsolute(raw))
|
|
33
|
+
return path.resolve(raw);
|
|
34
|
+
return looksLikePluginRoot(cwd) ? cwd : undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Writable plugin data directory for the no-project fallback database. Clients
|
|
38
|
+
* substitute `${PLUGIN_DATA}` / `${CLAUDE_PLUGIN_DATA}`; without it, use a
|
|
39
|
+
* stable temp directory keyed by the plugin root.
|
|
40
|
+
*/
|
|
41
|
+
export function pluginDataDir(pluginRoot) {
|
|
42
|
+
const raw = process.env.CODECRAWLER_PLUGIN_DATA;
|
|
43
|
+
if (raw && !raw.includes("${") && path.isAbsolute(raw))
|
|
44
|
+
return path.resolve(raw);
|
|
45
|
+
const seed = pluginRoot ?? process.cwd();
|
|
46
|
+
const digest = createHash("sha256").update(seed).digest("hex").slice(0, 12);
|
|
47
|
+
return path.join(os.tmpdir(), "code-crawler-plugin", digest);
|
|
48
|
+
}
|
|
49
|
+
export class PluginProjects {
|
|
50
|
+
config;
|
|
51
|
+
makeStore;
|
|
52
|
+
pluginRoot;
|
|
53
|
+
dataDir;
|
|
54
|
+
cwd;
|
|
55
|
+
log;
|
|
56
|
+
activeRoot;
|
|
57
|
+
/** Open stores stay open until shutdown so a parallel tool call can finish. */
|
|
58
|
+
stores = new Map();
|
|
59
|
+
/** Project roots with a tool call in flight; never evicted mid-call. */
|
|
60
|
+
inUse = new Map();
|
|
61
|
+
fallbackDb;
|
|
62
|
+
rootsProvider;
|
|
63
|
+
cachedRoots;
|
|
64
|
+
rootsGeneration = 0;
|
|
65
|
+
rootsPending;
|
|
66
|
+
constructor(options) {
|
|
67
|
+
this.config = options.config;
|
|
68
|
+
this.makeStore =
|
|
69
|
+
options.makeStore ??
|
|
70
|
+
((config) => new GraphStore(config.dbPath, {
|
|
71
|
+
maxDepth: config.maxDepth,
|
|
72
|
+
defaultLimit: config.defaultLimit,
|
|
73
|
+
}));
|
|
74
|
+
this.pluginRoot = options.pluginRoot;
|
|
75
|
+
this.dataDir = options.dataDir ?? path.join(os.tmpdir(), "code-crawler-plugin");
|
|
76
|
+
this.cwd = options.cwd ?? (() => process.cwd());
|
|
77
|
+
this.log = options.log ?? (() => { });
|
|
78
|
+
}
|
|
79
|
+
/** The database used until a project is known. */
|
|
80
|
+
get fallbackDatabasePath() {
|
|
81
|
+
return path.join(this.dataDir, "index.db");
|
|
82
|
+
}
|
|
83
|
+
/** Project whose database the current tool call uses (`undefined` = fallback). */
|
|
84
|
+
get activeProjectRoot() {
|
|
85
|
+
return this.activeRoot;
|
|
86
|
+
}
|
|
87
|
+
/** Route to the client's workspace roots. */
|
|
88
|
+
setRootsProvider(provider) {
|
|
89
|
+
this.rootsProvider = provider;
|
|
90
|
+
}
|
|
91
|
+
/** Drop the cached roots after `roots/list_changed`. */
|
|
92
|
+
invalidateRoots() {
|
|
93
|
+
this.cachedRoots = undefined;
|
|
94
|
+
this.rootsGeneration += 1;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Store for one tool call. `explicitProjectPath` is the argument the caller
|
|
98
|
+
* named (`crawl_project`), which always wins over roots and history.
|
|
99
|
+
*/
|
|
100
|
+
async forCall(explicitProjectPath) {
|
|
101
|
+
return await this.withCall(explicitProjectPath, (store) => store);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Resolve the store for one tool call, run `fn` against it, and release it.
|
|
105
|
+
* Concurrency: the store is reference counted for the duration of the call,
|
|
106
|
+
* so eviction never closes a database another call is still using.
|
|
107
|
+
*/
|
|
108
|
+
async withCall(explicitProjectPath, fn) {
|
|
109
|
+
const root = await this.resolveRoot(explicitProjectPath);
|
|
110
|
+
const store = root === undefined ? this.fallbackStore() : this.open(root);
|
|
111
|
+
const key = root ?? "\u0000fallback";
|
|
112
|
+
this.inUse.set(key, (this.inUse.get(key) ?? 0) + 1);
|
|
113
|
+
try {
|
|
114
|
+
return await fn(store);
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
const remaining = (this.inUse.get(key) ?? 1) - 1;
|
|
118
|
+
if (remaining > 0)
|
|
119
|
+
this.inUse.set(key, remaining);
|
|
120
|
+
else
|
|
121
|
+
this.inUse.delete(key);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Release every SQLite handle (called on transport close and signals). */
|
|
125
|
+
close() {
|
|
126
|
+
for (const store of this.stores.values())
|
|
127
|
+
this.closeStore(store);
|
|
128
|
+
this.stores.clear();
|
|
129
|
+
this.inUse.clear();
|
|
130
|
+
this.closeStore(this.fallbackDb);
|
|
131
|
+
this.fallbackDb = undefined;
|
|
132
|
+
this.activeRoot = undefined;
|
|
133
|
+
}
|
|
134
|
+
async resolveRoot(explicitProjectPath) {
|
|
135
|
+
if (explicitProjectPath !== undefined) {
|
|
136
|
+
const absolute = path.resolve(this.cwd(), explicitProjectPath);
|
|
137
|
+
if (!fs.existsSync(absolute))
|
|
138
|
+
return undefined;
|
|
139
|
+
const start = fs.statSync(absolute).isDirectory() ? absolute : path.dirname(absolute);
|
|
140
|
+
return findProjectRoot(start) ?? start;
|
|
141
|
+
}
|
|
142
|
+
const roots = await this.roots();
|
|
143
|
+
const usable = [];
|
|
144
|
+
for (const root of roots) {
|
|
145
|
+
const absolute = path.resolve(root);
|
|
146
|
+
if (!fs.existsSync(absolute))
|
|
147
|
+
continue;
|
|
148
|
+
if (this.pluginRoot && isInside(absolute, this.pluginRoot))
|
|
149
|
+
continue;
|
|
150
|
+
const projectRoot = findProjectRoot(absolute) ?? absolute;
|
|
151
|
+
if (!usable.includes(projectRoot))
|
|
152
|
+
usable.push(projectRoot);
|
|
153
|
+
}
|
|
154
|
+
if (usable.length > 0) {
|
|
155
|
+
if (this.activeRoot && usable.includes(this.activeRoot))
|
|
156
|
+
return this.activeRoot;
|
|
157
|
+
return usable[0];
|
|
158
|
+
}
|
|
159
|
+
if (this.activeRoot && fs.existsSync(this.activeRoot))
|
|
160
|
+
return this.activeRoot;
|
|
161
|
+
const cwd = this.cwd();
|
|
162
|
+
if (this.pluginRoot && isInside(cwd, this.pluginRoot))
|
|
163
|
+
return undefined;
|
|
164
|
+
return findProjectRoot(cwd);
|
|
165
|
+
}
|
|
166
|
+
async roots() {
|
|
167
|
+
if (this.cachedRoots)
|
|
168
|
+
return this.cachedRoots;
|
|
169
|
+
if (!this.rootsProvider)
|
|
170
|
+
return [];
|
|
171
|
+
// Share one in-flight `roots/list` between parallel tool calls, and drop the
|
|
172
|
+
// result when `roots/list_changed` arrived while the request was running.
|
|
173
|
+
if (!this.rootsPending) {
|
|
174
|
+
const generation = this.rootsGeneration;
|
|
175
|
+
const provider = this.rootsProvider;
|
|
176
|
+
this.rootsPending = (async () => {
|
|
177
|
+
try {
|
|
178
|
+
return { generation, roots: await provider() };
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return { generation, roots: [] };
|
|
182
|
+
}
|
|
183
|
+
})().then(({ generation: seen, roots }) => {
|
|
184
|
+
this.rootsPending = undefined;
|
|
185
|
+
if (seen === this.rootsGeneration)
|
|
186
|
+
this.cachedRoots = roots;
|
|
187
|
+
return roots;
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return await this.rootsPending;
|
|
191
|
+
}
|
|
192
|
+
open(root) {
|
|
193
|
+
const resolved = path.resolve(root);
|
|
194
|
+
const existing = this.stores.get(resolved);
|
|
195
|
+
if (existing) {
|
|
196
|
+
// Refresh insertion order so eviction drops the least recently used handle.
|
|
197
|
+
this.stores.delete(resolved);
|
|
198
|
+
this.stores.set(resolved, existing);
|
|
199
|
+
this.activeRoot = resolved;
|
|
200
|
+
return existing;
|
|
201
|
+
}
|
|
202
|
+
const dbPath = databasePathFor(resolved);
|
|
203
|
+
const store = this.makeStore({ ...this.config, dbPath });
|
|
204
|
+
this.stores.set(resolved, store);
|
|
205
|
+
this.activeRoot = resolved;
|
|
206
|
+
this.log(`using project database ${dbPath}`);
|
|
207
|
+
this.evictIdleStores(resolved);
|
|
208
|
+
return store;
|
|
209
|
+
}
|
|
210
|
+
/** Close the least recently used handle, but only when no call is using it. */
|
|
211
|
+
evictIdleStores(keep) {
|
|
212
|
+
if (this.stores.size <= MAX_OPEN_STORES)
|
|
213
|
+
return;
|
|
214
|
+
for (const [root, store] of this.stores) {
|
|
215
|
+
if (this.stores.size <= MAX_OPEN_STORES)
|
|
216
|
+
return;
|
|
217
|
+
if (root === keep || this.inUse.has(root))
|
|
218
|
+
continue;
|
|
219
|
+
this.stores.delete(root);
|
|
220
|
+
this.closeStore(store);
|
|
221
|
+
this.log(`closed idle project database ${root}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Database used when no project can be identified (a chat with no workspace).
|
|
226
|
+
* Created lazily: plugin mode must not write a database just by starting up.
|
|
227
|
+
*/
|
|
228
|
+
fallbackStore() {
|
|
229
|
+
if (!this.fallbackDb) {
|
|
230
|
+
this.fallbackDb = this.makeStore({ ...this.config, dbPath: this.fallbackDatabasePath });
|
|
231
|
+
this.log(`no project detected; using ${this.fallbackDatabasePath}`);
|
|
232
|
+
}
|
|
233
|
+
return this.fallbackDb;
|
|
234
|
+
}
|
|
235
|
+
closeStore(store) {
|
|
236
|
+
if (!store)
|
|
237
|
+
return;
|
|
238
|
+
try {
|
|
239
|
+
store.close();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// Closing is best effort; a failed close must not fail a tool call.
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Bind each tool call to a store through AsyncLocalStorage while every handler
|
|
248
|
+
* keeps using one `GraphStore`-typed value. Concurrent calls cannot observe each
|
|
249
|
+
* other's project, and a plain `createServer(store, config)` (tests, the CLI)
|
|
250
|
+
* resolves to `source` unchanged. A factory source is only called on first use,
|
|
251
|
+
* so plugin mode writes no fallback database until a call needs it.
|
|
252
|
+
*/
|
|
253
|
+
export function scopedStore(source) {
|
|
254
|
+
const storage = new AsyncLocalStorage();
|
|
255
|
+
let lazy;
|
|
256
|
+
const initial = () => {
|
|
257
|
+
if (typeof source !== "function")
|
|
258
|
+
return source;
|
|
259
|
+
lazy ??= source();
|
|
260
|
+
return lazy;
|
|
261
|
+
};
|
|
262
|
+
const store = new Proxy({}, {
|
|
263
|
+
get(_target, property) {
|
|
264
|
+
const active = storage.getStore() ?? initial();
|
|
265
|
+
const value = Reflect.get(active, property, active);
|
|
266
|
+
return typeof value === "function"
|
|
267
|
+
? value.bind(active)
|
|
268
|
+
: value;
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
return { store, run: (bound, fn) => storage.run(bound, fn) };
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAe,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyB9C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAcjC,SAAS,QAAQ,CAAC,SAAiB,EAAE,QAAgB;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,iFAAiF;AACjF,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,CACL,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3F,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB;IAC/B,wEAAwE;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAAmB;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,OAAO,cAAc;IACR,MAAM,CAAS;IACf,SAAS,CAAe;IACxB,UAAU,CAAU;IACpB,OAAO,CAAS;IAChB,GAAG,CAAe;IAClB,GAAG,CAA4B;IACxC,UAAU,CAAU;IAC5B,+EAA+E;IAC9D,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxD,wEAAwE;IACvD,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,UAAU,CAAc;IACxB,aAAa,CAA2B;IACxC,WAAW,CAAY;IACvB,eAAe,GAAG,CAAC,CAAC;IACpB,YAAY,CAAqB;IAEzC,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,SAAS;gBACjB,CAAC,CAAC,MAAM,EAAE,EAAE,CACV,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,kDAAkD;IAClD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,kFAAkF;IAClF,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,6CAA6C;IAC7C,gBAAgB,CAAC,QAAiC;QAChD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,wDAAwD;IACxD,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,mBAA4B;QACxC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CACZ,mBAAuC,EACvC,EAAyC;QAEzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,IAAI,gBAAgB,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,SAAS,GAAG,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;;gBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,KAAK;QACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,mBAA4B;QACpD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtF,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACvC,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;gBAAE,SAAS;YACrE,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC,UAAU,CAAC;YAChF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAE9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QACxE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QACnC,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC;oBACH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,QAAQ,EAAE,EAAE,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBACxC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC;IACjC,CAAC;IAEO,IAAI,CAAC,IAAY;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,4EAA4E;YAC5E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IACvE,eAAe,CAAC,IAAY;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe;YAAE,OAAO;QAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe;gBAAE,OAAO;YAChD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,KAA6B;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAI7C,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAc,CAAC;IACpD,IAAI,IAA4B,CAAC;IACjC,MAAM,OAAO,GAAG,GAAe,EAAE;QAC/B,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,MAAM,CAAC;QAChD,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAgB,EAAE;QACxC,GAAG,CAAC,OAAO,EAAE,QAAQ;YACnB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,OAAO,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,OAAO,KAAK,KAAK,UAAU;gBAChC,CAAC,CAAE,KAAyC,CAAC,IAAI,CAAC,MAAM,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { Config } from "./config.js";
|
|
3
3
|
import { loadConfig } from "./config.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type PluginProjects, type StoreSource } from "./projects.js";
|
|
5
5
|
import { SERVER_VERSION } from "./version.js";
|
|
6
6
|
/**
|
|
7
7
|
* MCP server surface for code-crawler.
|
|
@@ -12,5 +12,9 @@ import { SERVER_VERSION } from "./version.js";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const SERVER_NAME = "code-crawler";
|
|
14
14
|
export { SERVER_VERSION };
|
|
15
|
-
export
|
|
15
|
+
export interface ServerOptions {
|
|
16
|
+
/** Plugin mode: resolve one database per project instead of the fixed store. */
|
|
17
|
+
projects?: PluginProjects;
|
|
18
|
+
}
|
|
19
|
+
export declare function createServer(initialStore: StoreSource, config: Config, options?: ServerOptions): McpServer;
|
|
16
20
|
export { loadConfig };
|
package/dist/server.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { fileURLToPath } from "node:url";
|
|
1
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { RootsListChangedNotificationSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
2
4
|
import { z } from "zod";
|
|
3
5
|
import { loadConfig } from "./config.js";
|
|
4
6
|
import { crawlProject } from "./crawler.js";
|
|
@@ -6,6 +8,7 @@ import { applyBudget, pageMeta } from "./graph/budget.js";
|
|
|
6
8
|
import { explainSymbol, exportGraph, findCycles, findUnresolved, impactAnalysis, unresolvedForNode, } from "./graph/insights.js";
|
|
7
9
|
import { deadCode, externalDependencies, findAnnotated, findEntryPoints, findImplementations, findInjections, findReflections, findRoutes, getAspects, getCallees, getCallers, getDecorators, getSubgraph, hotspots, searchSymbols, suggestSymbols, traceExecution, tracePath, } from "./graph/queries.js";
|
|
8
10
|
import { EDGE_KINDS, NODE_KINDS } from "./graph/schema.js";
|
|
11
|
+
import { scopedStore } from "./projects.js";
|
|
9
12
|
import { SERVER_VERSION } from "./version.js";
|
|
10
13
|
/**
|
|
11
14
|
* MCP server surface for code-crawler.
|
|
@@ -16,11 +19,31 @@ import { SERVER_VERSION } from "./version.js";
|
|
|
16
19
|
*/
|
|
17
20
|
export const SERVER_NAME = "code-crawler";
|
|
18
21
|
export { SERVER_VERSION };
|
|
19
|
-
export function createServer(
|
|
22
|
+
export function createServer(initialStore, config, options = {}) {
|
|
23
|
+
const { store, run } = scopedStore(initialStore);
|
|
20
24
|
const server = new McpServer({
|
|
21
25
|
name: SERVER_NAME,
|
|
22
26
|
version: SERVER_VERSION,
|
|
23
27
|
});
|
|
28
|
+
if (options.projects) {
|
|
29
|
+
const projects = options.projects;
|
|
30
|
+
projects.setRootsProvider(async () => {
|
|
31
|
+
if (!server.server.getClientCapabilities()?.roots)
|
|
32
|
+
return [];
|
|
33
|
+
const result = await server.server.listRoots();
|
|
34
|
+
return result.roots.flatMap((root) => {
|
|
35
|
+
try {
|
|
36
|
+
return [fileURLToPath(root.uri)];
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
server.server.setNotificationHandler(RootsListChangedNotificationSchema, async () => {
|
|
44
|
+
projects.invalidateRoots();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
24
47
|
const text = (data) => ({
|
|
25
48
|
content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
|
|
26
49
|
});
|
|
@@ -95,6 +118,12 @@ export function createServer(store, config) {
|
|
|
95
118
|
next.count = items.length;
|
|
96
119
|
return next;
|
|
97
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Bind `fn` to the database for the project the client is working in. This is
|
|
123
|
+
* also used by the prompt below: every handler that reads the graph must go
|
|
124
|
+
* through here, or plugin mode would silently use the fallback database.
|
|
125
|
+
*/
|
|
126
|
+
const scoped = (projectPath, fn) => options.projects ? options.projects.withCall(projectPath, (bound) => run(bound, fn)) : fn();
|
|
98
127
|
/**
|
|
99
128
|
* Every handler shares one error boundary so MCP clients always receive the
|
|
100
129
|
* same `{ ok, error, hint }` shape instead of a mix of throws and payloads.
|
|
@@ -103,7 +132,10 @@ export function createServer(store, config) {
|
|
|
103
132
|
const register = server.tool.bind(server);
|
|
104
133
|
register(name, description, paramsSchema, async (...args) => {
|
|
105
134
|
try {
|
|
106
|
-
|
|
135
|
+
// `crawl_project` names the project it wants; every other tool inherits
|
|
136
|
+
// the client's roots or the project the previous call selected.
|
|
137
|
+
const requested = name === "crawl_project" ? args[0]?.path : undefined;
|
|
138
|
+
return await scoped(typeof requested === "string" ? requested : undefined, () => handler(...args));
|
|
107
139
|
}
|
|
108
140
|
catch (err) {
|
|
109
141
|
return errorResult(err);
|
|
@@ -111,7 +143,7 @@ export function createServer(store, config) {
|
|
|
111
143
|
});
|
|
112
144
|
};
|
|
113
145
|
// ------------------------------------------------------------------ tools
|
|
114
|
-
tool("crawl_project", "Index a project directory into the codebase graph. Supports Java, Python, TypeScript, and JavaScript. Idempotent: a full re-crawl refreshes the index and removes files that disappeared. The index holds one project; indexing a different project fails until clear_index is called. Honors .gitignore and an optional .crawlerrc, skips files above CODECRAWLER_MAX_FILE_BYTES and binary files, and reports skipped files and parse errors. Scoped crawls (fileFilter or language) never remove files outside their scope and report pruned=false. Returns counts of files, nodes, edges, resolved/unresolved call sites, entry points, injections, reflections, and external dependencies.", {
|
|
146
|
+
tool("crawl_project", "Index a project directory into the codebase graph. Supports Java, Python, TypeScript, and JavaScript. Idempotent: a full re-crawl refreshes the index and removes files that disappeared. The index holds one project; outside plugin mode, indexing a different project fails until clear_index is called (plugin mode opens that project's own database). Honors .gitignore and an optional .crawlerrc, skips files above CODECRAWLER_MAX_FILE_BYTES and binary files, and reports skipped files and parse errors. Scoped crawls (fileFilter or language) never remove files outside their scope and report pruned=false. Returns counts of files, nodes, edges, resolved/unresolved call sites, entry points, injections, reflections, and external dependencies.", {
|
|
115
147
|
path: z.string().describe("Absolute path to the project root directory to index."),
|
|
116
148
|
language: z
|
|
117
149
|
.string()
|
|
@@ -930,7 +962,7 @@ export function createServer(store, config) {
|
|
|
930
962
|
server.prompt("trace-call-path", "Given two symbols, trace every static call path between them.", {
|
|
931
963
|
from: z.string().describe("Starting symbol"),
|
|
932
964
|
to: z.string().describe("Destination symbol"),
|
|
933
|
-
},
|
|
965
|
+
}, ({ from, to }) => scoped(undefined, () => {
|
|
934
966
|
const paths = tracePath(store, from, to, { limit: 10 });
|
|
935
967
|
if (!paths || paths.length === 0) {
|
|
936
968
|
return {
|
|
@@ -960,7 +992,7 @@ export function createServer(store, config) {
|
|
|
960
992
|
},
|
|
961
993
|
],
|
|
962
994
|
};
|
|
963
|
-
});
|
|
995
|
+
}));
|
|
964
996
|
return server;
|
|
965
997
|
}
|
|
966
998
|
export { loadConfig };
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,QAAQ,EAER,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,GAEV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAyC,WAAW,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,CAAC;AAqB1B,MAAM,UAAU,YAAY,CAC1B,YAAyB,EACzB,MAAc,EACd,OAAO,GAAkB,EAAE;IAE3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,KAAK;gBAAE,OAAO,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnC,IAAI,CAAC;oBACH,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAClF,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAsB,EAAE,CACzD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5C,MAAM,GAAG,GAAG,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC;QAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,MAAM,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,WAAW,MAAM,0BAA0B;YAClD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,IAAI,EAAE,kEAAkE;SACzE,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,sIAAsI;SAC7I,CAAC,CAAC;IACL,CAAC,CAAC;IAEF;;;OAGG;IACH,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,GAAG,CAAC;aACR,GAAG,CAAC,MAAM,CAAC;aACX,QAAQ,EAAE;aACV,QAAQ,CACP,gLAAgL,CACjL;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;KAChG,CAAC;IAEF;;;;;OAKG;IACH,MAAM,KAAK,GAAG,CACZ,OAAgC,EAChC,GAAW,EACX,KAAU,EACV,IAA8C,EACrB,EAAE;QAC3B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAC/E,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9F,IAAI,OAAO,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,MAAM,GAAG,CAAI,WAA+B,EAAE,EAAwB,EAAkB,EAAE,CAC9F,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAE9F;;;OAGG;IACH,MAAM,IAAI,GAAG,CACX,IAAY,EACZ,WAAmB,EACnB,YAAqB,EACrB,OAAmC,EAC7B,EAAE;QACR,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAK/B,CAAC;QACV,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,wEAAwE;gBACxE,gEAAgE;gBAChE,MAAM,SAAS,GACb,IAAI,KAAK,eAAe,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAoC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3F,OAAO,MAAM,MAAM,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAC9E,OAAO,CAAC,GAAI,IAAa,CAAC,CAC3B,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,2EAA2E;IAE3E,IAAI,CACF,eAAe,EACf,suBAAsuB,EACtuB;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAClF,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sMAAsM,CACvM;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8EAA8E,CAAC;QAC3F,KAAK,EAAE,CAAC;aACL,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,0QAA0Q,CAC3Q;KACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;QACrE,MAAM,KAAK,GAAG,QAAyB,CAAC;QACxC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;YACxE,QAAQ;YACR,UAAU;YACV,KAAK;YACL,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EACR,aAAa,KAAK,SAAS;gBACzB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACX,IACE,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK;wBACrC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAC/C,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,KAAK,KAAK;yBACP,gBAAgB,CAAC;wBAChB,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE;4BACN,aAAa;4BACb,QAAQ,EAAE,QAAQ,CAAC,SAAS;4BAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;4BACrB,OAAO,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,QAAQ;yBAC3E;qBACF,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,IAAI;YACR,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,cAAc,EACd,4FAA4F,EAC5F,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,oJAAoJ,EACpJ;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QAClF,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACxF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YACnE,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,UAAU,EACV,0NAA0N,EAC1N;QACE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,CAAC,kEAAkE,CAAC;KAChF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,UAAU;gBAClB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAmB,CAAC;gBACpD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAiB,CAAC;aACjD;YACD,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC;oBACE,UAAU,EAAE;wBACV,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;wBACvC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;wBAC7C,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACrC,MAAM,EAAE,CAAC,CAAC,WAAW;4BACrB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;yBACnB,CAAC,CAAC;wBACH,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC5C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;4BACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;yBACnB,CAAC,CAAC;qBACJ;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,aAAa,EACb,oLAAoL,EACpL;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACzF,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EACL,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,GACP,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;YACvC,UAAU;YACV,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,cAAc;YAC7B,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YACxF,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,aAAa,EACb,sKAAsK,EACtK;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACzF,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EACL,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,GACP,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;YACvC,UAAU;YACV,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,cAAc;YAC7B,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YACxF,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,YAAY,EACZ,0KAA0K,EAC1K;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACvE,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EACL,MAAM,EACN,MAAM,EACN,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,GACP,EAAE,EAAE;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;YAC7C,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,cAAc;YAC7B,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;aACnC,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAClF,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,iBAAiB,EACjB,qNAAqN,EACrN;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAChF,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACnF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1F,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;YAC3C,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,cAAc;YAC7B,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;SACnC,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAChF,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,sBAAsB,EACtB,6IAA6I,EAC7I;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5F,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;SACX,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CACH;YACE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,mBAAmB,EAAE,eAAe,CAAC,MAAM;YAC3C,eAAe;SAChB,EACD,iBAAiB,EACjB,eAAe,EACf,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,cAAc,EACd,yHAAyH,EACzH;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;gBACvB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;aAC9B,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YACxE,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,2IAA2I,EAC3I;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC3D,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpE,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CACH;YACE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,GAAG,CAAC;gBACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACnB,CAAC,CAAC;YACH,OAAO;SACR,EACD,SAAS,EACT,OAAO,EACP,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,6FAA6F,EAC7F;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CAAC,6DAA6D,CAAC;QAC1E,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YACjF,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,eAAe,EACf,kIAAkI,EAClI;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACvF,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;YAC9B,KAAK;YACL,QAAQ,EAAE,UAAU;YACpB,cAAc,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CACxF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,yQAAyQ,EACzQ;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpF,oBAAoB,EAAE,CAAC;aACpB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,uCAAuC,CAAC;QACpD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACvF,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5F,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;YAC9B,KAAK;YACL,mBAAmB,EAAE,oBAAoB;YACzC,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAClF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,cAAc,EACd,oIAAoI,EACpI;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACrF,UAAU,EAAE,CAAC;aACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KAC3F,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;YACV,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,CAAC;gBACJ,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;aACnC,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,mBAAmB,EACnB,sMAAsM,EACtM;QACE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,kFAAkF,CACnF;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACxF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE;YAC5E,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,iBAAiB,EACjB,wQAAwQ,EACxQ;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sEAAsE,CAAC;QACnF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACxF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;YACxE,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,kBAAkB,EAClB,2PAA2P,EAC3P;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACxF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE;YAC5E,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,aAAa,EACb,6KAA6K,EAC7K;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACxF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAClF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,4BAA4B,EAC5B,qNAAqN,EACrN;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzF,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;YAChE,UAAU;YACV,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,YAAY,EACZ,mIAAmI,EACnI,EAAE,EACF,KAAK,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;YACV,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,kBAAkB;gBAC1B,WAAW,EAAE,qBAAqB;gBAClC,KAAK,EAAE,mBAAmB;gBAC1B,UAAU,EAAE,gBAAgB;gBAC5B,MAAM,EAAE,4BAA4B;gBACpC,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,yBAAyB;gBACjC,OAAO,EAAE,gCAAgC;aAC1C;YACD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC;YACzD,WAAW,EACT,4NAA4N;YAC9N,YAAY,EAAE;gBACZ,gBAAgB,EACd,8GAA8G;gBAChH,OAAO,EACL,iFAAiF;gBACnF,OAAO,EACL,wHAAwH;gBAC1H,QAAQ,EACN,oHAAoH;gBACtH,MAAM,EACJ,kFAAkF;gBACpF,cAAc,EAAE,yEAAyE;gBACzF,oBAAoB,EAClB,oHAAoH;aACvH;YACD,WAAW,EAAE,wBAAwB;SACtC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,aAAa,EACb,6FAA6F,EAC7F,EAAE,EACF,KAAK,IAAI,EAAE;QACT,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,IAAI,CACF,iBAAiB,EACjB,4WAA4W,EAC5W;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;QAChF,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wCAAwC,CAAC;QACrD,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SACnB,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CACH;YACE,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,KAAK;SAClB,EACD,YAAY,EACZ,KAAK,EACL,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,iBAAiB,EACjB,gYAAgY,EAChY;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC3D,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;KACnD,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;YAC3C,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,eAAe;YAC/B,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;YACV,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;gBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;aACX,CAAC,CAAC;YACH,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,8SAA8S,EAC9S;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC3D,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,CAAC;QACzD,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oCAAoC,CAAC;KAClD,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;YAC1C,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,eAAe;YAC/B,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;YACV,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;YAC1C,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACpE,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;gBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;gBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;aACX,CAAC,CAAC;YACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YACzC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAI,CACF,aAAa,EACb,0TAA0T,EAC1T;QACE,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2CAA2C,CAAC;QACxD,UAAU,EAAE,CAAC;aACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;QACzE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oCAAoC,CAAC;QACjD,GAAG,YAAY;KAChB,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE;YAC/B,cAAc,EAAE,eAAe,IAAI,IAAI;YACvC,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,UAAU;YACrB,KAAK;SACN,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACT,KAAK,CACH;YACE,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5C,MAAM;SACP,EACD,QAAQ,EACR,MAAM,EACN,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CACF,cAAc,EACd,mPAAmP,EACnP;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC3F,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC9B,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACzF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE;YAChC,MAAM;YACN,MAAM;YACN,MAAM;YACN,SAAS;YACT,SAAS,EAAE,UAAU;YACrB,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CACF,CAAC;IAEF,0EAA0E;IAE1E,MAAM,CAAC,gBAAgB,CACrB,cAAc,EACd,sBAAsB,EACtB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,0DAA0D;KACxE,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,sBAAsB;gBAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,SAAS,EAAE,UAAU;oBACrB,SAAS,EAAE,UAAU;oBACrB,QAAQ,EAAE;wBACR,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,kBAAkB;wBAC1B,WAAW,EAAE,qBAAqB;wBAClC,KAAK,EAAE,mBAAmB;wBAC1B,UAAU,EAAE,gBAAgB;wBAC5B,MAAM,EAAE,4BAA4B;wBACpC,QAAQ,EAAE,cAAc;wBACxB,MAAM,EAAE,yBAAyB;wBACjC,OAAO,EAAE,gCAAgC;qBAC1C;oBACD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC;oBACzD,YAAY,EAAE;wBACZ,gBAAgB,EACd,+EAA+E;wBACjF,OAAO,EAAE,kEAAkE;wBAC3E,OAAO,EAAE,8DAA8D;wBACvE,QAAQ,EAAE,uEAAuE;wBACjF,MAAM,EAAE,gEAAgE;wBACxE,cAAc,EAAE,gEAAgE;qBACjF;iBACF,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,cAAc,EACd,sBAAsB,EACtB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,0DAA0D;KACxE,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,sBAAsB;oBAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,GAAG,KAAK;wBACR,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;qBAChD,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,0EAA0E;IAE1E,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,+DAA+D,EAC/D;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KAC9C,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CACf,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,wCAAwC,IAAI,WAAW,EAAE,MAAM;gCAC/D,4DAA4D;gCAC5D,0DAA0D;yBAC7D;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,yCAAyC,IAAI,WAAW,EAAE,SAAS;4BACnE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BAClE,wFAAwF;qBAC3F;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/mcp.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
|
|
3
|
+
"mcpServers": {
|
|
4
|
+
"code-crawler": {
|
|
5
|
+
"type": "stdio",
|
|
6
|
+
"command": "npx",
|
|
7
|
+
"args": ["-y", "@nithin554/code-crawler", "serve"],
|
|
8
|
+
"env": {
|
|
9
|
+
"CODECRAWLER_PLUGIN": "1",
|
|
10
|
+
"CODECRAWLER_PLUGIN_ROOT": "${PLUGIN_ROOT}",
|
|
11
|
+
"CODECRAWLER_PLUGIN_DATA": "${PLUGIN_DATA}"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nithin554/code-crawler",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.67",
|
|
4
4
|
"mcpName": "io.github.nithin554/code-crawler",
|
|
5
5
|
"description": "Static and dynamic call tracing MCP server backed by a SQLite property graph of your codebase",
|
|
6
6
|
"type": "module",
|
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"dist",
|
|
17
|
-
"skills"
|
|
17
|
+
"skills",
|
|
18
|
+
"plugin.json",
|
|
19
|
+
"mcp.json",
|
|
20
|
+
".claude-plugin"
|
|
18
21
|
],
|
|
19
22
|
"engines": {
|
|
20
23
|
"node": ">=22.12"
|
package/plugin.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
|
+
"name": "code-crawler",
|
|
4
|
+
"description": "Static and dynamic call tracing MCP server backed by a SQLite property graph of your codebase",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "nithin554",
|
|
7
|
+
"url": "https://github.com/nithin554"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://nithin554.github.io/code-crawler/",
|
|
10
|
+
"repository": "https://github.com/nithin554/code-crawler",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"code-analysis",
|
|
14
|
+
"call-graph",
|
|
15
|
+
"static-analysis",
|
|
16
|
+
"mcp",
|
|
17
|
+
"dead-code",
|
|
18
|
+
"impact-analysis"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-crawler
|
|
3
3
|
description: Answer questions about code relationships in an indexed repository - callers, callees, impact, entry points, routes, DI wiring, dead code, cycles - using the code-crawler MCP server's SQLite property graph. Use when the question is about how symbols connect (who calls this, what breaks if I change it, where does a request enter, is this reachable) rather than about text you can find by searching. Do not crawl a repository just to answer a question about a single file you already have open.
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🕸️"
|
|
7
|
+
homepage: https://nithin554.github.io/code-crawler/
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["node"]
|
|
10
|
+
install:
|
|
11
|
+
- kind: node
|
|
12
|
+
package: "@nithin554/code-crawler"
|
|
13
|
+
bins: ["codecrawler"]
|
|
4
14
|
---
|
|
5
15
|
|
|
6
16
|
# Code Crawler
|
|
@@ -20,6 +30,14 @@ delivers these instructions, and `npx add-mcp @nithin554/code-crawler` — or th
|
|
|
20
30
|
below — registers the server that delivers the tools. Both are needed, and they are
|
|
21
31
|
independent.
|
|
22
32
|
|
|
33
|
+
If this skill arrived inside the **code-crawler plugin**, the server is registered for you.
|
|
34
|
+
The plugin starts the server from the plugin directory, but resolves a project for each
|
|
35
|
+
call — `crawl_project`, the client's workspace roots, or the project this session already
|
|
36
|
+
selected — and keeps that repository's graph in `<project>/.code-crawler/index.db`. One
|
|
37
|
+
plugin install serves
|
|
38
|
+
every repository you open, each with its own database. Set `CODECRAWLER_DB` to pin a single
|
|
39
|
+
file instead.
|
|
40
|
+
|
|
23
41
|
The server is the npm package `@nithin554/code-crawler` and needs Node.js ≥ 22.12. Every
|
|
24
42
|
stdio MCP client takes the same command/args/env triple:
|
|
25
43
|
|