@kadi.build/core 0.0.1-alpha.1 → 0.0.1-alpha.11

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 (199) hide show
  1. package/README.md +361 -230
  2. package/dist/abilities/AbilityCache.d.ts +242 -0
  3. package/dist/abilities/AbilityCache.d.ts.map +1 -0
  4. package/dist/abilities/AbilityCache.js +285 -0
  5. package/dist/abilities/AbilityCache.js.map +1 -0
  6. package/dist/abilities/AbilityContext.d.ts +215 -0
  7. package/dist/abilities/AbilityContext.d.ts.map +1 -0
  8. package/dist/abilities/AbilityContext.js +36 -0
  9. package/dist/abilities/AbilityContext.js.map +1 -0
  10. package/dist/abilities/AbilityLoader.d.ts +203 -0
  11. package/dist/abilities/AbilityLoader.d.ts.map +1 -0
  12. package/dist/abilities/AbilityLoader.js +343 -0
  13. package/dist/abilities/AbilityLoader.js.map +1 -0
  14. package/dist/abilities/AbilityProxy.d.ts +496 -0
  15. package/dist/abilities/AbilityProxy.d.ts.map +1 -0
  16. package/dist/abilities/AbilityProxy.js +551 -0
  17. package/dist/abilities/AbilityProxy.js.map +1 -0
  18. package/dist/abilities/AbilityValidator.d.ts +172 -0
  19. package/dist/abilities/AbilityValidator.d.ts.map +1 -0
  20. package/dist/abilities/AbilityValidator.js +253 -0
  21. package/dist/abilities/AbilityValidator.js.map +1 -0
  22. package/dist/abilities/index.d.ts +26 -0
  23. package/dist/abilities/index.d.ts.map +1 -0
  24. package/dist/abilities/index.js +23 -0
  25. package/dist/abilities/index.js.map +1 -0
  26. package/dist/abilities/types.d.ts +223 -0
  27. package/dist/abilities/types.d.ts.map +1 -0
  28. package/dist/abilities/types.js +10 -0
  29. package/dist/abilities/types.js.map +1 -0
  30. package/dist/api/index.d.ts +92 -0
  31. package/dist/api/index.d.ts.map +1 -0
  32. package/dist/api/index.js +124 -0
  33. package/dist/api/index.js.map +1 -0
  34. package/dist/broker/BrokerConnection.d.ts +253 -0
  35. package/dist/broker/BrokerConnection.d.ts.map +1 -0
  36. package/dist/broker/BrokerConnection.js +434 -0
  37. package/dist/broker/BrokerConnection.js.map +1 -0
  38. package/dist/broker/BrokerConnectionManager.d.ts +216 -0
  39. package/dist/broker/BrokerConnectionManager.d.ts.map +1 -0
  40. package/dist/broker/BrokerConnectionManager.js +305 -0
  41. package/dist/broker/BrokerConnectionManager.js.map +1 -0
  42. package/dist/broker/BrokerProtocol.d.ts +280 -0
  43. package/dist/broker/BrokerProtocol.d.ts.map +1 -0
  44. package/dist/broker/BrokerProtocol.js +466 -0
  45. package/dist/broker/BrokerProtocol.js.map +1 -0
  46. package/dist/broker/index.d.ts +9 -0
  47. package/dist/broker/index.d.ts.map +1 -0
  48. package/dist/broker/index.js +9 -0
  49. package/dist/broker/index.js.map +1 -0
  50. package/dist/client/KadiClient.d.ts +459 -0
  51. package/dist/client/KadiClient.d.ts.map +1 -0
  52. package/dist/client/KadiClient.js +902 -0
  53. package/dist/client/KadiClient.js.map +1 -0
  54. package/dist/client/index.d.ts +7 -0
  55. package/dist/client/index.d.ts.map +1 -0
  56. package/dist/client/index.js +7 -0
  57. package/dist/client/index.js.map +1 -0
  58. package/dist/config/ConfigLoader.d.ts +138 -0
  59. package/dist/config/ConfigLoader.d.ts.map +1 -0
  60. package/dist/config/ConfigLoader.js +226 -0
  61. package/dist/config/ConfigLoader.js.map +1 -0
  62. package/dist/config/ConfigResolver.d.ts +135 -0
  63. package/dist/config/ConfigResolver.d.ts.map +1 -0
  64. package/dist/config/ConfigResolver.js +282 -0
  65. package/dist/config/ConfigResolver.js.map +1 -0
  66. package/dist/config/index.d.ts +8 -0
  67. package/dist/config/index.d.ts.map +1 -0
  68. package/dist/config/index.js +8 -0
  69. package/dist/config/index.js.map +1 -0
  70. package/dist/errors/index.d.ts +9 -0
  71. package/dist/errors/index.d.ts.map +1 -0
  72. package/dist/errors/index.js +8 -0
  73. package/dist/errors/index.js.map +1 -0
  74. package/dist/events/EventHub.d.ts +172 -0
  75. package/dist/events/EventHub.d.ts.map +1 -0
  76. package/dist/events/EventHub.js +333 -0
  77. package/dist/events/EventHub.js.map +1 -0
  78. package/dist/events/index.d.ts +7 -0
  79. package/dist/events/index.d.ts.map +1 -0
  80. package/dist/events/index.js +7 -0
  81. package/dist/events/index.js.map +1 -0
  82. package/dist/index.d.ts +50 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +67 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/messages/index.d.ts +33 -0
  87. package/dist/messages/index.d.ts.map +1 -0
  88. package/dist/messages/index.js +33 -0
  89. package/dist/messages/index.js.map +1 -0
  90. package/dist/schemas/index.d.ts +22 -0
  91. package/dist/schemas/index.d.ts.map +1 -0
  92. package/dist/schemas/index.js +27 -0
  93. package/dist/schemas/index.js.map +1 -0
  94. package/dist/schemas/kadi-extensions.d.ts +231 -0
  95. package/dist/schemas/kadi-extensions.d.ts.map +1 -0
  96. package/dist/schemas/kadi-extensions.js +14 -0
  97. package/dist/schemas/kadi-extensions.js.map +1 -0
  98. package/dist/schemas/mcp/schema.d.ts +1399 -0
  99. package/dist/schemas/mcp/schema.d.ts.map +1 -0
  100. package/dist/schemas/mcp/schema.js +53 -0
  101. package/dist/schemas/mcp/schema.js.map +1 -0
  102. package/dist/schemas/mcp/version.d.ts +37 -0
  103. package/dist/schemas/mcp/version.d.ts.map +1 -0
  104. package/dist/schemas/mcp/version.js +39 -0
  105. package/dist/schemas/mcp/version.js.map +1 -0
  106. package/dist/schemas/schema-builders.d.ts +178 -0
  107. package/dist/schemas/schema-builders.d.ts.map +1 -0
  108. package/dist/schemas/schema-builders.js +258 -0
  109. package/dist/schemas/schema-builders.js.map +1 -0
  110. package/dist/schemas/zod-helpers.d.ts +129 -0
  111. package/dist/schemas/zod-helpers.d.ts.map +1 -0
  112. package/dist/schemas/zod-helpers.js +225 -0
  113. package/dist/schemas/zod-helpers.js.map +1 -0
  114. package/dist/schemas/zod-to-json-schema.d.ts +159 -0
  115. package/dist/schemas/zod-to-json-schema.d.ts.map +1 -0
  116. package/dist/schemas/zod-to-json-schema.js +154 -0
  117. package/dist/schemas/zod-to-json-schema.js.map +1 -0
  118. package/dist/tools/ToolRegistry.d.ts +256 -0
  119. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  120. package/dist/tools/ToolRegistry.js +340 -0
  121. package/dist/tools/ToolRegistry.js.map +1 -0
  122. package/dist/tools/index.d.ts +7 -0
  123. package/dist/tools/index.d.ts.map +1 -0
  124. package/dist/tools/index.js +7 -0
  125. package/dist/tools/index.js.map +1 -0
  126. package/dist/transports/BrokerTransport.d.ts +151 -0
  127. package/dist/transports/BrokerTransport.d.ts.map +1 -0
  128. package/dist/transports/BrokerTransport.js +261 -0
  129. package/dist/transports/BrokerTransport.js.map +1 -0
  130. package/dist/transports/NativeTransport.d.ts +178 -0
  131. package/dist/transports/NativeTransport.d.ts.map +1 -0
  132. package/dist/transports/NativeTransport.js +397 -0
  133. package/dist/transports/NativeTransport.js.map +1 -0
  134. package/dist/transports/StdioTransport.d.ts +250 -0
  135. package/dist/transports/StdioTransport.d.ts.map +1 -0
  136. package/dist/transports/StdioTransport.js +487 -0
  137. package/dist/transports/StdioTransport.js.map +1 -0
  138. package/dist/transports/index.d.ts +10 -0
  139. package/dist/transports/index.d.ts.map +1 -0
  140. package/dist/transports/index.js +9 -0
  141. package/dist/transports/index.js.map +1 -0
  142. package/dist/types/broker.d.ts +279 -0
  143. package/dist/types/broker.d.ts.map +1 -0
  144. package/dist/types/broker.js +19 -0
  145. package/dist/types/broker.js.map +1 -0
  146. package/dist/types/config.d.ts +325 -0
  147. package/dist/types/config.d.ts.map +1 -0
  148. package/dist/types/config.js +17 -0
  149. package/dist/types/config.js.map +1 -0
  150. package/dist/types/errors.d.ts +178 -0
  151. package/dist/types/errors.d.ts.map +1 -0
  152. package/dist/types/errors.js +165 -0
  153. package/dist/types/errors.js.map +1 -0
  154. package/dist/types/events.d.ts +210 -0
  155. package/dist/types/events.d.ts.map +1 -0
  156. package/dist/types/events.js +8 -0
  157. package/dist/types/events.js.map +1 -0
  158. package/dist/types/index.d.ts +34 -0
  159. package/dist/types/index.d.ts.map +1 -0
  160. package/dist/types/index.js +21 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/types/protocol.d.ts +48 -0
  163. package/dist/types/protocol.d.ts.map +1 -0
  164. package/dist/types/protocol.js +11 -0
  165. package/dist/types/protocol.js.map +1 -0
  166. package/dist/types/tools.d.ts +67 -0
  167. package/dist/types/tools.d.ts.map +1 -0
  168. package/dist/types/tools.js +16 -0
  169. package/dist/types/tools.js.map +1 -0
  170. package/dist/types/transport.d.ts +250 -0
  171. package/dist/types/transport.d.ts.map +1 -0
  172. package/dist/types/transport.js +18 -0
  173. package/dist/types/transport.js.map +1 -0
  174. package/dist/types/zod-tools.d.ts +198 -0
  175. package/dist/types/zod-tools.d.ts.map +1 -0
  176. package/dist/types/zod-tools.js +14 -0
  177. package/dist/types/zod-tools.js.map +1 -0
  178. package/dist/utils/StdioMessageReader.d.ts +122 -0
  179. package/dist/utils/StdioMessageReader.d.ts.map +1 -0
  180. package/dist/utils/StdioMessageReader.js +209 -0
  181. package/dist/utils/StdioMessageReader.js.map +1 -0
  182. package/dist/utils/StdioMessageWriter.d.ts +104 -0
  183. package/dist/utils/StdioMessageWriter.d.ts.map +1 -0
  184. package/dist/utils/StdioMessageWriter.js +162 -0
  185. package/dist/utils/StdioMessageWriter.js.map +1 -0
  186. package/dist/validation/SchemaValidator.d.ts +208 -0
  187. package/dist/validation/SchemaValidator.d.ts.map +1 -0
  188. package/dist/validation/SchemaValidator.js +411 -0
  189. package/dist/validation/SchemaValidator.js.map +1 -0
  190. package/dist/validation/index.d.ts +11 -0
  191. package/dist/validation/index.d.ts.map +1 -0
  192. package/dist/validation/index.js +10 -0
  193. package/dist/validation/index.js.map +1 -0
  194. package/package.json +70 -5
  195. package/agent.json +0 -18
  196. package/broker.js +0 -214
  197. package/index.js +0 -370
  198. package/ipc.js +0 -220
  199. package/ipcInterfaces/pythonAbilityIPC.py +0 -177
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrokerConnection.js","sourceRoot":"","sources":["../../src/broker/BrokerConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Broker Connection Manager
3
+ *
4
+ * Manages multiple broker connections.
5
+ * Handles connection lifecycle, failover, and routing.
6
+ *
7
+ * @module broker/BrokerConnectionManager
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import type { BrokerConfig } from '../types/index.js';
11
+ import { BrokerConnection } from './BrokerConnection.js';
12
+ /**
13
+ * Broker Connection Manager
14
+ *
15
+ * Single responsibility: Manage multiple broker connections.
16
+ * Does NOT handle:
17
+ * - Protocol logic (that's BrokerProtocol's job)
18
+ * - Tool registration/invocation (that's ToolRegistry/Client's job)
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const manager = new BrokerConnectionManager();
23
+ *
24
+ * // Add brokers
25
+ * await manager.connect({
26
+ * url: 'ws://localhost:8080',
27
+ * name: 'local'
28
+ * });
29
+ *
30
+ * await manager.connect({
31
+ * url: 'wss://prod.example.com',
32
+ * name: 'production'
33
+ * });
34
+ *
35
+ * // Get a connection
36
+ * const connection = manager.getConnection('local');
37
+ *
38
+ * // Get default connection
39
+ * const defaultConn = manager.getDefaultConnection();
40
+ * ```
41
+ */
42
+ export declare class BrokerConnectionManager extends EventEmitter {
43
+ /**
44
+ * Active broker connections (name -> connection)
45
+ */
46
+ private connections;
47
+ /**
48
+ * Default broker name
49
+ */
50
+ private defaultBrokerName;
51
+ /**
52
+ * Connect to a broker
53
+ *
54
+ * @param config - Broker configuration
55
+ * @param setAsDefault - Set this as the default broker
56
+ * @returns The established connection
57
+ *
58
+ * @throws {KadiError} If connection fails
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const connection = await manager.connect({
63
+ * url: 'ws://localhost:8080',
64
+ * name: 'local'
65
+ * }, true);
66
+ * ```
67
+ */
68
+ connect(config: BrokerConfig, setAsDefault?: boolean): Promise<BrokerConnection>;
69
+ /**
70
+ * Connect to multiple brokers
71
+ *
72
+ * @param configs - Array of broker configurations
73
+ * @param defaultBrokerName - Name of the default broker
74
+ * @returns Array of established connections
75
+ *
76
+ * @throws {KadiError} If any connection fails
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * await manager.connectMultiple([
81
+ * { url: 'ws://localhost:8080', name: 'local' },
82
+ * { url: 'wss://prod.example.com', name: 'prod' }
83
+ * ], 'local');
84
+ * ```
85
+ */
86
+ connectMultiple(configs: BrokerConfig[], defaultBrokerName?: string): Promise<BrokerConnection[]>;
87
+ /**
88
+ * Disconnect from a broker
89
+ *
90
+ * @param brokerName - Name of broker to disconnect from
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * await manager.disconnect('local');
95
+ * ```
96
+ */
97
+ disconnect(brokerName: string): Promise<void>;
98
+ /**
99
+ * Disconnect from all brokers
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * await manager.disconnectAll();
104
+ * ```
105
+ */
106
+ disconnectAll(): Promise<void>;
107
+ /**
108
+ * Get a broker connection by name
109
+ *
110
+ * @param brokerName - Name of the broker
111
+ * @returns The connection or undefined if not found
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const conn = manager.getConnection('local');
116
+ * if (conn) {
117
+ * await conn.sendRequest(...);
118
+ * }
119
+ * ```
120
+ */
121
+ getConnection(brokerName: string): BrokerConnection | undefined;
122
+ /**
123
+ * Get the default broker connection
124
+ *
125
+ * @returns The default connection
126
+ * @throws {KadiError} If no default broker is set
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const conn = manager.getDefaultConnection();
131
+ * await conn.sendRequest(...);
132
+ * ```
133
+ */
134
+ getDefaultConnection(): BrokerConnection;
135
+ /**
136
+ * Get all broker connections
137
+ *
138
+ * @returns Array of all connections
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const connections = manager.getAllConnections();
143
+ * console.log(`Connected to ${connections.length} brokers`);
144
+ * ```
145
+ */
146
+ getAllConnections(): BrokerConnection[];
147
+ /**
148
+ * Get all connected broker connections
149
+ *
150
+ * @returns Array of connected connections
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const connected = manager.getConnectedBrokers();
155
+ * ```
156
+ */
157
+ getConnectedBrokers(): BrokerConnection[];
158
+ /**
159
+ * Check if connected to a specific broker
160
+ *
161
+ * @param brokerName - Broker name
162
+ * @returns true if connected
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * if (manager.isConnected('local')) {
167
+ * // Use local broker
168
+ * }
169
+ * ```
170
+ */
171
+ isConnected(brokerName: string): boolean;
172
+ /**
173
+ * Check if connected to any broker
174
+ *
175
+ * @returns true if connected to at least one broker
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * if (!manager.hasConnections()) {
180
+ * throw new Error('Not connected to any broker');
181
+ * }
182
+ * ```
183
+ */
184
+ hasConnections(): boolean;
185
+ /**
186
+ * Set the default broker
187
+ *
188
+ * @param brokerName - Name of broker to set as default
189
+ * @throws {KadiError} If broker doesn't exist
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * manager.setDefaultBroker('production');
194
+ * ```
195
+ */
196
+ setDefaultBroker(brokerName: string): void;
197
+ /**
198
+ * Get default broker name
199
+ *
200
+ * @returns Default broker name or null if not set
201
+ */
202
+ getDefaultBrokerName(): string | null;
203
+ /**
204
+ * Get number of active connections
205
+ *
206
+ * @returns Connection count
207
+ */
208
+ get connectionCount(): number;
209
+ /**
210
+ * Get broker names
211
+ *
212
+ * @returns Array of broker names
213
+ */
214
+ getBrokerNames(): string[];
215
+ }
216
+ //# sourceMappingURL=BrokerConnectionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrokerConnectionManager.d.ts","sourceRoot":"","sources":["../../src/broker/BrokerConnectionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD;;OAEG;IACH,OAAO,CAAC,WAAW,CAAuC;IAE1D;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAuB;IAEhD;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6CpF;;;;;;;;;;;;;;;;OAgBG;IACG,eAAe,CACnB,OAAO,EAAE,YAAY,EAAE,EACvB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAY9B;;;;;;;;;OASG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D;;;;;;;;;;;OAWG;IACH,oBAAoB,IAAI,gBAAgB;IAsBxC;;;;;;;;;;OAUG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAIvC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,gBAAgB,EAAE;IAIzC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAKxC;;;;;;;;;;;OAWG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAa1C;;;;OAIG;IACH,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;;OAIG;IACH,cAAc,IAAI,MAAM,EAAE;CAG3B"}
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Broker Connection Manager
3
+ *
4
+ * Manages multiple broker connections.
5
+ * Handles connection lifecycle, failover, and routing.
6
+ *
7
+ * @module broker/BrokerConnectionManager
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import { KadiError, ErrorCode } from '../types/index.js';
11
+ import { BrokerConnection } from './BrokerConnection.js';
12
+ /**
13
+ * Broker Connection Manager
14
+ *
15
+ * Single responsibility: Manage multiple broker connections.
16
+ * Does NOT handle:
17
+ * - Protocol logic (that's BrokerProtocol's job)
18
+ * - Tool registration/invocation (that's ToolRegistry/Client's job)
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const manager = new BrokerConnectionManager();
23
+ *
24
+ * // Add brokers
25
+ * await manager.connect({
26
+ * url: 'ws://localhost:8080',
27
+ * name: 'local'
28
+ * });
29
+ *
30
+ * await manager.connect({
31
+ * url: 'wss://prod.example.com',
32
+ * name: 'production'
33
+ * });
34
+ *
35
+ * // Get a connection
36
+ * const connection = manager.getConnection('local');
37
+ *
38
+ * // Get default connection
39
+ * const defaultConn = manager.getDefaultConnection();
40
+ * ```
41
+ */
42
+ export class BrokerConnectionManager extends EventEmitter {
43
+ /**
44
+ * Active broker connections (name -> connection)
45
+ */
46
+ connections = new Map();
47
+ /**
48
+ * Default broker name
49
+ */
50
+ defaultBrokerName = null;
51
+ /**
52
+ * Connect to a broker
53
+ *
54
+ * @param config - Broker configuration
55
+ * @param setAsDefault - Set this as the default broker
56
+ * @returns The established connection
57
+ *
58
+ * @throws {KadiError} If connection fails
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const connection = await manager.connect({
63
+ * url: 'ws://localhost:8080',
64
+ * name: 'local'
65
+ * }, true);
66
+ * ```
67
+ */
68
+ async connect(config, setAsDefault = false) {
69
+ // Check if already connected
70
+ if (this.connections.has(config.name)) {
71
+ const existing = this.connections.get(config.name);
72
+ if (existing.isConnected) {
73
+ return existing;
74
+ }
75
+ // Remove stale connection
76
+ this.connections.delete(config.name);
77
+ }
78
+ // Create new connection
79
+ const connection = new BrokerConnection(config);
80
+ // Set up event forwarding
81
+ connection.on('connected', () => {
82
+ this.emit('brokerConnected', config.name);
83
+ });
84
+ connection.on('disconnected', (code, reason) => {
85
+ this.emit('brokerDisconnected', config.name, code, reason);
86
+ });
87
+ connection.on('error', (error) => {
88
+ this.emit('brokerError', config.name, error);
89
+ });
90
+ connection.on('message', (message) => {
91
+ this.emit('brokerMessage', config.name, message);
92
+ });
93
+ // Connect
94
+ await connection.connect();
95
+ // Store connection
96
+ this.connections.set(config.name, connection);
97
+ // Set as default if requested or if it's the first connection
98
+ if (setAsDefault || this.connections.size === 1) {
99
+ this.defaultBrokerName = config.name;
100
+ }
101
+ return connection;
102
+ }
103
+ /**
104
+ * Connect to multiple brokers
105
+ *
106
+ * @param configs - Array of broker configurations
107
+ * @param defaultBrokerName - Name of the default broker
108
+ * @returns Array of established connections
109
+ *
110
+ * @throws {KadiError} If any connection fails
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * await manager.connectMultiple([
115
+ * { url: 'ws://localhost:8080', name: 'local' },
116
+ * { url: 'wss://prod.example.com', name: 'prod' }
117
+ * ], 'local');
118
+ * ```
119
+ */
120
+ async connectMultiple(configs, defaultBrokerName) {
121
+ const connections = [];
122
+ for (const config of configs) {
123
+ const isDefault = config.name === defaultBrokerName;
124
+ const connection = await this.connect(config, isDefault);
125
+ connections.push(connection);
126
+ }
127
+ return connections;
128
+ }
129
+ /**
130
+ * Disconnect from a broker
131
+ *
132
+ * @param brokerName - Name of broker to disconnect from
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * await manager.disconnect('local');
137
+ * ```
138
+ */
139
+ async disconnect(brokerName) {
140
+ const connection = this.connections.get(brokerName);
141
+ if (!connection) {
142
+ return;
143
+ }
144
+ await connection.disconnect();
145
+ this.connections.delete(brokerName);
146
+ // Clear default if this was it
147
+ if (this.defaultBrokerName === brokerName) {
148
+ this.defaultBrokerName = this.connections.size > 0
149
+ ? Array.from(this.connections.keys())[0] ?? null
150
+ : null;
151
+ }
152
+ }
153
+ /**
154
+ * Disconnect from all brokers
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * await manager.disconnectAll();
159
+ * ```
160
+ */
161
+ async disconnectAll() {
162
+ const disconnectPromises = Array.from(this.connections.keys()).map(name => this.disconnect(name));
163
+ await Promise.all(disconnectPromises);
164
+ }
165
+ /**
166
+ * Get a broker connection by name
167
+ *
168
+ * @param brokerName - Name of the broker
169
+ * @returns The connection or undefined if not found
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const conn = manager.getConnection('local');
174
+ * if (conn) {
175
+ * await conn.sendRequest(...);
176
+ * }
177
+ * ```
178
+ */
179
+ getConnection(brokerName) {
180
+ return this.connections.get(brokerName);
181
+ }
182
+ /**
183
+ * Get the default broker connection
184
+ *
185
+ * @returns The default connection
186
+ * @throws {KadiError} If no default broker is set
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const conn = manager.getDefaultConnection();
191
+ * await conn.sendRequest(...);
192
+ * ```
193
+ */
194
+ getDefaultConnection() {
195
+ if (!this.defaultBrokerName) {
196
+ throw new KadiError('No default broker set', ErrorCode.BROKER_NOT_CONNECTED, 503);
197
+ }
198
+ const connection = this.connections.get(this.defaultBrokerName);
199
+ if (!connection) {
200
+ throw new KadiError(`Default broker '${this.defaultBrokerName}' not found`, ErrorCode.BROKER_NOT_CONNECTED, 503, { defaultBroker: this.defaultBrokerName });
201
+ }
202
+ return connection;
203
+ }
204
+ /**
205
+ * Get all broker connections
206
+ *
207
+ * @returns Array of all connections
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * const connections = manager.getAllConnections();
212
+ * console.log(`Connected to ${connections.length} brokers`);
213
+ * ```
214
+ */
215
+ getAllConnections() {
216
+ return Array.from(this.connections.values());
217
+ }
218
+ /**
219
+ * Get all connected broker connections
220
+ *
221
+ * @returns Array of connected connections
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * const connected = manager.getConnectedBrokers();
226
+ * ```
227
+ */
228
+ getConnectedBrokers() {
229
+ return this.getAllConnections().filter(conn => conn.isConnected);
230
+ }
231
+ /**
232
+ * Check if connected to a specific broker
233
+ *
234
+ * @param brokerName - Broker name
235
+ * @returns true if connected
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * if (manager.isConnected('local')) {
240
+ * // Use local broker
241
+ * }
242
+ * ```
243
+ */
244
+ isConnected(brokerName) {
245
+ const connection = this.connections.get(brokerName);
246
+ return connection?.isConnected ?? false;
247
+ }
248
+ /**
249
+ * Check if connected to any broker
250
+ *
251
+ * @returns true if connected to at least one broker
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * if (!manager.hasConnections()) {
256
+ * throw new Error('Not connected to any broker');
257
+ * }
258
+ * ```
259
+ */
260
+ hasConnections() {
261
+ return this.getConnectedBrokers().length > 0;
262
+ }
263
+ /**
264
+ * Set the default broker
265
+ *
266
+ * @param brokerName - Name of broker to set as default
267
+ * @throws {KadiError} If broker doesn't exist
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * manager.setDefaultBroker('production');
272
+ * ```
273
+ */
274
+ setDefaultBroker(brokerName) {
275
+ if (!this.connections.has(brokerName)) {
276
+ throw new KadiError(`Broker '${brokerName}' not found`, ErrorCode.BROKER_NOT_CONNECTED, 404, { brokerName, available: Array.from(this.connections.keys()) });
277
+ }
278
+ this.defaultBrokerName = brokerName;
279
+ }
280
+ /**
281
+ * Get default broker name
282
+ *
283
+ * @returns Default broker name or null if not set
284
+ */
285
+ getDefaultBrokerName() {
286
+ return this.defaultBrokerName;
287
+ }
288
+ /**
289
+ * Get number of active connections
290
+ *
291
+ * @returns Connection count
292
+ */
293
+ get connectionCount() {
294
+ return this.connections.size;
295
+ }
296
+ /**
297
+ * Get broker names
298
+ *
299
+ * @returns Array of broker names
300
+ */
301
+ getBrokerNames() {
302
+ return Array.from(this.connections.keys());
303
+ }
304
+ }
305
+ //# sourceMappingURL=BrokerConnectionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrokerConnectionManager.js","sourceRoot":"","sources":["../../src/broker/BrokerConnectionManager.ts"],"names":[],"mappings":"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"}