@herdctl/slack 0.3.0 → 1.0.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/dist/__tests__/command-handler.test.js +1 -0
- package/dist/__tests__/command-handler.test.js.map +1 -1
- package/dist/__tests__/error-handler.test.js +25 -25
- package/dist/__tests__/error-handler.test.js.map +1 -1
- package/dist/__tests__/formatting.test.js +9 -9
- package/dist/__tests__/formatting.test.js.map +1 -1
- package/dist/__tests__/manager.test.d.ts +8 -0
- package/dist/__tests__/manager.test.d.ts.map +1 -0
- package/dist/__tests__/manager.test.js +278 -0
- package/dist/__tests__/manager.test.js.map +1 -0
- package/dist/__tests__/slack-connector.test.js +1 -0
- package/dist/__tests__/slack-connector.test.js.map +1 -1
- package/dist/commands/command-handler.d.ts +3 -3
- package/dist/commands/command-handler.d.ts.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -54
- package/dist/commands/status.js.map +1 -1
- package/dist/error-handler.d.ts +12 -33
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +32 -57
- package/dist/error-handler.js.map +1 -1
- package/dist/formatting.d.ts +4 -45
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +10 -96
- package/dist/formatting.js.map +1 -1
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +156 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +531 -0
- package/dist/manager.js.map +1 -0
- package/dist/slack-connector.d.ts +3 -2
- package/dist/slack-connector.d.ts.map +1 -1
- package/dist/slack-connector.js.map +1 -1
- package/dist/types.d.ts +3 -23
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/__tests__/session-manager.test.d.ts +0 -2
- package/dist/__tests__/session-manager.test.d.ts.map +0 -1
- package/dist/__tests__/session-manager.test.js +0 -214
- package/dist/__tests__/session-manager.test.js.map +0 -1
- package/dist/session-manager/errors.d.ts +0 -58
- package/dist/session-manager/errors.d.ts.map +0 -1
- package/dist/session-manager/errors.js +0 -70
- package/dist/session-manager/errors.js.map +0 -1
- package/dist/session-manager/index.d.ts +0 -9
- package/dist/session-manager/index.d.ts.map +0 -1
- package/dist/session-manager/index.js +0 -13
- package/dist/session-manager/index.js.map +0 -1
- package/dist/session-manager/session-manager.d.ts +0 -62
- package/dist/session-manager/session-manager.d.ts.map +0 -1
- package/dist/session-manager/session-manager.js +0 -320
- package/dist/session-manager/session-manager.js.map +0 -1
- package/dist/session-manager/types.d.ts +0 -154
- package/dist/session-manager/types.d.ts.map +0 -1
- package/dist/session-manager/types.js +0 -57
- package/dist/session-manager/types.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,24 +8,23 @@
|
|
|
8
8
|
* - Single Bolt App shared across all agents (one bot token per workspace)
|
|
9
9
|
* - Channel->agent routing for multi-agent support
|
|
10
10
|
* - Channel-based conversation management
|
|
11
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* Session management, message splitting, and other shared utilities
|
|
13
|
+
* are provided by @herdctl/chat - import them from there directly.
|
|
12
14
|
*/
|
|
13
15
|
export declare const VERSION = "0.1.0";
|
|
14
16
|
export { SlackConnector } from "./slack-connector.js";
|
|
17
|
+
export { SlackManager } from "./manager.js";
|
|
15
18
|
export { createSlackLogger, createDefaultSlackLogger, } from "./logger.js";
|
|
16
19
|
export type { SlackLogLevel, SlackLoggerOptions, } from "./logger.js";
|
|
17
|
-
export {
|
|
18
|
-
export type { SlackConnectorOptions, SlackConnectorState, SlackConnectionStatus, SlackConnectorLogger, SlackMessageEvent, SlackErrorEvent, SlackChannelConfig, ISlackConnector, ISlackSessionManager, SlackConnectorEventMap, SlackConnectorEventName, SlackConnectorEventPayload, } from "./types.js";
|
|
19
|
-
export type { SessionManagerOptions, SessionManagerLogger, ISessionManager, SessionResult, ChannelSession, SlackSessionState, } from "./session-manager/index.js";
|
|
20
|
-
export { SlackSessionStateSchema, ChannelSessionSchema, createInitialSessionState, createChannelSession, } from "./session-manager/index.js";
|
|
20
|
+
export type { SlackConnectorOptions, SlackConnectorState, SlackConnectionStatus, SlackConnectorLogger, SlackMessageEvent, SlackErrorEvent, SlackChannelConfig, SlackFileUploadParams, ISlackConnector, SlackConnectorEventMap, SlackConnectorEventName, SlackConnectorEventPayload, } from "./types.js";
|
|
21
21
|
export { SlackErrorCode, SlackConnectorError, SlackConnectionError, AlreadyConnectedError, MissingTokenError, InvalidTokenError, isSlackConnectorError, } from "./errors.js";
|
|
22
|
-
export {
|
|
22
|
+
export { ErrorCategory, classifyError, safeExecute, safeExecuteWithReply, } from "./error-handler.js";
|
|
23
23
|
export type { ClassifiedError } from "./error-handler.js";
|
|
24
|
-
export { SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, } from "./session-manager/index.js";
|
|
25
24
|
export { CommandHandler } from "./commands/index.js";
|
|
26
25
|
export { helpCommand, resetCommand, statusCommand } from "./commands/index.js";
|
|
27
26
|
export type { CommandContext, PrefixCommand, CommandHandlerOptions, } from "./commands/index.js";
|
|
28
27
|
export { isBotMentioned, stripBotMention, stripMentions, shouldProcessMessage, processMessage, } from "./message-handler.js";
|
|
29
|
-
export { SLACK_MAX_MESSAGE_LENGTH,
|
|
28
|
+
export { SLACK_MAX_MESSAGE_LENGTH, markdownToMrkdwn, escapeMrkdwn, createContextAttachment, findSplitPoint, splitMessage, needsSplit, truncateMessage, formatCodeBlock, DEFAULT_MESSAGE_DELAY_MS, MIN_CHUNK_SIZE, } from "./formatting.js";
|
|
30
29
|
export type { MessageSplitOptions, SplitResult, ContextAttachment, } from "./formatting.js";
|
|
31
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/E,YAAY,EACV,cAAc,EACd,aAAa,EACb,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAEL,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EAEvB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,27 +8,31 @@
|
|
|
8
8
|
* - Single Bolt App shared across all agents (one bot token per workspace)
|
|
9
9
|
* - Channel->agent routing for multi-agent support
|
|
10
10
|
* - Channel-based conversation management
|
|
11
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* Session management, message splitting, and other shared utilities
|
|
13
|
+
* are provided by @herdctl/chat - import them from there directly.
|
|
12
14
|
*/
|
|
13
15
|
export const VERSION = "0.1.0";
|
|
14
16
|
// Main connector class
|
|
15
17
|
export { SlackConnector } from "./slack-connector.js";
|
|
18
|
+
// Manager class (used by FleetManager)
|
|
19
|
+
export { SlackManager } from "./manager.js";
|
|
16
20
|
// Logger
|
|
17
21
|
export { createSlackLogger, createDefaultSlackLogger, } from "./logger.js";
|
|
18
|
-
//
|
|
19
|
-
export { SessionManager } from "./session-manager/index.js";
|
|
20
|
-
export { SlackSessionStateSchema, ChannelSessionSchema, createInitialSessionState, createChannelSession, } from "./session-manager/index.js";
|
|
21
|
-
// Errors
|
|
22
|
+
// Slack-specific errors
|
|
22
23
|
export { SlackErrorCode, SlackConnectorError, SlackConnectionError, AlreadyConnectedError, MissingTokenError, InvalidTokenError, isSlackConnectorError, } from "./errors.js";
|
|
23
|
-
//
|
|
24
|
-
export {
|
|
25
|
-
// Session manager errors
|
|
26
|
-
export { SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, } from "./session-manager/index.js";
|
|
24
|
+
// Slack-specific error handling (re-exports shared types + Slack classifier)
|
|
25
|
+
export { ErrorCategory, classifyError, safeExecute, safeExecuteWithReply, } from "./error-handler.js";
|
|
27
26
|
// Commands
|
|
28
27
|
export { CommandHandler } from "./commands/index.js";
|
|
29
28
|
export { helpCommand, resetCommand, statusCommand } from "./commands/index.js";
|
|
30
29
|
// Message handling
|
|
31
30
|
export { isBotMentioned, stripBotMention, stripMentions, shouldProcessMessage, processMessage, } from "./message-handler.js";
|
|
32
|
-
//
|
|
33
|
-
|
|
31
|
+
// Slack-specific formatting utilities
|
|
32
|
+
// Note: Message splitting functions are re-exported from @herdctl/chat
|
|
33
|
+
export {
|
|
34
|
+
// Slack-specific
|
|
35
|
+
SLACK_MAX_MESSAGE_LENGTH, markdownToMrkdwn, escapeMrkdwn, createContextAttachment,
|
|
36
|
+
// Re-exported from @herdctl/chat
|
|
37
|
+
findSplitPoint, splitMessage, needsSplit, truncateMessage, formatCodeBlock, DEFAULT_MESSAGE_DELAY_MS, MIN_CHUNK_SIZE, } from "./formatting.js";
|
|
34
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAuBrB,wBAAwB;AACxB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,6EAA6E;AAC7E,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAI5B,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,sCAAsC;AACtC,uEAAuE;AACvE,OAAO;AACL,iBAAiB;AACjB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB;AACvB,iCAAiC;AACjC,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Manager Module
|
|
3
|
+
*
|
|
4
|
+
* Manages Slack connectors for agents that have `chat.slack` configured.
|
|
5
|
+
* This module is responsible for:
|
|
6
|
+
* - Creating one SlackConnector instance per Slack-enabled agent
|
|
7
|
+
* - Managing connector lifecycle (start/stop)
|
|
8
|
+
* - Providing access to connectors for status queries
|
|
9
|
+
*
|
|
10
|
+
* @module manager
|
|
11
|
+
*/
|
|
12
|
+
import type { FleetManagerContext, IChatManager, ChatManagerConnectorState } from "@herdctl/core";
|
|
13
|
+
import { SlackConnector } from "./slack-connector.js";
|
|
14
|
+
/**
|
|
15
|
+
* SlackManager handles Slack connections for agents
|
|
16
|
+
*
|
|
17
|
+
* This class encapsulates the creation and lifecycle management of
|
|
18
|
+
* SlackConnector instances for agents that have Slack chat configured.
|
|
19
|
+
*
|
|
20
|
+
* Implements IChatManager so FleetManager can interact with it through
|
|
21
|
+
* the generic chat manager interface.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SlackManager implements IChatManager {
|
|
24
|
+
private ctx;
|
|
25
|
+
private connectors;
|
|
26
|
+
private initialized;
|
|
27
|
+
constructor(ctx: FleetManagerContext);
|
|
28
|
+
/**
|
|
29
|
+
* Initialize Slack connectors for all configured agents
|
|
30
|
+
*
|
|
31
|
+
* This method:
|
|
32
|
+
* 1. Iterates through agents to find those with Slack configured
|
|
33
|
+
* 2. Creates a SlackConnector for each Slack-enabled agent
|
|
34
|
+
*
|
|
35
|
+
* Should be called during FleetManager initialization.
|
|
36
|
+
*/
|
|
37
|
+
initialize(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Connect all Slack connectors
|
|
40
|
+
*
|
|
41
|
+
* Connects each connector to Slack via Socket Mode and subscribes to events.
|
|
42
|
+
* Errors are logged but don't stop other connectors from connecting.
|
|
43
|
+
*/
|
|
44
|
+
start(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Disconnect all Slack connectors gracefully
|
|
47
|
+
*
|
|
48
|
+
* Sessions are automatically persisted to disk on every update,
|
|
49
|
+
* so they survive bot restarts. This method logs session state
|
|
50
|
+
* before disconnecting for monitoring purposes.
|
|
51
|
+
*
|
|
52
|
+
* Errors are logged but don't prevent other connectors from disconnecting.
|
|
53
|
+
*/
|
|
54
|
+
stop(): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Get a connector for a specific agent
|
|
57
|
+
*
|
|
58
|
+
* @param agentName - Name of the agent
|
|
59
|
+
* @returns The SlackConnector instance, or undefined if not found
|
|
60
|
+
*/
|
|
61
|
+
getConnector(agentName: string): SlackConnector | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get all connector names
|
|
64
|
+
*
|
|
65
|
+
* @returns Array of agent names that have Slack connectors
|
|
66
|
+
*/
|
|
67
|
+
getConnectorNames(): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Get the number of active connectors
|
|
70
|
+
*
|
|
71
|
+
* @returns Number of connectors that are currently connected
|
|
72
|
+
*/
|
|
73
|
+
getConnectedCount(): number;
|
|
74
|
+
/**
|
|
75
|
+
* Check if the manager has been initialized
|
|
76
|
+
*/
|
|
77
|
+
isInitialized(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a specific agent has a Slack connector
|
|
80
|
+
*
|
|
81
|
+
* @param agentName - Name of the agent
|
|
82
|
+
* @returns true if the agent has a Slack connector
|
|
83
|
+
*/
|
|
84
|
+
hasConnector(agentName: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Check if a specific agent has a connector (alias for hasConnector)
|
|
87
|
+
*
|
|
88
|
+
* @param agentName - Name of the agent
|
|
89
|
+
* @returns true if the agent has a connector
|
|
90
|
+
*/
|
|
91
|
+
hasAgent(agentName: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Get the state of a connector for a specific agent
|
|
94
|
+
*
|
|
95
|
+
* @param agentName - Name of the agent
|
|
96
|
+
* @returns The connector state, or undefined if not found
|
|
97
|
+
*/
|
|
98
|
+
getState(agentName: string): ChatManagerConnectorState | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Handle an incoming Slack message
|
|
101
|
+
*
|
|
102
|
+
* This method:
|
|
103
|
+
* 1. Gets or creates a session for the channel
|
|
104
|
+
* 2. Builds job context from the message
|
|
105
|
+
* 3. Executes the job via trigger
|
|
106
|
+
* 4. Sends the response back to Slack
|
|
107
|
+
*
|
|
108
|
+
* @param agentName - Name of the agent handling the message
|
|
109
|
+
* @param event - The Slack message event
|
|
110
|
+
*/
|
|
111
|
+
private handleMessage;
|
|
112
|
+
/**
|
|
113
|
+
* Handle errors from Slack connectors
|
|
114
|
+
*
|
|
115
|
+
* Logs errors without crashing the connector
|
|
116
|
+
*
|
|
117
|
+
* @param agentName - Name of the agent that encountered the error
|
|
118
|
+
* @param error - The error that occurred
|
|
119
|
+
*/
|
|
120
|
+
private handleError;
|
|
121
|
+
/** Slack's maximum message length */
|
|
122
|
+
private static readonly MAX_MESSAGE_LENGTH;
|
|
123
|
+
/**
|
|
124
|
+
* Format an error message for Slack display
|
|
125
|
+
*
|
|
126
|
+
* Creates a user-friendly error message with guidance on how to proceed.
|
|
127
|
+
*
|
|
128
|
+
* @param error - The error that occurred
|
|
129
|
+
* @returns Formatted error message string
|
|
130
|
+
*/
|
|
131
|
+
formatErrorMessage(error: Error): string;
|
|
132
|
+
/**
|
|
133
|
+
* Split a response into chunks that fit Slack's 4000 character limit
|
|
134
|
+
*
|
|
135
|
+
* Uses the shared splitMessage utility from @herdctl/chat.
|
|
136
|
+
*
|
|
137
|
+
* @param text - The text to split
|
|
138
|
+
* @returns Array of text chunks, each under 4000 characters
|
|
139
|
+
*/
|
|
140
|
+
splitResponse(text: string): string[];
|
|
141
|
+
/**
|
|
142
|
+
* Send a response to Slack, splitting if necessary
|
|
143
|
+
*
|
|
144
|
+
* @param reply - The reply function from the message event
|
|
145
|
+
* @param content - The content to send
|
|
146
|
+
*/
|
|
147
|
+
sendResponse(reply: (content: string) => Promise<void>, content: string): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Resolve the agent's working directory to an absolute path string
|
|
150
|
+
*
|
|
151
|
+
* @param agent - The resolved agent configuration
|
|
152
|
+
* @returns Absolute path to working directory, or undefined if not configured
|
|
153
|
+
*/
|
|
154
|
+
private resolveWorkingDirectory;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EAK1B,MAAM,eAAe,CAAC;AAavB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAsBtD;;;;;;;;GAQG;AACH,qBAAa,YAAa,YAAW,YAAY;IAInC,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,WAAW,CAAkB;gBAEjB,GAAG,EAAE,mBAAmB;IAE5C;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgGjC;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC5B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3B;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3D;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAM3B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAoBlE;;;;;;;;;;;OAWG;YACW,aAAa;IAgM3B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAmBnB,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAElD;;;;;;;OAOG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAIxC;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAKrC;;;;;OAKG;IACG,YAAY,CAChB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;CAWhC"}
|