@telora/mcp-products 0.22.13 → 0.22.15
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/dist/affordances.d.ts +27 -0
- package/dist/affordances.js +111 -0
- package/dist/affordances.js.map +1 -0
- package/dist/handlers/contextHandlers.d.ts +8 -0
- package/dist/handlers/contextHandlers.js +27 -4
- package/dist/handlers/contextHandlers.js.map +1 -1
- package/dist/handlers/focusDebugHandlers.d.ts +14 -0
- package/dist/handlers/focusDebugHandlers.js +89 -0
- package/dist/handlers/focusDebugHandlers.js.map +1 -0
- package/dist/handlers/index.d.ts +2 -0
- package/dist/handlers/index.js +2 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/realityTreeInjectionVerifyHandler.d.ts +25 -0
- package/dist/handlers/realityTreeInjectionVerifyHandler.js +112 -0
- package/dist/handlers/realityTreeInjectionVerifyHandler.js.map +1 -0
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type AffordanceScope = 'product' | 'focus' | 'delivery';
|
|
2
|
+
export interface AffordanceRoute {
|
|
3
|
+
tool: string;
|
|
4
|
+
action: string;
|
|
5
|
+
bodyShape: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AffordanceFallback {
|
|
8
|
+
endpoint: string;
|
|
9
|
+
action: string;
|
|
10
|
+
bodyShape: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Affordance {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
primary: AffordanceRoute;
|
|
16
|
+
fallback: AffordanceFallback;
|
|
17
|
+
}
|
|
18
|
+
export declare const AFFORDANCE_REGISTRY: Record<AffordanceScope, Affordance[]>;
|
|
19
|
+
export declare function getAffordances(scope: AffordanceScope): Affordance[];
|
|
20
|
+
/**
|
|
21
|
+
* Render the affordance section for a given scope as markdown.
|
|
22
|
+
*
|
|
23
|
+
* Returns the empty string when the scope has no entries -- callers should
|
|
24
|
+
* suppress the section entirely (no empty `## Actions on this product`
|
|
25
|
+
* headers leaking into output).
|
|
26
|
+
*/
|
|
27
|
+
export declare function renderAffordanceSection(scope: AffordanceScope): string;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Affordance registry: self-describing capabilities surfaced through
|
|
3
|
+
// telora_context_assemble so agents read the recipe (primary MCP route +
|
|
4
|
+
// HTTP fallback) inline with the entity description.
|
|
5
|
+
//
|
|
6
|
+
// Pure module: no I/O, no network, no fs. The registry is plain data; the
|
|
7
|
+
// render helper composes markdown. Adding a new capability means appending
|
|
8
|
+
// an entry to the right scope -- no out-of-band doc update required.
|
|
9
|
+
//
|
|
10
|
+
// Forward note: focus scope is the first to carry entries. Product and
|
|
11
|
+
// delivery scope start empty; their shape is fixed so future seeds slot in
|
|
12
|
+
// without changing the rendering or test code paths.
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const PRODUCT_API_ENDPOINT = '/functions/v1/product-api';
|
|
15
|
+
const FOCUS_AFFORDANCES = [
|
|
16
|
+
{
|
|
17
|
+
name: 'debug_artifacts',
|
|
18
|
+
description: 'Write code-reality artifacts (Mermaid graph + markdown panels) onto the focus Debug tab. Section kinds: mermaid, file_inventory, git_stats, test_status, lint_typecheck, ac_verification.',
|
|
19
|
+
primary: {
|
|
20
|
+
tool: 'telora_product_focus_debug',
|
|
21
|
+
action: 'get | set | clear',
|
|
22
|
+
bodyShape: '{ focusId: string; action: "get" | "set" | "clear"; sectionKind?: "mermaid" | "file_inventory" | "git_stats" | "test_status" | "lint_typecheck" | "ac_verification"; content?: string }',
|
|
23
|
+
},
|
|
24
|
+
fallback: {
|
|
25
|
+
endpoint: PRODUCT_API_ENDPOINT,
|
|
26
|
+
action: 'focus_debug_get | focus_debug_set | focus_debug_clear',
|
|
27
|
+
bodyShape: '{ action: "focus_debug_set"; focusId: string; fields: { sectionKind: "mermaid" | "file_inventory" | "git_stats" | "test_status" | "lint_typecheck" | "ac_verification"; content: string; agentSessionId?: string } }',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'review_complete',
|
|
32
|
+
description: 'Terminal action for a review agent. Writes a focus_reviews row with outcome + summary + created issue/delivery references and stamps focus.last_reviewed_at and focus.last_review_outcome atomically.',
|
|
33
|
+
primary: {
|
|
34
|
+
tool: 'telora_product_focus',
|
|
35
|
+
action: 'review_complete',
|
|
36
|
+
bodyShape: '{ focusId: string; action: "review_complete"; outcome: "approved" | "gaps_found"; summary: string; createdIssueIds?: string[]; createdDeliveryIds?: string[]; agentSessionId: string; startedAt?: string }',
|
|
37
|
+
},
|
|
38
|
+
fallback: {
|
|
39
|
+
endpoint: PRODUCT_API_ENDPOINT,
|
|
40
|
+
action: 'focus_review_complete',
|
|
41
|
+
bodyShape: '{ action: "focus_review_complete"; focusId: string; fields: { outcome: "approved" | "gaps_found"; summary: string; createdIssueIds?: string[]; createdDeliveryIds?: string[]; agentSessionId: string; startedAt?: string } }',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'retrospective_trigger',
|
|
46
|
+
description: 'Create a pending retrospective for a focus. The daemon (or retrospective_run) executes it via LLM.',
|
|
47
|
+
primary: {
|
|
48
|
+
tool: 'telora_product_focus',
|
|
49
|
+
action: 'retrospective_trigger',
|
|
50
|
+
bodyShape: '{ focusId: string; action: "retrospective_trigger" }',
|
|
51
|
+
},
|
|
52
|
+
fallback: {
|
|
53
|
+
endpoint: PRODUCT_API_ENDPOINT,
|
|
54
|
+
action: 'focus_retrospective_trigger',
|
|
55
|
+
bodyShape: '{ action: "focus_retrospective_trigger"; focusId: string }',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'retrospective_run',
|
|
60
|
+
description: 'Execute a pending retrospective via LLM. Targets a single retrospective by id.',
|
|
61
|
+
primary: {
|
|
62
|
+
tool: 'telora_product_focus',
|
|
63
|
+
action: 'retrospective_run',
|
|
64
|
+
bodyShape: '{ retrospectiveId: string; action: "retrospective_run" }',
|
|
65
|
+
},
|
|
66
|
+
fallback: {
|
|
67
|
+
endpoint: PRODUCT_API_ENDPOINT,
|
|
68
|
+
action: 'focus_retrospective_run',
|
|
69
|
+
bodyShape: '{ action: "focus_retrospective_run"; fields: { entityId: string } }',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
export const AFFORDANCE_REGISTRY = {
|
|
74
|
+
product: [],
|
|
75
|
+
focus: FOCUS_AFFORDANCES,
|
|
76
|
+
delivery: [],
|
|
77
|
+
};
|
|
78
|
+
export function getAffordances(scope) {
|
|
79
|
+
return AFFORDANCE_REGISTRY[scope] ?? [];
|
|
80
|
+
}
|
|
81
|
+
function renderAffordance(a) {
|
|
82
|
+
return [
|
|
83
|
+
`### ${a.name}`,
|
|
84
|
+
a.description,
|
|
85
|
+
'',
|
|
86
|
+
`**Primary**: \`${a.primary.tool}\` action \`${a.primary.action}\``,
|
|
87
|
+
'```ts',
|
|
88
|
+
a.primary.bodyShape,
|
|
89
|
+
'```',
|
|
90
|
+
`**Fallback**: \`POST ${a.fallback.endpoint}\` action \`${a.fallback.action}\``,
|
|
91
|
+
'```ts',
|
|
92
|
+
a.fallback.bodyShape,
|
|
93
|
+
'```',
|
|
94
|
+
].join('\n');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Render the affordance section for a given scope as markdown.
|
|
98
|
+
*
|
|
99
|
+
* Returns the empty string when the scope has no entries -- callers should
|
|
100
|
+
* suppress the section entirely (no empty `## Actions on this product`
|
|
101
|
+
* headers leaking into output).
|
|
102
|
+
*/
|
|
103
|
+
export function renderAffordanceSection(scope) {
|
|
104
|
+
const items = getAffordances(scope);
|
|
105
|
+
if (items.length === 0)
|
|
106
|
+
return '';
|
|
107
|
+
const header = `## Actions on this ${scope}`;
|
|
108
|
+
const blocks = items.map(renderAffordance);
|
|
109
|
+
return [header, '', ...blocks].join('\n\n');
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=affordances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { type GetCreds } from "../shared.js";
|
|
3
|
+
/**
|
|
4
|
+
* Append the scope's affordance section to the API's `context` markdown.
|
|
5
|
+
* Pure: takes the raw API response and returns a new object with augmented
|
|
6
|
+
* `context`. Empty scopes are no-ops (no empty headers emitted).
|
|
7
|
+
*
|
|
8
|
+
* Exported for unit testing without an MCP server or network round-trip.
|
|
9
|
+
*/
|
|
10
|
+
export declare function augmentContextWithAffordances(apiResult: Record<string, unknown>): Record<string, unknown>;
|
|
3
11
|
export declare function registerContextAssembleTool(server: McpServer, getCreds: GetCreds): void;
|
|
@@ -7,12 +7,35 @@
|
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { callProductApi, successResult, validationError, wrapHandler, } from "../shared.js";
|
|
10
|
+
import { renderAffordanceSection } from "../affordances.js";
|
|
11
|
+
function isAffordanceScope(value) {
|
|
12
|
+
return value === 'product' || value === 'focus' || value === 'delivery';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Append the scope's affordance section to the API's `context` markdown.
|
|
16
|
+
* Pure: takes the raw API response and returns a new object with augmented
|
|
17
|
+
* `context`. Empty scopes are no-ops (no empty headers emitted).
|
|
18
|
+
*
|
|
19
|
+
* Exported for unit testing without an MCP server or network round-trip.
|
|
20
|
+
*/
|
|
21
|
+
export function augmentContextWithAffordances(apiResult) {
|
|
22
|
+
const scope = apiResult.scope;
|
|
23
|
+
if (!isAffordanceScope(scope))
|
|
24
|
+
return apiResult;
|
|
25
|
+
const section = renderAffordanceSection(scope);
|
|
26
|
+
if (!section)
|
|
27
|
+
return apiResult;
|
|
28
|
+
const existing = typeof apiResult.context === 'string' ? apiResult.context : '';
|
|
29
|
+
const joined = existing ? `${existing}\n\n${section}` : section;
|
|
30
|
+
return { ...apiResult, context: joined };
|
|
31
|
+
}
|
|
10
32
|
export function registerContextAssembleTool(server, getCreds) {
|
|
11
33
|
server.tool("telora_context_assemble", "Assemble layered context for a product, focus, or delivery. " +
|
|
12
34
|
"Returns pre-formatted markdown with product overview, focus/delivery " +
|
|
13
|
-
"scaffolding,
|
|
14
|
-
"queries (or your own `queries` override)
|
|
15
|
-
"
|
|
35
|
+
"scaffolding, a wiki section drawn from wiki_search using scope-derived " +
|
|
36
|
+
"queries (or your own `queries` override), and an 'Actions on this <scope>' " +
|
|
37
|
+
"section enumerating the primary MCP tool + HTTP fallback for each capability " +
|
|
38
|
+
"available on the entity. Use at session start for architectural/design work.", {
|
|
16
39
|
productId: z.string().uuid().describe("Product UUID (required)"),
|
|
17
40
|
focusId: z.string().uuid().optional().describe("Focus UUID (adds focus + delivery summaries)"),
|
|
18
41
|
deliveryId: z.string().uuid().optional().describe("Delivery UUID (adds tech context + acceptance criteria + issues)"),
|
|
@@ -31,7 +54,7 @@ export function registerContextAssembleTool(server, getCreds) {
|
|
|
31
54
|
if (params.queries)
|
|
32
55
|
body.queries = params.queries;
|
|
33
56
|
const result = await callProductApi(getCreds(), body);
|
|
34
|
-
return successResult(result);
|
|
57
|
+
return successResult(augmentContextWithAffordances(result));
|
|
35
58
|
}));
|
|
36
59
|
}
|
|
37
60
|
//# sourceMappingURL=contextHandlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextHandlers.js","sourceRoot":"","sources":["../../src/handlers/contextHandlers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,2DAA2D;AAC3D,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,GAEZ,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"contextHandlers.js","sourceRoot":"","sources":["../../src/handlers/contextHandlers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,2DAA2D;AAC3D,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,GAEZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAwB,MAAM,mBAAmB,CAAC;AAElF,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAkC;IAElC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,OAAO,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAiB,EACjB,QAAkB;IAElB,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,8DAA8D;QAC9D,uEAAuE;QACvE,yEAAyE;QACzE,6EAA6E;QAC7E,+EAA+E;QAC/E,8EAA8E,EAC9E;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC9F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;QACrH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KACtG,EACD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,eAAe,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,kBAAkB;YAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QACF,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC3D,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,CAA4B,CAAC;QACjF,OAAO,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { successResult, validationError, type GetCreds } from "../shared.js";
|
|
3
|
+
declare const SECTION_KINDS: readonly ["mermaid", "file_inventory", "git_stats", "test_status", "lint_typecheck", "ac_verification"];
|
|
4
|
+
type SectionKind = (typeof SECTION_KINDS)[number];
|
|
5
|
+
export interface FocusDebugParams {
|
|
6
|
+
action: "get" | "set" | "clear";
|
|
7
|
+
focusId?: string;
|
|
8
|
+
sectionKind?: SectionKind;
|
|
9
|
+
content?: string;
|
|
10
|
+
agentSessionId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function handleFocusDebug(params: FocusDebugParams, callApi: (body: Record<string, unknown>) => Promise<unknown>): Promise<ReturnType<typeof successResult> | ReturnType<typeof validationError>>;
|
|
13
|
+
export declare function registerFocusDebugTools(server: McpServer, getCreds: GetCreds): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Focus debug artifact tool handler:
|
|
3
|
+
// telora_product_focus_debug (get | set | clear)
|
|
4
|
+
//
|
|
5
|
+
// The agent writes code-reality artifacts (Mermaid diagrams + quality
|
|
6
|
+
// markdown panels) into the focus_debug_artifacts table; the Debug tab on
|
|
7
|
+
// the focus page renders them. Telora itself runs no analysis -- the agent
|
|
8
|
+
// computes via its own shell tools and pushes the settled artifact here.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { callProductApi, successResult, validationError, wrapHandler, } from "../shared.js";
|
|
12
|
+
const SECTION_KINDS = [
|
|
13
|
+
"mermaid",
|
|
14
|
+
"file_inventory",
|
|
15
|
+
"git_stats",
|
|
16
|
+
"test_status",
|
|
17
|
+
"lint_typecheck",
|
|
18
|
+
"ac_verification",
|
|
19
|
+
];
|
|
20
|
+
// Pure handler exported for unit-testing: takes a `callApi` callback so the
|
|
21
|
+
// three actions can be exercised with a mock and no MCP/server scaffolding.
|
|
22
|
+
export async function handleFocusDebug(params, callApi) {
|
|
23
|
+
switch (params.action) {
|
|
24
|
+
case "get": {
|
|
25
|
+
if (!params.focusId)
|
|
26
|
+
return validationError("focusId required for get");
|
|
27
|
+
const result = (await callApi({
|
|
28
|
+
action: "focus_debug_get",
|
|
29
|
+
focusId: params.focusId,
|
|
30
|
+
}));
|
|
31
|
+
return successResult({ sections: result.sections ?? [] });
|
|
32
|
+
}
|
|
33
|
+
case "set": {
|
|
34
|
+
if (!params.focusId)
|
|
35
|
+
return validationError("focusId required for set");
|
|
36
|
+
if (!params.sectionKind)
|
|
37
|
+
return validationError("sectionKind required for set");
|
|
38
|
+
if (params.content === undefined)
|
|
39
|
+
return validationError("content required for set");
|
|
40
|
+
const fields = {
|
|
41
|
+
sectionKind: params.sectionKind,
|
|
42
|
+
content: params.content,
|
|
43
|
+
};
|
|
44
|
+
if (params.agentSessionId)
|
|
45
|
+
fields.agentSessionId = params.agentSessionId;
|
|
46
|
+
const result = (await callApi({
|
|
47
|
+
action: "focus_debug_set",
|
|
48
|
+
focusId: params.focusId,
|
|
49
|
+
fields,
|
|
50
|
+
}));
|
|
51
|
+
return successResult({ section: result.section });
|
|
52
|
+
}
|
|
53
|
+
case "clear": {
|
|
54
|
+
if (!params.focusId)
|
|
55
|
+
return validationError("focusId required for clear");
|
|
56
|
+
const fields = {};
|
|
57
|
+
if (params.sectionKind)
|
|
58
|
+
fields.sectionKind = params.sectionKind;
|
|
59
|
+
const result = (await callApi({
|
|
60
|
+
action: "focus_debug_clear",
|
|
61
|
+
focusId: params.focusId,
|
|
62
|
+
fields,
|
|
63
|
+
}));
|
|
64
|
+
return successResult({ deletedCount: result.deletedCount ?? 0 });
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return validationError(`Unknown action: ${params.action}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const focusDebugSchema = {
|
|
71
|
+
action: z.enum(["get", "set", "clear"]).describe("Action to perform"),
|
|
72
|
+
focusId: z.string().uuid().describe("Focus UUID"),
|
|
73
|
+
sectionKind: z.enum(SECTION_KINDS).optional()
|
|
74
|
+
.describe("Section kind (required for set; optional for clear -- omit to clear all sections)"),
|
|
75
|
+
content: z.string().optional().describe("Markdown or Mermaid source (required for set)"),
|
|
76
|
+
agentSessionId: z.string().uuid().optional()
|
|
77
|
+
.describe("Optional agent session UUID to stamp on the row (updated_by_session_id)"),
|
|
78
|
+
};
|
|
79
|
+
export function registerFocusDebugTools(server, getCreds) {
|
|
80
|
+
server.tool("telora_product_focus_debug", "Focus debug artifacts: agent-written code-reality views (Mermaid graph + markdown panels) " +
|
|
81
|
+
"rendered on the focus page Debug tab. One row per (focusId, sectionKind). " +
|
|
82
|
+
"Section kinds: mermaid, file_inventory, git_stats, test_status, lint_typecheck, ac_verification. " +
|
|
83
|
+
"Actions: get(focusId) returns all sections + updatedAt; " +
|
|
84
|
+
"set(focusId, sectionKind, content) upserts one section; " +
|
|
85
|
+
"clear(focusId, sectionKind?) deletes one section (sectionKind given) or all (omitted).", focusDebugSchema, wrapHandler(async (params) => {
|
|
86
|
+
return handleFocusDebug(params, (body) => callProductApi(getCreds(), body));
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=focusDebugHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focusDebugHandlers.js","sourceRoot":"","sources":["../../src/handlers/focusDebugHandlers.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { registerProductTools } from "./productHandlers.js";
|
|
2
2
|
export { registerDeliveryTools } from "./deliveryHandlers.js";
|
|
3
3
|
export { registerFocusTools } from "./focusHandlers.js";
|
|
4
|
+
export { registerFocusDebugTools } from "./focusDebugHandlers.js";
|
|
4
5
|
export { registerIssueTools } from "./issueHandlers.js";
|
|
5
6
|
export { registerAgentTools } from "./agentHandlers.js";
|
|
6
7
|
export { registerPlaybookTools } from "./playbookHandlers.js";
|
|
@@ -16,5 +17,6 @@ export { registerRiskTools, registerRiskDependencyTools, registerRiskCommunicati
|
|
|
16
17
|
export { registerLoopTools } from "./loopHandlers.js";
|
|
17
18
|
export { registerRealityTools } from "./realityHandlers.js";
|
|
18
19
|
export { registerRealityTreeTools } from "./realityTreeHandlers.js";
|
|
20
|
+
export { registerRealityTreeInjectionVerifyTool, handleRealityTreeInjectionVerify, } from "./realityTreeInjectionVerifyHandler.js";
|
|
19
21
|
export { registerContractTools } from "./contractHandlers.js";
|
|
20
22
|
export { registerPrerequisiteTreeTools } from "./prerequisiteTreeHandlers.js";
|
package/dist/handlers/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export { registerProductTools } from "./productHandlers.js";
|
|
5
5
|
export { registerDeliveryTools } from "./deliveryHandlers.js";
|
|
6
6
|
export { registerFocusTools } from "./focusHandlers.js";
|
|
7
|
+
export { registerFocusDebugTools } from "./focusDebugHandlers.js";
|
|
7
8
|
export { registerIssueTools } from "./issueHandlers.js";
|
|
8
9
|
export { registerAgentTools } from "./agentHandlers.js";
|
|
9
10
|
export { registerPlaybookTools } from "./playbookHandlers.js";
|
|
@@ -19,6 +20,7 @@ export { registerRiskTools, registerRiskDependencyTools, registerRiskCommunicati
|
|
|
19
20
|
export { registerLoopTools } from "./loopHandlers.js";
|
|
20
21
|
export { registerRealityTools } from "./realityHandlers.js";
|
|
21
22
|
export { registerRealityTreeTools } from "./realityTreeHandlers.js";
|
|
23
|
+
export { registerRealityTreeInjectionVerifyTool, handleRealityTreeInjectionVerify, } from "./realityTreeInjectionVerifyHandler.js";
|
|
22
24
|
export { registerContractTools } from "./contractHandlers.js";
|
|
23
25
|
export { registerPrerequisiteTreeTools } from "./prerequisiteTreeHandlers.js";
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,sCAAsC,EACtC,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { successResult, validationError, type GetCreds } from "../shared.js";
|
|
3
|
+
/**
|
|
4
|
+
* Pure handler used both by the registered tool and by the unit test.
|
|
5
|
+
* Takes a `callApi` callable (so tests can mock the HTTP layer) and the
|
|
6
|
+
* raw input params. Validates required fields, performs the two-step
|
|
7
|
+
* update + verify, and returns a structured result.
|
|
8
|
+
*/
|
|
9
|
+
export declare function handleRealityTreeInjectionVerify(params: {
|
|
10
|
+
injectionId?: string;
|
|
11
|
+
evidence?: string;
|
|
12
|
+
rewrites?: unknown;
|
|
13
|
+
splits?: unknown;
|
|
14
|
+
}, callApi: (body: Record<string, unknown>) => Promise<unknown>): Promise<ReturnType<typeof successResult> | ReturnType<typeof validationError>>;
|
|
15
|
+
/**
|
|
16
|
+
* Register the top-level MCP tool `telora_reality_tree_injection_verify`.
|
|
17
|
+
*
|
|
18
|
+
* Inputs:
|
|
19
|
+
* - injectionId (UUID, required) -- the reality_tree_nodes row to verify.
|
|
20
|
+
* - evidence (string, required, max 5000 chars) -- worktree-checkable
|
|
21
|
+
* citation explaining why the FRT overlay flip is supported.
|
|
22
|
+
* - rewrites / splits (optional, forwarded to reality_tree_verify_injection)
|
|
23
|
+
* for compound verify operations.
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerRealityTreeInjectionVerifyTool(server: McpServer, getCreds: GetCreds): void;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Top-level MCP tool: telora_reality_tree_injection_verify
|
|
3
|
+
//
|
|
4
|
+
// Asymmetric "verified" outcome for the close-loop bookkeeper. The bookkeeper
|
|
5
|
+
// has confirmed that the worktree evidence supports the injection's FRT
|
|
6
|
+
// overlay flip; this tool persists that decision.
|
|
7
|
+
//
|
|
8
|
+
// Operationally a composite of two existing product-api actions:
|
|
9
|
+
//
|
|
10
|
+
// 1. reality_tree_node_update with { evidence } so the rationale for the
|
|
11
|
+
// verify decision is captured on the injection node alongside its
|
|
12
|
+
// lineage. Evidence is required -- the bookkeeper persona is explicit
|
|
13
|
+
// that verify decisions MUST cite worktree-checkable evidence.
|
|
14
|
+
//
|
|
15
|
+
// 2. reality_tree_verify_injection so:
|
|
16
|
+
// - injection.injection_status = 'verified'
|
|
17
|
+
// - the injection's `targets` edges are deleted (propagation step 1)
|
|
18
|
+
// - FRT overlays on each targeted UDE promote: frt_statement ->
|
|
19
|
+
// statement, frt_node_type -> node_type (the UDE flips to DE).
|
|
20
|
+
// See graph-verification.verifyInjectionImpl for the exact rules.
|
|
21
|
+
//
|
|
22
|
+
// Exposing this as a dedicated MCP tool (separate from
|
|
23
|
+
// telora_reality_tree_node action=verify) gives the bookkeeper persona a
|
|
24
|
+
// single-call, evidence-required entry point that matches the language in
|
|
25
|
+
// the persona prompt ("call telora_reality_tree_injection_verify"). The
|
|
26
|
+
// action-based verify path stays available for human use.
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
import { z } from "zod";
|
|
29
|
+
import { callProductApi, successResult, validationError, wrapHandler, } from "../shared.js";
|
|
30
|
+
/**
|
|
31
|
+
* Pure handler used both by the registered tool and by the unit test.
|
|
32
|
+
* Takes a `callApi` callable (so tests can mock the HTTP layer) and the
|
|
33
|
+
* raw input params. Validates required fields, performs the two-step
|
|
34
|
+
* update + verify, and returns a structured result.
|
|
35
|
+
*/
|
|
36
|
+
export async function handleRealityTreeInjectionVerify(params, callApi) {
|
|
37
|
+
if (!params.injectionId)
|
|
38
|
+
return validationError("injectionId is required");
|
|
39
|
+
const evidence = (params.evidence ?? '').trim();
|
|
40
|
+
if (evidence.length === 0) {
|
|
41
|
+
return validationError("evidence is required for verify -- cite worktree-checkable proof (files exist, tests pass, code matches a pattern)");
|
|
42
|
+
}
|
|
43
|
+
// Step 1: persist evidence on the injection node so future audit reads
|
|
44
|
+
// (history walks, persona retros) can see the rationale.
|
|
45
|
+
await callApi({
|
|
46
|
+
action: "reality_tree_node_update",
|
|
47
|
+
nodeId: params.injectionId,
|
|
48
|
+
evidence,
|
|
49
|
+
});
|
|
50
|
+
// Step 2: verify -- sets injection.injection_status = 'verified', deletes
|
|
51
|
+
// targets edges, promotes FRT overlays on each targeted UDE.
|
|
52
|
+
const verifyBody = {
|
|
53
|
+
action: "reality_tree_verify_injection",
|
|
54
|
+
injectionNodeId: params.injectionId,
|
|
55
|
+
};
|
|
56
|
+
if (params.rewrites !== undefined)
|
|
57
|
+
verifyBody.rewrites = params.rewrites;
|
|
58
|
+
if (params.splits !== undefined)
|
|
59
|
+
verifyBody.splits = params.splits;
|
|
60
|
+
const result = await callApi(verifyBody);
|
|
61
|
+
return successResult({
|
|
62
|
+
injectionId: params.injectionId,
|
|
63
|
+
status: "verified",
|
|
64
|
+
evidence,
|
|
65
|
+
injection: result.injection ?? null,
|
|
66
|
+
retiredNodes: result.retiredNodes ?? [],
|
|
67
|
+
promoted: result.promoted ?? null,
|
|
68
|
+
createdNodes: result.createdNodes ?? [],
|
|
69
|
+
createdEdges: result.createdEdges ?? [],
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Register the top-level MCP tool `telora_reality_tree_injection_verify`.
|
|
74
|
+
*
|
|
75
|
+
* Inputs:
|
|
76
|
+
* - injectionId (UUID, required) -- the reality_tree_nodes row to verify.
|
|
77
|
+
* - evidence (string, required, max 5000 chars) -- worktree-checkable
|
|
78
|
+
* citation explaining why the FRT overlay flip is supported.
|
|
79
|
+
* - rewrites / splits (optional, forwarded to reality_tree_verify_injection)
|
|
80
|
+
* for compound verify operations.
|
|
81
|
+
*/
|
|
82
|
+
export function registerRealityTreeInjectionVerifyTool(server, getCreds) {
|
|
83
|
+
server.tool("telora_reality_tree_injection_verify", "Asymmetric 'verified' outcome for an anchored injection. The close-loop bookkeeper " +
|
|
84
|
+
"calls this when worktree evidence supports the FRT overlay flip. " +
|
|
85
|
+
"Performs two actions atomically from the agent's perspective: " +
|
|
86
|
+
"(1) updates the injection node's evidence field with the cited rationale, " +
|
|
87
|
+
"(2) advances injection_status to 'verified' and propagates the change: " +
|
|
88
|
+
"deletes the injection's 'targets' edges, promotes FRT overlays on each " +
|
|
89
|
+
"targeted UDE (frt_statement -> statement, frt_node_type -> node_type -- " +
|
|
90
|
+
"typically the UDE flips to a desired_effect). " +
|
|
91
|
+
"Evidence is REQUIRED -- the bookkeeper persona is explicit that verify " +
|
|
92
|
+
"decisions cite files, tests, or code patterns the bookkeeper inspected. " +
|
|
93
|
+
"If evidence is absent or ambiguous, file an `injection_unverified` " +
|
|
94
|
+
"escalation via telora_agent (action: escalate) instead.", {
|
|
95
|
+
injectionId: z.string().uuid().describe("Injection node UUID (reality_tree_nodes.id)"),
|
|
96
|
+
evidence: z.string().min(1).max(5000).describe("Worktree-checkable rationale: which files exist, which tests pass, which code " +
|
|
97
|
+
"matches the FRT overlay's promise. Stored on reality_tree_nodes.evidence."),
|
|
98
|
+
rewrites: z.array(z.object({
|
|
99
|
+
originalNodeId: z.string().uuid(),
|
|
100
|
+
newStatement: z.string(),
|
|
101
|
+
})).optional().describe("Optional: rewrite desired-effect nodes as part of the verify step (rare; for " +
|
|
102
|
+
"when the verified injection reveals a more accurate DE statement)."),
|
|
103
|
+
splits: z.array(z.object({
|
|
104
|
+
statement: z.string(),
|
|
105
|
+
nodeType: z.string(),
|
|
106
|
+
derivedFromNodeId: z.string().uuid(),
|
|
107
|
+
})).optional().describe("Optional: split off new nodes from a verified UDE (rare)."),
|
|
108
|
+
}, wrapHandler(async (params) => {
|
|
109
|
+
return handleRealityTreeInjectionVerify(params, (body) => callProductApi(getCreds(), body));
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=realityTreeInjectionVerifyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realityTreeInjectionVerifyHandler.js","sourceRoot":"","sources":["../../src/handlers/realityTreeInjectionVerifyHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ if (subcommand === "init") {
|
|
|
11
11
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
12
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
13
13
|
import { loadCredentials } from "./shared.js";
|
|
14
|
-
import { registerProductTools, registerDeliveryTools, registerFocusTools, registerIssueTools, registerAgentTools, registerPlaybookTools, registerConnectorTools, registerWorkflowTools, registerContextAssembleTool, registerWikiTools, registerDeploymentProfileTools, registerInfrastructureTools, registerReportTools, registerRiskTools, registerRiskDependencyTools, registerRiskCommunicationTools, registerLoopTools, registerRealityTools, registerRealityTreeTools, registerContractTools, registerPrerequisiteTreeTools, registerSessionStateTool, } from "./handlers/index.js";
|
|
14
|
+
import { registerProductTools, registerDeliveryTools, registerFocusTools, registerFocusDebugTools, registerIssueTools, registerAgentTools, registerPlaybookTools, registerConnectorTools, registerWorkflowTools, registerContextAssembleTool, registerWikiTools, registerDeploymentProfileTools, registerInfrastructureTools, registerReportTools, registerRiskTools, registerRiskDependencyTools, registerRiskCommunicationTools, registerLoopTools, registerRealityTools, registerRealityTreeTools, registerRealityTreeInjectionVerifyTool, registerContractTools, registerPrerequisiteTreeTools, registerSessionStateTool, } from "./handlers/index.js";
|
|
15
15
|
import { registerDiscoverTool } from "./handlers/discoverHandler.js";
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
// MCP Server
|
|
@@ -37,6 +37,7 @@ if (profile === 'human') {
|
|
|
37
37
|
registerProductTools(server, getCreds, profile);
|
|
38
38
|
registerDeliveryTools(server, getCreds, profile);
|
|
39
39
|
registerFocusTools(server, getCreds, profile);
|
|
40
|
+
registerFocusDebugTools(server, getCreds);
|
|
40
41
|
registerIssueTools(server, getCreds, profile);
|
|
41
42
|
registerInfrastructureTools(server, getCreds);
|
|
42
43
|
registerContextAssembleTool(server, getCreds);
|
|
@@ -178,11 +179,15 @@ if (profile === 'human') {
|
|
|
178
179
|
{ name: "telora_reality_tree_injection_context", summary: "Gather causal context for injections (by UUID or #seq) to synthesize focuses",
|
|
179
180
|
actions: [],
|
|
180
181
|
keywords: ["injection", "context", "focus", "synthesize", "upstream", "downstream", "causes", "effects", "seq"] },
|
|
182
|
+
{ name: "telora_reality_tree_injection_verify", summary: "Asymmetric 'verified' outcome: set injection_status=verified, delete targets edges, promote FRT overlays",
|
|
183
|
+
actions: [],
|
|
184
|
+
keywords: ["injection", "verify", "verified", "close loop", "bookkeeper", "FRT", "overlay", "evidence", "promote"] },
|
|
181
185
|
],
|
|
182
186
|
register: () => {
|
|
183
187
|
registerLoopTools(server, getCreds);
|
|
184
188
|
registerRealityTools(server, getCreds);
|
|
185
189
|
registerRealityTreeTools(server, getCreds);
|
|
190
|
+
registerRealityTreeInjectionVerifyTool(server, getCreds);
|
|
186
191
|
},
|
|
187
192
|
},
|
|
188
193
|
contracts: {
|
|
@@ -248,12 +253,16 @@ if (profile === 'human') {
|
|
|
248
253
|
}],
|
|
249
254
|
},
|
|
250
255
|
focus: {
|
|
251
|
-
description: "Execution roadmap: themed work scopes and agent assignment (
|
|
252
|
-
keywords: ["focus", "roadmap", "scope", "theme", "agent"],
|
|
256
|
+
description: "Execution roadmap: themed work scopes and agent assignment (2 tools, 7 actions)",
|
|
257
|
+
keywords: ["focus", "roadmap", "scope", "theme", "agent", "debug"],
|
|
253
258
|
toolIndex: [{
|
|
254
259
|
name: "telora_product_focus", summary: "Execution roadmap: group deliveries into themed work scopes",
|
|
255
260
|
actions: ["list", "create", "update", "reorder"],
|
|
256
261
|
keywords: ["focus", "roadmap", "scope", "theme", "execution", "agent role"],
|
|
262
|
+
}, {
|
|
263
|
+
name: "telora_product_focus_debug", summary: "Agent-written code-reality artifacts (Mermaid + markdown panels) for the focus Debug tab",
|
|
264
|
+
actions: ["get", "set", "clear"],
|
|
265
|
+
keywords: ["focus", "debug", "mermaid", "artifact", "code reality"],
|
|
257
266
|
}],
|
|
258
267
|
},
|
|
259
268
|
delivery: {
|
|
@@ -310,6 +319,7 @@ else {
|
|
|
310
319
|
// Daemon/workflow tools
|
|
311
320
|
registerDeliveryTools(server, getCreds, profile);
|
|
312
321
|
registerFocusTools(server, getCreds, profile);
|
|
322
|
+
registerFocusDebugTools(server, getCreds);
|
|
313
323
|
registerIssueTools(server, getCreds, profile);
|
|
314
324
|
registerAgentTools(server, getCreds);
|
|
315
325
|
// Playbook tools
|
|
@@ -329,6 +339,7 @@ else {
|
|
|
329
339
|
registerLoopTools(server, getCreds);
|
|
330
340
|
registerRealityTools(server, getCreds);
|
|
331
341
|
registerRealityTreeTools(server, getCreds);
|
|
342
|
+
registerRealityTreeInjectionVerifyTool(server, getCreds);
|
|
332
343
|
registerContractTools(server, getCreds);
|
|
333
344
|
registerPrerequisiteTreeTools(server, getCreds);
|
|
334
345
|
// Connector tools: full profile only (non-human)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAA2C,MAAM,+BAA+B,CAAC;AAE9G,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,sDAAsD;AACtD,SAAS,QAAQ;IACf,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAgB,CAAC;AAE3E,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAE5E,2DAA2D;IAC3D,gFAAgF;IAChF,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3C,2DAA2D;IAC3D,MAAM,OAAO,GAAmB;QAC9B,KAAK,EAAE;YACL,WAAW,EAAE,uEAAuE;YACpF,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;YAClE,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,uDAAuD;oBACtF,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;oBAC5F,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;iBACjE,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACrD;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,+FAA+F;YAC5G,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;YAClG,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,+CAA+C;oBACpF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;gBAC/D,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,yEAAyE;oBAChH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;gBACtE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,+DAA+D;oBACzG,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAC5D,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,oEAAoE;oBAC9G,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;gBACxE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,mEAAmE;oBAC5G,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBAClE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,6EAA6E;oBACtH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE;gBACvE,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,6CAA6C;oBACxF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;gBACnE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,oEAAoE;oBACxG,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;aAC7E;YACD,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;SAC7D;QACD,SAAS,EAAE;YACT,WAAW,EAAE,0FAA0F;YACvG,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;YAC9F,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gEAAgE;oBAClG,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACtD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;iBAC5F,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACxD;QACD,OAAO,EAAE;YACP,WAAW,EAAE,qHAAqH;YAClI,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;YACrG,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,yCAAyC;oBACjF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;oBACjD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;iBAC/E,EAAE;oBACD,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,2DAA2D;oBACpG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;iBACvE,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACtD;QACD,SAAS,EAAE;YACT,WAAW,EAAE,0EAA0E;YACvF,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC;YACnF,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,4DAA4D;oBAC9F,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC;oBACjD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;iBACjF,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACxD;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,iFAAiF;YAC9F,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;YACvF,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,sDAAsD;oBAClG,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC;oBAC/D,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;iBACxF,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC;SACjE;QACD,KAAK,EAAE;YACL,WAAW,EAAE,kIAAkI;YAC/I,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;YAC9G,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,2EAA2E;oBACzG,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;oBAChH,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC5F,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,oFAAoF;oBAC7H,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE;gBACrF,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,0EAA0E;oBACtH,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;aACpF;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC9C,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnD,CAAC;SACF;QACD,KAAK,EAAE;YACL,WAAW,EAAE,4IAA4I;YACzJ,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC;YACrP,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,8DAA8D;oBACrG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACjE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,oDAAoD;oBAC3F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBAC7E,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,2CAA2C;oBAChF,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;oBAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;gBACxD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,iDAAiD;oBACvF,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;gBAClE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,wDAAwD;oBACjG,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;oBACzC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;gBAClG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,iEAAiE;oBACrG,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;oBAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE;gBAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,6DAA6D;oBACnG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBAChF,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,iEAAiE;oBAC5G,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACxG,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,wCAAwC;oBACnF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;gBAChF,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,kFAAkF;oBACjI,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,CAAC;oBACpG,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBACnH,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,8EAA8E;oBACtI,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;aACpH;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,mFAAmF;YAChG,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YAClF,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,qDAAqD;oBACvF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE;gBACnF,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,oDAAoD;oBAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;aACpE;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;SACF;QACD,aAAa,EAAE;YACb,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;YAChI,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,kDAAkD;oBAC7F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBACpD,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;gBACrE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,2DAA2D;oBAC3G,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACtD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBAC/E,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,0CAA0C;oBAC1F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE;gBACzE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gDAAgD;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBACpD,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,0CAA0C;oBAC3F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE;gBAChD,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,4EAA4E;oBAChI,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC;oBAChD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE;aACnF;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;SACF;KACF,CAAC;IAEF,MAAM,OAAO,GAAkC;QAC7C,gBAAgB,EAAE;YAChB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC;YACzE,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,qDAAqD;oBAC/F,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC;iBACrF,CAAC;SACH;QACD,OAAO,EAAE;YACP,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,+DAA+D;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;oBACxD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;iBACnE,CAAC;SACH;QACD,KAAK,EAAE;YACL,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;YACzD,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,6DAA6D;oBACpG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;iBAC5E,CAAC;SACH;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC;YAC3D,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,+DAA+D;oBACzG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC5E,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;iBACxE,CAAC;SACH;QACD,KAAK,EAAE;YACL,WAAW,EAAE,2FAA2F;YACxG,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC;YAC/D,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,uDAAuD;oBAC9F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC;iBAC1E,CAAC;SACH;KACF,CAAC;IAEF,MAAM,YAAY,GAAkC;QAClD,cAAc,EAAE;YACd,WAAW,EAAE,uFAAuF;YACpG,QAAQ,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC;YACrG,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,qDAAqD;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACvE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,wDAAwD;oBAC7F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC3E,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,gEAAgE;oBAC5G,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBACpF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,mCAAmC;oBACzE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;aAClE;SACF;KACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAEzE,CAAC;KAAM,CAAC;IACN,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAE5E,uFAAuF;IACvF,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,sEAAsE;IACtE,oBAAoB;IACpB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE9C,wBAAwB;IACxB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErC,iBAAiB;IACjB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAExC,2BAA2B;IAC3B,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,sCAAsC;IACtC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,kDAAkD;IAClD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhD,iDAAiD;IACjD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,wEAAwE;IACxE,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,2DAA2D,OAAO,GAAG,CAAC,CAAC;AACvF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,sCAAsC,EACtC,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAA2C,MAAM,+BAA+B,CAAC;AAE9G,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,sDAAsD;AACtD,SAAS,QAAQ;IACf,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAgB,CAAC;AAE3E,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAE5E,2DAA2D;IAC3D,gFAAgF;IAChF,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3C,2DAA2D;IAC3D,MAAM,OAAO,GAAmB;QAC9B,KAAK,EAAE;YACL,WAAW,EAAE,uEAAuE;YACpF,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;YAClE,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,uDAAuD;oBACtF,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;oBAC5F,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;iBACjE,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACrD;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,+FAA+F;YAC5G,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;YAClG,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,+CAA+C;oBACpF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;gBAC/D,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,yEAAyE;oBAChH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;gBACtE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,+DAA+D;oBACzG,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAC5D,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,oEAAoE;oBAC9G,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;gBACxE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,mEAAmE;oBAC5G,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBAClE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,6EAA6E;oBACtH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE;gBACvE,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,6CAA6C;oBACxF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;gBACnE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,oEAAoE;oBACxG,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;aAC7E;YACD,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;SAC7D;QACD,SAAS,EAAE;YACT,WAAW,EAAE,0FAA0F;YACvG,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;YAC9F,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gEAAgE;oBAClG,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACtD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;iBAC5F,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACxD;QACD,OAAO,EAAE;YACP,WAAW,EAAE,qHAAqH;YAClI,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;YACrG,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,yCAAyC;oBACjF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;oBACjD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;iBAC/E,EAAE;oBACD,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,2DAA2D;oBACpG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;iBACvE,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACtD;QACD,SAAS,EAAE;YACT,WAAW,EAAE,0EAA0E;YACvF,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC;YACnF,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,4DAA4D;oBAC9F,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC;oBACjD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;iBACjF,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACxD;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,iFAAiF;YAC9F,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;YACvF,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,sDAAsD;oBAClG,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC;oBAC/D,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;iBACxF,CAAC;YACF,QAAQ,EAAE,GAAG,EAAE,CAAC,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC;SACjE;QACD,KAAK,EAAE;YACL,WAAW,EAAE,kIAAkI;YAC/I,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;YAC9G,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,2EAA2E;oBACzG,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;oBAChH,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC5F,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,oFAAoF;oBAC7H,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE;gBACrF,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,0EAA0E;oBACtH,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;aACpF;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC9C,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnD,CAAC;SACF;QACD,KAAK,EAAE;YACL,WAAW,EAAE,4IAA4I;YACzJ,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC;YACrP,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,8DAA8D;oBACrG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACjE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,oDAAoD;oBAC3F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBAC7E,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,2CAA2C;oBAChF,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;oBAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;gBACxD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,iDAAiD;oBACvF,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;gBAClE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,wDAAwD;oBACjG,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;oBACzC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;gBAClG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,iEAAiE;oBACrG,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;oBAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE;gBAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,6DAA6D;oBACnG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBAChF,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,iEAAiE;oBAC5G,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACxG,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,wCAAwC;oBACnF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;gBAChF,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,kFAAkF;oBACjI,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,CAAC;oBACpG,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBACnH,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,8EAA8E;oBACtI,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnH,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,0GAA0G;oBACjK,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;aACvH;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC3C,sCAAsC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,mFAAmF;YAChG,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YAClF,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,qDAAqD;oBACvF,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE;gBACnF,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,oDAAoD;oBAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;aACpE;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;SACF;QACD,aAAa,EAAE;YACb,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;YAChI,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,kDAAkD;oBAC7F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBACpD,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;gBACrE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,2DAA2D;oBAC3G,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACtD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBAC/E,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,0CAA0C;oBAC1F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE;gBACzE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gDAAgD;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBACpD,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,0CAA0C;oBAC3F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE;gBAChD,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,4EAA4E;oBAChI,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC;oBAChD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE;aACnF;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;SACF;KACF,CAAC;IAEF,MAAM,OAAO,GAAkC;QAC7C,gBAAgB,EAAE;YAChB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC;YACzE,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,qDAAqD;oBAC/F,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC;iBACrF,CAAC;SACH;QACD,OAAO,EAAE;YACP,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,+DAA+D;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;oBACxD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;iBACnE,CAAC;SACH;QACD,KAAK,EAAE;YACL,WAAW,EAAE,iFAAiF;YAC9F,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;YAClE,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,6DAA6D;oBACpG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;iBAC5E,EAAE;oBACD,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,0FAA0F;oBACvI,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;oBAChC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC;iBACpE,CAAC;SACH;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC;YAC3D,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,+DAA+D;oBACzG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC;oBAC5E,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;iBACxE,CAAC;SACH;QACD,KAAK,EAAE;YACL,WAAW,EAAE,2FAA2F;YACxG,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC;YAC/D,SAAS,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,uDAAuD;oBAC9F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC;iBAC1E,CAAC;SACH;KACF,CAAC;IAEF,MAAM,YAAY,GAAkC;QAClD,cAAc,EAAE;YACd,WAAW,EAAE,uFAAuF;YACpG,QAAQ,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC;YACrG,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,qDAAqD;oBAChG,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACvE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,wDAAwD;oBAC7F,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC3E,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,gEAAgE;oBAC5G,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACrC,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBACpF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,mCAAmC;oBACzE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;oBAC5C,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;aAClE;SACF;KACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAEzE,CAAC;KAAM,CAAC;IACN,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAE5E,uFAAuF;IACvF,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,sEAAsE;IACtE,oBAAoB;IACpB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE9C,wBAAwB;IACxB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErC,iBAAiB;IACjB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAExC,2BAA2B;IAC3B,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,sCAAsC;IACtC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,kDAAkD;IAClD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,sCAAsC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhD,iDAAiD;IACjD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,wEAAwE;IACxE,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,2DAA2D,OAAO,GAAG,CAAC,CAAC;AACvF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|