@ixo/matrix 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +396 -0
  2. package/dist/src/checkpointer/checkpointer.d.ts +56 -0
  3. package/dist/src/checkpointer/checkpointer.d.ts.map +1 -0
  4. package/dist/src/checkpointer/checkpointer.js +669 -0
  5. package/dist/src/checkpointer/checkpointer.js.map +1 -0
  6. package/dist/src/checkpointer/index.d.ts +3 -0
  7. package/dist/src/checkpointer/index.d.ts.map +1 -0
  8. package/dist/src/checkpointer/index.js +3 -0
  9. package/dist/src/checkpointer/index.js.map +1 -0
  10. package/dist/src/checkpointer/types.d.ts +66 -0
  11. package/dist/src/checkpointer/types.d.ts.map +1 -0
  12. package/dist/src/checkpointer/types.js +2 -0
  13. package/dist/src/checkpointer/types.js.map +1 -0
  14. package/dist/src/checkpointer/utils.d.ts +2 -0
  15. package/dist/src/checkpointer/utils.d.ts.map +1 -0
  16. package/dist/src/checkpointer/utils.js +15 -0
  17. package/dist/src/checkpointer/utils.js.map +1 -0
  18. package/dist/src/index.d.ts +5 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/src/index.js +5 -0
  21. package/dist/src/index.js.map +1 -0
  22. package/dist/src/matrix-manager.d.ts +61 -0
  23. package/dist/src/matrix-manager.d.ts.map +1 -0
  24. package/dist/src/matrix-manager.js +337 -0
  25. package/dist/src/matrix-manager.js.map +1 -0
  26. package/dist/src/matrix-state-manager/index.d.ts +2 -0
  27. package/dist/src/matrix-state-manager/index.d.ts.map +1 -0
  28. package/dist/src/matrix-state-manager/index.js +2 -0
  29. package/dist/src/matrix-state-manager/index.js.map +1 -0
  30. package/dist/src/matrix-state-manager/matrix-state-manager.d.ts +22 -0
  31. package/dist/src/matrix-state-manager/matrix-state-manager.d.ts.map +1 -0
  32. package/dist/src/matrix-state-manager/matrix-state-manager.js +172 -0
  33. package/dist/src/matrix-state-manager/matrix-state-manager.js.map +1 -0
  34. package/dist/src/types/matrix.d.ts +27 -0
  35. package/dist/src/types/matrix.d.ts.map +1 -0
  36. package/dist/src/types/matrix.js +2 -0
  37. package/dist/src/types/matrix.js.map +1 -0
  38. package/dist/src/types.d.ts +64 -0
  39. package/dist/src/types.d.ts.map +1 -0
  40. package/dist/src/types.js +55 -0
  41. package/dist/src/types.js.map +1 -0
  42. package/dist/src/utils/cache.d.ts +13 -0
  43. package/dist/src/utils/cache.d.ts.map +1 -0
  44. package/dist/src/utils/cache.js +44 -0
  45. package/dist/src/utils/cache.js.map +1 -0
  46. package/dist/src/utils/create-simple-matrix-client.d.ts +45 -0
  47. package/dist/src/utils/create-simple-matrix-client.d.ts.map +1 -0
  48. package/dist/src/utils/create-simple-matrix-client.js +269 -0
  49. package/dist/src/utils/create-simple-matrix-client.js.map +1 -0
  50. package/dist/src/utils/format-msg.d.ts +13 -0
  51. package/dist/src/utils/format-msg.d.ts.map +1 -0
  52. package/dist/src/utils/format-msg.js +14 -0
  53. package/dist/src/utils/format-msg.js.map +1 -0
  54. package/dist/src/utils/login.d.ts +3 -0
  55. package/dist/src/utils/login.d.ts.map +1 -0
  56. package/dist/src/utils/login.js +10 -0
  57. package/dist/src/utils/login.js.map +1 -0
  58. package/dist/src/utils/mx.d.ts +7 -0
  59. package/dist/src/utils/mx.d.ts.map +1 -0
  60. package/dist/src/utils/mx.js +58 -0
  61. package/dist/src/utils/mx.js.map +1 -0
  62. package/dist/src/utils/secretStorageKeys.d.ts +10 -0
  63. package/dist/src/utils/secretStorageKeys.d.ts.map +1 -0
  64. package/dist/src/utils/secretStorageKeys.js +33 -0
  65. package/dist/src/utils/secretStorageKeys.js.map +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +60 -0
