@devflow-tools/mcp-server 0.15.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/command-registry.json +34 -36
- package/dist/enforcer/constitutional.d.ts +2 -2
- package/dist/enforcer/constitutional.d.ts.map +1 -1
- package/dist/enforcer/constitutional.js +3 -26
- package/dist/enforcer/constitutional.js.map +1 -1
- package/dist/enforcer/index.d.ts +4 -1
- package/dist/enforcer/index.d.ts.map +1 -1
- package/dist/enforcer/index.js +77 -1
- package/dist/enforcer/index.js.map +1 -1
- package/dist/enforcer/rule-engine.d.ts +1 -1
- package/dist/enforcer/rule-engine.d.ts.map +1 -1
- package/dist/enforcer/rule-engine.js +66 -13
- package/dist/enforcer/rule-engine.js.map +1 -1
- package/dist/enforcer/types.d.ts +1 -1
- package/dist/enforcer/types.d.ts.map +1 -1
- package/dist/plugin-guards.d.ts +8 -0
- package/dist/plugin-guards.d.ts.map +1 -0
- package/dist/plugin-guards.js +35 -0
- package/dist/plugin-guards.js.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +23 -1
- package/dist/prompts.js.map +1 -1
- package/dist/report-store.d.ts +0 -1
- package/dist/report-store.d.ts.map +1 -1
- package/dist/report-store.js +0 -3
- package/dist/report-store.js.map +1 -1
- package/dist/resources.d.ts +1 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +3 -3
- package/dist/resources.js.map +1 -1
- package/dist/server.d.ts +38 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +263 -112
- package/dist/server.js.map +1 -1
- package/dist/surface-telemetry.d.ts +3 -0
- package/dist/surface-telemetry.d.ts.map +1 -0
- package/dist/surface-telemetry.js +35 -0
- package/dist/surface-telemetry.js.map +1 -0
- package/dist/tools.d.ts +6 -9
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +225 -99
- package/dist/tools.js.map +1 -1
- package/package.json +9 -8
- package/dist/sampling-client.d.ts +0 -10
- package/dist/sampling-client.d.ts.map +0 -1
- package/dist/sampling-client.js +0 -51
- package/dist/sampling-client.js.map +0 -1
package/dist/prompts.js
CHANGED
|
@@ -3,21 +3,37 @@ export const PROMPT_TEMPLATES = {
|
|
|
3
3
|
name: "Debug React Component",
|
|
4
4
|
description: "Load React knowledge + project memories + related code for debugging",
|
|
5
5
|
arguments: [{ name: "query", description: "Bug description or component name", required: true }],
|
|
6
|
+
render: (args) => `Debug this React issue: ${requiredArgument(args, "query")}. Call mcp__devflow__get_project_context first, then mcp__devflow__get_memory and mcp__devflow__get_knowledge as needed. Use the returned evidence before editing code.`,
|
|
6
7
|
},
|
|
7
8
|
"code-review": {
|
|
8
9
|
name: "Code Review",
|
|
9
10
|
description: "Load project conventions + dependency graph for code review",
|
|
10
11
|
arguments: [{ name: "file", description: "File to review", required: true }],
|
|
12
|
+
render: (args) => `Review ${requiredArgument(args, "file")}. Call mcp__devflow__get_project_context first and use mcp__devflow__get_dependency_graph for impact analysis. Report findings by severity with file references.`,
|
|
11
13
|
},
|
|
12
14
|
"new-feature": {
|
|
13
15
|
name: "New Feature",
|
|
14
16
|
description: "Load project structure + knowledge base for feature planning",
|
|
15
17
|
arguments: [{ name: "feature", description: "Feature description", required: true }],
|
|
18
|
+
render: (args) => `Plan and implement this feature: ${requiredArgument(args, "feature")}. Call mcp__devflow__get_project_context before planning, then query project memory and relevant knowledge.`,
|
|
16
19
|
},
|
|
17
20
|
"fix-bug": {
|
|
18
21
|
name: "Fix Bug",
|
|
19
22
|
description: "Load failure lessons + dependency graph for bug fixing",
|
|
20
23
|
arguments: [{ name: "bug", description: "Bug description", required: true }],
|
|
24
|
+
render: (args) => `Fix this bug: ${requiredArgument(args, "bug")}. Call mcp__devflow__get_project_context first, inspect failure evidence, and query mcp__devflow__get_memory for prior lessons before changing code.`,
|
|
25
|
+
},
|
|
26
|
+
"remember-project-fact": {
|
|
27
|
+
name: "Remember Project Fact",
|
|
28
|
+
description: "Record an explicit project fact through the host memory lifecycle",
|
|
29
|
+
arguments: [{ name: "fact", description: "Project fact, decision, or convention to remember", required: true }],
|
|
30
|
+
render: (args) => `Remember this project fact explicitly: ${requiredArgument(args, "fact")}. Treat this as an explicit memory intent. Confirm the exact fact, then let the DevFlow hook lifecycle persist and distill it; do not invent supporting details.`,
|
|
31
|
+
},
|
|
32
|
+
"distill-session": {
|
|
33
|
+
name: "Distill Session Memory",
|
|
34
|
+
description: "Convert pending session events into structured project observations",
|
|
35
|
+
arguments: [{ name: "sessionId", description: "Optional session identifier", required: false }],
|
|
36
|
+
render: (args) => `Call mcp__devflow__memory_request_distill${args.sessionId ? ` with sessionId ${String(args.sessionId)}` : ""}. Follow the returned prompt exactly, then save the resulting observations with mcp__devflow__memory_save_distilled using the returned batchId.`,
|
|
21
37
|
},
|
|
22
38
|
};
|
|
23
39
|
export async function listPrompts() {
|
|
@@ -39,10 +55,16 @@ export async function getPrompt(name, args) {
|
|
|
39
55
|
role: "user",
|
|
40
56
|
content: {
|
|
41
57
|
type: "text",
|
|
42
|
-
text:
|
|
58
|
+
text: template.render(args),
|
|
43
59
|
},
|
|
44
60
|
},
|
|
45
61
|
],
|
|
46
62
|
};
|
|
47
63
|
}
|
|
64
|
+
function requiredArgument(args, name) {
|
|
65
|
+
const value = args[name];
|
|
66
|
+
if (typeof value !== "string" || !value.trim())
|
|
67
|
+
throw new Error(`Prompt argument "${name}" is required`);
|
|
68
|
+
return value.trim();
|
|
69
|
+
}
|
|
48
70
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/report-store.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export interface StoredReportInput {
|
|
|
13
13
|
totalFindings?: number;
|
|
14
14
|
report: Record<string, unknown>;
|
|
15
15
|
}
|
|
16
|
-
export declare function getReportProjectRoot(): string;
|
|
17
16
|
export declare function getReportResourceUri(reportId: string): string;
|
|
18
17
|
export declare function saveToolReport(projectRoot: string, input: StoredReportInput): StoredReportRecord;
|
|
19
18
|
export declare function readToolReport(projectRoot: string, reportId: string): StoredReportRecord | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-store.d.ts","sourceRoot":"","sources":["../src/report-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"report-store.d.ts","sourceRoot":"","sources":["../src/report-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAchG;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAS/F"}
|
package/dist/report-store.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
export function getReportProjectRoot() {
|
|
4
|
-
return process.env.DEVFLOW_PROJECT_ROOT || process.cwd();
|
|
5
|
-
}
|
|
6
3
|
export function getReportResourceUri(reportId) {
|
|
7
4
|
return `devflow://report/${reportId}`;
|
|
8
5
|
}
|
package/dist/report-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-store.js","sourceRoot":"","sources":["../src/report-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,UAAU,oBAAoB
|
|
1
|
+
{"version":3,"file":"report-store.js","sourceRoot":"","sources":["../src/report-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,oBAAoB,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAwB;IAC1E,MAAM,MAAM,GAAuB;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,QAAgB;IAClE,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAuB,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,QAAgB;IAC1D,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
package/dist/resources.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare function listResources(engines: EngineSet): Promise<{
|
|
|
7
7
|
mimeType: string;
|
|
8
8
|
}[];
|
|
9
9
|
}>;
|
|
10
|
-
export declare function readResource(uri: string, engines: EngineSet): Promise<{
|
|
10
|
+
export declare function readResource(uri: string, engines: EngineSet, boundProjectRoot: string): Promise<{
|
|
11
11
|
contents: {
|
|
12
12
|
uri: string;
|
|
13
13
|
mimeType: string;
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,wBAAsB,aAAa,CAAC,OAAO,EAAE,SAAS;;;;;;;GAsCrD;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;;;;;;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,wBAAsB,aAAa,CAAC,OAAO,EAAE,SAAS;;;;;;;GAsCrD;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM;;;;;;GAsD3F"}
|
package/dist/resources.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readToolReport } from "./report-store.js";
|
|
2
2
|
export async function listResources(engines) {
|
|
3
3
|
const memories = await engines.memory.listMemories({ status: "approved" });
|
|
4
4
|
const sources = await engines.knowledge.getSources();
|
|
@@ -37,7 +37,7 @@ export async function listResources(engines) {
|
|
|
37
37
|
],
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
export async function readResource(uri, engines) {
|
|
40
|
+
export async function readResource(uri, engines, boundProjectRoot) {
|
|
41
41
|
if (uri === "devflow://memory/recent") {
|
|
42
42
|
const memories = await engines.memory.listMemories({ status: "approved" });
|
|
43
43
|
return {
|
|
@@ -71,7 +71,7 @@ export async function readResource(uri, engines) {
|
|
|
71
71
|
}
|
|
72
72
|
if (uri.startsWith("devflow://report/")) {
|
|
73
73
|
const reportId = uri.replace("devflow://report/", "");
|
|
74
|
-
const report = readToolReport(
|
|
74
|
+
const report = readToolReport(boundProjectRoot, reportId);
|
|
75
75
|
return {
|
|
76
76
|
contents: [{
|
|
77
77
|
uri,
|
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,8 +1,45 @@
|
|
|
1
|
+
import type { EngineSet } from "@devflow-tools/context-engine";
|
|
2
|
+
import type { DevFlowPlugin } from "@devflow-tools/sdk";
|
|
3
|
+
import { createPluginHandlers, createToolHandlers } from "./tools.js";
|
|
1
4
|
export interface MCPServerOptions {
|
|
2
5
|
mode: "stdio";
|
|
3
6
|
projectRoot: string;
|
|
4
7
|
}
|
|
5
|
-
export
|
|
8
|
+
export interface MCPServerRuntime {
|
|
9
|
+
shutdown(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare class EngineWarmingError extends Error {
|
|
12
|
+
readonly etaSeconds: number;
|
|
13
|
+
constructor(etaSeconds?: number);
|
|
14
|
+
}
|
|
15
|
+
interface CallToolRequestDependencies {
|
|
16
|
+
boundProjectRoot: string;
|
|
17
|
+
guardedToolNames: ReadonlySet<string>;
|
|
18
|
+
plugins: DevFlowPlugin[];
|
|
19
|
+
ensureEngines(projectRoot: string): Promise<EngineSet>;
|
|
20
|
+
enforce(name: string, args: Record<string, unknown>, data: EngineSet["data"]): Promise<any>;
|
|
21
|
+
createToolHandlers: typeof createToolHandlers;
|
|
22
|
+
createPluginHandlers: typeof createPluginHandlers;
|
|
23
|
+
syncReceipt(projectRoot: string, toolName: string): void;
|
|
24
|
+
recordFailure(engines: EngineSet, toolName: string, args: Record<string, unknown>, durationMs: number, error: Error, projectRoot: string): Promise<void>;
|
|
25
|
+
recordEnforcementOutcome?(name: string, args: Record<string, unknown>, result: unknown): Promise<void>;
|
|
26
|
+
recordEnforcementFailure?(name: string, args: Record<string, unknown>, error: unknown): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export declare function startServer(options: MCPServerOptions): Promise<MCPServerRuntime>;
|
|
29
|
+
export declare function createCallToolRequestHandler(dependencies: CallToolRequestDependencies): (request: {
|
|
30
|
+
params: {
|
|
31
|
+
name: string;
|
|
32
|
+
arguments?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
}) => Promise<{
|
|
35
|
+
content: {
|
|
36
|
+
type: "text";
|
|
37
|
+
text: string;
|
|
38
|
+
}[];
|
|
39
|
+
structuredContent: Record<string, unknown>;
|
|
40
|
+
}>;
|
|
6
41
|
export declare const KNOWN_PREFIXES: Set<string>;
|
|
7
42
|
export declare function getCommandFromTool(toolName: string): string;
|
|
43
|
+
export declare function syncReceiptToHook(projectRoot: string, _toolName: string): void;
|
|
44
|
+
export {};
|
|
8
45
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAgBpB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,UAAU;gBAAV,UAAU,SAAI;CAIpC;AAMD,UAAU,2BAA2B;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5F,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,aAAa,CACX,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,wBAAwB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvG,wBAAwB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvG;AA8CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4ItF;AAqBD,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,2BAA2B,IAGtE,SAAS;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC/D;;;;;;GAoHF;AA+DD,eAAO,MAAM,cAAc,aAGzB,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB3D;AA4BD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAgB9E"}
|