@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,282 @@
1
+ /**
2
+ * Configuration Resolver
3
+ *
4
+ * Resolves configuration from multiple sources with clear precedence:
5
+ * 1. Code (explicit parameters) - Highest priority
6
+ * 2. Environment variables
7
+ * 3. Configuration file (agent.json)
8
+ * 4. Defaults - Lowest priority
9
+ *
10
+ * @module config/ConfigResolver
11
+ */
12
+ import { KadiError, ErrorCode } from '../types/index.js';
13
+ import { ConfigLoader } from './ConfigLoader.js';
14
+ /**
15
+ * Default configuration values
16
+ */
17
+ const DEFAULT_CONFIG = {
18
+ version: '1.0.0',
19
+ role: 'agent',
20
+ transport: 'native',
21
+ networks: ['global'],
22
+ autoConnect: false,
23
+ advanced: {
24
+ heartbeatInterval: 30000,
25
+ requestTimeout: 30000,
26
+ connectionTimeout: 10000,
27
+ autoReconnect: true,
28
+ maxReconnectAttempts: 5,
29
+ verbose: false
30
+ }
31
+ };
32
+ /**
33
+ * Configuration Resolver
34
+ *
35
+ * Handles merging configuration from multiple sources with well-defined precedence.
36
+ * Makes configuration predictable and debuggable.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const resolver = new ConfigResolver();
41
+ *
42
+ * // Simple string config
43
+ * const config = await resolver.resolve('ws://localhost:8080');
44
+ *
45
+ * // Full config object
46
+ * const config = await resolver.resolve({
47
+ * name: 'my-service',
48
+ * brokers: { local: 'ws://localhost:8080' }
49
+ * });
50
+ * ```
51
+ */
52
+ export class ConfigResolver {
53
+ loader;
54
+ /**
55
+ * Create a new ConfigResolver
56
+ *
57
+ * @param loader - Optional custom config loader (for testing)
58
+ */
59
+ constructor(loader) {
60
+ this.loader = loader ?? new ConfigLoader();
61
+ }
62
+ /**
63
+ * Resolve complete configuration from multiple sources
64
+ *
65
+ * Precedence (highest to lowest):
66
+ * 1. Explicit code configuration
67
+ * 2. Environment variables
68
+ * 3. Configuration file (agent.json)
69
+ * 4. Default values
70
+ *
71
+ * @param config - Configuration string (broker URL) or object
72
+ * @returns Fully resolved configuration with sources tracked
73
+ *
74
+ * @throws {KadiError} If configuration is invalid
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * // Simple broker URL
79
+ * const resolved = await resolver.resolve('ws://localhost:8080');
80
+ *
81
+ * // Full configuration
82
+ * const resolved = await resolver.resolve({
83
+ * name: 'calculator',
84
+ * brokers: { local: 'ws://localhost:8080' },
85
+ * networks: ['global', 'team']
86
+ * });
87
+ * ```
88
+ */
89
+ async resolve(config) {
90
+ // Normalize input to object form
91
+ const codeConfig = this.normalizeConfig(config);
92
+ // Load configuration from file
93
+ const fileConfig = await this.loader.loadFromFile();
94
+ // Load configuration from environment
95
+ const envConfig = this.loader.loadFromEnvironment();
96
+ // Track sources for each field
97
+ const sources = {};
98
+ // Resolve each field with precedence
99
+ const resolved = {
100
+ name: this.resolveField('name', codeConfig.name, envConfig.KADI_AGENT_NAME, fileConfig?.name, undefined, sources),
101
+ version: this.resolveField('version', codeConfig.version, undefined, fileConfig?.version, DEFAULT_CONFIG.version, sources),
102
+ description: this.resolveField('description', codeConfig.description, undefined, fileConfig?.description, undefined, sources),
103
+ role: this.resolveField('role', codeConfig.role, undefined, undefined, DEFAULT_CONFIG.role, sources),
104
+ transport: this.resolveField('transport', codeConfig.transport, envConfig.KADI_TRANSPORT, undefined, DEFAULT_CONFIG.transport, sources),
105
+ brokers: this.resolveBrokers(codeConfig, envConfig, fileConfig, sources) ?? {},
106
+ defaultBroker: this.resolveField('defaultBroker', codeConfig.defaultBroker, undefined, fileConfig?.defaultBroker, undefined, sources),
107
+ networks: this.resolveNetworks(codeConfig, envConfig, fileConfig, sources),
108
+ abilityAgentJSON: this.resolveField('abilityAgentJSON', codeConfig.abilityAgentJSON, undefined, undefined, undefined, sources),
109
+ autoConnect: this.resolveField('autoConnect', codeConfig.autoConnect, this.parseBoolean(envConfig.KADI_AUTO_CONNECT), undefined, DEFAULT_CONFIG.autoConnect, sources),
110
+ advanced: this.resolveAdvanced(codeConfig, sources),
111
+ sources
112
+ };
113
+ // Validate resolved configuration
114
+ this.validateConfig(resolved);
115
+ return resolved;
116
+ }
117
+ /**
118
+ * Normalize configuration input
119
+ *
120
+ * Converts string (broker URL) to object form
121
+ *
122
+ * @param config - Configuration input
123
+ * @returns Normalized configuration object
124
+ */
125
+ normalizeConfig(config) {
126
+ if (typeof config === 'string') {
127
+ // Simple broker URL
128
+ return {
129
+ brokers: { default: config },
130
+ defaultBroker: 'default'
131
+ };
132
+ }
133
+ return config;
134
+ }
135
+ /**
136
+ * Resolve a single field with precedence
137
+ *
138
+ * @template T - Field value type
139
+ * @param fieldName - Name of the field being resolved
140
+ * @param codeValue - Value from code
141
+ * @param envValue - Value from environment
142
+ * @param fileValue - Value from file
143
+ * @param defaultValue - Default value
144
+ * @param sources - Source tracking object
145
+ * @returns Resolved value
146
+ */
147
+ resolveField(fieldName, codeValue, envValue, fileValue, defaultValue, sources) {
148
+ if (codeValue !== undefined) {
149
+ sources[fieldName] = 'code';
150
+ return codeValue;
151
+ }
152
+ if (envValue !== undefined) {
153
+ sources[fieldName] = 'environment';
154
+ return envValue;
155
+ }
156
+ if (fileValue !== undefined) {
157
+ sources[fieldName] = 'file';
158
+ return fileValue;
159
+ }
160
+ if (defaultValue !== undefined) {
161
+ sources[fieldName] = 'default';
162
+ return defaultValue;
163
+ }
164
+ throw new KadiError(`Required configuration field '${fieldName}' is missing`, ErrorCode.INVALID_CONFIG, 400, { fieldName });
165
+ }
166
+ /**
167
+ * Resolve broker configuration
168
+ *
169
+ * @param codeConfig - Code configuration
170
+ * @param envConfig - Environment configuration
171
+ * @param fileConfig - File configuration
172
+ * @param sources - Source tracking
173
+ * @returns Resolved brokers
174
+ */
175
+ resolveBrokers(codeConfig, envConfig, fileConfig, sources) {
176
+ if (codeConfig.brokers && Object.keys(codeConfig.brokers).length > 0) {
177
+ sources.brokers = 'code';
178
+ return codeConfig.brokers;
179
+ }
180
+ if (envConfig.KADI_BROKER_URL) {
181
+ sources.brokers = 'environment';
182
+ return { default: envConfig.KADI_BROKER_URL };
183
+ }
184
+ if (fileConfig?.brokers && Object.keys(fileConfig.brokers).length > 0) {
185
+ sources.brokers = 'file';
186
+ return fileConfig.brokers;
187
+ }
188
+ // Brokers are optional - may use native/stdio transport
189
+ return undefined;
190
+ }
191
+ /**
192
+ * Resolve networks configuration
193
+ *
194
+ * @param codeConfig - Code configuration
195
+ * @param envConfig - Environment configuration
196
+ * @param fileConfig - File configuration
197
+ * @param sources - Source tracking
198
+ * @returns Resolved networks
199
+ */
200
+ resolveNetworks(codeConfig, envConfig, fileConfig, sources) {
201
+ if (codeConfig.networks && codeConfig.networks.length > 0) {
202
+ sources.networks = 'code';
203
+ return codeConfig.networks;
204
+ }
205
+ if (envConfig.KADI_NETWORKS) {
206
+ sources.networks = 'environment';
207
+ return envConfig.KADI_NETWORKS.split(',').map(n => n.trim());
208
+ }
209
+ if (fileConfig?.networks && fileConfig.networks.length > 0) {
210
+ sources.networks = 'file';
211
+ return fileConfig.networks;
212
+ }
213
+ sources.networks = 'default';
214
+ return [...DEFAULT_CONFIG.networks];
215
+ }
216
+ /**
217
+ * Resolve advanced configuration
218
+ *
219
+ * @param codeConfig - Code configuration
220
+ * @param sources - Source tracking
221
+ * @returns Resolved advanced config
222
+ */
223
+ resolveAdvanced(codeConfig, sources) {
224
+ const advanced = {
225
+ ...DEFAULT_CONFIG.advanced,
226
+ ...codeConfig.advanced
227
+ };
228
+ sources.advanced = codeConfig.advanced ? 'code' : 'default';
229
+ return advanced;
230
+ }
231
+ /**
232
+ * Validate resolved configuration
233
+ *
234
+ * @param config - Resolved configuration
235
+ * @throws {KadiError} If configuration is invalid
236
+ */
237
+ validateConfig(config) {
238
+ // Validate name
239
+ if (!config.name || config.name.trim().length === 0) {
240
+ throw new KadiError('Agent name is required', ErrorCode.INVALID_CONFIG, 400, { field: 'name' });
241
+ }
242
+ // Validate transport
243
+ const validTransports = ['native', 'stdio', 'broker'];
244
+ if (!validTransports.includes(config.transport)) {
245
+ throw new KadiError(`Invalid transport: ${config.transport}. Must be one of: ${validTransports.join(', ')}`, ErrorCode.INVALID_CONFIG, 400, { field: 'transport', value: config.transport });
246
+ }
247
+ // Validate broker configuration if using broker transport
248
+ if (config.transport === 'broker') {
249
+ if (!config.brokers || Object.keys(config.brokers).length === 0) {
250
+ throw new KadiError('Broker configuration is required when using broker transport', ErrorCode.INVALID_CONFIG, 400, { field: 'brokers', transport: config.transport });
251
+ }
252
+ // Validate default broker exists if specified
253
+ if (config.defaultBroker && !config.brokers[config.defaultBroker]) {
254
+ throw new KadiError(`Default broker '${config.defaultBroker}' not found in broker configuration`, ErrorCode.INVALID_CONFIG, 400, { field: 'defaultBroker', value: config.defaultBroker, availableBrokers: Object.keys(config.brokers) });
255
+ }
256
+ }
257
+ // Validate networks
258
+ if (!Array.isArray(config.networks) || config.networks.length === 0) {
259
+ throw new KadiError('At least one network is required', ErrorCode.INVALID_CONFIG, 400, { field: 'networks' });
260
+ }
261
+ }
262
+ /**
263
+ * Parse boolean from string
264
+ *
265
+ * @param value - String value
266
+ * @returns Boolean or undefined
267
+ */
268
+ parseBoolean(value) {
269
+ if (value === undefined) {
270
+ return undefined;
271
+ }
272
+ const lower = value.toLowerCase();
273
+ if (lower === 'true' || lower === '1' || lower === 'yes') {
274
+ return true;
275
+ }
276
+ if (lower === 'false' || lower === '0' || lower === 'no') {
277
+ return false;
278
+ }
279
+ return undefined;
280
+ }
281
+ }
282
+ //# sourceMappingURL=ConfigResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigResolver.js","sourceRoot":"","sources":["../../src/config/ConfigResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Configuration Module
3
+ *
4
+ * Exports for configuration resolution and loading.
5
+ */
6
+ export { ConfigResolver } from './ConfigResolver.js';
7
+ export { ConfigLoader } from './ConfigLoader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Configuration Module
3
+ *
4
+ * Exports for configuration resolution and loading.
5
+ */
6
+ export { ConfigResolver } from './ConfigResolver.js';
7
+ export { ConfigLoader } from './ConfigLoader.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Errors Module
3
+ *
4
+ * Re-exports error types and utilities from types/errors.ts
5
+ * This module provides a convenient import point for error handling.
6
+ */
7
+ export { KadiError, ErrorCode, isKadiError, isError, success, failure } from '../types/errors.js';
8
+ export type { ErrorContext, ErrorJSON, Result } from '../types/errors.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,YAAY,EACZ,SAAS,EACT,MAAM,EACP,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Errors Module
3
+ *
4
+ * Re-exports error types and utilities from types/errors.ts
5
+ * This module provides a convenient import point for error handling.
6
+ */
7
+ export { KadiError, ErrorCode, isKadiError, isError, success, failure } from '../types/errors.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,EACR,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Event Hub
3
+ *
4
+ * Unified pub/sub event system that works consistently across all transports.
5
+ * Supports wildcard pattern matching for flexible event subscriptions.
6
+ *
7
+ * @module events/EventHub
8
+ */
9
+ import type { EventPattern, EventName, EventCallback, UnsubscribeFunction, PublishOptions, EventSubscription, SubscriptionOptions } from '../types/index.js';
10
+ /**
11
+ * Event Hub class
12
+ *
13
+ * Single responsibility: Manage event subscriptions and publication.
14
+ * Works uniformly across all transport types (native, stdio, broker).
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const hub = new EventHub('my-agent');
19
+ *
20
+ * // Subscribe to events
21
+ * const unsubscribe = hub.subscribe('user.*', (data) => {
22
+ * console.log('User event:', data);
23
+ * });
24
+ *
25
+ * // Publish an event
26
+ * hub.publish('user.login', { userId: '123', timestamp: Date.now() });
27
+ *
28
+ * // Unsubscribe
29
+ * unsubscribe();
30
+ * ```
31
+ */
32
+ export declare class EventHub {
33
+ /**
34
+ * Source identifier (agent/ability name)
35
+ */
36
+ private source;
37
+ /**
38
+ * Event subscriptions map (pattern -> Set of callbacks)
39
+ * Uses unknown for data type since different subscriptions may have different data types
40
+ */
41
+ private readonly subscriptions;
42
+ /**
43
+ * Subscription ID counter
44
+ */
45
+ private subscriptionIdCounter;
46
+ /**
47
+ * Create a new EventHub
48
+ *
49
+ * @param source - Identifier for this event source (agent/ability name)
50
+ */
51
+ constructor(source: string);
52
+ /**
53
+ * Update the source identifier
54
+ *
55
+ * This is useful when the agent/ability name is determined after construction.
56
+ *
57
+ * @param newSource - New source identifier
58
+ */
59
+ setSource(newSource: string): void;
60
+ /**
61
+ * Subscribe to events matching a pattern
62
+ *
63
+ * Patterns support wildcards:
64
+ * - `user.login` - exact match
65
+ * - `user.*` - all events starting with "user."
66
+ * - `*.error` - all error events
67
+ * - `*` - all events
68
+ *
69
+ * @template TData - Expected event data type
70
+ *
71
+ * @param pattern - Event pattern to match
72
+ * @param callback - Function to call when matching events occur
73
+ * @param options - Optional subscription options
74
+ * @returns Function to unsubscribe
75
+ *
76
+ * @throws {KadiError} If pattern or callback is invalid
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const unsubscribe = hub.subscribe('user.login', (data) => {
81
+ * console.log('User logged in:', data);
82
+ * });
83
+ * ```
84
+ */
85
+ subscribe<TData = unknown>(pattern: EventPattern, callback: EventCallback<TData>, options?: SubscriptionOptions): UnsubscribeFunction;
86
+ /**
87
+ * Publish an event to all matching subscribers
88
+ *
89
+ * @template TData - Event data type
90
+ *
91
+ * @param eventName - Event name/channel
92
+ * @param data - Event data payload
93
+ * @param options - Optional publishing options
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * hub.publish('user.logout', {
98
+ * userId: '123',
99
+ * timestamp: Date.now()
100
+ * });
101
+ * ```
102
+ */
103
+ publish<TData = unknown>(eventName: EventName, data: TData, options?: PublishOptions): void;
104
+ /**
105
+ * Unsubscribe from a pattern
106
+ *
107
+ * @param pattern - Pattern to unsubscribe from
108
+ * @param callback - Optional specific callback to remove (removes all if not specified)
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * hub.unsubscribe('user.*');
113
+ * ```
114
+ */
115
+ unsubscribe(pattern: EventPattern, callback?: EventCallback): void;
116
+ /**
117
+ * Get all active subscriptions
118
+ *
119
+ * @returns Array of all active subscriptions
120
+ */
121
+ getSubscriptions(): EventSubscription[];
122
+ /**
123
+ * Get subscription count
124
+ *
125
+ * @returns Number of active subscriptions
126
+ */
127
+ get subscriptionCount(): number;
128
+ /**
129
+ * Clear all subscriptions
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * hub.clear();
134
+ * ```
135
+ */
136
+ clear(): void;
137
+ /**
138
+ * Find subscriptions matching an event name
139
+ *
140
+ * @param eventName - Event name to match
141
+ * @returns Set of matching subscriptions
142
+ */
143
+ private findMatchingSubscriptions;
144
+ /**
145
+ * Check if an event name matches a pattern
146
+ *
147
+ * Supports wildcard matching:
148
+ * - Exact match: 'user.login' matches 'user.login'
149
+ * - Prefix wildcard: 'user.*' matches 'user.login', 'user.logout', etc.
150
+ * - Suffix wildcard: '*.error' matches 'user.error', 'system.error', etc.
151
+ * - Full wildcard: '*' matches any event
152
+ *
153
+ * @param eventName - Event name to test
154
+ * @param pattern - Pattern to match against
155
+ * @returns true if event matches pattern
156
+ */
157
+ private matchesPattern;
158
+ /**
159
+ * Deliver an event to a subscription
160
+ *
161
+ * @param subscription - Subscription to deliver to
162
+ * @param payload - Event payload
163
+ */
164
+ private deliverEvent;
165
+ /**
166
+ * Unsubscribe by subscription ID
167
+ *
168
+ * @param id - Subscription ID to remove
169
+ */
170
+ private unsubscribeById;
171
+ }
172
+ //# sourceMappingURL=EventHub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHub.d.ts","sourceRoot":"","sources":["../../src/events/EventHub.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EAEb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAG3B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,QAAQ;IACnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4D;IAE1F;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAK;IAElC;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CAAC,KAAK,GAAG,OAAO,EACvB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB;IA2DtB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,KAAK,GAAG,OAAO,EACrB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;IAsBP;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI;IAwBlE;;;;OAIG;IACH,gBAAgB,IAAI,iBAAiB,EAAE;IAQvC;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAM9B;IAED;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;IAoBtB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAaxB"}