@diegoaltoworks/chatter 0.61.0 → 0.63.0
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 +55 -17
- package/dist/auth/secretStrength.d.ts +1 -1
- package/dist/auth/secretStrength.d.ts.map +1 -1
- package/dist/bin/create-apikey.js +45 -28
- package/dist/bin/wa-pair.js +113 -46
- package/dist/channels/backoff.d.ts +10 -0
- package/dist/channels/backoff.d.ts.map +1 -0
- package/dist/channels/gates.d.ts +15 -8
- package/dist/channels/gates.d.ts.map +1 -1
- package/dist/channels/index.d.ts +1 -1
- package/dist/channels/index.d.ts.map +1 -1
- package/dist/channels/index.js +38 -5
- package/dist/channels/index.mjs +37 -5
- package/dist/channels/matrix/api.d.ts +25 -6
- package/dist/channels/matrix/api.d.ts.map +1 -1
- package/dist/channels/matrix/channel.d.ts +4 -56
- package/dist/channels/matrix/channel.d.ts.map +1 -1
- package/dist/channels/matrix/handler.d.ts +16 -9
- package/dist/channels/matrix/handler.d.ts.map +1 -1
- package/dist/channels/matrix/index.d.ts +2 -2
- package/dist/channels/matrix/index.d.ts.map +1 -1
- package/dist/channels/matrix/index.js +196 -40
- package/dist/channels/matrix/index.mjs +189 -39
- package/dist/channels/matrix/sync.d.ts +4 -1
- package/dist/channels/matrix/sync.d.ts.map +1 -1
- package/dist/channels/matrix/updates.d.ts +39 -10
- package/dist/channels/matrix/updates.d.ts.map +1 -1
- package/dist/channels/pipeline.d.ts +14 -14
- package/dist/channels/pipeline.d.ts.map +1 -1
- package/dist/channels/polling.d.ts +67 -0
- package/dist/channels/polling.d.ts.map +1 -0
- package/dist/channels/telegram/channel.d.ts +2 -56
- package/dist/channels/telegram/channel.d.ts.map +1 -1
- package/dist/channels/telegram/index.js +53 -23
- package/dist/channels/telegram/index.mjs +53 -23
- package/dist/channels/telegram/poll.d.ts +5 -1
- package/dist/channels/telegram/poll.d.ts.map +1 -1
- package/dist/channels/telegram/webhook.d.ts +2 -10
- package/dist/channels/telegram/webhook.d.ts.map +1 -1
- package/dist/channels/whatsapp/authState.d.ts +40 -9
- package/dist/channels/whatsapp/authState.d.ts.map +1 -1
- package/dist/channels/whatsapp/channel.d.ts +39 -4
- package/dist/channels/whatsapp/channel.d.ts.map +1 -1
- package/dist/channels/whatsapp/inbound.d.ts +23 -25
- package/dist/channels/whatsapp/inbound.d.ts.map +1 -1
- package/dist/channels/whatsapp/index.d.ts +3 -3
- package/dist/channels/whatsapp/index.d.ts.map +1 -1
- package/dist/channels/whatsapp/index.js +188 -66
- package/dist/channels/whatsapp/index.mjs +185 -66
- package/dist/channels/whatsapp/pairing.d.ts.map +1 -1
- package/dist/client/src/Chat.d.ts.map +1 -1
- package/dist/client/src/ChatButton.d.ts.map +1 -1
- package/dist/client/src/browser.d.ts.map +1 -1
- package/dist/core/answer.d.ts +8 -0
- package/dist/core/answer.d.ts.map +1 -1
- package/dist/core/buildLock.d.ts +52 -0
- package/dist/core/buildLock.d.ts.map +1 -0
- package/dist/core/pipeline.d.ts +42 -5
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/prompts.d.ts +2 -0
- package/dist/core/prompts.d.ts.map +1 -1
- package/dist/core/retrieval.d.ts +100 -25
- package/dist/core/retrieval.d.ts.map +1 -1
- package/dist/core/session.d.ts +8 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/flows/index.d.ts +1 -1
- package/dist/flows/index.d.ts.map +1 -1
- package/dist/flows/index.js +8 -6
- package/dist/flows/index.mjs +7 -6
- package/dist/flows/intent.d.ts +1 -1
- package/dist/flows/intent.d.ts.map +1 -1
- package/dist/flows/loader.d.ts +1 -2
- package/dist/flows/loader.d.ts.map +1 -1
- package/dist/flows/params.d.ts +1 -1
- package/dist/flows/params.d.ts.map +1 -1
- package/dist/flows/session.d.ts +4 -2
- package/dist/flows/session.d.ts.map +1 -1
- package/dist/flows/types.d.ts +2 -3
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/history/index.d.ts +1 -1
- package/dist/history/index.d.ts.map +1 -1
- package/dist/history/index.js +6 -3
- package/dist/history/index.mjs +5 -3
- package/dist/history/tursoStore.d.ts +6 -4
- package/dist/history/tursoStore.d.ts.map +1 -1
- package/dist/images/index.js +2 -2
- package/dist/images/index.mjs +2 -2
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +596 -295
- package/dist/index.mjs +595 -295
- package/dist/mcp-server/index.d.ts +5 -5
- package/dist/mcp-server/index.d.ts.map +1 -1
- package/dist/mcp-server/logger.d.ts +12 -2
- package/dist/mcp-server/logger.d.ts.map +1 -1
- package/dist/mcp-server/rate-limiter.d.ts +10 -3
- package/dist/mcp-server/rate-limiter.d.ts.map +1 -1
- package/dist/mcp-server/types.d.ts +20 -5
- package/dist/mcp-server/types.d.ts.map +1 -1
- package/dist/mcp-server.js +479 -244
- package/dist/mcp-server.mjs +485 -244
- package/dist/middleware/apiKey.d.ts +10 -0
- package/dist/middleware/apiKey.d.ts.map +1 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/ratelimit.d.ts.map +1 -1
- package/dist/middleware/referrer.d.ts.map +1 -1
- package/dist/middleware/session.d.ts +1 -1
- package/dist/middleware/session.d.ts.map +1 -1
- package/dist/routes/demo.d.ts.map +1 -1
- package/dist/routes/openai.d.ts.map +1 -1
- package/dist/routes/private.d.ts.map +1 -1
- package/dist/routes/public.d.ts.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/index.mjs +1 -1
- package/dist/scheduler/scheduler.d.ts +9 -1
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +491 -268
- package/dist/server.mjs +497 -268
- package/dist/shortener.d.ts +5 -4
- package/dist/shortener.d.ts.map +1 -1
- package/dist/types.d.ts +129 -75
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Modular implementation of the Model Context Protocol server
|
|
5
5
|
*/
|
|
6
6
|
export { createMCPServer } from "../mcp-server";
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
7
|
+
export { generateConversationId, getOrGenerateConversationId, isValidConversationId, } from "./conversation-id";
|
|
8
|
+
export { calculateCost, formatCost, getCostSummary } from "./cost-tracker";
|
|
9
|
+
export { createLogger, MCPLogger } from "./logger";
|
|
10
|
+
export { createMcpRateLimiter, DEFAULT_WINDOW_MS, RateLimiter } from "./rate-limiter";
|
|
11
|
+
export type { ChatMessage, CostInfo, MCPLogCallback, MCPServerOptions, MCPToolConfig, MCPTransportMode, PricingRates, ToolContext, } from "./types";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtF,YAAY,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -5,12 +5,21 @@ import { type Logger } from "../core/logger";
|
|
|
5
5
|
import type { ChatMessage, CostInfo, MCPLogCallback } from "./types";
|
|
6
6
|
/**
|
|
7
7
|
* Logger for MCP chat interactions
|
|
8
|
+
*
|
|
9
|
+
* What a tool call *said* and what it *cost* are separated on purpose. The
|
|
10
|
+
* console line is on by default, so it carries metadata only (tool, ids,
|
|
11
|
+
* sizes, timings, tokens) and never the conversation, the retrieved context
|
|
12
|
+
* or the answer. Content is emitted only when a host opts in with
|
|
13
|
+
* `logging.content`, and then at `debug`, so the default log level keeps it
|
|
14
|
+
* off even after the opt-in. Whatever does get emitted - console line or
|
|
15
|
+
* `onChat` callback - is scrubbed of credentials first.
|
|
8
16
|
*/
|
|
9
17
|
export declare class MCPLogger {
|
|
10
18
|
private enableConsole;
|
|
11
19
|
private callback?;
|
|
12
20
|
private logger;
|
|
13
|
-
|
|
21
|
+
private logContent;
|
|
22
|
+
constructor(enableConsole?: boolean, callback?: MCPLogCallback, logger?: Logger, logContent?: boolean);
|
|
14
23
|
/**
|
|
15
24
|
* Log a chat interaction
|
|
16
25
|
*/
|
|
@@ -22,7 +31,8 @@ export declare class MCPLogger {
|
|
|
22
31
|
* @param enableConsole - Enable console logging
|
|
23
32
|
* @param callback - Custom logging callback
|
|
24
33
|
* @param logger - Logger implementation. Default: a console logger writing to stderr.
|
|
34
|
+
* @param logContent - Also emit conversation content, at `debug`. Default: false.
|
|
25
35
|
* @returns MCPLogger instance
|
|
26
36
|
*/
|
|
27
|
-
export declare function createLogger(enableConsole?: boolean, callback?: MCPLogCallback, logger?: Logger): MCPLogger;
|
|
37
|
+
export declare function createLogger(enableConsole?: boolean, callback?: MCPLogCallback, logger?: Logger, logContent?: boolean): MCPLogger;
|
|
28
38
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAU;IAE5B,YACE,aAAa,UAAO,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,UAAQ,EAMnB;IAED;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,WAAW,EAAE,EACnC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CA6Df;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,aAAa,UAAO,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,UAAQ,GACjB,SAAS,CAEX"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Rate Limiting for MCP Tools
|
|
3
3
|
* Simple in-memory sliding window implementation
|
|
4
4
|
*/
|
|
5
|
+
/** Default sliding-window size: 1 minute. */
|
|
6
|
+
export declare const DEFAULT_WINDOW_MS = 60000;
|
|
5
7
|
/**
|
|
6
8
|
* Rate limiter using sliding window algorithm
|
|
7
9
|
*/
|
|
@@ -13,7 +15,7 @@ export declare class RateLimiter {
|
|
|
13
15
|
* Create a new rate limiter
|
|
14
16
|
*
|
|
15
17
|
* @param limit - Maximum requests allowed in the time window
|
|
16
|
-
* @param windowMs - Time window in milliseconds (default:
|
|
18
|
+
* @param windowMs - Time window in milliseconds (default: `DEFAULT_WINDOW_MS`)
|
|
17
19
|
*/
|
|
18
20
|
constructor(limit: number, windowMs?: number);
|
|
19
21
|
/**
|
|
@@ -49,11 +51,16 @@ export declare class RateLimiter {
|
|
|
49
51
|
getTimeUntilReset(key: string): number;
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
|
-
* Create a rate limiter if limit is specified
|
|
54
|
+
* Create a rate limiter if limit is specified.
|
|
55
|
+
*
|
|
56
|
+
* Named `createMcpRateLimiter` (not `createRateLimiter`) so it doesn't
|
|
57
|
+
* collide with `middleware/ratelimit.ts`'s `createRateLimiter` - an
|
|
58
|
+
* unrelated HTTP rate limiter with a different signature and return type,
|
|
59
|
+
* easy to import the wrong one of by name alone.
|
|
53
60
|
*
|
|
54
61
|
* @param limit - Maximum requests per window, or undefined for no limit
|
|
55
62
|
* @param windowMs - Time window in milliseconds
|
|
56
63
|
* @returns RateLimiter instance or null if no limit specified
|
|
57
64
|
*/
|
|
58
|
-
export declare function
|
|
65
|
+
export declare function createMcpRateLimiter(limit: number | undefined, windowMs?: number): RateLimiter | null;
|
|
59
66
|
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;OAKG;IACH,YAAY,KAAK,EAAE,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6CAA6C;AAC7C,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;OAKG;IACH,YAAY,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAoB,EAItD;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAe1B;IAED;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5B;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAEf;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASrC;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,SAAoB,GAC3B,WAAW,GAAG,IAAI,CAEpB"}
|
|
@@ -58,13 +58,28 @@ export interface MCPServerOptions extends ChatterConfig {
|
|
|
58
58
|
/** Logging and observability */
|
|
59
59
|
logging?: {
|
|
60
60
|
/**
|
|
61
|
-
* Emit an `mcp_chat` event (via `logger`, at `info`) for every tool call
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
61
|
+
* Emit an `mcp_chat` event (via `logger`, at `info`) for every tool call:
|
|
62
|
+
* tool name, conversation id, message/context counts, duration and token
|
|
63
|
+
* cost, never the conversation itself (see `content`). Default: true.
|
|
64
|
+
* Still subject to `logLevel`/`logger` - e.g. `logLevel: "warn"` silences
|
|
65
|
+
* these events the same way it silences startup banners, even with
|
|
66
|
+
* `console: true`.
|
|
65
67
|
*/
|
|
66
68
|
console?: boolean;
|
|
67
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Also emit the conversation itself - user message, history, retrieved
|
|
71
|
+
* context, answer - as an `mcp_chat_content` event. Default: false, so
|
|
72
|
+
* the default log carries metadata only. Needs `console` left on, and
|
|
73
|
+
* lands at `debug`, so it also needs `logLevel: "debug"` (or a custom
|
|
74
|
+
* `logger` that keeps debug) to reach the log. Scrubbed of credentials
|
|
75
|
+
* first, like every other logged content.
|
|
76
|
+
*/
|
|
77
|
+
content?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Custom logging callback for external monitoring. Receives the full
|
|
80
|
+
* event, conversation content included, scrubbed of credentials. The
|
|
81
|
+
* host owns where that lands, so `console`/`content` do not gate it.
|
|
82
|
+
*/
|
|
68
83
|
onChat?: MCPLogCallback;
|
|
69
84
|
};
|
|
70
85
|
/** Rate limiting per tool (requests per minute). Default: no limit */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,qCAAqC;IACrC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,qCAAqC;QACrC,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,sCAAsC;QACtC,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,qCAAqC;IACrC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,qCAAqC;QACrC,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,sCAAsC;QACtC,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;;WAIG;QACH,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IAEF,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,WAAW,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|