@@ -0,0 +1,22 @@
1
+ import 'dotenv/config';
2
+ interface IStatePayload<C> {
3
+ roomId: string;
4
+ stateKey: string;
5
+ data: C;
6
+ }
7
+ export declare class MatrixStateManager {
8
+ private readonly client;
9
+ private static instance;
10
+ private constructor();
11
+ listRooms(): Promise<string[]>;
12
+ static getInstance(): MatrixStateManager;
13
+ private validateRoom;
14
+ parseContent<C>(content: string, roomId: string, stateKey: string): Promise<C>;
15
+ getState<C>(roomId: string, stateKey: string): Promise<C>;
16
+ setState<C>(payload: IStatePayload<C>): Promise<void>;
17
+ updateState<C extends Record<string, unknown> | undefined>(payload: IStatePayload<C>): Promise<C>;
18
+ listStateEvents<D>(roomId: string): Promise<D[]>;
19
+ }
20
+ export declare const matrixStateManager: MatrixStateManager;
21
+ export {};
22
+ //# sourceMappingURL=matrix-state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-state-manager.d.ts","sourceRoot":"","sources":["../../../src/matrix-state-manager/matrix-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAgBvB,UAAU,aAAa,CAAC,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;CACT;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO;IAiBD,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAKtB,WAAW,IAAI,kBAAkB;IAO/C,OAAO,CAAC,YAAY;IASP,YAAY,CAAC,CAAC,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC;IAiDP,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA+BzD,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCrD,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7D,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAaP,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CA4EvD;AAED,eAAO,MAAM,kBAAkB,oBAAmC,CAAC"}
@@ -0,0 +1,172 @@
1
+ import 'dotenv/config';
2
+ import { deflateSync, inflateSync } from 'node:zlib';
3
+ import { Direction, MatrixClient, MatrixError, } from 'matrix-js-sdk';
4
+ import { parse, stringify } from 'superjson';
5
+ import { Logger } from '@ixo/logger';
6
+ import { logger } from 'matrix-js-sdk/lib/logger.js';
7
+ logger?.setLevel('ERROR');
8
+ export class MatrixStateManager {
9
+ client;
10
+ static instance;
11
+ constructor(client) {
12
+ if (!process.env.MATRIX_BASE_URL ||
13
+ !process.env.MATRIX_ORACLE_ADMIN_ACCESS_TOKEN) {
14
+ throw new Error('MATRIX_BASE_URL and MATRIX_ORACLE_ADMIN_ACCESS_TOKEN must be set');
15
+ }
16
+ this.client =
17
+ client ??
18
+ new MatrixClient({
19
+ baseUrl: process.env.MATRIX_BASE_URL,
20
+ accessToken: process.env.MATRIX_ORACLE_ADMIN_ACCESS_TOKEN,
21
+ });
22
+ }
23
+ async listRooms() {
24
+ const rooms = await this.client.getJoinedRooms();
25
+ return rooms.joined_rooms;
26
+ }
27
+ static getInstance() {
28
+ if (!MatrixStateManager.instance) {
29
+ MatrixStateManager.instance = new MatrixStateManager();
30
+ }
31
+ return MatrixStateManager.instance;
32
+ }
33
+ validateRoom(roomId) {
34
+ const roomRegex = /^!(?<roomId>[a-zA-Z0-9]+):(?<domain>(?<temp2>localhost|[a-zA-Z0-9.]+)(?<temp1>:\d{1,5})?)?$/;
35
+ if (!roomRegex.test(roomId)) {
36
+ Logger.error(`Invalid room ID: ${roomId}`);
37
+ throw new Error(`Invalid room ID: ${roomId}`);
38
+ }
39
+ }
40
+ async parseContent(content, roomId, stateKey) {
41
+ try {
42
+ const compressed = Buffer.from(content, 'base64');
43
+ const jsonBuf = inflateSync(compressed);
44
+ const str = jsonBuf.toString('utf8');
45
+ const data = parse(str);
46
+ return data;
47
+ }
48
+ catch (zlibError) {
49
+ const zlibErrorMsg = zlibError instanceof Error ? zlibError.message : String(zlibError);
50
+ Logger.info(`Failed to parse with zlib compression for ${stateKey} in room ${roomId}, attempting legacy format migration`);
51
+ try {
52
+ const legacyData = parse(content);
53
+ Logger.warn(`Successfully parsed legacy format for ${stateKey} in room ${roomId}, migrating to new format`);
54
+ return legacyData;
55
+ }
56
+ catch (legacyError) {
57
+ const legacyErrorMsg = legacyError instanceof Error
58
+ ? legacyError.message
59
+ : String(legacyError);
60
+ Logger.error(`Failed to parse content in both new and legacy formats for ${stateKey} in room ${roomId}`, {
61
+ zlibError: zlibErrorMsg,
62
+ legacyError: legacyErrorMsg,
63
+ contentPreview: content.substring(0, 100),
64
+ });
65
+ throw new Error(`Unable to parse state content in any supported format: ${legacyErrorMsg}`);
66
+ }
67
+ }
68
+ }
69
+ async getState(roomId, stateKey) {
70
+ try {
71
+ this.validateRoom(roomId);
72
+ const stateEvent = await this.client.getStateEvent(roomId, 'ixo.room.state', stateKey);
73
+ const content = stateEvent.data;
74
+ if (typeof content !== 'string') {
75
+ throw new Error(`Invalid content type: ${typeof content}`);
76
+ }
77
+ return this.parseContent(content, roomId, stateKey);
78
+ }
79
+ catch (error) {
80
+ if (error instanceof MatrixError) {
81
+ const isRateLimited = error.errcode === 'M_LIMIT_EXCEEDED';
82
+ if (isRateLimited) {
83
+ Logger.warn('Rate limited, retrying in 10 seconds');
84
+ await new Promise((resolve) => setTimeout(resolve, 10000));
85
+ return this.getState(roomId, stateKey);
86
+ }
87
+ }
88
+ throw error;
89
+ }
90
+ }
91
+ async setState(payload) {
92
+ try {
93
+ const str = stringify(payload.data);
94
+ const compressed = deflateSync(Buffer.from(str, 'utf8'));
95
+ const b64 = compressed.toString('base64');
96
+ Logger.debug(`Setting state for ${payload.stateKey} in room ${payload.roomId} (compressed: ${str.length} -> ${b64.length} chars)`);
97
+ await this.client.sendStateEvent(payload.roomId, 'ixo.room.state', { data: b64 }, payload.stateKey);
98
+ }
99
+ catch (error) {
100
+ Logger.error('Error setting state', error);
101
+ if (error instanceof MatrixError) {
102
+ const isRateLimited = error.errcode === 'M_LIMIT_EXCEEDED';
103
+ if (isRateLimited) {
104
+ Logger.warn('Rate limited, retrying in 10 seconds');
105
+ await new Promise((resolve) => setTimeout(resolve, 10000));
106
+ await this.setState(payload);
107
+ }
108
+ }
109
+ throw error;
110
+ }
111
+ }
112
+ async updateState(payload) {
113
+ let oldState;
114
+ try {
115
+ oldState = await this.getState(payload.roomId, payload.stateKey);
116
+ }
117
+ catch {
118
+ oldState = undefined;
119
+ }
120
+ const newState = oldState ? { ...oldState, ...payload.data } : payload.data;
121
+ await this.setState({ ...payload, data: newState });
122
+ return newState;
123
+ }
124
+ async listStateEvents(roomId) {
125
+ const data = [];
126
+ let migratedCount = 0;
127
+ let totalProcessed = 0;
128
+ const room = await this.client.peekInRoom(roomId);
129
+ Logger.info(`Starting to list state events for room ${room.roomId}`);
130
+ while (true) {
131
+ await this.client.scrollback(room, 100);
132
+ const timeline = room.getLiveTimeline();
133
+ if (!timeline.getPaginationToken(Direction.Backward))
134
+ break;
135
+ for (const event of timeline.getEvents()) {
136
+ const content = event.getContent().data;
137
+ if (content) {
138
+ totalProcessed++;
139
+ try {
140
+ try {
141
+ const compressed = Buffer.from(content, 'base64');
142
+ const jsonBuf = inflateSync(compressed);
143
+ const str = jsonBuf.toString('utf8');
144
+ data.push(parse(str));
145
+ }
146
+ catch (zlibError) {
147
+ Logger.warn(`Failed to parse with zlib compression for ${event.getId()} in room ${room.roomId}, attempting legacy format migration`, {
148
+ zlibError: zlibError instanceof Error
149
+ ? zlibError.message
150
+ : String(zlibError),
151
+ });
152
+ Logger.info(`Event ${event.getId()} in room ${room.roomId} uses legacy format, migrating`);
153
+ const legacyData = parse(content);
154
+ data.push(legacyData);
155
+ migratedCount++;
156
+ }
157
+ }
158
+ catch (err) {
159
+ Logger.error(`Error parsing event ${event.getId()} in room ${room.roomId}`, err);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ Logger.info(`Completed listing state events for room ${room.roomId}: ${totalProcessed} processed, ${migratedCount} legacy format detected`);
165
+ if (migratedCount > 0) {
166
+ Logger.info(`Found ${migratedCount} events in legacy format - will migrate on next access`);
167
+ }
168
+ return data;
169
+ }
170
+ }
171
+ export const matrixStateManager = MatrixStateManager.getInstance();
172
+ //# sourceMappingURL=matrix-state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-state-manager.js","sourceRoot":"","sources":["../../../src/matrix-state-manager/matrix-state-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface IRoomCreationOptions {
2
+ name: string;
3
+ alias: string;
4
+ adminUserId: string;
5
+ inviteUserId: string;
6
+ }
7
+ export interface IMessageOptions {
8
+ roomId: string;
9
+ message: string;
10
+ isOracleAdmin?: boolean;
11
+ oracleName?: string;
12
+ threadId?: string;
13
+ disablePrefix?: boolean;
14
+ }
15
+ export interface ICreateRoomAndJoinOptions {
16
+ did: string;
17
+ oracleName: string;
18
+ userAccessToken: string;
19
+ }
20
+ export interface IAction {
21
+ name: string;
22
+ args: Record<string, any>;
23
+ result: any;
24
+ error?: string;
25
+ success: boolean;
26
+ }
27
+ //# sourceMappingURL=matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/types/matrix.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../../src/types/matrix.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ export declare const supportedOracles: string[];
2
+ type LiteralUnion<LiteralType extends BaseType, BaseType extends string> = LiteralType | (BaseType & Record<never, never>);
3
+ export type OraclesNamesOnMatrix = LiteralUnion<(typeof supportedOracles)[number], string>;
4
+ export declare enum AgentVoice {
5
+ PUCK = "Puck",
6
+ CHARON = "Charon",
7
+ KORE = "Kore",
8
+ FENRIR = "Fenrir",
9
+ AOEDE = "Aoede",
10
+ LEDA = "Leda",
11
+ ORUS = "Orus",
12
+ ZEPHYR = "Zephyr"
13
+ }
14
+ export declare const SUPPORTED_VOICES: readonly ["Puck", "Charon", "Kore", "Fenrir", "Aoede", "Leda", "Orus", "Zephyr"];
15
+ export declare const SUPPORTED_LANGUAGES: {
16
+ readonly 'en-GB': "English (United Kingdom)";
17
+ readonly 'en-US': "English (United States)";
18
+ readonly 'de-DE': "German (Germany)";
19
+ readonly 'fr-FR': "French (France)";
20
+ readonly 'fr-CA': "French (Canada)";
21
+ readonly 'es-ES': "Spanish (Spain)";
22
+ readonly 'it-IT': "Italian (Italy)";
23
+ readonly 'nl-NL': "Dutch (Netherlands)";
24
+ readonly 'pl-PL': "Polish (Poland)";
25
+ readonly 'ru-RU': "Russian (Russia)";
26
+ readonly 'tr-TR': "Turkish (Turkey)";
27
+ readonly 'vi-VN': "Vietnamese (Vietnam)";
28
+ readonly 'ja-JP': "Japanese (Japan)";
29
+ readonly 'ko-KR': "Korean (South Korea)";
30
+ readonly 'zh-CN': "Mandarin Chinese (China)";
31
+ readonly 'th-TH': "Thai (Thailand)";
32
+ readonly 'id-ID': "Indonesian (Indonesia)";
33
+ readonly 'ar-XA': "Arabic (Generic)";
34
+ readonly 'hi-IN': "Hindi (India)";
35
+ readonly 'bn-IN': "Bengali (India)";
36
+ readonly 'gu-IN': "Gujarati (India)";
37
+ readonly 'kn-IN': "Kannada (India)";
38
+ readonly 'ml-IN': "Malayalam (India)";
39
+ readonly 'mr-IN': "Marathi (India)";
40
+ readonly 'ta-IN': "Tamil (India)";
41
+ readonly 'te-IN': "Telugu (India)";
42
+ };
43
+ export type VoiceName = (typeof SUPPORTED_VOICES)[number];
44
+ export type LanguageCode = keyof typeof SUPPORTED_LANGUAGES;
45
+ export declare const LANGUAGE_CODES: LanguageCode[];
46
+ export declare const LANGUAGE_NAMES: ("English (United Kingdom)" | "English (United States)" | "German (Germany)" | "French (France)" | "French (Canada)" | "Spanish (Spain)" | "Italian (Italy)" | "Dutch (Netherlands)" | "Polish (Poland)" | "Russian (Russia)" | "Turkish (Turkey)" | "Vietnamese (Vietnam)" | "Japanese (Japan)" | "Korean (South Korea)" | "Mandarin Chinese (China)" | "Thai (Thailand)" | "Indonesian (Indonesia)" | "Arabic (Generic)" | "Hindi (India)" | "Bengali (India)" | "Gujarati (India)" | "Kannada (India)" | "Malayalam (India)" | "Marathi (India)" | "Tamil (India)" | "Telugu (India)")[];
47
+ export declare const TOTAL_COMBINATIONS: number;
48
+ export type OraclesCallMatrixEvent = {
49
+ type: 'm.ixo.oracles_call';
50
+ content: {
51
+ sessionId: string;
52
+ userDid: string;
53
+ oracleDid: string;
54
+ callType: 'audio' | 'video';
55
+ callStatus: 'active' | 'ended' | 'pending';
56
+ callStartedAt?: string;
57
+ callEndedAt?: string;
58
+ agentVoice?: VoiceName;
59
+ language?: LanguageCode;
60
+ encryptionKey: string;
61
+ };
62
+ };
63
+ export * from 'matrix-bot-sdk';
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAAqC,CAAC;AAEnE,KAAK,YAAY,CAAC,WAAW,SAAS,QAAQ,EAAE,QAAQ,SAAS,MAAM,IACnE,WAAW,GACX,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAC7C,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,EACjC,MAAM,CACP,CAAC;AACF,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAGD,eAAO,MAAM,gBAAgB,kFASnB,CAAC;AAGX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC;AAGX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAG5D,eAAO,MAAM,cAAc,EAEtB,YAAY,EAAE,CAAC;AACpB,eAAO,MAAM,cAAc,6jBAAqC,CAAC;AAGjE,eAAO,MAAM,kBAAkB,QACkB,CAAC;AAClD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;QAC5B,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,SAAS,CAAC;QACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,55 @@
1
+ export const supportedOracles = ['guru', 'giza', 'oracleSessions'];
2
+ export var AgentVoice;
3
+ (function (AgentVoice) {
4
+ AgentVoice["PUCK"] = "Puck";
5
+ AgentVoice["CHARON"] = "Charon";
6
+ AgentVoice["KORE"] = "Kore";
7
+ AgentVoice["FENRIR"] = "Fenrir";
8
+ AgentVoice["AOEDE"] = "Aoede";
9
+ AgentVoice["LEDA"] = "Leda";
10
+ AgentVoice["ORUS"] = "Orus";
11
+ AgentVoice["ZEPHYR"] = "Zephyr";
12
+ })(AgentVoice || (AgentVoice = {}));
13
+ export const SUPPORTED_VOICES = [
14
+ 'Puck',
15
+ 'Charon',
16
+ 'Kore',
17
+ 'Fenrir',
18
+ 'Aoede',
19
+ 'Leda',
20
+ 'Orus',
21
+ 'Zephyr',
22
+ ];
23
+ export const SUPPORTED_LANGUAGES = {
24
+ 'en-GB': 'English (United Kingdom)',
25
+ 'en-US': 'English (United States)',
26
+ 'de-DE': 'German (Germany)',
27
+ 'fr-FR': 'French (France)',
28
+ 'fr-CA': 'French (Canada)',
29
+ 'es-ES': 'Spanish (Spain)',
30
+ 'it-IT': 'Italian (Italy)',
31
+ 'nl-NL': 'Dutch (Netherlands)',
32
+ 'pl-PL': 'Polish (Poland)',
33
+ 'ru-RU': 'Russian (Russia)',
34
+ 'tr-TR': 'Turkish (Turkey)',
35
+ 'vi-VN': 'Vietnamese (Vietnam)',
36
+ 'ja-JP': 'Japanese (Japan)',
37
+ 'ko-KR': 'Korean (South Korea)',
38
+ 'zh-CN': 'Mandarin Chinese (China)',
39
+ 'th-TH': 'Thai (Thailand)',
40
+ 'id-ID': 'Indonesian (Indonesia)',
41
+ 'ar-XA': 'Arabic (Generic)',
42
+ 'hi-IN': 'Hindi (India)',
43
+ 'bn-IN': 'Bengali (India)',
44
+ 'gu-IN': 'Gujarati (India)',
45
+ 'kn-IN': 'Kannada (India)',
46
+ 'ml-IN': 'Malayalam (India)',
47
+ 'mr-IN': 'Marathi (India)',
48
+ 'ta-IN': 'Tamil (India)',
49
+ 'te-IN': 'Telugu (India)',
50
+ };
51
+ export const LANGUAGE_CODES = Object.keys(SUPPORTED_LANGUAGES);
52
+ export const LANGUAGE_NAMES = Object.values(SUPPORTED_LANGUAGES);
53
+ export const TOTAL_COMBINATIONS = SUPPORTED_VOICES.length * LANGUAGE_CODES.length;
54
+ export * from 'matrix-bot-sdk';
55
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAUnE,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,+BAAiB,CAAA;AACnB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAGD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;CACA,CAAC;AAGX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAEjC,OAAO,EAAE,0BAA0B;IACnC,OAAO,EAAE,yBAAyB;IAElC,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,qBAAqB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,sBAAsB;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,sBAAsB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,wBAAwB;IAEjC,OAAO,EAAE,kBAAkB;IAE3B,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,gBAAgB;CACjB,CAAC;AAOX,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CACvC,mBAAmB,CACF,CAAC;AACpB,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,gBAAgB,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;AAiBlD,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare class Cache {
2
+ private cache;
3
+ private readonly maxSize;
4
+ private readonly ttl;
5
+ constructor(maxSize?: number, ttlMs?: number);
6
+ get(key: string): string | undefined;
7
+ set(key: string, value: string): void;
8
+ has(key: string): boolean;
9
+ delete(key: string): boolean;
10
+ clear(): void;
11
+ size(): number;
12
+ }
13
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"AAQA,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,OAAO,SAAO,EAAE,KAAK,SAAiB;IAMlD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAapC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAerC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf"}
@@ -0,0 +1,44 @@
1
+ export class Cache {
2
+ cache = new Map();
3
+ maxSize;
4
+ ttl;
5
+ constructor(maxSize = 1000, ttlMs = 30 * 60 * 1000) {
6
+ this.maxSize = maxSize;
7
+ this.ttl = ttlMs;
8
+ }
9
+ get(key) {
10
+ const entry = this.cache.get(key);
11
+ if (!entry)
12
+ return undefined;
13
+ if (Date.now() - entry.timestamp > this.ttl) {
14
+ this.cache.delete(key);
15
+ return undefined;
16
+ }
17
+ return entry.value;
18
+ }
19
+ set(key, value) {
20
+ if (this.cache.size >= this.maxSize) {
21
+ const firstKey = this.cache.keys().next().value;
22
+ if (firstKey) {
23
+ this.cache.delete(firstKey);
24
+ }
25
+ }
26
+ this.cache.set(key, {
27
+ value,
28
+ timestamp: Date.now(),
29
+ });
30
+ }
31
+ has(key) {
32
+ return this.get(key) !== undefined;
33
+ }
34
+ delete(key) {
35
+ return this.cache.delete(key);
36
+ }
37
+ clear() {
38
+ this.cache.clear();
39
+ }
40
+ size() {
41
+ return this.cache.size;
42
+ }
43
+ }
44
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,KAAK;IACR,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9B,OAAO,CAAS;IAChB,GAAG,CAAS;IAE7B,YAAY,OAAO,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAEhD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAG7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ import { MatrixClient, MessageEvent, type MessageEventContent } from 'matrix-bot-sdk';
2
+ export interface ISimpleMatrixClientConfig {
3
+ baseUrl: string;
4
+ accessToken: string;
5
+ userId: string;
6
+ storagePath?: string;
7
+ autoJoin?: boolean;
8
+ }
9
+ export interface IMessageOptions {
10
+ roomId: string;
11
+ message: string;
12
+ threadId?: string;
13
+ type?: 'text' | 'html';
14
+ formattedBody?: string;
15
+ }
16
+ export declare class SimpleMatrixClient {
17
+ mxClient: MatrixClient;
18
+ userId: string;
19
+ displayName: string;
20
+ localpart: string;
21
+ homeServerName: string;
22
+ private storage;
23
+ private cryptoStore;
24
+ private config;
25
+ private isStarted;
26
+ constructor(config: ISimpleMatrixClientConfig);
27
+ prepareProfile(): Promise<void>;
28
+ private prepareStorage;
29
+ private prepareCryptoStorage;
30
+ private createClient;
31
+ private extraConfig;
32
+ start(): Promise<void>;
33
+ stop(): Promise<void>;
34
+ sendMessage(options: IMessageOptions): Promise<string>;
35
+ sendStateEvent(roomId: string, eventType: string, content: any, stateKey?: string): Promise<string>;
36
+ joinRoom(roomIdOrAlias: string): Promise<string>;
37
+ resolveRoomAlias(alias: string): Promise<string>;
38
+ onMessage(callback: (roomId: string, event: MessageEvent<MessageEventContent>) => void): () => void;
39
+ removeListener(event: string, callback: (...args: any[]) => void): void;
40
+ private setupCrossSigning;
41
+ private hasCrossSigningAccountData;
42
+ private getAuthId;
43
+ }
44
+ export declare function createSimpleMatrixClient(config: ISimpleMatrixClientConfig): SimpleMatrixClient;
45
+ //# sourceMappingURL=create-simple-matrix-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-simple-matrix-client.d.ts","sourceRoot":"","sources":["../../../src/utils/create-simple-matrix-client.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EACZ,YAAY,EACZ,KAAK,mBAAmB,EAIzB,MAAM,gBAAgB,CAAC;AAKxB,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,qBAAa,kBAAkB;IACtB,QAAQ,EAAE,YAAY,CAAC;IAGvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,yBAAyB;IAQhC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5C,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IAWN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CtD,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,QAAQ,SAAK,GACZ,OAAO,CAAC,MAAM,CAAC;IA0BL,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBhD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBtD,SAAS,CACd,QAAQ,EAAE,CACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,CAAC,mBAAmB,CAAC,KACrC,IAAI,GACR,MAAM,IAAI;IAiBN,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,IAAI;YAQO,iBAAiB;IAkG/B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,SAAS;CAgBlB;AAKD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,yBAAyB,GAChC,kBAAkB,CAEpB"}