@elizaos/plugin-matrix 2.0.0-beta.1 → 2.0.3-beta.3
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/LICENSE +21 -0
- package/README.md +41 -114
- package/package.json +24 -6
- package/registry-entry.json +95 -0
- package/dist/accounts.d.ts +0 -14
- package/dist/accounts.d.ts.map +0 -1
- package/dist/connector-account-provider.d.ts +0 -18
- package/dist/connector-account-provider.d.ts.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -981
- package/dist/index.js.map +0 -15
- package/dist/providers/index.d.ts +0 -1
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/service.d.ts +0 -70
- package/dist/service.d.ts.map +0 -1
- package/dist/types.d.ts +0 -218
- package/dist/types.d.ts.map +0 -1
- package/dist/workflow-credential-provider.d.ts +0 -21
- package/dist/workflow-credential-provider.d.ts.map +0 -1
package/dist/index.js.map
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts", "../src/accounts.ts", "../src/service.ts", "../src/types.ts", "../src/connector-account-provider.ts", "../src/workflow-credential-provider.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/**\n * Matrix messaging integration plugin for ElizaOS.\n *\n * This plugin provides Matrix protocol integration using matrix-js-sdk.\n */\n\nimport type { IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { getConnectorAccountManager, logger } from \"@elizaos/core\";\n\nexport * from \"./accounts.js\";\n// Service\nexport { MatrixService } from \"./service.js\";\n// Types\nexport * from \"./types.js\";\n\n// Import service for plugin\nimport { createMatrixConnectorAccountProvider } from \"./connector-account-provider.js\";\nimport { MatrixService } from \"./service.js\";\nimport { MatrixWorkflowCredentialProvider } from \"./workflow-credential-provider.js\";\n\n/**\n * Matrix plugin definition.\n */\nconst matrixPlugin: Plugin = {\n name: \"matrix\",\n description: \"Matrix messaging integration plugin for ElizaOS with E2EE support\",\n\n services: [MatrixService, MatrixWorkflowCredentialProvider],\n\n actions: [],\n\n providers: [],\n\n tests: [],\n\n // Self-declared auto-enable: activate when the \"matrix\" connector is\n // configured under config.connectors. The hardcoded CONNECTOR_PLUGINS map\n // in plugin-auto-enable-engine.ts still serves as a fallback.\n autoEnable: {\n connectorKeys: [\"matrix\"],\n },\n\n init: async (_config: Record<string, string>, runtime: IAgentRuntime): Promise<void> => {\n // Register the Matrix provider with the ConnectorAccountManager.\n try {\n const manager = getConnectorAccountManager(runtime);\n manager.registerProvider(createMatrixConnectorAccountProvider(runtime));\n } catch (err) {\n logger.warn(\n {\n src: \"plugin:matrix\",\n err: err instanceof Error ? err.message : String(err),\n },\n \"Failed to register Matrix provider with ConnectorAccountManager\"\n );\n }\n\n const homeserver = runtime.getSetting(\"MATRIX_HOMESERVER\");\n const userId = runtime.getSetting(\"MATRIX_USER_ID\");\n const accessToken = runtime.getSetting(\"MATRIX_ACCESS_TOKEN\");\n\n logger.info(\"=\".repeat(60));\n logger.info(\"Matrix Plugin Configuration\");\n logger.info(\"=\".repeat(60));\n logger.info(` Homeserver: ${homeserver ? `✓ ${homeserver}` : \"✗ Missing (required)\"}`);\n logger.info(` User ID: ${userId ? `✓ ${userId}` : \"✗ Missing (required)\"}`);\n logger.info(` Access Token: ${accessToken ? \"✓ Set\" : \"✗ Missing (required)\"}`);\n logger.info(\"=\".repeat(60));\n\n // Validate required settings\n const missing: string[] = [];\n if (!homeserver) missing.push(\"MATRIX_HOMESERVER\");\n if (!userId) missing.push(\"MATRIX_USER_ID\");\n if (!accessToken) missing.push(\"MATRIX_ACCESS_TOKEN\");\n\n if (missing.length > 0) {\n logger.warn(`Matrix plugin: Missing required configuration: ${missing.join(\", \")}`);\n }\n\n // Additional optional settings\n const deviceId = runtime.getSetting(\"MATRIX_DEVICE_ID\");\n const rooms = runtime.getSetting(\"MATRIX_ROOMS\");\n const autoJoin = runtime.getSetting(\"MATRIX_AUTO_JOIN\");\n const encryption = runtime.getSetting(\"MATRIX_ENCRYPTION\");\n const requireMention = runtime.getSetting(\"MATRIX_REQUIRE_MENTION\");\n\n if (deviceId) {\n logger.info(` Device ID: ${deviceId}`);\n }\n\n if (rooms) {\n logger.info(` Auto-join Rooms: ${rooms}`);\n }\n\n if (autoJoin === \"true\") {\n logger.info(\" Auto-join Invites: ✓ Enabled\");\n }\n\n if (encryption === \"true\") {\n logger.info(\" End-to-End Encryption: ✓ Enabled\");\n }\n\n if (requireMention === \"true\") {\n logger.info(\" Require Mention: ✓ Enabled (will only respond to mentions in rooms)\");\n }\n },\n};\n\nexport default matrixPlugin;\n",
|
|
6
|
-
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport type { MatrixSettings } from \"./types.js\";\n\nexport const DEFAULT_MATRIX_ACCOUNT_ID = \"default\";\n\nexport type MatrixAccountConfig = Partial<Omit<MatrixSettings, \"rooms\" | \"accountId\">> & {\n accountId?: string;\n id?: string;\n rooms?: string[] | string;\n};\n\ntype MatrixMultiAccountConfig = MatrixAccountConfig & {\n accounts?: Record<string, MatrixAccountConfig>;\n};\n\nfunction stringSetting(runtime: IAgentRuntime, key: string): string | undefined {\n const value = runtime.getSetting(key);\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction characterConfig(runtime: IAgentRuntime): MatrixMultiAccountConfig {\n const settings = runtime.character?.settings as Record<string, unknown> | undefined;\n const raw = settings?.matrix;\n return raw && typeof raw === \"object\" ? (raw as MatrixMultiAccountConfig) : {};\n}\n\nfunction parseAccountsJson(runtime: IAgentRuntime): Record<string, MatrixAccountConfig> {\n const raw = stringSetting(runtime, \"MATRIX_ACCOUNTS\");\n if (!raw) return {};\n\n try {\n const parsed = JSON.parse(raw) as unknown;\n if (Array.isArray(parsed)) {\n return Object.fromEntries(\n parsed\n .filter((item): item is MatrixAccountConfig => Boolean(item) && typeof item === \"object\")\n .map((item) => [normalizeMatrixAccountId(item.accountId ?? item.id), item])\n );\n }\n return parsed && typeof parsed === \"object\"\n ? (parsed as Record<string, MatrixAccountConfig>)\n : {};\n } catch {\n return {};\n }\n}\n\nfunction allAccountConfigs(runtime: IAgentRuntime): Record<string, MatrixAccountConfig> {\n return {\n ...(characterConfig(runtime).accounts ?? {}),\n ...parseAccountsJson(runtime),\n };\n}\n\nfunction accountConfig(runtime: IAgentRuntime, accountId: string): MatrixAccountConfig {\n const accounts = allAccountConfigs(runtime);\n return accounts[accountId] ?? accounts[normalizeMatrixAccountId(accountId)] ?? {};\n}\n\nfunction boolValue(value: unknown, fallback = false): boolean {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") return value.trim().toLowerCase() === \"true\";\n return fallback;\n}\n\nfunction roomsValue(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.map((room) => String(room).trim()).filter(Boolean);\n }\n if (typeof value === \"string\") {\n return value\n .split(\",\")\n .map((room) => room.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport function normalizeMatrixAccountId(accountId?: unknown): string {\n if (typeof accountId !== \"string\") return DEFAULT_MATRIX_ACCOUNT_ID;\n const trimmed = accountId.trim();\n return trimmed || DEFAULT_MATRIX_ACCOUNT_ID;\n}\n\nexport function listMatrixAccountIds(runtime: IAgentRuntime): string[] {\n const ids = new Set<string>();\n const config = characterConfig(runtime);\n\n if (\n stringSetting(runtime, \"MATRIX_ACCESS_TOKEN\") ||\n (config.homeserver && config.userId && config.accessToken)\n ) {\n ids.add(DEFAULT_MATRIX_ACCOUNT_ID);\n }\n\n for (const id of Object.keys(allAccountConfigs(runtime))) {\n ids.add(normalizeMatrixAccountId(id));\n }\n\n return Array.from(ids.size ? ids : new Set([DEFAULT_MATRIX_ACCOUNT_ID])).sort((a, b) =>\n a.localeCompare(b)\n );\n}\n\nexport function resolveDefaultMatrixAccountId(runtime: IAgentRuntime): string {\n const requested =\n stringSetting(runtime, \"MATRIX_DEFAULT_ACCOUNT_ID\") ??\n stringSetting(runtime, \"MATRIX_ACCOUNT_ID\");\n if (requested) return normalizeMatrixAccountId(requested);\n\n const ids = listMatrixAccountIds(runtime);\n return ids.includes(DEFAULT_MATRIX_ACCOUNT_ID) ? DEFAULT_MATRIX_ACCOUNT_ID : ids[0];\n}\n\nexport function readMatrixAccountId(...sources: unknown[]): string | undefined {\n for (const source of sources) {\n if (!source || typeof source !== \"object\") continue;\n const record = source as Record<string, unknown>;\n const parameters =\n record.parameters && typeof record.parameters === \"object\"\n ? (record.parameters as Record<string, unknown>)\n : {};\n const data =\n record.data && typeof record.data === \"object\"\n ? (record.data as Record<string, unknown>)\n : {};\n const metadata =\n record.metadata && typeof record.metadata === \"object\"\n ? (record.metadata as Record<string, unknown>)\n : {};\n const matrix =\n data.matrix && typeof data.matrix === \"object\"\n ? (data.matrix as Record<string, unknown>)\n : {};\n const value =\n record.accountId ??\n parameters.accountId ??\n data.accountId ??\n matrix.accountId ??\n metadata.accountId;\n if (typeof value === \"string\" && value.trim()) return normalizeMatrixAccountId(value);\n }\n return undefined;\n}\n\nexport function resolveMatrixAccountSettings(\n runtime: IAgentRuntime,\n requestedAccountId?: string | null\n): MatrixSettings {\n const accountId = normalizeMatrixAccountId(\n requestedAccountId ?? resolveDefaultMatrixAccountId(runtime)\n );\n const base = characterConfig(runtime);\n const account = accountConfig(runtime, accountId);\n const allowEnv = accountId === DEFAULT_MATRIX_ACCOUNT_ID;\n\n return {\n accountId,\n homeserver:\n account.homeserver ??\n base.homeserver ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_HOMESERVER\") : undefined) ??\n \"\",\n userId:\n account.userId ??\n base.userId ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_USER_ID\") : undefined) ??\n \"\",\n accessToken:\n account.accessToken ??\n base.accessToken ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_ACCESS_TOKEN\") : undefined) ??\n \"\",\n deviceId:\n account.deviceId ??\n base.deviceId ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_DEVICE_ID\") : undefined),\n rooms: roomsValue(\n account.rooms ?? base.rooms ?? (allowEnv ? stringSetting(runtime, \"MATRIX_ROOMS\") : undefined)\n ),\n autoJoin: boolValue(\n account.autoJoin ??\n base.autoJoin ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_AUTO_JOIN\") : undefined)\n ),\n encryption: boolValue(\n account.encryption ??\n base.encryption ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_ENCRYPTION\") : undefined)\n ),\n requireMention: boolValue(\n account.requireMention ??\n base.requireMention ??\n (allowEnv ? stringSetting(runtime, \"MATRIX_REQUIRE_MENTION\") : undefined)\n ),\n enabled: boolValue(account.enabled ?? base.enabled, true),\n };\n}\n",
|
|
7
|
-
"/**\n * Matrix service implementation for ElizaOS.\n *\n * This service provides Matrix messaging capabilities using matrix-js-sdk.\n */\n\nimport {\n type Content,\n type EventPayload,\n type IAgentRuntime,\n logger,\n type Memory,\n type MessageConnectorChatContext,\n type MessageConnectorTarget,\n Service,\n type TargetInfo,\n type UUID,\n} from \"@elizaos/core\";\nimport * as sdk from \"matrix-js-sdk\";\nimport type { RoomMessageEventContent } from \"matrix-js-sdk/lib/@types/events\";\nimport {\n DEFAULT_MATRIX_ACCOUNT_ID,\n listMatrixAccountIds,\n normalizeMatrixAccountId,\n readMatrixAccountId,\n resolveDefaultMatrixAccountId,\n resolveMatrixAccountSettings,\n} from \"./accounts.js\";\nimport {\n getMatrixLocalpart,\n type IMatrixService,\n isValidMatrixRoomAlias,\n isValidMatrixRoomId,\n MATRIX_SERVICE_NAME,\n MatrixConfigurationError,\n MatrixEventTypes,\n type MatrixMessage,\n type MatrixMessageSendOptions,\n MatrixNotConnectedError,\n type MatrixRoom,\n type MatrixSendResult,\n type MatrixSettings,\n type MatrixUserInfo,\n} from \"./types.js\";\n\nfunction normalizeSearchQuery(query: string): string {\n return query.trim().toLowerCase();\n}\n\nfunction matrixRoomSearchText(room: MatrixRoom): string {\n return [room.roomId, room.name, room.topic, room.canonicalAlias]\n .filter((value): value is string => typeof value === \"string\" && value.length > 0)\n .join(\" \")\n .toLowerCase();\n}\n\nfunction scoreMatrixRoom(room: MatrixRoom, query: string): number {\n const normalized = normalizeSearchQuery(query);\n if (!normalized) {\n return 0.4;\n }\n\n const candidates = [room.roomId, room.canonicalAlias, room.name].filter(\n (value): value is string => typeof value === \"string\" && value.length > 0\n );\n if (candidates.some((candidate) => candidate.toLowerCase() === normalized)) {\n return 1;\n }\n if (candidates.some((candidate) => candidate.toLowerCase().includes(normalized))) {\n return 0.85;\n }\n return matrixRoomSearchText(room).includes(normalized) ? 0.65 : 0;\n}\n\nfunction matrixRoomToConnectorTarget(\n room: MatrixRoom,\n score = 0.5,\n accountId = DEFAULT_MATRIX_ACCOUNT_ID\n): MessageConnectorTarget {\n const label = room.name || room.canonicalAlias || room.roomId;\n return {\n target: {\n source: MATRIX_SERVICE_NAME,\n accountId,\n channelId: room.roomId,\n },\n label,\n kind: room.isDirect ? \"user\" : \"room\",\n description:\n room.topic || `${room.memberCount} Matrix member${room.memberCount === 1 ? \"\" : \"s\"}`,\n score,\n contexts: [\"social\", \"connectors\"],\n metadata: {\n accountId,\n roomId: room.roomId,\n canonicalAlias: room.canonicalAlias,\n isEncrypted: room.isEncrypted,\n isDirect: room.isDirect,\n memberCount: room.memberCount,\n },\n };\n}\n\ntype ConnectorHookContext = {\n runtime: IAgentRuntime;\n roomId?: UUID;\n target?: TargetInfo;\n};\n\ntype ConnectorReadParams = {\n target?: TargetInfo;\n limit?: number;\n query?: string;\n};\n\ntype ConnectorMutationParams = {\n target?: TargetInfo;\n messageId?: string;\n eventId?: string;\n emoji?: string;\n};\n\ntype ConnectorRoomMembershipParams = {\n target?: TargetInfo;\n roomId?: string;\n roomIdOrAlias?: string;\n alias?: string;\n invite?: string;\n channelId?: string;\n};\n\ntype AdditiveMessageConnectorHooks = {\n fetchMessages?: (\n context: ConnectorHookContext,\n params?: ConnectorReadParams\n ) => Promise<Memory[]>;\n searchMessages?: (\n context: ConnectorHookContext,\n params: ConnectorReadParams & { query: string }\n ) => Promise<Memory[]>;\n reactHandler?: (runtime: IAgentRuntime, params: ConnectorMutationParams) => Promise<void>;\n joinHandler?: (runtime: IAgentRuntime, params: ConnectorRoomMembershipParams) => Promise<void>;\n leaveHandler?: (runtime: IAgentRuntime, params: ConnectorRoomMembershipParams) => Promise<void>;\n};\n\ntype ExtendedMessageConnectorRegistration = Parameters<\n IAgentRuntime[\"registerMessageConnector\"]\n>[0] &\n AdditiveMessageConnectorHooks;\n\ntype MatrixAccountState = {\n accountId: string;\n settings: MatrixSettings;\n client: sdk.MatrixClient;\n connected: boolean;\n syncing: boolean;\n};\n\nfunction normalizeConnectorLimit(limit: number | undefined, fallback = 50): number {\n if (!Number.isFinite(limit) || !limit || limit <= 0) {\n return fallback;\n }\n return Math.min(Math.floor(limit), 200);\n}\n\nasync function readStoredMessageMemories(\n runtime: IAgentRuntime,\n roomId: UUID,\n limit: number\n): Promise<Memory[]> {\n return runtime.getMemories({\n tableName: \"messages\",\n roomId,\n limit,\n orderBy: \"createdAt\",\n orderDirection: \"desc\",\n });\n}\n\nasync function readStoredMessagesForTargets(\n runtime: IAgentRuntime,\n targets: MessageConnectorTarget[],\n limit: number\n): Promise<Memory[]> {\n const roomIds = Array.from(\n new Set(targets.map((target) => target.target.roomId).filter((id): id is UUID => Boolean(id)))\n );\n const chunks = await Promise.all(\n roomIds.map((roomId) => readStoredMessageMemories(runtime, roomId, limit))\n );\n return chunks\n .flat()\n .sort((left, right) => (right.createdAt ?? 0) - (left.createdAt ?? 0))\n .slice(0, limit);\n}\n\nfunction filterMemoriesByQuery(memories: Memory[], query: string, limit: number): Memory[] {\n const normalized = query.trim().toLowerCase();\n if (!normalized) {\n return memories.slice(0, limit);\n }\n return memories\n .filter((memory) => {\n const text = typeof memory.content?.text === \"string\" ? memory.content.text : \"\";\n return text.toLowerCase().includes(normalized);\n })\n .slice(0, limit);\n}\n\nfunction extractMatrixSendOptions(content: Content, target: TargetInfo): MatrixMessageSendOptions {\n const data = content.data as Record<string, unknown> | undefined;\n const matrixData = (data?.matrix && typeof data.matrix === \"object\" ? data.matrix : data) as\n | Record<string, unknown>\n | undefined;\n\n return {\n threadId:\n target.threadId ||\n (typeof matrixData?.threadId === \"string\" ? matrixData.threadId : undefined),\n replyTo: typeof matrixData?.replyTo === \"string\" ? matrixData.replyTo : undefined,\n formatted: matrixData?.formatted === true,\n };\n}\n\n/**\n * Matrix messaging service for ElizaOS agents.\n */\nexport class MatrixService extends Service implements IMatrixService {\n static serviceType: string = MATRIX_SERVICE_NAME;\n\n capabilityDescription = \"Matrix messaging service for chat communication\";\n\n protected declare runtime: IAgentRuntime;\n private states = new Map<string, MatrixAccountState>();\n private defaultAccountId = DEFAULT_MATRIX_ACCOUNT_ID;\n\n /**\n * Start the Matrix service.\n */\n static async start(runtime: IAgentRuntime): Promise<MatrixService> {\n const service = new MatrixService();\n await service.initialize(runtime);\n return service;\n }\n\n /**\n * Stop the Matrix service.\n */\n static override async stopRuntime(runtime: IAgentRuntime): Promise<void> {\n const service = runtime.getService(MATRIX_SERVICE_NAME) as MatrixService | undefined;\n if (service) {\n await service.stop();\n }\n }\n\n static registerSendHandlers(\n runtime: IAgentRuntime,\n service: MatrixService,\n accountId = service.getAccountId(runtime)\n ): void {\n accountId = normalizeMatrixAccountId(accountId);\n const sendHandler = async (\n handlerRuntime: IAgentRuntime,\n target: TargetInfo,\n content: Content\n ): Promise<Memory | undefined> => {\n await service.handleSendMessage(handlerRuntime, target, content);\n return undefined;\n };\n\n if (typeof runtime.registerMessageConnector === \"function\") {\n const registration = {\n source: MATRIX_SERVICE_NAME,\n accountId,\n label: \"Matrix\",\n capabilities: [\n \"send_message\",\n \"send_thread_reply\",\n \"send_formatted_message\",\n \"react_to_message\",\n \"list_rooms\",\n \"join_room\",\n ],\n supportedTargetKinds: [\"room\", \"channel\", \"thread\", \"user\"],\n contexts: [\"social\", \"connectors\"],\n description:\n \"Send messages to joined Matrix rooms, aliases, encrypted rooms, and known direct-message rooms.\",\n metadata: {\n accountId,\n service: MATRIX_SERVICE_NAME,\n },\n sendHandler,\n resolveTargets: async (query) => {\n const rooms = await service.getJoinedRooms(accountId);\n return rooms\n .map((room) => ({ room, score: scoreMatrixRoom(room, query) }))\n .filter(({ score }) => score > 0)\n .sort((left, right) => right.score - left.score)\n .slice(0, 10)\n .map(({ room, score }) => matrixRoomToConnectorTarget(room, score, accountId));\n },\n listRecentTargets: async () =>\n (await service.getJoinedRooms(accountId))\n .slice(0, 10)\n .map((room) => matrixRoomToConnectorTarget(room, 0.5, accountId)),\n listRooms: async () =>\n (await service.getJoinedRooms(accountId)).map((room) =>\n matrixRoomToConnectorTarget(room, 0.5, accountId)\n ),\n fetchMessages: async (context, params) => {\n const limit = normalizeConnectorLimit(params?.limit);\n const target = params?.target ?? context.target;\n if (target?.roomId) {\n return readStoredMessageMemories(context.runtime, target.roomId, limit);\n }\n const targets = (await service.getJoinedRooms(accountId))\n .slice(0, 10)\n .map((room) => matrixRoomToConnectorTarget(room, 0.5, accountId));\n return readStoredMessagesForTargets(context.runtime, targets, limit);\n },\n searchMessages: async (context, params) => {\n const limit = normalizeConnectorLimit(params?.limit);\n const target = params?.target ?? context.target;\n const messages = target?.roomId\n ? await readStoredMessageMemories(context.runtime, target.roomId, Math.max(limit, 100))\n : await readStoredMessagesForTargets(\n context.runtime,\n (await service.getJoinedRooms(accountId))\n .slice(0, 10)\n .map((room) => matrixRoomToConnectorTarget(room, 0.5, accountId)),\n Math.max(limit, 100)\n );\n return filterMemoriesByQuery(messages, params.query, limit);\n },\n reactHandler: async (handlerRuntime, params) => {\n const target = params.target ?? ({ source: MATRIX_SERVICE_NAME } as TargetInfo);\n const room = target.roomId ? await handlerRuntime.getRoom(target.roomId) : null;\n const roomId = String(target.channelId ?? room?.channelId ?? \"\").trim();\n const mutationParams = params as ConnectorMutationParams;\n const eventId = String(mutationParams.eventId ?? params.messageId ?? \"\").trim();\n const emoji = String(params.emoji ?? \"\").trim();\n if (!roomId || !eventId || !emoji) {\n throw new Error(\"Matrix reactHandler requires room, event id, and emoji\");\n }\n const result = await service.sendReaction(roomId, eventId, emoji, accountId);\n if (!result.success) {\n throw new Error(result.error || \"Matrix reaction failed\");\n }\n },\n joinHandler: async (_handlerRuntime, params) => {\n const membershipParams = params as ConnectorRoomMembershipParams;\n const roomIdOrAlias = String(\n membershipParams.roomIdOrAlias ??\n params.alias ??\n params.invite ??\n params.channelId ??\n params.roomId ??\n \"\"\n ).trim();\n if (!roomIdOrAlias) {\n throw new Error(\"Matrix joinHandler requires a room ID or alias\");\n }\n await service.joinRoom(roomIdOrAlias, accountId);\n },\n leaveHandler: async (handlerRuntime, params) => {\n const target = params.target ?? ({ source: MATRIX_SERVICE_NAME } as TargetInfo);\n const room = target.roomId ? await handlerRuntime.getRoom(target.roomId) : null;\n const roomId = String(\n params?.roomId ?? params?.channelId ?? target.channelId ?? room?.channelId ?? \"\"\n );\n if (!roomId) {\n throw new Error(\"Matrix leaveHandler requires a room ID\");\n }\n await service.leaveRoom(roomId, accountId);\n },\n getChatContext: async (target, context) => {\n const room = target.roomId ? await context.runtime.getRoom(target.roomId) : null;\n const channelId = String(target.channelId ?? room?.channelId ?? \"\").trim();\n const joinedRoom = (await service.getJoinedRooms(accountId)).find(\n (candidate) => candidate.roomId === channelId || candidate.canonicalAlias === channelId\n );\n if (!joinedRoom) {\n return null;\n }\n\n return {\n target: {\n source: MATRIX_SERVICE_NAME,\n accountId,\n channelId: joinedRoom.roomId,\n roomId: target.roomId,\n },\n label: joinedRoom.name || joinedRoom.canonicalAlias || joinedRoom.roomId,\n summary: joinedRoom.topic,\n metadata: {\n accountId,\n roomId: joinedRoom.roomId,\n canonicalAlias: joinedRoom.canonicalAlias,\n isEncrypted: joinedRoom.isEncrypted,\n isDirect: joinedRoom.isDirect,\n memberCount: joinedRoom.memberCount,\n },\n } satisfies MessageConnectorChatContext;\n },\n getUserContext: async (entityId, context) => {\n if (typeof context.runtime.getEntityById !== \"function\") {\n return null;\n }\n const entity = await context.runtime.getEntityById(String(entityId) as UUID);\n if (!entity) {\n return null;\n }\n return {\n entityId,\n label: entity.names?.[0],\n aliases: entity.names,\n handles: {},\n metadata: entity.metadata,\n };\n },\n } as ExtendedMessageConnectorRegistration;\n runtime.registerMessageConnector(registration);\n return;\n }\n\n runtime.registerSendHandler(MATRIX_SERVICE_NAME, sendHandler);\n }\n\n /**\n * Initialize the Matrix service.\n */\n private async initialize(runtime: IAgentRuntime): Promise<void> {\n this.runtime = runtime;\n this.defaultAccountId = normalizeMatrixAccountId(resolveDefaultMatrixAccountId(runtime));\n\n const accountIds = listMatrixAccountIds(runtime);\n for (const accountId of accountIds) {\n const settings = this.loadSettings(accountId);\n if (settings.enabled === false) {\n continue;\n }\n\n this.validateSettings(settings);\n\n const state: MatrixAccountState = {\n accountId: normalizeMatrixAccountId(settings.accountId),\n settings,\n client: sdk.createClient({\n baseUrl: settings.homeserver,\n userId: settings.userId,\n accessToken: settings.accessToken,\n deviceId: settings.deviceId,\n }),\n connected: false,\n syncing: false,\n };\n\n this.states.set(state.accountId, state);\n this.setupEventHandlers(state);\n await this.connect(state);\n MatrixService.registerSendHandlers(runtime, this, state.accountId);\n\n logger.info(`Matrix service initialized for ${settings.userId} on ${settings.homeserver}`);\n }\n\n if (this.states.size === 0) {\n const settings = this.loadSettings(this.defaultAccountId);\n this.validateSettings(settings);\n }\n }\n\n /**\n * Load settings from runtime.\n */\n private loadSettings(accountId?: string): MatrixSettings {\n return resolveMatrixAccountSettings(this.runtime, accountId);\n }\n\n /**\n * Validate the settings.\n */\n private validateSettings(settings: MatrixSettings): void {\n if (!settings.homeserver) {\n throw new MatrixConfigurationError(\"MATRIX_HOMESERVER is required\", \"MATRIX_HOMESERVER\");\n }\n\n if (!settings.userId) {\n throw new MatrixConfigurationError(\"MATRIX_USER_ID is required\", \"MATRIX_USER_ID\");\n }\n\n if (!settings.accessToken) {\n throw new MatrixConfigurationError(\"MATRIX_ACCESS_TOKEN is required\", \"MATRIX_ACCESS_TOKEN\");\n }\n }\n\n /**\n * Set up event handlers for the Matrix client.\n */\n private setupEventHandlers(state: MatrixAccountState): void {\n // Sync events\n state.client.on(sdk.ClientEvent.Sync, (syncState) => {\n if (syncState === \"PREPARED\") {\n state.syncing = true;\n logger.info(\"Matrix sync complete\");\n this.runtime.emitEvent(MatrixEventTypes.SYNC_COMPLETE, {\n runtime: this.runtime,\n accountId: state.accountId,\n } as EventPayload);\n }\n });\n\n // Room timeline events (messages)\n state.client.on(sdk.RoomEvent.Timeline, (event, room, toStartOfTimeline) => {\n if (toStartOfTimeline) return;\n if (event.getType() !== \"m.room.message\") return;\n if (event.getSender() === state.settings.userId) return;\n\n this.handleRoomMessage(state, event, room);\n });\n\n // Room membership events\n state.client.on(sdk.RoomMemberEvent.Membership, (event, member) => {\n if (member.userId !== state.settings.userId) return;\n\n if (member.membership === \"invite\" && state.settings.autoJoin) {\n const roomId = event.getRoomId();\n if (roomId) {\n logger.info(`Auto-joining room ${roomId}`);\n state.client.joinRoom(roomId).catch((err) => {\n logger.error(`Failed to auto-join room: ${err.message}`);\n });\n }\n }\n });\n }\n\n /**\n * Handle an incoming room message.\n */\n private handleRoomMessage(\n state: MatrixAccountState,\n event: sdk.MatrixEvent,\n room: sdk.Room | undefined\n ): void {\n const content = event.getContent();\n const msgType = content.msgtype;\n\n // Only handle text messages for now\n if (msgType !== \"m.text\") return;\n\n const roomId = event.getRoomId();\n if (!roomId || !room) return;\n\n // Check mention requirement\n if (state.settings.requireMention) {\n const body = content.body || \"\";\n const localpart = getMatrixLocalpart(state.settings.userId);\n const mentionPattern = new RegExp(`@?${localpart}`, \"i\");\n if (!mentionPattern.test(body)) {\n return;\n }\n }\n\n const sender = event.getSender();\n const senderMember = room.getMember(sender || \"\");\n\n const senderInfo: MatrixUserInfo = {\n userId: sender || \"\",\n displayName: senderMember?.name,\n avatarUrl: senderMember?.getMxcAvatarUrl() || undefined,\n };\n\n // Check for reply/thread\n const relatesTo = content[\"m.relates_to\"];\n const isEdit = relatesTo?.rel_type === \"m.replace\";\n const threadId = relatesTo?.rel_type === \"m.thread\" ? relatesTo.event_id : undefined;\n const replyTo = relatesTo?.[\"m.in_reply_to\"]?.event_id;\n\n const message: MatrixMessage = {\n eventId: event.getId() || \"\",\n roomId,\n sender: sender || \"\",\n senderInfo,\n content: content.body || \"\",\n msgType,\n formattedBody: content.formatted_body,\n timestamp: event.getTs(),\n threadId,\n replyTo,\n isEdit,\n replacesEventId: isEdit ? relatesTo?.event_id : undefined,\n };\n\n const matrixRoom: MatrixRoom = {\n roomId,\n name: room.name,\n topic: room.currentState.getStateEvents(\"m.room.topic\", \"\")?.getContent()?.topic,\n canonicalAlias: room.getCanonicalAlias() || undefined,\n isEncrypted: room.hasEncryptionStateEvent(),\n isDirect:\n state.client\n .getAccountData(sdk.EventType.Direct)\n ?.getContent()\n ?.[sender || \"\"]?.includes(roomId) || false,\n memberCount: room.getJoinedMemberCount(),\n };\n\n logger.debug(\n `Matrix message from ${senderInfo.displayName || sender} in ${room.name || roomId}: ${message.content.slice(0, 50)}...`\n );\n\n this.runtime.emitEvent(MatrixEventTypes.MESSAGE_RECEIVED, {\n message,\n room: matrixRoom,\n runtime: this.runtime,\n accountId: state.accountId,\n } as EventPayload);\n }\n\n /**\n * Connect to Matrix.\n */\n private async connect(state: MatrixAccountState): Promise<void> {\n await state.client.startClient({ initialSyncLimit: 10 });\n state.connected = true;\n\n // Wait for initial sync\n await new Promise<void>((resolve) => {\n const listener = (syncState: string) => {\n if (syncState === \"PREPARED\") {\n state.client.removeListener(sdk.ClientEvent.Sync, listener);\n resolve();\n }\n };\n state.client.on(sdk.ClientEvent.Sync, listener);\n });\n\n // Join configured rooms\n for (const room of state.settings.rooms) {\n try {\n await this.joinRoom(room, state.accountId);\n } catch (err) {\n logger.warn(`Failed to join room ${room}: ${err}`);\n }\n }\n }\n\n /**\n * Shutdown the service.\n */\n async stop(): Promise<void> {\n for (const state of this.states.values()) {\n state.client.stopClient();\n state.connected = false;\n state.syncing = false;\n }\n logger.info(\"Matrix service stopped\");\n }\n\n // ============================================================================\n // Public Interface\n // ============================================================================\n\n isConnected(): boolean {\n const legacy = this as { connected?: boolean; syncing?: boolean };\n const states = this.states ?? new Map<string, MatrixAccountState>();\n if (states.size === 0 && typeof legacy.connected === \"boolean\") {\n return legacy.connected && (legacy.syncing ?? true);\n }\n return Array.from(states.values()).some((state) => state.connected && state.syncing);\n }\n\n getAccountId(runtime?: IAgentRuntime): string {\n const legacy = this as { settings?: MatrixSettings };\n const states = this.states ?? new Map<string, MatrixAccountState>();\n if (states.size === 0 && legacy.settings?.accountId) {\n return normalizeMatrixAccountId(legacy.settings.accountId);\n }\n return normalizeMatrixAccountId(\n this.defaultAccountId !== DEFAULT_MATRIX_ACCOUNT_ID\n ? this.defaultAccountId\n : runtime\n ? resolveDefaultMatrixAccountId(runtime)\n : this.defaultAccountId\n );\n }\n\n getUserId(): string {\n return this.getState().settings.userId;\n }\n\n getHomeserver(): string {\n return this.getState().settings.homeserver;\n }\n\n async getJoinedRooms(accountId?: string): Promise<MatrixRoom[]> {\n const state = this.getState(accountId);\n const rooms = state.client.getRooms();\n return rooms\n .filter((room) => room.getMyMembership() === \"join\")\n .map((room) => ({\n roomId: room.roomId,\n name: room.name,\n topic: room.currentState.getStateEvents(\"m.room.topic\", \"\")?.getContent()?.topic,\n canonicalAlias: room.getCanonicalAlias() || undefined,\n isEncrypted: room.hasEncryptionStateEvent(),\n isDirect: false,\n memberCount: room.getJoinedMemberCount(),\n }));\n }\n\n async sendMessage(text: string, options?: MatrixMessageSendOptions): Promise<MatrixSendResult> {\n const state = this.getState(options?.accountId);\n if (!state.connected || !state.syncing) {\n throw new MatrixNotConnectedError();\n }\n\n const roomId = options?.roomId;\n if (!roomId) {\n return { success: false, error: \"Room ID is required\" };\n }\n\n // Resolve room ID from alias if needed\n let resolvedRoomId = roomId;\n if (isValidMatrixRoomAlias(roomId)) {\n const resolved = await state.client.getRoomIdForAlias(roomId);\n resolvedRoomId = resolved.room_id;\n }\n\n // Build content\n const content: {\n body: string;\n format?: \"org.matrix.custom.html\";\n formatted_body?: string;\n msgtype: sdk.MsgType.Text;\n \"m.relates_to\"?: {\n event_id?: string;\n rel_type?: sdk.RelationType.Thread;\n \"m.in_reply_to\"?: {\n event_id: string;\n };\n };\n } = {\n msgtype: sdk.MsgType.Text,\n body: text,\n };\n\n if (options?.formatted) {\n content.format = \"org.matrix.custom.html\";\n content.formatted_body = text;\n }\n\n // Handle reply/thread\n if (options?.threadId || options?.replyTo) {\n content[\"m.relates_to\"] = {};\n\n if (options.threadId) {\n content[\"m.relates_to\"].rel_type = sdk.RelationType.Thread;\n content[\"m.relates_to\"].event_id = options.threadId;\n }\n\n if (options.replyTo) {\n content[\"m.relates_to\"][\"m.in_reply_to\"] = {\n event_id: options.replyTo,\n };\n }\n }\n\n const response = await state.client.sendMessage(\n resolvedRoomId,\n content as RoomMessageEventContent\n );\n const eventId = response.event_id;\n\n this.runtime.emitEvent(MatrixEventTypes.MESSAGE_SENT, {\n roomId: resolvedRoomId,\n eventId,\n content: text,\n runtime: this.runtime,\n accountId: state.accountId,\n } as EventPayload);\n\n return {\n success: true,\n eventId,\n roomId: resolvedRoomId,\n };\n }\n\n async sendReaction(\n roomId: string,\n eventId: string,\n emoji: string,\n accountId?: string\n ): Promise<MatrixSendResult> {\n const state = this.getState(accountId);\n if (!state.connected || !state.syncing) {\n throw new MatrixNotConnectedError();\n }\n\n const content = {\n \"m.relates_to\": {\n rel_type: sdk.RelationType.Annotation as const,\n event_id: eventId,\n key: emoji,\n },\n };\n\n const response = await state.client.sendEvent(roomId, sdk.EventType.Reaction, content);\n\n return {\n success: true,\n eventId: response.event_id,\n roomId,\n };\n }\n\n async joinRoom(roomIdOrAlias: string, accountId?: string): Promise<string> {\n const state = this.getState(accountId);\n if (!state.connected || !state.syncing) {\n throw new MatrixNotConnectedError();\n }\n\n const response = await state.client.joinRoom(roomIdOrAlias);\n const roomId = response.roomId;\n\n logger.info(`Joined room ${roomId}`);\n this.runtime.emitEvent(MatrixEventTypes.ROOM_JOINED, {\n room: { roomId },\n runtime: this.runtime,\n accountId: state.accountId,\n } as EventPayload);\n\n return roomId;\n }\n\n async leaveRoom(roomId: string, accountId?: string): Promise<void> {\n const state = this.getState(accountId);\n if (!state.connected || !state.syncing) {\n throw new MatrixNotConnectedError();\n }\n\n await state.client.leave(roomId);\n logger.info(`Left room ${roomId}`);\n this.runtime.emitEvent(MatrixEventTypes.ROOM_LEFT, {\n roomId,\n runtime: this.runtime,\n accountId: state.accountId,\n } as EventPayload);\n }\n\n async sendTyping(\n roomId: string,\n typing: boolean,\n timeout: number = 30000,\n accountId?: string\n ): Promise<void> {\n const state = this.getState(accountId);\n if (!state.connected || !state.syncing) {\n return;\n }\n\n await state.client.sendTyping(roomId, typing, timeout);\n }\n\n async sendReadReceipt(roomId: string, eventId: string, accountId?: string): Promise<void> {\n const state = this.getState(accountId);\n if (!state.connected || !state.syncing) {\n return;\n }\n\n await state.client.sendReadReceipt(new sdk.MatrixEvent({ event_id: eventId, room_id: roomId }));\n }\n\n async sendRoomMessage(roomIdOrAlias: string, content: Content): Promise<void> {\n const text = typeof content.text === \"string\" ? content.text.trim() : \"\";\n if (!text) {\n return;\n }\n await this.sendMessage(text, {\n accountId: readMatrixAccountId(content) ?? this.getAccountId(),\n roomId: roomIdOrAlias,\n });\n }\n\n async sendDirectMessage(roomIdOrAlias: string, content: Content): Promise<void> {\n await this.sendRoomMessage(roomIdOrAlias, content);\n }\n\n private async handleSendMessage(\n runtime: IAgentRuntime,\n target: TargetInfo,\n content: Content\n ): Promise<void> {\n const requestedAccountId = normalizeMatrixAccountId(\n target.accountId ?? readMatrixAccountId(content, target) ?? this.getAccountId()\n );\n this.getState(requestedAccountId);\n\n const text = typeof content.text === \"string\" ? content.text.trim() : \"\";\n if (!text) {\n return;\n }\n\n const room = target.roomId ? await runtime.getRoom(target.roomId) : null;\n const roomIdOrAlias = String(\n target.channelId ||\n room?.channelId ||\n (typeof target.roomId === \"string\" &&\n (isValidMatrixRoomId(target.roomId) || isValidMatrixRoomAlias(target.roomId))\n ? target.roomId\n : \"\")\n ).trim();\n\n if (!roomIdOrAlias) {\n throw new Error(\"Matrix target is missing a room ID or alias\");\n }\n\n await this.sendMessage(text, {\n accountId: requestedAccountId,\n roomId: roomIdOrAlias,\n ...extractMatrixSendOptions(content, target),\n });\n }\n\n private getState(accountId = this.defaultAccountId): MatrixAccountState {\n const normalized = normalizeMatrixAccountId(accountId);\n const states = this.states ?? new Map<string, MatrixAccountState>();\n const state = states.get(normalized);\n if (state) {\n return state;\n }\n\n const legacy = this as {\n settings?: MatrixSettings;\n client?: sdk.MatrixClient;\n connected?: boolean;\n syncing?: boolean;\n };\n if (legacy.settings) {\n return {\n accountId: normalizeMatrixAccountId(legacy.settings.accountId ?? normalized),\n settings: legacy.settings,\n client: legacy.client ?? ({} as sdk.MatrixClient),\n connected: legacy.connected ?? true,\n syncing: legacy.syncing ?? true,\n };\n }\n\n throw new Error(`Matrix account '${normalized}' is not available in this service instance`);\n }\n}\n",
|
|
8
|
-
"/**\n * Type definitions for the Matrix plugin.\n */\n\nimport type { IAgentRuntime, Service } from \"@elizaos/core\";\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/** Maximum message length for Matrix */\nexport const MAX_MATRIX_MESSAGE_LENGTH = 4000;\n\n/** Service name constant */\nexport const MATRIX_SERVICE_NAME = \"matrix\";\n\n// ============================================================================\n// Event Types\n// ============================================================================\n\n/** Event types emitted by the Matrix plugin */\nexport enum MatrixEventTypes {\n MESSAGE_RECEIVED = \"MATRIX_MESSAGE_RECEIVED\",\n MESSAGE_SENT = \"MATRIX_MESSAGE_SENT\",\n ROOM_JOINED = \"MATRIX_ROOM_JOINED\",\n ROOM_LEFT = \"MATRIX_ROOM_LEFT\",\n INVITE_RECEIVED = \"MATRIX_INVITE_RECEIVED\",\n REACTION_RECEIVED = \"MATRIX_REACTION_RECEIVED\",\n TYPING_RECEIVED = \"MATRIX_TYPING_RECEIVED\",\n SYNC_COMPLETE = \"MATRIX_SYNC_COMPLETE\",\n CONNECTION_READY = \"MATRIX_CONNECTION_READY\",\n CONNECTION_LOST = \"MATRIX_CONNECTION_LOST\",\n}\n\n// ============================================================================\n// Configuration Types\n// ============================================================================\n\n/** Configuration settings for the Matrix plugin */\nexport interface MatrixSettings {\n /** Connector account identifier for this Matrix bot instance */\n accountId?: string;\n /** Matrix homeserver URL */\n homeserver: string;\n /** Matrix user ID (@user:homeserver) */\n userId: string;\n /** Access token for authentication */\n accessToken: string;\n /** Device ID for this session */\n deviceId?: string;\n /** Rooms to auto-join */\n rooms: string[];\n /** Whether to auto-accept invites */\n autoJoin: boolean;\n /** Enable end-to-end encryption */\n encryption: boolean;\n /** Require mention to respond in rooms */\n requireMention: boolean;\n /** Whether this configuration is enabled */\n enabled: boolean;\n}\n\n// ============================================================================\n// Message Types\n// ============================================================================\n\n/** Information about a Matrix user */\nexport interface MatrixUserInfo {\n /** Matrix user ID (@user:homeserver) */\n userId: string;\n /** Display name */\n displayName?: string;\n /** Avatar URL */\n avatarUrl?: string;\n}\n\n/** Represents a Matrix room */\nexport interface MatrixRoom {\n /** Room ID (!room:homeserver) */\n roomId: string;\n /** Room name */\n name?: string;\n /** Room topic */\n topic?: string;\n /** Room alias (#alias:homeserver) */\n canonicalAlias?: string;\n /** Whether room is encrypted */\n isEncrypted: boolean;\n /** Whether this is a direct message room */\n isDirect: boolean;\n /** Member count */\n memberCount: number;\n}\n\n/** Represents a Matrix message */\nexport interface MatrixMessage {\n /** Event ID */\n eventId: string;\n /** Room ID */\n roomId: string;\n /** Sender user ID */\n sender: string;\n /** Sender info */\n senderInfo: MatrixUserInfo;\n /** Message content */\n content: string;\n /** Message type (m.text, m.image, etc.) */\n msgType: string;\n /** Formatted body (HTML) */\n formattedBody?: string;\n /** Timestamp */\n timestamp: number;\n /** Thread root event ID */\n threadId?: string;\n /** Reply-to event ID */\n replyTo?: string;\n /** Whether this is an edit */\n isEdit: boolean;\n /** Original event ID if this is an edit */\n replacesEventId?: string;\n}\n\n/** Options for sending a message */\nexport interface MatrixMessageSendOptions {\n /** Connector account identifier */\n accountId?: string;\n /** Room ID or alias to send to */\n roomId?: string;\n /** Event ID to reply to */\n replyTo?: string;\n /** Thread root event ID */\n threadId?: string;\n /** Format as HTML */\n formatted?: boolean;\n /** Media URL to attach */\n mediaUrl?: string;\n}\n\n/** Result from sending a message */\nexport interface MatrixSendResult {\n /** Whether the send succeeded */\n success: boolean;\n /** Event ID of the sent message */\n eventId?: string;\n /** Room ID */\n roomId?: string;\n /** Error message if failed */\n error?: string;\n}\n\n// ============================================================================\n// Service Interface\n// ============================================================================\n\n/** Interface for the Matrix service */\nexport interface IMatrixService extends Service {\n /** Check if the service is connected */\n isConnected(): boolean;\n\n /** Get the user ID */\n getUserId(): string;\n\n /** Get the homeserver URL */\n getHomeserver(): string;\n\n /** Get joined rooms */\n getJoinedRooms(): Promise<MatrixRoom[]>;\n\n /** Send a message */\n sendMessage(text: string, options?: MatrixMessageSendOptions): Promise<MatrixSendResult>;\n\n /** Send a reaction */\n sendReaction(roomId: string, eventId: string, emoji: string): Promise<MatrixSendResult>;\n\n /** Join a room */\n joinRoom(roomIdOrAlias: string): Promise<string>;\n\n /** Leave a room */\n leaveRoom(roomId: string): Promise<void>;\n\n /** Send typing indicator */\n sendTyping(roomId: string, typing: boolean, timeout?: number): Promise<void>;\n\n /** Send read receipt */\n sendReadReceipt(roomId: string, eventId: string): Promise<void>;\n}\n\n// ============================================================================\n// Event Payloads\n// ============================================================================\n\n/** Payload for MESSAGE_RECEIVED event */\nexport interface MatrixMessageReceivedPayload {\n message: MatrixMessage;\n room: MatrixRoom;\n runtime: IAgentRuntime;\n}\n\n/** Payload for MESSAGE_SENT event */\nexport interface MatrixMessageSentPayload {\n roomId: string;\n eventId: string;\n content: string;\n}\n\n/** Payload for ROOM_JOINED event */\nexport interface MatrixRoomJoinedPayload {\n room: MatrixRoom;\n}\n\n/** Payload for INVITE_RECEIVED event */\nexport interface MatrixInviteReceivedPayload {\n roomId: string;\n inviter: string;\n}\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Check if a string is a valid Matrix user ID.\n */\nexport function isValidMatrixUserId(userId: string): boolean {\n return /^@[^:]+:.+$/.test(userId);\n}\n\n/**\n * Check if a string is a valid Matrix room ID.\n */\nexport function isValidMatrixRoomId(roomId: string): boolean {\n return /^![^:]+:.+$/.test(roomId);\n}\n\n/**\n * Check if a string is a valid Matrix room alias.\n */\nexport function isValidMatrixRoomAlias(alias: string): boolean {\n return /^#[^:]+:.+$/.test(alias);\n}\n\n/**\n * Extract the localpart from a Matrix ID.\n */\nexport function getMatrixLocalpart(matrixId: string): string {\n const match = matrixId.match(/^[@#!]([^:]+):/);\n return match ? match[1] : matrixId;\n}\n\n/**\n * Extract the server part from a Matrix ID.\n */\nexport function getMatrixServerpart(matrixId: string): string {\n const match = matrixId.match(/:(.+)$/);\n return match ? match[1] : \"\";\n}\n\n/**\n * Get the best display name for a Matrix user.\n */\nexport function getMatrixUserDisplayName(user: MatrixUserInfo): string {\n return user.displayName || getMatrixLocalpart(user.userId);\n}\n\n/**\n * Convert a media URL to an HTTP URL via homeserver.\n */\nexport function matrixMxcToHttp(mxcUrl: string, homeserver: string): string | undefined {\n if (!mxcUrl.startsWith(\"mxc://\")) {\n return undefined;\n }\n const [serverName, mediaId] = mxcUrl.slice(6).split(\"/\");\n if (!serverName || !mediaId) {\n return undefined;\n }\n const base = homeserver.replace(/\\/$/, \"\");\n return `${base}/_matrix/media/v3/download/${serverName}/${mediaId}`;\n}\n\n// ============================================================================\n// Custom Errors\n// ============================================================================\n\n/** Base error class for Matrix plugin errors */\nexport class MatrixPluginError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"MatrixPluginError\";\n }\n}\n\n/** Error when the Matrix service is not initialized */\nexport class MatrixServiceNotInitializedError extends MatrixPluginError {\n constructor(message: string = \"Matrix service is not initialized\") {\n super(message);\n this.name = \"MatrixServiceNotInitializedError\";\n }\n}\n\n/** Error when the Matrix client is not connected */\nexport class MatrixNotConnectedError extends MatrixPluginError {\n constructor(message: string = \"Matrix client is not connected\") {\n super(message);\n this.name = \"MatrixNotConnectedError\";\n }\n}\n\n/** Error when there is a configuration problem */\nexport class MatrixConfigurationError extends MatrixPluginError {\n settingName?: string;\n\n constructor(message: string, settingName?: string) {\n super(message);\n this.name = \"MatrixConfigurationError\";\n this.settingName = settingName;\n }\n}\n\n/** Error when an API call fails */\nexport class MatrixApiError extends MatrixPluginError {\n errcode?: string;\n\n constructor(message: string, errcode?: string) {\n super(message);\n this.name = \"MatrixApiError\";\n this.errcode = errcode;\n }\n}\n",
|
|
9
|
-
"/**\n * Matrix ConnectorAccountManager provider.\n *\n * Adapts the multi-account scaffolding in `accounts.ts` to the\n * `ConnectorAccountProvider` contract from\n * `@elizaos/core/connectors/account-manager`.\n *\n * Source of truth for accounts is character settings (`character.settings.matrix`)\n * + MATRIX_ACCOUNTS JSON env var + single-account env vars (MATRIX_HOMESERVER,\n * MATRIX_USER_ID, MATRIX_ACCESS_TOKEN). AccountKey is `<homeserver>/<userId>`\n * by convention; role is `OWNER` since matrix access tokens authenticate the\n * user, not a bot. E2EE keys are scoped per account by the matrix client and\n * are NOT shared between accounts.\n */\n\nimport type {\n ConnectorAccount,\n ConnectorAccountManager,\n ConnectorAccountPatch,\n ConnectorAccountProvider,\n IAgentRuntime,\n} from \"@elizaos/core\";\nimport {\n DEFAULT_MATRIX_ACCOUNT_ID,\n listMatrixAccountIds,\n normalizeMatrixAccountId,\n resolveMatrixAccountSettings,\n} from \"./accounts.js\";\nimport type { MatrixSettings } from \"./types.js\";\n\nexport const MATRIX_PROVIDER_ID = \"matrix\";\n\nfunction accountKey(settings: MatrixSettings): string {\n // Convention: <homeserver>/<userId>; falls back to the configured accountId.\n if (settings.homeserver && settings.userId) {\n return `${settings.homeserver}/${settings.userId}`;\n }\n return normalizeMatrixAccountId(settings.accountId);\n}\n\nfunction toConnectorAccount(settings: MatrixSettings): ConnectorAccount {\n const now = Date.now();\n const configured = Boolean(settings.homeserver && settings.userId && settings.accessToken);\n return {\n id: normalizeMatrixAccountId(settings.accountId),\n provider: MATRIX_PROVIDER_ID,\n label: settings.userId || settings.accountId,\n role: \"OWNER\",\n purpose: [\"messaging\"],\n accessGate: \"open\",\n status: settings.enabled !== false && configured ? \"connected\" : \"disabled\",\n externalId: accountKey(settings),\n displayHandle: settings.userId || undefined,\n createdAt: now,\n updatedAt: now,\n metadata: {\n homeserver: settings.homeserver ?? \"\",\n userId: settings.userId ?? \"\",\n deviceId: settings.deviceId ?? \"\",\n encryption: settings.encryption ?? false,\n autoJoin: settings.autoJoin ?? false,\n },\n };\n}\n\nexport function createMatrixConnectorAccountProvider(\n runtime: IAgentRuntime\n): ConnectorAccountProvider {\n return {\n provider: MATRIX_PROVIDER_ID,\n label: \"Matrix\",\n listAccounts: async (_manager: ConnectorAccountManager): Promise<ConnectorAccount[]> => {\n const ids = listMatrixAccountIds(runtime);\n if (ids.length === 0) {\n return [\n toConnectorAccount(resolveMatrixAccountSettings(runtime, DEFAULT_MATRIX_ACCOUNT_ID)),\n ];\n }\n return ids.map((id) => toConnectorAccount(resolveMatrixAccountSettings(runtime, id)));\n },\n createAccount: async (input: ConnectorAccountPatch, _manager: ConnectorAccountManager) => {\n return {\n ...input,\n provider: MATRIX_PROVIDER_ID,\n role: input.role ?? \"OWNER\",\n purpose: input.purpose ?? [\"messaging\"],\n accessGate: input.accessGate ?? \"open\",\n status: input.status ?? \"pending\",\n };\n },\n patchAccount: async (\n _accountId: string,\n patch: ConnectorAccountPatch,\n _manager: ConnectorAccountManager\n ) => {\n return { ...patch, provider: MATRIX_PROVIDER_ID };\n },\n deleteAccount: async (_accountId: string, _manager: ConnectorAccountManager) => {\n // No-op at provider layer — runtime credentials live in character\n // settings; deletion of those is out of band.\n },\n };\n}\n",
|
|
10
|
-
"import { type IAgentRuntime, Service } from \"@elizaos/core\";\n\n// Inlined to avoid adding @elizaos/plugin-workflow as a compile-time dependency.\n// The runtime duck-types the service — only the serviceType string and resolve() shape matter.\nconst WORKFLOW_CREDENTIAL_PROVIDER_TYPE = \"workflow_credential_provider\";\ntype CredentialProviderResult =\n | { status: \"credential_data\"; data: Record<string, unknown> }\n | { status: \"needs_auth\"; authUrl: string }\n | null;\n\nconst SUPPORTED = [\"matrixApi\"];\n\nexport class MatrixWorkflowCredentialProvider extends Service {\n static override readonly serviceType = WORKFLOW_CREDENTIAL_PROVIDER_TYPE;\n override capabilityDescription = \"Supplies Matrix credentials to the workflow plugin.\";\n\n static async start(runtime: IAgentRuntime): Promise<MatrixWorkflowCredentialProvider> {\n return new MatrixWorkflowCredentialProvider(runtime);\n }\n\n async stop(): Promise<void> {}\n\n async resolve(_userId: string, credType: string): Promise<CredentialProviderResult> {\n if (credType !== \"matrixApi\") return null;\n const accessToken = this.runtime.getSetting(\"MATRIX_ACCESS_TOKEN\") as string | undefined;\n const homeserver = this.runtime.getSetting(\"MATRIX_HOMESERVER\") as string | undefined;\n if (!accessToken?.trim() || !homeserver?.trim()) return null;\n return {\n status: \"credential_data\",\n data: { accessToken: accessToken.trim(), homeserverUrl: homeserver.trim() },\n };\n }\n\n checkCredentialTypes(credTypes: string[]): { supported: string[]; unsupported: string[] } {\n return {\n supported: credTypes.filter((t) => SUPPORTED.includes(t)),\n unsupported: credTypes.filter((t) => !SUPPORTED.includes(t)),\n };\n }\n}\n"
|
|
11
|
-
],
|
|
12
|
-
"mappings": ";AAOA,+CAAqC;;;ACJ9B,IAAM,4BAA4B;AAYzC,SAAS,aAAa,CAAC,SAAwB,KAAiC;AAAA,EAC9E,MAAM,QAAQ,QAAQ,WAAW,GAAG;AAAA,EACpC,OAAO,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI;AAAA;AAGpE,SAAS,eAAe,CAAC,SAAkD;AAAA,EACzE,MAAM,WAAW,QAAQ,WAAW;AAAA,EACpC,MAAM,MAAM,UAAU;AAAA,EACtB,OAAO,OAAO,OAAO,QAAQ,WAAY,MAAmC,CAAC;AAAA;AAG/E,SAAS,iBAAiB,CAAC,SAA6D;AAAA,EACtF,MAAM,MAAM,cAAc,SAAS,iBAAiB;AAAA,EACpD,IAAI,CAAC;AAAA,IAAK,OAAO,CAAC;AAAA,EAElB,IAAI;AAAA,IACF,MAAM,SAAS,KAAK,MAAM,GAAG;AAAA,IAC7B,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,MACzB,OAAO,OAAO,YACZ,OACG,OAAO,CAAC,SAAsC,QAAQ,IAAI,KAAK,OAAO,SAAS,QAAQ,EACvF,IAAI,CAAC,SAAS,CAAC,yBAAyB,KAAK,aAAa,KAAK,EAAE,GAAG,IAAI,CAAC,CAC9E;AAAA,IACF;AAAA,IACA,OAAO,UAAU,OAAO,WAAW,WAC9B,SACD,CAAC;AAAA,IACL,MAAM;AAAA,IACN,OAAO,CAAC;AAAA;AAAA;AAIZ,SAAS,iBAAiB,CAAC,SAA6D;AAAA,EACtF,OAAO;AAAA,OACD,gBAAgB,OAAO,EAAE,YAAY,CAAC;AAAA,OACvC,kBAAkB,OAAO;AAAA,EAC9B;AAAA;AAGF,SAAS,aAAa,CAAC,SAAwB,WAAwC;AAAA,EACrF,MAAM,WAAW,kBAAkB,OAAO;AAAA,EAC1C,OAAO,SAAS,cAAc,SAAS,yBAAyB,SAAS,MAAM,CAAC;AAAA;AAGlF,SAAS,SAAS,CAAC,OAAgB,WAAW,OAAgB;AAAA,EAC5D,IAAI,OAAO,UAAU;AAAA,IAAW,OAAO;AAAA,EACvC,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,MAAM,KAAK,EAAE,YAAY,MAAM;AAAA,EACrE,OAAO;AAAA;AAGT,SAAS,UAAU,CAAC,OAA0B;AAAA,EAC5C,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO,MAAM,IAAI,CAAC,SAAS,OAAO,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO;AAAA,EAChE;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,OAAO,MACJ,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,OAAO;AAAA,EACnB;AAAA,EACA,OAAO,CAAC;AAAA;AAGH,SAAS,wBAAwB,CAAC,WAA6B;AAAA,EACpE,IAAI,OAAO,cAAc;AAAA,IAAU,OAAO;AAAA,EAC1C,MAAM,UAAU,UAAU,KAAK;AAAA,EAC/B,OAAO,WAAW;AAAA;AAGb,SAAS,oBAAoB,CAAC,SAAkC;AAAA,EACrE,MAAM,MAAM,IAAI;AAAA,EAChB,MAAM,SAAS,gBAAgB,OAAO;AAAA,EAEtC,IACE,cAAc,SAAS,qBAAqB,KAC3C,OAAO,cAAc,OAAO,UAAU,OAAO,aAC9C;AAAA,IACA,IAAI,IAAI,yBAAyB;AAAA,EACnC;AAAA,EAEA,WAAW,MAAM,OAAO,KAAK,kBAAkB,OAAO,CAAC,GAAG;AAAA,IACxD,IAAI,IAAI,yBAAyB,EAAE,CAAC;AAAA,EACtC;AAAA,EAEA,OAAO,MAAM,KAAK,IAAI,OAAO,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAChF,EAAE,cAAc,CAAC,CACnB;AAAA;AAGK,SAAS,6BAA6B,CAAC,SAAgC;AAAA,EAC5E,MAAM,YACJ,cAAc,SAAS,2BAA2B,KAClD,cAAc,SAAS,mBAAmB;AAAA,EAC5C,IAAI;AAAA,IAAW,OAAO,yBAAyB,SAAS;AAAA,EAExD,MAAM,MAAM,qBAAqB,OAAO;AAAA,EACxC,OAAO,IAAI,SAAS,yBAAyB,IAAI,4BAA4B,IAAI;AAAA;AAG5E,SAAS,mBAAmB,IAAI,SAAwC;AAAA,EAC7E,WAAW,UAAU,SAAS;AAAA,IAC5B,IAAI,CAAC,UAAU,OAAO,WAAW;AAAA,MAAU;AAAA,IAC3C,MAAM,SAAS;AAAA,IACf,MAAM,aACJ,OAAO,cAAc,OAAO,OAAO,eAAe,WAC7C,OAAO,aACR,CAAC;AAAA,IACP,MAAM,OACJ,OAAO,QAAQ,OAAO,OAAO,SAAS,WACjC,OAAO,OACR,CAAC;AAAA,IACP,MAAM,WACJ,OAAO,YAAY,OAAO,OAAO,aAAa,WACzC,OAAO,WACR,CAAC;AAAA,IACP,MAAM,SACJ,KAAK,UAAU,OAAO,KAAK,WAAW,WACjC,KAAK,SACN,CAAC;AAAA,IACP,MAAM,QACJ,OAAO,aACP,WAAW,aACX,KAAK,aACL,OAAO,aACP,SAAS;AAAA,IACX,IAAI,OAAO,UAAU,YAAY,MAAM,KAAK;AAAA,MAAG,OAAO,yBAAyB,KAAK;AAAA,EACtF;AAAA,EACA;AAAA;AAGK,SAAS,4BAA4B,CAC1C,SACA,oBACgB;AAAA,EAChB,MAAM,YAAY,yBAChB,sBAAsB,8BAA8B,OAAO,CAC7D;AAAA,EACA,MAAM,OAAO,gBAAgB,OAAO;AAAA,EACpC,MAAM,UAAU,cAAc,SAAS,SAAS;AAAA,EAChD,MAAM,WAAW,cAAc;AAAA,EAE/B,OAAO;AAAA,IACL;AAAA,IACA,YACE,QAAQ,cACR,KAAK,eACJ,WAAW,cAAc,SAAS,mBAAmB,IAAI,cAC1D;AAAA,IACF,QACE,QAAQ,UACR,KAAK,WACJ,WAAW,cAAc,SAAS,gBAAgB,IAAI,cACvD;AAAA,IACF,aACE,QAAQ,eACR,KAAK,gBACJ,WAAW,cAAc,SAAS,qBAAqB,IAAI,cAC5D;AAAA,IACF,UACE,QAAQ,YACR,KAAK,aACJ,WAAW,cAAc,SAAS,kBAAkB,IAAI;AAAA,IAC3D,OAAO,WACL,QAAQ,SAAS,KAAK,UAAU,WAAW,cAAc,SAAS,cAAc,IAAI,UACtF;AAAA,IACA,UAAU,UACR,QAAQ,YACN,KAAK,aACJ,WAAW,cAAc,SAAS,kBAAkB,IAAI,UAC7D;AAAA,IACA,YAAY,UACV,QAAQ,cACN,KAAK,eACJ,WAAW,cAAc,SAAS,mBAAmB,IAAI,UAC9D;AAAA,IACA,gBAAgB,UACd,QAAQ,kBACN,KAAK,mBACJ,WAAW,cAAc,SAAS,wBAAwB,IAAI,UACnE;AAAA,IACA,SAAS,UAAU,QAAQ,WAAW,KAAK,SAAS,IAAI;AAAA,EAC1D;AAAA;;AC9LF;AAAA;AAAA;AAAA;AAYA;;;ACPO,IAAM,4BAA4B;AAGlC,IAAM,sBAAsB;AAO5B,IAAK;AAAA,CAAL,CAAK,sBAAL;AAAA,EACL,wCAAmB;AAAA,EACnB,oCAAe;AAAA,EACf,mCAAc;AAAA,EACd,iCAAY;AAAA,EACZ,uCAAkB;AAAA,EAClB,yCAAoB;AAAA,EACpB,uCAAkB;AAAA,EAClB,qCAAgB;AAAA,EAChB,wCAAmB;AAAA,EACnB,uCAAkB;AAAA,GAVR;AA0ML,SAAS,mBAAmB,CAAC,QAAyB;AAAA,EAC3D,OAAO,cAAc,KAAK,MAAM;AAAA;AAM3B,SAAS,mBAAmB,CAAC,QAAyB;AAAA,EAC3D,OAAO,cAAc,KAAK,MAAM;AAAA;AAM3B,SAAS,sBAAsB,CAAC,OAAwB;AAAA,EAC7D,OAAO,cAAc,KAAK,KAAK;AAAA;AAM1B,SAAS,kBAAkB,CAAC,UAA0B;AAAA,EAC3D,MAAM,QAAQ,SAAS,MAAM,gBAAgB;AAAA,EAC7C,OAAO,QAAQ,MAAM,KAAK;AAAA;AAMrB,SAAS,mBAAmB,CAAC,UAA0B;AAAA,EAC5D,MAAM,QAAQ,SAAS,MAAM,QAAQ;AAAA,EACrC,OAAO,QAAQ,MAAM,KAAK;AAAA;AAMrB,SAAS,wBAAwB,CAAC,MAA8B;AAAA,EACrE,OAAO,KAAK,eAAe,mBAAmB,KAAK,MAAM;AAAA;AAMpD,SAAS,eAAe,CAAC,QAAgB,YAAwC;AAAA,EACtF,IAAI,CAAC,OAAO,WAAW,QAAQ,GAAG;AAAA,IAChC;AAAA,EACF;AAAA,EACA,OAAO,YAAY,WAAW,OAAO,MAAM,CAAC,EAAE,MAAM,GAAG;AAAA,EACvD,IAAI,CAAC,cAAc,CAAC,SAAS;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,MAAM,OAAO,WAAW,QAAQ,OAAO,EAAE;AAAA,EACzC,OAAO,GAAG,kCAAkC,cAAc;AAAA;AAAA;AAQrD,MAAM,0BAA0B,MAAM;AAAA,EAC3C,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEhB;AAAA;AAGO,MAAM,yCAAyC,kBAAkB;AAAA,EACtE,WAAW,CAAC,UAAkB,qCAAqC;AAAA,IACjE,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEhB;AAAA;AAGO,MAAM,gCAAgC,kBAAkB;AAAA,EAC7D,WAAW,CAAC,UAAkB,kCAAkC;AAAA,IAC9D,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEhB;AAAA;AAGO,MAAM,iCAAiC,kBAAkB;AAAA,EAC9D;AAAA,EAEA,WAAW,CAAC,SAAiB,aAAsB;AAAA,IACjD,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,KAAK,cAAc;AAAA;AAEvB;AAAA;AAGO,MAAM,uBAAuB,kBAAkB;AAAA,EACpD;AAAA,EAEA,WAAW,CAAC,SAAiB,SAAkB;AAAA,IAC7C,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,KAAK,UAAU;AAAA;AAEnB;;;AD1RA,SAAS,oBAAoB,CAAC,OAAuB;AAAA,EACnD,OAAO,MAAM,KAAK,EAAE,YAAY;AAAA;AAGlC,SAAS,oBAAoB,CAAC,MAA0B;AAAA,EACtD,OAAO,CAAC,KAAK,QAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,cAAc,EAC5D,OAAO,CAAC,UAA2B,OAAO,UAAU,YAAY,MAAM,SAAS,CAAC,EAChF,KAAK,GAAG,EACR,YAAY;AAAA;AAGjB,SAAS,eAAe,CAAC,MAAkB,OAAuB;AAAA,EAChE,MAAM,aAAa,qBAAqB,KAAK;AAAA,EAC7C,IAAI,CAAC,YAAY;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,aAAa,CAAC,KAAK,QAAQ,KAAK,gBAAgB,KAAK,IAAI,EAAE,OAC/D,CAAC,UAA2B,OAAO,UAAU,YAAY,MAAM,SAAS,CAC1E;AAAA,EACA,IAAI,WAAW,KAAK,CAAC,cAAc,UAAU,YAAY,MAAM,UAAU,GAAG;AAAA,IAC1E,OAAO;AAAA,EACT;AAAA,EACA,IAAI,WAAW,KAAK,CAAC,cAAc,UAAU,YAAY,EAAE,SAAS,UAAU,CAAC,GAAG;AAAA,IAChF,OAAO;AAAA,EACT;AAAA,EACA,OAAO,qBAAqB,IAAI,EAAE,SAAS,UAAU,IAAI,OAAO;AAAA;AAGlE,SAAS,2BAA2B,CAClC,MACA,QAAQ,KACR,YAAY,2BACY;AAAA,EACxB,MAAM,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK;AAAA,EACvD,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR;AAAA,MACA,WAAW,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,KAAK,WAAW,SAAS;AAAA,IAC/B,aACE,KAAK,SAAS,GAAG,KAAK,4BAA4B,KAAK,gBAAgB,IAAI,KAAK;AAAA,IAClF;AAAA,IACA,UAAU,CAAC,UAAU,YAAY;AAAA,IACjC,UAAU;AAAA,MACR;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,gBAAgB,KAAK;AAAA,MACrB,aAAa,KAAK;AAAA,MAClB,UAAU,KAAK;AAAA,MACf,aAAa,KAAK;AAAA,IACpB;AAAA,EACF;AAAA;AA0DF,SAAS,uBAAuB,CAAC,OAA2B,WAAW,IAAY;AAAA,EACjF,IAAI,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,SAAS,SAAS,GAAG;AAAA,IACnD,OAAO;AAAA,EACT;AAAA,EACA,OAAO,KAAK,IAAI,KAAK,MAAM,KAAK,GAAG,GAAG;AAAA;AAGxC,eAAe,yBAAyB,CACtC,SACA,QACA,OACmB;AAAA,EACnB,OAAO,QAAQ,YAAY;AAAA,IACzB,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,CAAC;AAAA;AAGH,eAAe,4BAA4B,CACzC,SACA,SACA,OACmB;AAAA,EACnB,MAAM,UAAU,MAAM,KACpB,IAAI,IAAI,QAAQ,IAAI,CAAC,WAAW,OAAO,OAAO,MAAM,EAAE,OAAO,CAAC,OAAmB,QAAQ,EAAE,CAAC,CAAC,CAC/F;AAAA,EACA,MAAM,SAAS,MAAM,QAAQ,IAC3B,QAAQ,IAAI,CAAC,WAAW,0BAA0B,SAAS,QAAQ,KAAK,CAAC,CAC3E;AAAA,EACA,OAAO,OACJ,KAAK,EACL,KAAK,CAAC,MAAM,WAAW,MAAM,aAAa,MAAM,KAAK,aAAa,EAAE,EACpE,MAAM,GAAG,KAAK;AAAA;AAGnB,SAAS,qBAAqB,CAAC,UAAoB,OAAe,OAAyB;AAAA,EACzF,MAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAAA,EAC5C,IAAI,CAAC,YAAY;AAAA,IACf,OAAO,SAAS,MAAM,GAAG,KAAK;AAAA,EAChC;AAAA,EACA,OAAO,SACJ,OAAO,CAAC,WAAW;AAAA,IAClB,MAAM,OAAO,OAAO,OAAO,SAAS,SAAS,WAAW,OAAO,QAAQ,OAAO;AAAA,IAC9E,OAAO,KAAK,YAAY,EAAE,SAAS,UAAU;AAAA,GAC9C,EACA,MAAM,GAAG,KAAK;AAAA;AAGnB,SAAS,wBAAwB,CAAC,SAAkB,QAA8C;AAAA,EAChG,MAAM,OAAO,QAAQ;AAAA,EACrB,MAAM,aAAc,MAAM,UAAU,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;AAAA,EAIpF,OAAO;AAAA,IACL,UACE,OAAO,aACN,OAAO,YAAY,aAAa,WAAW,WAAW,WAAW;AAAA,IACpE,SAAS,OAAO,YAAY,YAAY,WAAW,WAAW,UAAU;AAAA,IACxE,WAAW,YAAY,cAAc;AAAA,EACvC;AAAA;AAAA;AAMK,MAAM,sBAAsB,QAAkC;AAAA,SAC5D,cAAsB;AAAA,EAE7B,wBAAwB;AAAA,EAGhB,SAAS,IAAI;AAAA,EACb,mBAAmB;AAAA,cAKd,MAAK,CAAC,SAAgD;AAAA,IACjE,MAAM,UAAU,IAAI;AAAA,IACpB,MAAM,QAAQ,WAAW,OAAO;AAAA,IAChC,OAAO;AAAA;AAAA,cAMa,YAAW,CAAC,SAAuC;AAAA,IACvE,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,SAAS;AAAA,MACX,MAAM,QAAQ,KAAK;AAAA,IACrB;AAAA;AAAA,SAGK,oBAAoB,CACzB,SACA,SACA,YAAY,QAAQ,aAAa,OAAO,GAClC;AAAA,IACN,YAAY,yBAAyB,SAAS;AAAA,IAC9C,MAAM,cAAc,OAClB,gBACA,QACA,YACgC;AAAA,MAChC,MAAM,QAAQ,kBAAkB,gBAAgB,QAAQ,OAAO;AAAA,MAC/D;AAAA;AAAA,IAGF,IAAI,OAAO,QAAQ,6BAA6B,YAAY;AAAA,MAC1D,MAAM,eAAe;AAAA,QACnB,QAAQ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,QACP,cAAc;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,sBAAsB,CAAC,QAAQ,WAAW,UAAU,MAAM;AAAA,QAC1D,UAAU,CAAC,UAAU,YAAY;AAAA,QACjC,aACE;AAAA,QACF,UAAU;AAAA,UACR;AAAA,UACA,SAAS;AAAA,QACX;AAAA,QACA;AAAA,QACA,gBAAgB,OAAO,UAAU;AAAA,UAC/B,MAAM,QAAQ,MAAM,QAAQ,eAAe,SAAS;AAAA,UACpD,OAAO,MACJ,IAAI,CAAC,UAAU,EAAE,MAAM,OAAO,gBAAgB,MAAM,KAAK,EAAE,EAAE,EAC7D,OAAO,GAAG,YAAY,QAAQ,CAAC,EAC/B,KAAK,CAAC,MAAM,UAAU,MAAM,QAAQ,KAAK,KAAK,EAC9C,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,MAAM,YAAY,4BAA4B,MAAM,OAAO,SAAS,CAAC;AAAA;AAAA,QAEjF,mBAAmB,aAChB,MAAM,QAAQ,eAAe,SAAS,GACpC,MAAM,GAAG,EAAE,EACX,IAAI,CAAC,SAAS,4BAA4B,MAAM,KAAK,SAAS,CAAC;AAAA,QACpE,WAAW,aACR,MAAM,QAAQ,eAAe,SAAS,GAAG,IAAI,CAAC,SAC7C,4BAA4B,MAAM,KAAK,SAAS,CAClD;AAAA,QACF,eAAe,OAAO,SAAS,WAAW;AAAA,UACxC,MAAM,QAAQ,wBAAwB,QAAQ,KAAK;AAAA,UACnD,MAAM,SAAS,QAAQ,UAAU,QAAQ;AAAA,UACzC,IAAI,QAAQ,QAAQ;AAAA,YAClB,OAAO,0BAA0B,QAAQ,SAAS,OAAO,QAAQ,KAAK;AAAA,UACxE;AAAA,UACA,MAAM,WAAW,MAAM,QAAQ,eAAe,SAAS,GACpD,MAAM,GAAG,EAAE,EACX,IAAI,CAAC,SAAS,4BAA4B,MAAM,KAAK,SAAS,CAAC;AAAA,UAClE,OAAO,6BAA6B,QAAQ,SAAS,SAAS,KAAK;AAAA;AAAA,QAErE,gBAAgB,OAAO,SAAS,WAAW;AAAA,UACzC,MAAM,QAAQ,wBAAwB,QAAQ,KAAK;AAAA,UACnD,MAAM,SAAS,QAAQ,UAAU,QAAQ;AAAA,UACzC,MAAM,WAAW,QAAQ,SACrB,MAAM,0BAA0B,QAAQ,SAAS,OAAO,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC,IACpF,MAAM,6BACJ,QAAQ,UACP,MAAM,QAAQ,eAAe,SAAS,GACpC,MAAM,GAAG,EAAE,EACX,IAAI,CAAC,SAAS,4BAA4B,MAAM,KAAK,SAAS,CAAC,GAClE,KAAK,IAAI,OAAO,GAAG,CACrB;AAAA,UACJ,OAAO,sBAAsB,UAAU,OAAO,OAAO,KAAK;AAAA;AAAA,QAE5D,cAAc,OAAO,gBAAgB,WAAW;AAAA,UAC9C,MAAM,SAAS,OAAO,UAAW,EAAE,QAAQ,oBAAoB;AAAA,UAC/D,MAAM,OAAO,OAAO,SAAS,MAAM,eAAe,QAAQ,OAAO,MAAM,IAAI;AAAA,UAC3E,MAAM,SAAS,OAAO,OAAO,aAAa,MAAM,aAAa,EAAE,EAAE,KAAK;AAAA,UACtE,MAAM,iBAAiB;AAAA,UACvB,MAAM,UAAU,OAAO,eAAe,WAAW,OAAO,aAAa,EAAE,EAAE,KAAK;AAAA,UAC9E,MAAM,QAAQ,OAAO,OAAO,SAAS,EAAE,EAAE,KAAK;AAAA,UAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;AAAA,YACjC,MAAM,IAAI,MAAM,wDAAwD;AAAA,UAC1E;AAAA,UACA,MAAM,SAAS,MAAM,QAAQ,aAAa,QAAQ,SAAS,OAAO,SAAS;AAAA,UAC3E,IAAI,CAAC,OAAO,SAAS;AAAA,YACnB,MAAM,IAAI,MAAM,OAAO,SAAS,wBAAwB;AAAA,UAC1D;AAAA;AAAA,QAEF,aAAa,OAAO,iBAAiB,WAAW;AAAA,UAC9C,MAAM,mBAAmB;AAAA,UACzB,MAAM,gBAAgB,OACpB,iBAAiB,iBACf,OAAO,SACP,OAAO,UACP,OAAO,aACP,OAAO,UACP,EACJ,EAAE,KAAK;AAAA,UACP,IAAI,CAAC,eAAe;AAAA,YAClB,MAAM,IAAI,MAAM,gDAAgD;AAAA,UAClE;AAAA,UACA,MAAM,QAAQ,SAAS,eAAe,SAAS;AAAA;AAAA,QAEjD,cAAc,OAAO,gBAAgB,WAAW;AAAA,UAC9C,MAAM,SAAS,OAAO,UAAW,EAAE,QAAQ,oBAAoB;AAAA,UAC/D,MAAM,OAAO,OAAO,SAAS,MAAM,eAAe,QAAQ,OAAO,MAAM,IAAI;AAAA,UAC3E,MAAM,SAAS,OACb,QAAQ,UAAU,QAAQ,aAAa,OAAO,aAAa,MAAM,aAAa,EAChF;AAAA,UACA,IAAI,CAAC,QAAQ;AAAA,YACX,MAAM,IAAI,MAAM,wCAAwC;AAAA,UAC1D;AAAA,UACA,MAAM,QAAQ,UAAU,QAAQ,SAAS;AAAA;AAAA,QAE3C,gBAAgB,OAAO,QAAQ,YAAY;AAAA,UACzC,MAAM,OAAO,OAAO,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,MAAM,IAAI;AAAA,UAC5E,MAAM,YAAY,OAAO,OAAO,aAAa,MAAM,aAAa,EAAE,EAAE,KAAK;AAAA,UACzE,MAAM,cAAc,MAAM,QAAQ,eAAe,SAAS,GAAG,KAC3D,CAAC,cAAc,UAAU,WAAW,aAAa,UAAU,mBAAmB,SAChF;AAAA,UACA,IAAI,CAAC,YAAY;AAAA,YACf,OAAO;AAAA,UACT;AAAA,UAEA,OAAO;AAAA,YACL,QAAQ;AAAA,cACN,QAAQ;AAAA,cACR;AAAA,cACA,WAAW,WAAW;AAAA,cACtB,QAAQ,OAAO;AAAA,YACjB;AAAA,YACA,OAAO,WAAW,QAAQ,WAAW,kBAAkB,WAAW;AAAA,YAClE,SAAS,WAAW;AAAA,YACpB,UAAU;AAAA,cACR;AAAA,cACA,QAAQ,WAAW;AAAA,cACnB,gBAAgB,WAAW;AAAA,cAC3B,aAAa,WAAW;AAAA,cACxB,UAAU,WAAW;AAAA,cACrB,aAAa,WAAW;AAAA,YAC1B;AAAA,UACF;AAAA;AAAA,QAEF,gBAAgB,OAAO,UAAU,YAAY;AAAA,UAC3C,IAAI,OAAO,QAAQ,QAAQ,kBAAkB,YAAY;AAAA,YACvD,OAAO;AAAA,UACT;AAAA,UACA,MAAM,SAAS,MAAM,QAAQ,QAAQ,cAAc,OAAO,QAAQ,CAAS;AAAA,UAC3E,IAAI,CAAC,QAAQ;AAAA,YACX,OAAO;AAAA,UACT;AAAA,UACA,OAAO;AAAA,YACL;AAAA,YACA,OAAO,OAAO,QAAQ;AAAA,YACtB,SAAS,OAAO;AAAA,YAChB,SAAS,CAAC;AAAA,YACV,UAAU,OAAO;AAAA,UACnB;AAAA;AAAA,MAEJ;AAAA,MACA,QAAQ,yBAAyB,YAAY;AAAA,MAC7C;AAAA,IACF;AAAA,IAEA,QAAQ,oBAAoB,qBAAqB,WAAW;AAAA;AAAA,OAMhD,WAAU,CAAC,SAAuC;AAAA,IAC9D,KAAK,UAAU;AAAA,IACf,KAAK,mBAAmB,yBAAyB,8BAA8B,OAAO,CAAC;AAAA,IAEvF,MAAM,aAAa,qBAAqB,OAAO;AAAA,IAC/C,WAAW,aAAa,YAAY;AAAA,MAClC,MAAM,WAAW,KAAK,aAAa,SAAS;AAAA,MAC5C,IAAI,SAAS,YAAY,OAAO;AAAA,QAC9B;AAAA,MACF;AAAA,MAEA,KAAK,iBAAiB,QAAQ;AAAA,MAE9B,MAAM,QAA4B;AAAA,QAChC,WAAW,yBAAyB,SAAS,SAAS;AAAA,QACtD;AAAA,QACA,QAAY,iBAAa;AAAA,UACvB,SAAS,SAAS;AAAA,UAClB,QAAQ,SAAS;AAAA,UACjB,aAAa,SAAS;AAAA,UACtB,UAAU,SAAS;AAAA,QACrB,CAAC;AAAA,QACD,WAAW;AAAA,QACX,SAAS;AAAA,MACX;AAAA,MAEA,KAAK,OAAO,IAAI,MAAM,WAAW,KAAK;AAAA,MACtC,KAAK,mBAAmB,KAAK;AAAA,MAC7B,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,cAAc,qBAAqB,SAAS,MAAM,MAAM,SAAS;AAAA,MAEjE,OAAO,KAAK,kCAAkC,SAAS,aAAa,SAAS,YAAY;AAAA,IAC3F;AAAA,IAEA,IAAI,KAAK,OAAO,SAAS,GAAG;AAAA,MAC1B,MAAM,WAAW,KAAK,aAAa,KAAK,gBAAgB;AAAA,MACxD,KAAK,iBAAiB,QAAQ;AAAA,IAChC;AAAA;AAAA,EAMM,YAAY,CAAC,WAAoC;AAAA,IACvD,OAAO,6BAA6B,KAAK,SAAS,SAAS;AAAA;AAAA,EAMrD,gBAAgB,CAAC,UAAgC;AAAA,IACvD,IAAI,CAAC,SAAS,YAAY;AAAA,MACxB,MAAM,IAAI,yBAAyB,iCAAiC,mBAAmB;AAAA,IACzF;AAAA,IAEA,IAAI,CAAC,SAAS,QAAQ;AAAA,MACpB,MAAM,IAAI,yBAAyB,8BAA8B,gBAAgB;AAAA,IACnF;AAAA,IAEA,IAAI,CAAC,SAAS,aAAa;AAAA,MACzB,MAAM,IAAI,yBAAyB,mCAAmC,qBAAqB;AAAA,IAC7F;AAAA;AAAA,EAMM,kBAAkB,CAAC,OAAiC;AAAA,IAE1D,MAAM,OAAO,GAAO,gBAAY,MAAM,CAAC,cAAc;AAAA,MACnD,IAAI,cAAc,YAAY;AAAA,QAC5B,MAAM,UAAU;AAAA,QAChB,OAAO,KAAK,sBAAsB;AAAA,QAClC,KAAK,QAAQ,sDAA0C;AAAA,UACrD,SAAS,KAAK;AAAA,UACd,WAAW,MAAM;AAAA,QACnB,CAAiB;AAAA,MACnB;AAAA,KACD;AAAA,IAGD,MAAM,OAAO,GAAO,cAAU,UAAU,CAAC,OAAO,MAAM,sBAAsB;AAAA,MAC1E,IAAI;AAAA,QAAmB;AAAA,MACvB,IAAI,MAAM,QAAQ,MAAM;AAAA,QAAkB;AAAA,MAC1C,IAAI,MAAM,UAAU,MAAM,MAAM,SAAS;AAAA,QAAQ;AAAA,MAEjD,KAAK,kBAAkB,OAAO,OAAO,IAAI;AAAA,KAC1C;AAAA,IAGD,MAAM,OAAO,GAAO,oBAAgB,YAAY,CAAC,OAAO,WAAW;AAAA,MACjE,IAAI,OAAO,WAAW,MAAM,SAAS;AAAA,QAAQ;AAAA,MAE7C,IAAI,OAAO,eAAe,YAAY,MAAM,SAAS,UAAU;AAAA,QAC7D,MAAM,SAAS,MAAM,UAAU;AAAA,QAC/B,IAAI,QAAQ;AAAA,UACV,OAAO,KAAK,qBAAqB,QAAQ;AAAA,UACzC,MAAM,OAAO,SAAS,MAAM,EAAE,MAAM,CAAC,QAAQ;AAAA,YAC3C,OAAO,MAAM,6BAA6B,IAAI,SAAS;AAAA,WACxD;AAAA,QACH;AAAA,MACF;AAAA,KACD;AAAA;AAAA,EAMK,iBAAiB,CACvB,OACA,OACA,MACM;AAAA,IACN,MAAM,UAAU,MAAM,WAAW;AAAA,IACjC,MAAM,UAAU,QAAQ;AAAA,IAGxB,IAAI,YAAY;AAAA,MAAU;AAAA,IAE1B,MAAM,SAAS,MAAM,UAAU;AAAA,IAC/B,IAAI,CAAC,UAAU,CAAC;AAAA,MAAM;AAAA,IAGtB,IAAI,MAAM,SAAS,gBAAgB;AAAA,MACjC,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAC7B,MAAM,YAAY,mBAAmB,MAAM,SAAS,MAAM;AAAA,MAC1D,MAAM,iBAAiB,IAAI,OAAO,KAAK,aAAa,GAAG;AAAA,MACvD,IAAI,CAAC,eAAe,KAAK,IAAI,GAAG;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,SAAS,MAAM,UAAU;AAAA,IAC/B,MAAM,eAAe,KAAK,UAAU,UAAU,EAAE;AAAA,IAEhD,MAAM,aAA6B;AAAA,MACjC,QAAQ,UAAU;AAAA,MAClB,aAAa,cAAc;AAAA,MAC3B,WAAW,cAAc,gBAAgB,KAAK;AAAA,IAChD;AAAA,IAGA,MAAM,YAAY,QAAQ;AAAA,IAC1B,MAAM,SAAS,WAAW,aAAa;AAAA,IACvC,MAAM,WAAW,WAAW,aAAa,aAAa,UAAU,WAAW;AAAA,IAC3E,MAAM,UAAU,YAAY,kBAAkB;AAAA,IAE9C,MAAM,UAAyB;AAAA,MAC7B,SAAS,MAAM,MAAM,KAAK;AAAA,MAC1B;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB;AAAA,MACA,SAAS,QAAQ,QAAQ;AAAA,MACzB;AAAA,MACA,eAAe,QAAQ;AAAA,MACvB,WAAW,MAAM,MAAM;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,SAAS,WAAW,WAAW;AAAA,IAClD;AAAA,IAEA,MAAM,aAAyB;AAAA,MAC7B;AAAA,MACA,MAAM,KAAK;AAAA,MACX,OAAO,KAAK,aAAa,eAAe,gBAAgB,EAAE,GAAG,WAAW,GAAG;AAAA,MAC3E,gBAAgB,KAAK,kBAAkB,KAAK;AAAA,MAC5C,aAAa,KAAK,wBAAwB;AAAA,MAC1C,UACE,MAAM,OACH,eAAmB,cAAU,MAAM,GAClC,WAAW,IACV,UAAU,KAAK,SAAS,MAAM,KAAK;AAAA,MAC1C,aAAa,KAAK,qBAAqB;AAAA,IACzC;AAAA,IAEA,OAAO,MACL,uBAAuB,WAAW,eAAe,aAAa,KAAK,QAAQ,WAAW,QAAQ,QAAQ,MAAM,GAAG,EAAE,MACnH;AAAA,IAEA,KAAK,QAAQ,4DAA6C;AAAA,MACxD;AAAA,MACA,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,MACd,WAAW,MAAM;AAAA,IACnB,CAAiB;AAAA;AAAA,OAML,QAAO,CAAC,OAA0C;AAAA,IAC9D,MAAM,MAAM,OAAO,YAAY,EAAE,kBAAkB,GAAG,CAAC;AAAA,IACvD,MAAM,YAAY;AAAA,IAGlB,MAAM,IAAI,QAAc,CAAC,YAAY;AAAA,MACnC,MAAM,WAAW,CAAC,cAAsB;AAAA,QACtC,IAAI,cAAc,YAAY;AAAA,UAC5B,MAAM,OAAO,eAAmB,gBAAY,MAAM,QAAQ;AAAA,UAC1D,QAAQ;AAAA,QACV;AAAA;AAAA,MAEF,MAAM,OAAO,GAAO,gBAAY,MAAM,QAAQ;AAAA,KAC/C;AAAA,IAGD,WAAW,QAAQ,MAAM,SAAS,OAAO;AAAA,MACvC,IAAI;AAAA,QACF,MAAM,KAAK,SAAS,MAAM,MAAM,SAAS;AAAA,QACzC,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK,uBAAuB,SAAS,KAAK;AAAA;AAAA,IAErD;AAAA;AAAA,OAMI,KAAI,GAAkB;AAAA,IAC1B,WAAW,SAAS,KAAK,OAAO,OAAO,GAAG;AAAA,MACxC,MAAM,OAAO,WAAW;AAAA,MACxB,MAAM,YAAY;AAAA,MAClB,MAAM,UAAU;AAAA,IAClB;AAAA,IACA,OAAO,KAAK,wBAAwB;AAAA;AAAA,EAOtC,WAAW,GAAY;AAAA,IACrB,MAAM,SAAS;AAAA,IACf,MAAM,SAAS,KAAK,UAAU,IAAI;AAAA,IAClC,IAAI,OAAO,SAAS,KAAK,OAAO,OAAO,cAAc,WAAW;AAAA,MAC9D,OAAO,OAAO,cAAc,OAAO,WAAW;AAAA,IAChD;AAAA,IACA,OAAO,MAAM,KAAK,OAAO,OAAO,CAAC,EAAE,KAAK,CAAC,UAAU,MAAM,aAAa,MAAM,OAAO;AAAA;AAAA,EAGrF,YAAY,CAAC,SAAiC;AAAA,IAC5C,MAAM,SAAS;AAAA,IACf,MAAM,SAAS,KAAK,UAAU,IAAI;AAAA,IAClC,IAAI,OAAO,SAAS,KAAK,OAAO,UAAU,WAAW;AAAA,MACnD,OAAO,yBAAyB,OAAO,SAAS,SAAS;AAAA,IAC3D;AAAA,IACA,OAAO,yBACL,KAAK,qBAAqB,4BACtB,KAAK,mBACL,UACE,8BAA8B,OAAO,IACrC,KAAK,gBACb;AAAA;AAAA,EAGF,SAAS,GAAW;AAAA,IAClB,OAAO,KAAK,SAAS,EAAE,SAAS;AAAA;AAAA,EAGlC,aAAa,GAAW;AAAA,IACtB,OAAO,KAAK,SAAS,EAAE,SAAS;AAAA;AAAA,OAG5B,eAAc,CAAC,WAA2C;AAAA,IAC9D,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,MAAM,QAAQ,MAAM,OAAO,SAAS;AAAA,IACpC,OAAO,MACJ,OAAO,CAAC,SAAS,KAAK,gBAAgB,MAAM,MAAM,EAClD,IAAI,CAAC,UAAU;AAAA,MACd,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,OAAO,KAAK,aAAa,eAAe,gBAAgB,EAAE,GAAG,WAAW,GAAG;AAAA,MAC3E,gBAAgB,KAAK,kBAAkB,KAAK;AAAA,MAC5C,aAAa,KAAK,wBAAwB;AAAA,MAC1C,UAAU;AAAA,MACV,aAAa,KAAK,qBAAqB;AAAA,IACzC,EAAE;AAAA;AAAA,OAGA,YAAW,CAAC,MAAc,SAA+D;AAAA,IAC7F,MAAM,QAAQ,KAAK,SAAS,SAAS,SAAS;AAAA,IAC9C,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC,MAAM,IAAI;AAAA,IACZ;AAAA,IAEA,MAAM,SAAS,SAAS;AAAA,IACxB,IAAI,CAAC,QAAQ;AAAA,MACX,OAAO,EAAE,SAAS,OAAO,OAAO,sBAAsB;AAAA,IACxD;AAAA,IAGA,IAAI,iBAAiB;AAAA,IACrB,IAAI,uBAAuB,MAAM,GAAG;AAAA,MAClC,MAAM,WAAW,MAAM,MAAM,OAAO,kBAAkB,MAAM;AAAA,MAC5D,iBAAiB,SAAS;AAAA,IAC5B;AAAA,IAGA,MAAM,UAYF;AAAA,MACF,SAAa,YAAQ;AAAA,MACrB,MAAM;AAAA,IACR;AAAA,IAEA,IAAI,SAAS,WAAW;AAAA,MACtB,QAAQ,SAAS;AAAA,MACjB,QAAQ,iBAAiB;AAAA,IAC3B;AAAA,IAGA,IAAI,SAAS,YAAY,SAAS,SAAS;AAAA,MACzC,QAAQ,kBAAkB,CAAC;AAAA,MAE3B,IAAI,QAAQ,UAAU;AAAA,QACpB,QAAQ,gBAAgB,WAAe,iBAAa;AAAA,QACpD,QAAQ,gBAAgB,WAAW,QAAQ;AAAA,MAC7C;AAAA,MAEA,IAAI,QAAQ,SAAS;AAAA,QACnB,QAAQ,gBAAgB,mBAAmB;AAAA,UACzC,UAAU,QAAQ;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,WAAW,MAAM,MAAM,OAAO,YAClC,gBACA,OACF;AAAA,IACA,MAAM,UAAU,SAAS;AAAA,IAEzB,KAAK,QAAQ,oDAAyC;AAAA,MACpD,QAAQ;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,WAAW,MAAM;AAAA,IACnB,CAAiB;AAAA,IAEjB,OAAO;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,IACV;AAAA;AAAA,OAGI,aAAY,CAChB,QACA,SACA,OACA,WAC2B;AAAA,IAC3B,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC,MAAM,IAAI;AAAA,IACZ;AAAA,IAEA,MAAM,UAAU;AAAA,MACd,gBAAgB;AAAA,QACd,UAAc,iBAAa;AAAA,QAC3B,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IAEA,MAAM,WAAW,MAAM,MAAM,OAAO,UAAU,QAAY,cAAU,UAAU,OAAO;AAAA,IAErF,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS,SAAS;AAAA,MAClB;AAAA,IACF;AAAA;AAAA,OAGI,SAAQ,CAAC,eAAuB,WAAqC;AAAA,IACzE,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC,MAAM,IAAI;AAAA,IACZ;AAAA,IAEA,MAAM,WAAW,MAAM,MAAM,OAAO,SAAS,aAAa;AAAA,IAC1D,MAAM,SAAS,SAAS;AAAA,IAExB,OAAO,KAAK,eAAe,QAAQ;AAAA,IACnC,KAAK,QAAQ,kDAAwC;AAAA,MACnD,MAAM,EAAE,OAAO;AAAA,MACf,SAAS,KAAK;AAAA,MACd,WAAW,MAAM;AAAA,IACnB,CAAiB;AAAA,IAEjB,OAAO;AAAA;AAAA,OAGH,UAAS,CAAC,QAAgB,WAAmC;AAAA,IACjE,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC,MAAM,IAAI;AAAA,IACZ;AAAA,IAEA,MAAM,MAAM,OAAO,MAAM,MAAM;AAAA,IAC/B,OAAO,KAAK,aAAa,QAAQ;AAAA,IACjC,KAAK,QAAQ,8CAAsC;AAAA,MACjD;AAAA,MACA,SAAS,KAAK;AAAA,MACd,WAAW,MAAM;AAAA,IACnB,CAAiB;AAAA;AAAA,OAGb,WAAU,CACd,QACA,QACA,UAAkB,OAClB,WACe;AAAA,IACf,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC;AAAA,IACF;AAAA,IAEA,MAAM,MAAM,OAAO,WAAW,QAAQ,QAAQ,OAAO;AAAA;AAAA,OAGjD,gBAAe,CAAC,QAAgB,SAAiB,WAAmC;AAAA,IACxF,MAAM,QAAQ,KAAK,SAAS,SAAS;AAAA,IACrC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS;AAAA,MACtC;AAAA,IACF;AAAA,IAEA,MAAM,MAAM,OAAO,gBAAgB,IAAQ,gBAAY,EAAE,UAAU,SAAS,SAAS,OAAO,CAAC,CAAC;AAAA;AAAA,OAG1F,gBAAe,CAAC,eAAuB,SAAiC;AAAA,IAC5E,MAAM,OAAO,OAAO,QAAQ,SAAS,WAAW,QAAQ,KAAK,KAAK,IAAI;AAAA,IACtE,IAAI,CAAC,MAAM;AAAA,MACT;AAAA,IACF;AAAA,IACA,MAAM,KAAK,YAAY,MAAM;AAAA,MAC3B,WAAW,oBAAoB,OAAO,KAAK,KAAK,aAAa;AAAA,MAC7D,QAAQ;AAAA,IACV,CAAC;AAAA;AAAA,OAGG,kBAAiB,CAAC,eAAuB,SAAiC;AAAA,IAC9E,MAAM,KAAK,gBAAgB,eAAe,OAAO;AAAA;AAAA,OAGrC,kBAAiB,CAC7B,SACA,QACA,SACe;AAAA,IACf,MAAM,qBAAqB,yBACzB,OAAO,aAAa,oBAAoB,SAAS,MAAM,KAAK,KAAK,aAAa,CAChF;AAAA,IACA,KAAK,SAAS,kBAAkB;AAAA,IAEhC,MAAM,OAAO,OAAO,QAAQ,SAAS,WAAW,QAAQ,KAAK,KAAK,IAAI;AAAA,IACtE,IAAI,CAAC,MAAM;AAAA,MACT;AAAA,IACF;AAAA,IAEA,MAAM,OAAO,OAAO,SAAS,MAAM,QAAQ,QAAQ,OAAO,MAAM,IAAI;AAAA,IACpE,MAAM,gBAAgB,OACpB,OAAO,aACL,MAAM,cACL,OAAO,OAAO,WAAW,aACzB,oBAAoB,OAAO,MAAM,KAAK,uBAAuB,OAAO,MAAM,KACvE,OAAO,SACP,GACR,EAAE,KAAK;AAAA,IAEP,IAAI,CAAC,eAAe;AAAA,MAClB,MAAM,IAAI,MAAM,6CAA6C;AAAA,IAC/D;AAAA,IAEA,MAAM,KAAK,YAAY,MAAM;AAAA,MAC3B,WAAW;AAAA,MACX,QAAQ;AAAA,SACL,yBAAyB,SAAS,MAAM;AAAA,IAC7C,CAAC;AAAA;AAAA,EAGK,QAAQ,CAAC,YAAY,KAAK,kBAAsC;AAAA,IACtE,MAAM,aAAa,yBAAyB,SAAS;AAAA,IACrD,MAAM,SAAS,KAAK,UAAU,IAAI;AAAA,IAClC,MAAM,QAAQ,OAAO,IAAI,UAAU;AAAA,IACnC,IAAI,OAAO;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,SAAS;AAAA,IAMf,IAAI,OAAO,UAAU;AAAA,MACnB,OAAO;AAAA,QACL,WAAW,yBAAyB,OAAO,SAAS,aAAa,UAAU;AAAA,QAC3E,UAAU,OAAO;AAAA,QACjB,QAAQ,OAAO,UAAW,CAAC;AAAA,QAC3B,WAAW,OAAO,aAAa;AAAA,QAC/B,SAAS,OAAO,WAAW;AAAA,MAC7B;AAAA,IACF;AAAA,IAEA,MAAM,IAAI,MAAM,mBAAmB,uDAAuD;AAAA;AAE9F;;AEz5BO,IAAM,qBAAqB;AAElC,SAAS,UAAU,CAAC,UAAkC;AAAA,EAEpD,IAAI,SAAS,cAAc,SAAS,QAAQ;AAAA,IAC1C,OAAO,GAAG,SAAS,cAAc,SAAS;AAAA,EAC5C;AAAA,EACA,OAAO,yBAAyB,SAAS,SAAS;AAAA;AAGpD,SAAS,kBAAkB,CAAC,UAA4C;AAAA,EACtE,MAAM,MAAM,KAAK,IAAI;AAAA,EACrB,MAAM,aAAa,QAAQ,SAAS,cAAc,SAAS,UAAU,SAAS,WAAW;AAAA,EACzF,OAAO;AAAA,IACL,IAAI,yBAAyB,SAAS,SAAS;AAAA,IAC/C,UAAU;AAAA,IACV,OAAO,SAAS,UAAU,SAAS;AAAA,IACnC,MAAM;AAAA,IACN,SAAS,CAAC,WAAW;AAAA,IACrB,YAAY;AAAA,IACZ,QAAQ,SAAS,YAAY,SAAS,aAAa,cAAc;AAAA,IACjE,YAAY,WAAW,QAAQ;AAAA,IAC/B,eAAe,SAAS,UAAU;AAAA,IAClC,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,MACR,YAAY,SAAS,cAAc;AAAA,MACnC,QAAQ,SAAS,UAAU;AAAA,MAC3B,UAAU,SAAS,YAAY;AAAA,MAC/B,YAAY,SAAS,cAAc;AAAA,MACnC,UAAU,SAAS,YAAY;AAAA,IACjC;AAAA,EACF;AAAA;AAGK,SAAS,oCAAoC,CAClD,SAC0B;AAAA,EAC1B,OAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc,OAAO,aAAmE;AAAA,MACtF,MAAM,MAAM,qBAAqB,OAAO;AAAA,MACxC,IAAI,IAAI,WAAW,GAAG;AAAA,QACpB,OAAO;AAAA,UACL,mBAAmB,6BAA6B,SAAS,yBAAyB,CAAC;AAAA,QACrF;AAAA,MACF;AAAA,MACA,OAAO,IAAI,IAAI,CAAC,OAAO,mBAAmB,6BAA6B,SAAS,EAAE,CAAC,CAAC;AAAA;AAAA,IAEtF,eAAe,OAAO,OAA8B,aAAsC;AAAA,MACxF,OAAO;AAAA,WACF;AAAA,QACH,UAAU;AAAA,QACV,MAAM,MAAM,QAAQ;AAAA,QACpB,SAAS,MAAM,WAAW,CAAC,WAAW;AAAA,QACtC,YAAY,MAAM,cAAc;AAAA,QAChC,QAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA;AAAA,IAEF,cAAc,OACZ,YACA,OACA,aACG;AAAA,MACH,OAAO,KAAK,OAAO,UAAU,mBAAmB;AAAA;AAAA,IAElD,eAAe,OAAO,YAAoB,aAAsC;AAAA,EAIlF;AAAA;;;ACrGF,oBAA6B;AAI7B,IAAM,oCAAoC;AAM1C,IAAM,YAAY,CAAC,WAAW;AAAA;AAEvB,MAAM,yCAAyC,SAAQ;AAAA,SACnC,cAAc;AAAA,EAC9B,wBAAwB;AAAA,cAEpB,MAAK,CAAC,SAAmE;AAAA,IACpF,OAAO,IAAI,iCAAiC,OAAO;AAAA;AAAA,OAG/C,KAAI,GAAkB;AAAA,OAEtB,QAAO,CAAC,SAAiB,UAAqD;AAAA,IAClF,IAAI,aAAa;AAAA,MAAa,OAAO;AAAA,IACrC,MAAM,cAAc,KAAK,QAAQ,WAAW,qBAAqB;AAAA,IACjE,MAAM,aAAa,KAAK,QAAQ,WAAW,mBAAmB;AAAA,IAC9D,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,KAAK;AAAA,MAAG,OAAO;AAAA,IACxD,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,MAAM,EAAE,aAAa,YAAY,KAAK,GAAG,eAAe,WAAW,KAAK,EAAE;AAAA,IAC5E;AAAA;AAAA,EAGF,oBAAoB,CAAC,WAAqE;AAAA,IACxF,OAAO;AAAA,MACL,WAAW,UAAU,OAAO,CAAC,MAAM,UAAU,SAAS,CAAC,CAAC;AAAA,MACxD,aAAa,UAAU,OAAO,CAAC,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;AAAA,IAC7D;AAAA;AAEJ;;;ALhBA,IAAM,eAAuB;AAAA,EAC3B,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,UAAU,CAAC,eAAe,gCAAgC;AAAA,EAE1D,SAAS,CAAC;AAAA,EAEV,WAAW,CAAC;AAAA,EAEZ,OAAO,CAAC;AAAA,EAKR,YAAY;AAAA,IACV,eAAe,CAAC,QAAQ;AAAA,EAC1B;AAAA,EAEA,MAAM,OAAO,SAAiC,YAA0C;AAAA,IAEtF,IAAI;AAAA,MACF,MAAM,UAAU,2BAA2B,OAAO;AAAA,MAClD,QAAQ,iBAAiB,qCAAqC,OAAO,CAAC;AAAA,MACtE,OAAO,KAAK;AAAA,MACZ,QAAO,KACL;AAAA,QACE,KAAK;AAAA,QACL,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MACtD,GACA,iEACF;AAAA;AAAA,IAGF,MAAM,aAAa,QAAQ,WAAW,mBAAmB;AAAA,IACzD,MAAM,SAAS,QAAQ,WAAW,gBAAgB;AAAA,IAClD,MAAM,cAAc,QAAQ,WAAW,qBAAqB;AAAA,IAE5D,QAAO,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,IAC1B,QAAO,KAAK,6BAA6B;AAAA,IACzC,QAAO,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,IAC1B,QAAO,KAAK,iBAAiB,aAAa,KAAI,eAAe,wBAAwB;AAAA,IACrF,QAAO,KAAK,cAAc,SAAS,KAAI,WAAW,wBAAwB;AAAA,IAC1E,QAAO,KAAK,mBAAmB,cAAc,UAAS,wBAAwB;AAAA,IAC9E,QAAO,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,IAG1B,MAAM,UAAoB,CAAC;AAAA,IAC3B,IAAI,CAAC;AAAA,MAAY,QAAQ,KAAK,mBAAmB;AAAA,IACjD,IAAI,CAAC;AAAA,MAAQ,QAAQ,KAAK,gBAAgB;AAAA,IAC1C,IAAI,CAAC;AAAA,MAAa,QAAQ,KAAK,qBAAqB;AAAA,IAEpD,IAAI,QAAQ,SAAS,GAAG;AAAA,MACtB,QAAO,KAAK,kDAAkD,QAAQ,KAAK,IAAI,GAAG;AAAA,IACpF;AAAA,IAGA,MAAM,WAAW,QAAQ,WAAW,kBAAkB;AAAA,IACtD,MAAM,QAAQ,QAAQ,WAAW,cAAc;AAAA,IAC/C,MAAM,WAAW,QAAQ,WAAW,kBAAkB;AAAA,IACtD,MAAM,aAAa,QAAQ,WAAW,mBAAmB;AAAA,IACzD,MAAM,iBAAiB,QAAQ,WAAW,wBAAwB;AAAA,IAElE,IAAI,UAAU;AAAA,MACZ,QAAO,KAAK,gBAAgB,UAAU;AAAA,IACxC;AAAA,IAEA,IAAI,OAAO;AAAA,MACT,QAAO,KAAK,sBAAsB,OAAO;AAAA,IAC3C;AAAA,IAEA,IAAI,aAAa,QAAQ;AAAA,MACvB,QAAO,KAAK,gCAA+B;AAAA,IAC7C;AAAA,IAEA,IAAI,eAAe,QAAQ;AAAA,MACzB,QAAO,KAAK,oCAAmC;AAAA,IACjD;AAAA,IAEA,IAAI,mBAAmB,QAAQ;AAAA,MAC7B,QAAO,KAAK,uEAAsE;AAAA,IACpF;AAAA;AAEJ;AAEA,IAAe;",
|
|
13
|
-
"debugId": "2890053EB234064664756E2164756E21",
|
|
14
|
-
"names": []
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":""}
|
package/dist/service.d.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matrix service implementation for ElizaOS.
|
|
3
|
-
*
|
|
4
|
-
* This service provides Matrix messaging capabilities using matrix-js-sdk.
|
|
5
|
-
*/
|
|
6
|
-
import { type Content, type IAgentRuntime, Service } from "@elizaos/core";
|
|
7
|
-
import { type IMatrixService, type MatrixMessageSendOptions, type MatrixRoom, type MatrixSendResult } from "./types.js";
|
|
8
|
-
/**
|
|
9
|
-
* Matrix messaging service for ElizaOS agents.
|
|
10
|
-
*/
|
|
11
|
-
export declare class MatrixService extends Service implements IMatrixService {
|
|
12
|
-
static serviceType: string;
|
|
13
|
-
capabilityDescription: string;
|
|
14
|
-
protected runtime: IAgentRuntime;
|
|
15
|
-
private states;
|
|
16
|
-
private defaultAccountId;
|
|
17
|
-
/**
|
|
18
|
-
* Start the Matrix service.
|
|
19
|
-
*/
|
|
20
|
-
static start(runtime: IAgentRuntime): Promise<MatrixService>;
|
|
21
|
-
/**
|
|
22
|
-
* Stop the Matrix service.
|
|
23
|
-
*/
|
|
24
|
-
static stopRuntime(runtime: IAgentRuntime): Promise<void>;
|
|
25
|
-
static registerSendHandlers(runtime: IAgentRuntime, service: MatrixService, accountId?: string): void;
|
|
26
|
-
/**
|
|
27
|
-
* Initialize the Matrix service.
|
|
28
|
-
*/
|
|
29
|
-
private initialize;
|
|
30
|
-
/**
|
|
31
|
-
* Load settings from runtime.
|
|
32
|
-
*/
|
|
33
|
-
private loadSettings;
|
|
34
|
-
/**
|
|
35
|
-
* Validate the settings.
|
|
36
|
-
*/
|
|
37
|
-
private validateSettings;
|
|
38
|
-
/**
|
|
39
|
-
* Set up event handlers for the Matrix client.
|
|
40
|
-
*/
|
|
41
|
-
private setupEventHandlers;
|
|
42
|
-
/**
|
|
43
|
-
* Handle an incoming room message.
|
|
44
|
-
*/
|
|
45
|
-
private handleRoomMessage;
|
|
46
|
-
/**
|
|
47
|
-
* Connect to Matrix.
|
|
48
|
-
*/
|
|
49
|
-
private connect;
|
|
50
|
-
/**
|
|
51
|
-
* Shutdown the service.
|
|
52
|
-
*/
|
|
53
|
-
stop(): Promise<void>;
|
|
54
|
-
isConnected(): boolean;
|
|
55
|
-
getAccountId(runtime?: IAgentRuntime): string;
|
|
56
|
-
getUserId(): string;
|
|
57
|
-
getHomeserver(): string;
|
|
58
|
-
getJoinedRooms(accountId?: string): Promise<MatrixRoom[]>;
|
|
59
|
-
sendMessage(text: string, options?: MatrixMessageSendOptions): Promise<MatrixSendResult>;
|
|
60
|
-
sendReaction(roomId: string, eventId: string, emoji: string, accountId?: string): Promise<MatrixSendResult>;
|
|
61
|
-
joinRoom(roomIdOrAlias: string, accountId?: string): Promise<string>;
|
|
62
|
-
leaveRoom(roomId: string, accountId?: string): Promise<void>;
|
|
63
|
-
sendTyping(roomId: string, typing: boolean, timeout?: number, accountId?: string): Promise<void>;
|
|
64
|
-
sendReadReceipt(roomId: string, eventId: string, accountId?: string): Promise<void>;
|
|
65
|
-
sendRoomMessage(roomIdOrAlias: string, content: Content): Promise<void>;
|
|
66
|
-
sendDirectMessage(roomIdOrAlias: string, content: Content): Promise<void>;
|
|
67
|
-
private handleSendMessage;
|
|
68
|
-
private getState;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=service.d.ts.map
|
package/dist/service.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,aAAa,EAKlB,OAAO,EAGR,MAAM,eAAe,CAAC;AAWvB,OAAO,EAEL,KAAK,cAAc,EAOnB,KAAK,wBAAwB,EAE7B,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGtB,MAAM,YAAY,CAAC;AAqLpB;;GAEG;AACH,qBAAa,aAAc,SAAQ,OAAQ,YAAW,cAAc;IAClE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAuB;IAEjD,qBAAqB,SAAqD;IAE1E,UAAkB,OAAO,EAAE,aAAa,CAAC;IACzC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,gBAAgB,CAA6B;IAErD;;OAEG;WACU,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAMlE;;OAEG;WACmB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE,MAAM,CAAC,oBAAoB,CACzB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,SAAS,SAAgC,GACxC,IAAI;IAyKP;;OAEG;YACW,UAAU;IAwCxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;OAEG;YACW,OAAO;IAyBrB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,WAAW,IAAI,OAAO;IAStB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;IAe7C,SAAS,IAAI,MAAM;IAInB,aAAa,IAAI,MAAM;IAIjB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgBzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8ExF,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IAuBtB,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5D,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,MAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IASV,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnF,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjE,iBAAiB;IAoC/B,OAAO,CAAC,QAAQ;CA0BjB"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for the Matrix plugin.
|
|
3
|
-
*/
|
|
4
|
-
import type { IAgentRuntime, Service } from "@elizaos/core";
|
|
5
|
-
/** Maximum message length for Matrix */
|
|
6
|
-
export declare const MAX_MATRIX_MESSAGE_LENGTH = 4000;
|
|
7
|
-
/** Service name constant */
|
|
8
|
-
export declare const MATRIX_SERVICE_NAME = "matrix";
|
|
9
|
-
/** Event types emitted by the Matrix plugin */
|
|
10
|
-
export declare enum MatrixEventTypes {
|
|
11
|
-
MESSAGE_RECEIVED = "MATRIX_MESSAGE_RECEIVED",
|
|
12
|
-
MESSAGE_SENT = "MATRIX_MESSAGE_SENT",
|
|
13
|
-
ROOM_JOINED = "MATRIX_ROOM_JOINED",
|
|
14
|
-
ROOM_LEFT = "MATRIX_ROOM_LEFT",
|
|
15
|
-
INVITE_RECEIVED = "MATRIX_INVITE_RECEIVED",
|
|
16
|
-
REACTION_RECEIVED = "MATRIX_REACTION_RECEIVED",
|
|
17
|
-
TYPING_RECEIVED = "MATRIX_TYPING_RECEIVED",
|
|
18
|
-
SYNC_COMPLETE = "MATRIX_SYNC_COMPLETE",
|
|
19
|
-
CONNECTION_READY = "MATRIX_CONNECTION_READY",
|
|
20
|
-
CONNECTION_LOST = "MATRIX_CONNECTION_LOST"
|
|
21
|
-
}
|
|
22
|
-
/** Configuration settings for the Matrix plugin */
|
|
23
|
-
export interface MatrixSettings {
|
|
24
|
-
/** Connector account identifier for this Matrix bot instance */
|
|
25
|
-
accountId?: string;
|
|
26
|
-
/** Matrix homeserver URL */
|
|
27
|
-
homeserver: string;
|
|
28
|
-
/** Matrix user ID (@user:homeserver) */
|
|
29
|
-
userId: string;
|
|
30
|
-
/** Access token for authentication */
|
|
31
|
-
accessToken: string;
|
|
32
|
-
/** Device ID for this session */
|
|
33
|
-
deviceId?: string;
|
|
34
|
-
/** Rooms to auto-join */
|
|
35
|
-
rooms: string[];
|
|
36
|
-
/** Whether to auto-accept invites */
|
|
37
|
-
autoJoin: boolean;
|
|
38
|
-
/** Enable end-to-end encryption */
|
|
39
|
-
encryption: boolean;
|
|
40
|
-
/** Require mention to respond in rooms */
|
|
41
|
-
requireMention: boolean;
|
|
42
|
-
/** Whether this configuration is enabled */
|
|
43
|
-
enabled: boolean;
|
|
44
|
-
}
|
|
45
|
-
/** Information about a Matrix user */
|
|
46
|
-
export interface MatrixUserInfo {
|
|
47
|
-
/** Matrix user ID (@user:homeserver) */
|
|
48
|
-
userId: string;
|
|
49
|
-
/** Display name */
|
|
50
|
-
displayName?: string;
|
|
51
|
-
/** Avatar URL */
|
|
52
|
-
avatarUrl?: string;
|
|
53
|
-
}
|
|
54
|
-
/** Represents a Matrix room */
|
|
55
|
-
export interface MatrixRoom {
|
|
56
|
-
/** Room ID (!room:homeserver) */
|
|
57
|
-
roomId: string;
|
|
58
|
-
/** Room name */
|
|
59
|
-
name?: string;
|
|
60
|
-
/** Room topic */
|
|
61
|
-
topic?: string;
|
|
62
|
-
/** Room alias (#alias:homeserver) */
|
|
63
|
-
canonicalAlias?: string;
|
|
64
|
-
/** Whether room is encrypted */
|
|
65
|
-
isEncrypted: boolean;
|
|
66
|
-
/** Whether this is a direct message room */
|
|
67
|
-
isDirect: boolean;
|
|
68
|
-
/** Member count */
|
|
69
|
-
memberCount: number;
|
|
70
|
-
}
|
|
71
|
-
/** Represents a Matrix message */
|
|
72
|
-
export interface MatrixMessage {
|
|
73
|
-
/** Event ID */
|
|
74
|
-
eventId: string;
|
|
75
|
-
/** Room ID */
|
|
76
|
-
roomId: string;
|
|
77
|
-
/** Sender user ID */
|
|
78
|
-
sender: string;
|
|
79
|
-
/** Sender info */
|
|
80
|
-
senderInfo: MatrixUserInfo;
|
|
81
|
-
/** Message content */
|
|
82
|
-
content: string;
|
|
83
|
-
/** Message type (m.text, m.image, etc.) */
|
|
84
|
-
msgType: string;
|
|
85
|
-
/** Formatted body (HTML) */
|
|
86
|
-
formattedBody?: string;
|
|
87
|
-
/** Timestamp */
|
|
88
|
-
timestamp: number;
|
|
89
|
-
/** Thread root event ID */
|
|
90
|
-
threadId?: string;
|
|
91
|
-
/** Reply-to event ID */
|
|
92
|
-
replyTo?: string;
|
|
93
|
-
/** Whether this is an edit */
|
|
94
|
-
isEdit: boolean;
|
|
95
|
-
/** Original event ID if this is an edit */
|
|
96
|
-
replacesEventId?: string;
|
|
97
|
-
}
|
|
98
|
-
/** Options for sending a message */
|
|
99
|
-
export interface MatrixMessageSendOptions {
|
|
100
|
-
/** Connector account identifier */
|
|
101
|
-
accountId?: string;
|
|
102
|
-
/** Room ID or alias to send to */
|
|
103
|
-
roomId?: string;
|
|
104
|
-
/** Event ID to reply to */
|
|
105
|
-
replyTo?: string;
|
|
106
|
-
/** Thread root event ID */
|
|
107
|
-
threadId?: string;
|
|
108
|
-
/** Format as HTML */
|
|
109
|
-
formatted?: boolean;
|
|
110
|
-
/** Media URL to attach */
|
|
111
|
-
mediaUrl?: string;
|
|
112
|
-
}
|
|
113
|
-
/** Result from sending a message */
|
|
114
|
-
export interface MatrixSendResult {
|
|
115
|
-
/** Whether the send succeeded */
|
|
116
|
-
success: boolean;
|
|
117
|
-
/** Event ID of the sent message */
|
|
118
|
-
eventId?: string;
|
|
119
|
-
/** Room ID */
|
|
120
|
-
roomId?: string;
|
|
121
|
-
/** Error message if failed */
|
|
122
|
-
error?: string;
|
|
123
|
-
}
|
|
124
|
-
/** Interface for the Matrix service */
|
|
125
|
-
export interface IMatrixService extends Service {
|
|
126
|
-
/** Check if the service is connected */
|
|
127
|
-
isConnected(): boolean;
|
|
128
|
-
/** Get the user ID */
|
|
129
|
-
getUserId(): string;
|
|
130
|
-
/** Get the homeserver URL */
|
|
131
|
-
getHomeserver(): string;
|
|
132
|
-
/** Get joined rooms */
|
|
133
|
-
getJoinedRooms(): Promise<MatrixRoom[]>;
|
|
134
|
-
/** Send a message */
|
|
135
|
-
sendMessage(text: string, options?: MatrixMessageSendOptions): Promise<MatrixSendResult>;
|
|
136
|
-
/** Send a reaction */
|
|
137
|
-
sendReaction(roomId: string, eventId: string, emoji: string): Promise<MatrixSendResult>;
|
|
138
|
-
/** Join a room */
|
|
139
|
-
joinRoom(roomIdOrAlias: string): Promise<string>;
|
|
140
|
-
/** Leave a room */
|
|
141
|
-
leaveRoom(roomId: string): Promise<void>;
|
|
142
|
-
/** Send typing indicator */
|
|
143
|
-
sendTyping(roomId: string, typing: boolean, timeout?: number): Promise<void>;
|
|
144
|
-
/** Send read receipt */
|
|
145
|
-
sendReadReceipt(roomId: string, eventId: string): Promise<void>;
|
|
146
|
-
}
|
|
147
|
-
/** Payload for MESSAGE_RECEIVED event */
|
|
148
|
-
export interface MatrixMessageReceivedPayload {
|
|
149
|
-
message: MatrixMessage;
|
|
150
|
-
room: MatrixRoom;
|
|
151
|
-
runtime: IAgentRuntime;
|
|
152
|
-
}
|
|
153
|
-
/** Payload for MESSAGE_SENT event */
|
|
154
|
-
export interface MatrixMessageSentPayload {
|
|
155
|
-
roomId: string;
|
|
156
|
-
eventId: string;
|
|
157
|
-
content: string;
|
|
158
|
-
}
|
|
159
|
-
/** Payload for ROOM_JOINED event */
|
|
160
|
-
export interface MatrixRoomJoinedPayload {
|
|
161
|
-
room: MatrixRoom;
|
|
162
|
-
}
|
|
163
|
-
/** Payload for INVITE_RECEIVED event */
|
|
164
|
-
export interface MatrixInviteReceivedPayload {
|
|
165
|
-
roomId: string;
|
|
166
|
-
inviter: string;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Check if a string is a valid Matrix user ID.
|
|
170
|
-
*/
|
|
171
|
-
export declare function isValidMatrixUserId(userId: string): boolean;
|
|
172
|
-
/**
|
|
173
|
-
* Check if a string is a valid Matrix room ID.
|
|
174
|
-
*/
|
|
175
|
-
export declare function isValidMatrixRoomId(roomId: string): boolean;
|
|
176
|
-
/**
|
|
177
|
-
* Check if a string is a valid Matrix room alias.
|
|
178
|
-
*/
|
|
179
|
-
export declare function isValidMatrixRoomAlias(alias: string): boolean;
|
|
180
|
-
/**
|
|
181
|
-
* Extract the localpart from a Matrix ID.
|
|
182
|
-
*/
|
|
183
|
-
export declare function getMatrixLocalpart(matrixId: string): string;
|
|
184
|
-
/**
|
|
185
|
-
* Extract the server part from a Matrix ID.
|
|
186
|
-
*/
|
|
187
|
-
export declare function getMatrixServerpart(matrixId: string): string;
|
|
188
|
-
/**
|
|
189
|
-
* Get the best display name for a Matrix user.
|
|
190
|
-
*/
|
|
191
|
-
export declare function getMatrixUserDisplayName(user: MatrixUserInfo): string;
|
|
192
|
-
/**
|
|
193
|
-
* Convert a media URL to an HTTP URL via homeserver.
|
|
194
|
-
*/
|
|
195
|
-
export declare function matrixMxcToHttp(mxcUrl: string, homeserver: string): string | undefined;
|
|
196
|
-
/** Base error class for Matrix plugin errors */
|
|
197
|
-
export declare class MatrixPluginError extends Error {
|
|
198
|
-
constructor(message: string);
|
|
199
|
-
}
|
|
200
|
-
/** Error when the Matrix service is not initialized */
|
|
201
|
-
export declare class MatrixServiceNotInitializedError extends MatrixPluginError {
|
|
202
|
-
constructor(message?: string);
|
|
203
|
-
}
|
|
204
|
-
/** Error when the Matrix client is not connected */
|
|
205
|
-
export declare class MatrixNotConnectedError extends MatrixPluginError {
|
|
206
|
-
constructor(message?: string);
|
|
207
|
-
}
|
|
208
|
-
/** Error when there is a configuration problem */
|
|
209
|
-
export declare class MatrixConfigurationError extends MatrixPluginError {
|
|
210
|
-
settingName?: string;
|
|
211
|
-
constructor(message: string, settingName?: string);
|
|
212
|
-
}
|
|
213
|
-
/** Error when an API call fails */
|
|
214
|
-
export declare class MatrixApiError extends MatrixPluginError {
|
|
215
|
-
errcode?: string;
|
|
216
|
-
constructor(message: string, errcode?: string);
|
|
217
|
-
}
|
|
218
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type IAgentRuntime, Service } from "@elizaos/core";
|
|
2
|
-
type CredentialProviderResult = {
|
|
3
|
-
status: "credential_data";
|
|
4
|
-
data: Record<string, unknown>;
|
|
5
|
-
} | {
|
|
6
|
-
status: "needs_auth";
|
|
7
|
-
authUrl: string;
|
|
8
|
-
} | null;
|
|
9
|
-
export declare class MatrixWorkflowCredentialProvider extends Service {
|
|
10
|
-
static readonly serviceType = "workflow_credential_provider";
|
|
11
|
-
capabilityDescription: string;
|
|
12
|
-
static start(runtime: IAgentRuntime): Promise<MatrixWorkflowCredentialProvider>;
|
|
13
|
-
stop(): Promise<void>;
|
|
14
|
-
resolve(_userId: string, credType: string): Promise<CredentialProviderResult>;
|
|
15
|
-
checkCredentialTypes(credTypes: string[]): {
|
|
16
|
-
supported: string[];
|
|
17
|
-
unsupported: string[];
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=workflow-credential-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-credential-provider.d.ts","sourceRoot":"","sources":["../src/workflow-credential-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK5D,KAAK,wBAAwB,GACzB;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC5D;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC,IAAI,CAAC;AAIT,qBAAa,gCAAiC,SAAQ,OAAO;IAC3D,gBAAyB,WAAW,kCAAqC;IAChE,qBAAqB,SAAyD;WAE1E,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAI/E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAErB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAWnF,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE;CAM1F"}
|