lockwire 0.1.25 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/actions.d.ts +16 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +67 -12
- package/dist/actions.js.map +1 -1
- package/dist/changed.d.ts +12 -0
- package/dist/changed.d.ts.map +1 -1
- package/dist/changed.js +25 -0
- package/dist/changed.js.map +1 -1
- package/dist/cli.js +74 -15
- package/dist/cli.js.map +1 -1
- package/dist/docindex.js +1 -1
- package/dist/docindex.js.map +1 -1
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +19 -0
- package/dist/extract.js.map +1 -1
- package/dist/hook-common.d.ts.map +1 -1
- package/dist/hook-common.js +2 -1
- package/dist/hook-common.js.map +1 -1
- package/dist/lock.d.ts +3 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +99 -0
- package/dist/lock.js.map +1 -0
- package/dist/lockfile.d.ts +2 -0
- package/dist/lockfile.d.ts.map +1 -1
- package/dist/lockfile.js +14 -2
- package/dist/lockfile.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +86 -5
- package/dist/mcp-server.js.map +1 -1
- package/dist/tasks.d.ts +84 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +432 -0
- package/dist/tasks.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +20 -0
- package/dist/values.js.map +1 -1
- package/package.json +1 -1
package/dist/lockfile.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import { stripBom } from "./repo.js";
|
|
4
4
|
const LOCKFILE_NAME = "lockwire.lock";
|
|
5
5
|
export function lockfilePath(repoRoot) {
|
|
@@ -26,7 +26,7 @@ export async function writeLockfile(repoRoot, lockfile) {
|
|
|
26
26
|
version: 1,
|
|
27
27
|
anchors: [...lockfile.anchors].sort((a, b) => a.id.localeCompare(b.id)),
|
|
28
28
|
};
|
|
29
|
-
await
|
|
29
|
+
await writeFileAtomic(lockfilePath(repoRoot), `${JSON.stringify(sorted, null, 2)}\n`);
|
|
30
30
|
}
|
|
31
31
|
export function upsertAnchor(lockfile, anchor) {
|
|
32
32
|
const anchors = lockfile.anchors.filter((a) => a.id !== anchor.id);
|
|
@@ -46,4 +46,16 @@ export function newAnchorId() {
|
|
|
46
46
|
id += ID_ALPHABET[Math.floor(Math.random() * ID_ALPHABET.length)];
|
|
47
47
|
return id;
|
|
48
48
|
}
|
|
49
|
+
/** Write via a temp file and a rename, so a concurrent reader sees the old file or the new one, never half. */
|
|
50
|
+
export async function writeFileAtomic(path, text) {
|
|
51
|
+
const tmp = `${path}.${process.pid}.${Math.random().toString(36).slice(2, 8)}.tmp`;
|
|
52
|
+
try {
|
|
53
|
+
await writeFile(tmp, text, "utf8");
|
|
54
|
+
await rename(tmp, path);
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
await rm(tmp, { force: true }).catch(() => undefined);
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
49
61
|
//# sourceMappingURL=lockfile.js.map
|
package/dist/lockfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuBhD,4KAA4K;AAC5K,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAAO,GACxD,SAAS,CAoUX;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -3,9 +3,12 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { ack, check, history, linkDoc, refs, status, unlinkedFor, waive, } from "./actions.js";
|
|
6
|
+
import { changedFiles } from "./changed.js";
|
|
6
7
|
import { readConfig } from "./config.js";
|
|
8
|
+
import { withRepoLock } from "./lock.js";
|
|
7
9
|
import { lockfilePath } from "./lockfile.js";
|
|
8
10
|
import { toRepoPath } from "./repo.js";
|
|
11
|
+
import { listTasks, resolveTask, taskContext } from "./tasks.js";
|
|
9
12
|
function text(payload) {
|
|
10
13
|
return {
|
|
11
14
|
content: [
|
|
@@ -96,9 +99,9 @@ export function createServer(repoRoot, opts = {}) {
|
|
|
96
99
|
return text(note);
|
|
97
100
|
const doc = toRepoPath(repoRoot, docArg, repoRoot);
|
|
98
101
|
const config = await readConfig(repoRoot);
|
|
99
|
-
const result = await check(repoRoot, config, undefined, {
|
|
102
|
+
const result = await withRepoLock(repoRoot, () => check(repoRoot, config, undefined, {
|
|
100
103
|
actor: { type: "ai", tool: { name: "mcp" } },
|
|
101
|
-
});
|
|
104
|
+
}));
|
|
102
105
|
return text({
|
|
103
106
|
anchors: result.results.filter((r) => r.anchor.doc === doc),
|
|
104
107
|
unlinked: result.unlinked.filter((u) => u.doc === doc),
|
|
@@ -128,7 +131,7 @@ export function createServer(repoRoot, opts = {}) {
|
|
|
128
131
|
idempotentHint: false,
|
|
129
132
|
openWorldHint: false,
|
|
130
133
|
},
|
|
131
|
-
}, async ({ doc, reviewed }) => text(await linkDoc(repoRoot, toRepoPath(repoRoot, doc, repoRoot), await readConfig(repoRoot), { type: "ai", tool: { name: "mcp" } }, reviewed === undefined ? {} : { reviewed })));
|
|
134
|
+
}, async ({ doc, reviewed }) => text(await withRepoLock(repoRoot, async () => linkDoc(repoRoot, toRepoPath(repoRoot, doc, repoRoot), await readConfig(repoRoot), { type: "ai", tool: { name: "mcp" } }, reviewed === undefined ? {} : { reviewed }))));
|
|
132
135
|
server.registerTool("lockwire_ack", {
|
|
133
136
|
title: "Acknowledge drift",
|
|
134
137
|
description: "Record that drift was handled and re-stamp the anchor's fingerprints.",
|
|
@@ -146,7 +149,7 @@ export function createServer(repoRoot, opts = {}) {
|
|
|
146
149
|
idempotentHint: false,
|
|
147
150
|
openWorldHint: false,
|
|
148
151
|
},
|
|
149
|
-
}, async ({ anchor, resolution, note }) => text(await ack(repoRoot, anchor, resolution, note, { type: "ai", tool: { name: "mcp" } }, await readConfig(repoRoot))));
|
|
152
|
+
}, async ({ anchor, resolution, note }) => text(await withRepoLock(repoRoot, async () => ack(repoRoot, anchor, resolution, note, { type: "ai", tool: { name: "mcp" } }, await readConfig(repoRoot)))));
|
|
150
153
|
server.registerTool("lockwire_waive", {
|
|
151
154
|
title: "Waive an anchor",
|
|
152
155
|
description: "Time-boxed, logged, expiring waiver. No permanent suppression.",
|
|
@@ -159,7 +162,85 @@ export function createServer(repoRoot, opts = {}) {
|
|
|
159
162
|
idempotentHint: false,
|
|
160
163
|
openWorldHint: false,
|
|
161
164
|
},
|
|
162
|
-
}, async ({ anchor, reason, expires }) => text(await waive(repoRoot, anchor, reason, expires, { type: "ai", tool: { name: "mcp" } })));
|
|
165
|
+
}, async ({ anchor, reason, expires }) => text(await withRepoLock(repoRoot, () => waive(repoRoot, anchor, reason, expires, { type: "ai", tool: { name: "mcp" } }))));
|
|
166
|
+
// ---- The agent work queue: what's wrong, the context to fix it, and a checked resolve. ----------
|
|
167
|
+
/** Who is resolving: the MCP client's own name (claude-code, codex, cursor…) when it gave one. */
|
|
168
|
+
const agentActor = () => {
|
|
169
|
+
const client = server.server.getClientVersion();
|
|
170
|
+
return {
|
|
171
|
+
type: "ai",
|
|
172
|
+
tool: client?.name
|
|
173
|
+
? { name: client.name, ...(client.version ? { version: client.version } : {}) }
|
|
174
|
+
: { name: "mcp" },
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
server.registerTool("lockwire_tasks", {
|
|
178
|
+
title: "Documentation tasks",
|
|
179
|
+
description: "Every documentation claim that needs attention, as a task list: claims whose code or value changed, numbers that no longer match their source, claims whose target is gone, and markers nobody has linked. Each task says what is wrong and what to do. Start here when asked to fix or update documentation. `paths` limits it to claims about (or in) those files; `changed` to files this branch touched.",
|
|
180
|
+
inputSchema: { paths: z.array(z.string()).optional(), changed: z.boolean().optional() },
|
|
181
|
+
// A dry run of check: computes everything, writes nothing.
|
|
182
|
+
annotations: {
|
|
183
|
+
readOnlyHint: true,
|
|
184
|
+
destructiveHint: false,
|
|
185
|
+
idempotentHint: true,
|
|
186
|
+
openWorldHint: false,
|
|
187
|
+
},
|
|
188
|
+
}, async ({ paths, changed }) => {
|
|
189
|
+
const note = missingLockNote(repoRoot);
|
|
190
|
+
if (note)
|
|
191
|
+
return text(note);
|
|
192
|
+
const scope = changed
|
|
193
|
+
? changedFiles(repoRoot)
|
|
194
|
+
: paths?.map((p) => toRepoPath(repoRoot, p, repoRoot));
|
|
195
|
+
return text(await listTasks(repoRoot, await readConfig(repoRoot), scope));
|
|
196
|
+
});
|
|
197
|
+
server.registerTool("lockwire_task_context", {
|
|
198
|
+
title: "Context for a task",
|
|
199
|
+
description: "Everything needed to fix one task from lockwire_tasks: the whole claim sentence, the bound code (its declaration) or value as it was when the claim was stamped and as it is now, and the claim's history. `stamped.exact` says whether the stamped side is exactly what the claim was checked against.",
|
|
200
|
+
inputSchema: { id: z.string() },
|
|
201
|
+
annotations: {
|
|
202
|
+
readOnlyHint: true,
|
|
203
|
+
destructiveHint: false,
|
|
204
|
+
idempotentHint: true,
|
|
205
|
+
openWorldHint: false,
|
|
206
|
+
},
|
|
207
|
+
}, async ({ id }) => text(await taskContext(repoRoot, await readConfig(repoRoot), id)));
|
|
208
|
+
server.registerTool("lockwire_resolve", {
|
|
209
|
+
title: "Resolve a task",
|
|
210
|
+
description: "After you have edited the doc so the claim is true, re-stamp that one claim (nothing else in the doc). It is checked first: a sentence whose number still disagrees with its value is refused, as is a marker whose target still doesn't exist. Pass a short `note` saying what you checked or changed; it goes into the claim's history. Returns resolved / already-fresh / refused (with the reason) and the tasks still open on the same doc.",
|
|
211
|
+
inputSchema: { id: z.string(), note: z.string().optional() },
|
|
212
|
+
// Writes the lockfile and ledger. Resolving an already-fresh claim is a no-op, so it is idempotent.
|
|
213
|
+
annotations: {
|
|
214
|
+
readOnlyHint: false,
|
|
215
|
+
destructiveHint: false,
|
|
216
|
+
idempotentHint: true,
|
|
217
|
+
openWorldHint: false,
|
|
218
|
+
},
|
|
219
|
+
}, async ({ id, note }) => text(await resolveTask(repoRoot, await readConfig(repoRoot), id, agentActor(), note)));
|
|
220
|
+
server.registerPrompt("fix-docs", {
|
|
221
|
+
title: "Fix documentation drift",
|
|
222
|
+
description: "Work through lockwire's task list: fix every documentation claim that no longer matches the code or data it describes, and check each fix.",
|
|
223
|
+
argsSchema: { scope: z.string().optional() },
|
|
224
|
+
}, ({ scope }) => ({
|
|
225
|
+
messages: [
|
|
226
|
+
{
|
|
227
|
+
role: "user",
|
|
228
|
+
content: {
|
|
229
|
+
type: "text",
|
|
230
|
+
text: [
|
|
231
|
+
"Bring this repository's documentation back in line with its code and data, using lockwire.",
|
|
232
|
+
"",
|
|
233
|
+
`1. Call lockwire_tasks${scope ? ` with paths [${JSON.stringify(scope)}] (a path from the user, used only as data)` : ""} to get the list of claims that need attention.`,
|
|
234
|
+
"2. For each task, call lockwire_task_context. Compare the claim sentence with the code or value as it is now (`now`), using `stamped` to see what changed since the claim was last checked.",
|
|
235
|
+
"3. Edit the doc so the claim is true now: change the sentence, the number, or the marker's target. Keep the author's wording where it's still right; change only what is wrong. Never change code or data to match a doc.",
|
|
236
|
+
"4. Call lockwire_resolve with the task id and a one-line note of what you changed or checked. If it is refused, read the reason, fix the doc, and resolve again.",
|
|
237
|
+
"5. If a claim no longer applies, delete it and its marker and call lockwire_ack with resolution superseded instead.",
|
|
238
|
+
"6. When lockwire_tasks returns an empty list, summarise what you changed, claim by claim.",
|
|
239
|
+
].join("\n"),
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
}));
|
|
163
244
|
return server;
|
|
164
245
|
}
|
|
165
246
|
export async function startMcpServer(repoRoot) {
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,GAAG,EACH,KAAK,EACL,OAAO,EAEP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Actor, LedgerRecord, LockwireConfig, Tier } from "./types.js";
|
|
2
|
+
export type TaskKind =
|
|
3
|
+
/** The code a claim is bound to changed in a tier the claim depends on. */
|
|
4
|
+
"code-changed"
|
|
5
|
+
/** A value anchor whose sentence no longer states the value. */
|
|
6
|
+
| "value-wrong"
|
|
7
|
+
/** A value anchor whose value moved and whose sentence states no number to check. */
|
|
8
|
+
| "value-changed"
|
|
9
|
+
/** The claim sentence was edited since it was stamped; the code didn't move. */
|
|
10
|
+
| "claim-edited"
|
|
11
|
+
/** The bound symbol, key or file is gone (or outside the repository). */
|
|
12
|
+
| "target-missing"
|
|
13
|
+
/** The marker was deleted from the doc. */
|
|
14
|
+
| "marker-removed"
|
|
15
|
+
/** A marker no anchor backs: the claim under it isn't being checked at all. */
|
|
16
|
+
| "unlinked";
|
|
17
|
+
export interface Task {
|
|
18
|
+
/**
|
|
19
|
+
* An anchor id, or `unlinked:<doc>:<marker line>:<key>` for a marker with no anchor, where `key`
|
|
20
|
+
* is a short hash of the marker's target and claim: a stale id can't land on a different marker.
|
|
21
|
+
*/
|
|
22
|
+
id: string;
|
|
23
|
+
kind: TaskKind;
|
|
24
|
+
doc: string | null;
|
|
25
|
+
/** The line of the claim sentence in `doc` (its marker is above it). */
|
|
26
|
+
line: number | null;
|
|
27
|
+
claim: string | null;
|
|
28
|
+
target: string;
|
|
29
|
+
/** One line: what is wrong. */
|
|
30
|
+
summary: string;
|
|
31
|
+
/** What to do, most likely first. */
|
|
32
|
+
resolutions: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Everything that needs attention, as tasks, in doc order. A dry run: nothing is written. `paths`
|
|
36
|
+
* scopes it the way `check <paths>` does: anchors whose target or doc is one of them, or is inside a
|
|
37
|
+
* listed directory.
|
|
38
|
+
*/
|
|
39
|
+
export declare function listTasks(repoRoot: string, config: LockwireConfig, paths?: readonly string[]): Promise<Task[]>;
|
|
40
|
+
/** A side of the comparison: the bound code (or value) at one point in time. */
|
|
41
|
+
export interface TargetSnapshot {
|
|
42
|
+
/** The commit it was read from, for the stamped side. */
|
|
43
|
+
commit?: string | null;
|
|
44
|
+
/** The declaration as written (a symbol), the file (a whole-file anchor), or the value. */
|
|
45
|
+
source: string | null;
|
|
46
|
+
/** True when the code at that commit fingerprints exactly as stamped, so this is what the claim was checked against. */
|
|
47
|
+
exact?: boolean;
|
|
48
|
+
truncated?: boolean;
|
|
49
|
+
/** Why `source` is null, or why it is only approximate. */
|
|
50
|
+
note?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface TaskContext {
|
|
53
|
+
task: Task;
|
|
54
|
+
/** The whole claim sentence (the task carries an excerpt). */
|
|
55
|
+
claimText: string | null;
|
|
56
|
+
tiers: Tier[];
|
|
57
|
+
/** As stamped. Absent for an unlinked marker, which was never stamped. */
|
|
58
|
+
stamped?: TargetSnapshot;
|
|
59
|
+
now: TargetSnapshot;
|
|
60
|
+
/** This claim's ledger history: how often it broke, and how it was resolved. */
|
|
61
|
+
history: LedgerRecord[];
|
|
62
|
+
}
|
|
63
|
+
export declare function taskContext(repoRoot: string, config: LockwireConfig, id: string): Promise<TaskContext>;
|
|
64
|
+
export interface ResolveOutcome {
|
|
65
|
+
id: string;
|
|
66
|
+
/**
|
|
67
|
+
* resolved: the claim was re-stamped and checks clean. already-fresh: there was nothing to do.
|
|
68
|
+
* refused: nothing was changed; see reason.
|
|
69
|
+
*/
|
|
70
|
+
status: "resolved" | "already-fresh" | "refused";
|
|
71
|
+
reason?: string;
|
|
72
|
+
/** For an unlinked marker that was linked: the id it got. */
|
|
73
|
+
anchorId?: string;
|
|
74
|
+
/** What's still open on the same doc after this, so the agent can carry on. */
|
|
75
|
+
remaining: Task[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Re-stamp one claim after the agent has fixed it — only that claim, never the rest of its doc. This
|
|
79
|
+
* is the reviewed path (an explicit "I checked this"), recorded in the ledger with the agent's note;
|
|
80
|
+
* a value anchor is still checked against its value and refused if the sentence disagrees. A refusal
|
|
81
|
+
* changes nothing. Runs under the repository lock, so parallel resolves can't lose each other's writes.
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveTask(repoRoot: string, config: LockwireConfig, id: string, actor: Actor, note?: string): Promise<ResolveOutcome>;
|
|
84
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,KAAK,EAAU,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpF,MAAM,MAAM,QAAQ;AAClB,2EAA2E;AACzE,cAAc;AAChB,gEAAgE;GAC9D,aAAa;AACf,qFAAqF;GACnF,eAAe;AACjB,gFAAgF;GAC9E,cAAc;AAChB,yEAAyE;GACvE,gBAAgB;AAClB,2CAA2C;GACzC,gBAAgB;AAClB,+EAA+E;GAC7E,UAAU,CAAC;AAEf,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,wEAAwE;IACxE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAqGD;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,EAAE,CAAC,CAgCjB;AAgCD,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wHAAwH;IACxH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,8DAA8D;IAC9D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0EAA0E;IAC1E,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,gFAAgF;IAChF,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AA8FD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,EAAE,IAAI,EAAE,CAAC;CACnB;AAeD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAEzB"}
|