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

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 (179) hide show
  1. package/README.md +1387 -214
  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 +177 -0
  11. package/dist/abilities/AbilityLoader.d.ts.map +1 -0
  12. package/dist/abilities/AbilityLoader.js +277 -0
  13. package/dist/abilities/AbilityLoader.js.map +1 -0
  14. package/dist/abilities/AbilityProxy.d.ts +463 -0
  15. package/dist/abilities/AbilityProxy.d.ts.map +1 -0
  16. package/dist/abilities/AbilityProxy.js +511 -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 +156 -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 +270 -0
  51. package/dist/client/KadiClient.d.ts.map +1 -0
  52. package/dist/client/KadiClient.js +492 -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 +49 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +63 -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 +19 -0
  91. package/dist/schemas/index.d.ts.map +1 -0
  92. package/dist/schemas/index.js +25 -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/tools/ToolRegistry.d.ts +256 -0
  111. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  112. package/dist/tools/ToolRegistry.js +340 -0
  113. package/dist/tools/ToolRegistry.js.map +1 -0
  114. package/dist/tools/index.d.ts +7 -0
  115. package/dist/tools/index.d.ts.map +1 -0
  116. package/dist/tools/index.js +7 -0
  117. package/dist/tools/index.js.map +1 -0
  118. package/dist/transports/BrokerTransport.d.ts +151 -0
  119. package/dist/transports/BrokerTransport.d.ts.map +1 -0
  120. package/dist/transports/BrokerTransport.js +261 -0
  121. package/dist/transports/BrokerTransport.js.map +1 -0
  122. package/dist/transports/NativeTransport.d.ts +149 -0
  123. package/dist/transports/NativeTransport.d.ts.map +1 -0
  124. package/dist/transports/NativeTransport.js +302 -0
  125. package/dist/transports/NativeTransport.js.map +1 -0
  126. package/dist/transports/StdioTransport.d.ts +172 -0
  127. package/dist/transports/StdioTransport.d.ts.map +1 -0
  128. package/dist/transports/StdioTransport.js +410 -0
  129. package/dist/transports/StdioTransport.js.map +1 -0
  130. package/dist/transports/index.d.ts +10 -0
  131. package/dist/transports/index.d.ts.map +1 -0
  132. package/dist/transports/index.js +9 -0
  133. package/dist/transports/index.js.map +1 -0
  134. package/dist/types/broker.d.ts +301 -0
  135. package/dist/types/broker.d.ts.map +1 -0
  136. package/dist/types/broker.js +46 -0
  137. package/dist/types/broker.js.map +1 -0
  138. package/dist/types/config.d.ts +325 -0
  139. package/dist/types/config.d.ts.map +1 -0
  140. package/dist/types/config.js +17 -0
  141. package/dist/types/config.js.map +1 -0
  142. package/dist/types/errors.d.ts +178 -0
  143. package/dist/types/errors.d.ts.map +1 -0
  144. package/dist/types/errors.js +165 -0
  145. package/dist/types/errors.js.map +1 -0
  146. package/dist/types/events.d.ts +210 -0
  147. package/dist/types/events.d.ts.map +1 -0
  148. package/dist/types/events.js +8 -0
  149. package/dist/types/events.js.map +1 -0
  150. package/dist/types/index.d.ts +32 -0
  151. package/dist/types/index.d.ts.map +1 -0
  152. package/dist/types/index.js +21 -0
  153. package/dist/types/index.js.map +1 -0
  154. package/dist/types/protocol.d.ts +48 -0
  155. package/dist/types/protocol.d.ts.map +1 -0
  156. package/dist/types/protocol.js +11 -0
  157. package/dist/types/protocol.js.map +1 -0
  158. package/dist/types/tools.d.ts +67 -0
  159. package/dist/types/tools.d.ts.map +1 -0
  160. package/dist/types/tools.js +16 -0
  161. package/dist/types/tools.js.map +1 -0
  162. package/dist/types/transport.d.ts +250 -0
  163. package/dist/types/transport.d.ts.map +1 -0
  164. package/dist/types/transport.js +18 -0
  165. package/dist/types/transport.js.map +1 -0
  166. package/dist/validation/SchemaValidator.d.ts +208 -0
  167. package/dist/validation/SchemaValidator.d.ts.map +1 -0
  168. package/dist/validation/SchemaValidator.js +411 -0
  169. package/dist/validation/SchemaValidator.js.map +1 -0
  170. package/dist/validation/index.d.ts +11 -0
  171. package/dist/validation/index.d.ts.map +1 -0
  172. package/dist/validation/index.js +10 -0
  173. package/dist/validation/index.js.map +1 -0
  174. package/package.json +69 -5
  175. package/agent.json +0 -18
  176. package/broker.js +0 -214
  177. package/index.js +0 -370
  178. package/ipc.js +0 -220
  179. package/ipcInterfaces/pythonAbilityIPC.py +0 -177
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Broker Types
3
+ *
4
+ * Type definitions for broker connections, protocol, and communication.
5
+ * Brokers enable service discovery and remote communication between agents.
6
+ */
7
+ import type { WebSocket } from 'ws';
8
+ import type { ToolDefinition } from './tools.js';
9
+ /**
10
+ * Broker connection state
11
+ */
12
+ export interface BrokerConnection {
13
+ /**
14
+ * WebSocket instance
15
+ */
16
+ ws: WebSocket;
17
+ /**
18
+ * Broker URL (e.g., ws://localhost:8080)
19
+ */
20
+ url: string;
21
+ /**
22
+ * Named identifier for this broker (e.g., 'local', 'production')
23
+ */
24
+ brokerName: string;
25
+ /**
26
+ * Unique agent/session ID assigned by broker
27
+ */
28
+ agentId: string;
29
+ /**
30
+ * Whether authentication has completed successfully
31
+ */
32
+ isAuthenticated: boolean;
33
+ /**
34
+ * Connection state
35
+ */
36
+ state: ConnectionState;
37
+ /**
38
+ * Heartbeat timer (for keeping connection alive)
39
+ */
40
+ heartbeatTimer?: NodeJS.Timeout;
41
+ /**
42
+ * When the connection was established
43
+ */
44
+ connectedAt?: number;
45
+ /**
46
+ * Last heartbeat timestamp
47
+ */
48
+ lastHeartbeat?: number;
49
+ }
50
+ /**
51
+ * Connection state enum
52
+ */
53
+ export declare enum ConnectionState {
54
+ DISCONNECTED = "disconnected",
55
+ CONNECTING = "connecting",
56
+ CONNECTED = "connected",
57
+ AUTHENTICATING = "authenticating",
58
+ AUTHENTICATED = "authenticated",
59
+ ERROR = "error"
60
+ }
61
+ /**
62
+ * Broker configuration
63
+ */
64
+ export interface BrokerConfig {
65
+ /**
66
+ * Broker URL
67
+ */
68
+ url: string;
69
+ /**
70
+ * Named identifier for this broker
71
+ */
72
+ name: string;
73
+ /**
74
+ * Authentication token (if required)
75
+ */
76
+ authToken?: string;
77
+ /**
78
+ * Heartbeat interval in milliseconds
79
+ */
80
+ heartbeatInterval?: number;
81
+ /**
82
+ * Connection timeout in milliseconds
83
+ */
84
+ connectionTimeout?: number;
85
+ /**
86
+ * Request timeout in milliseconds
87
+ */
88
+ requestTimeout?: number;
89
+ /**
90
+ * Whether to automatically reconnect on disconnect
91
+ */
92
+ autoReconnect?: boolean;
93
+ /**
94
+ * Max reconnection attempts
95
+ */
96
+ maxReconnectAttempts?: number;
97
+ }
98
+ /**
99
+ * JSON-RPC 2.0 request
100
+ */
101
+ export interface JsonRpcRequest<TParams = unknown> {
102
+ jsonrpc: '2.0';
103
+ method: string;
104
+ params?: TParams;
105
+ id?: string | number;
106
+ }
107
+ /**
108
+ * JSON-RPC 2.0 response
109
+ */
110
+ export interface JsonRpcResponse<TResult = unknown> {
111
+ jsonrpc: '2.0';
112
+ result?: TResult;
113
+ error?: JsonRpcError;
114
+ id: string | number;
115
+ }
116
+ /**
117
+ * JSON-RPC 2.0 error
118
+ */
119
+ export interface JsonRpcError {
120
+ code: number;
121
+ message: string;
122
+ data?: unknown;
123
+ }
124
+ /**
125
+ * JSON-RPC 2.0 notification (request without ID)
126
+ */
127
+ export interface JsonRpcNotification<TParams = unknown> {
128
+ jsonrpc: '2.0';
129
+ method: string;
130
+ params?: TParams;
131
+ }
132
+ /**
133
+ * KADI broker protocol methods
134
+ *
135
+ * IMPORTANT: These must match KadiMessages in src/messages/index.ts!
136
+ *
137
+ * @deprecated Use KadiMessages directly from '@kadi.build/core/messages' instead
138
+ */
139
+ export declare enum KadiProtocolMethod {
140
+ HANDSHAKE = "kadi.session.hello",
141
+ AUTHENTICATE = "kadi.session.authenticate",
142
+ HEARTBEAT = "kadi.session.ping",
143
+ GOODBYE = "kadi.session.goodbye",
144
+ REGISTER_CAPABILITIES = "kadi.agent.register",
145
+ LIST_TOOLS = "kadi.ability.list",
146
+ TOOL_INVOKE = "kadi.ability.request",
147
+ TOOL_RESULT = "kadi.ability.result",
148
+ TOOL_PENDING = "kadi.ability.pending",
149
+ EVENT_SUBSCRIBE = "kadi.event.subscribe",
150
+ EVENT_UNSUBSCRIBE = "kadi.event.unsubscribe",
151
+ EVENT_PUBLISH = "kadi.event.publish",
152
+ EVENT_DELIVERY = "kadi.event.delivery"
153
+ }
154
+ /**
155
+ * Handshake request parameters
156
+ */
157
+ export interface HandshakeParams {
158
+ /**
159
+ * Agent/client role
160
+ *
161
+ * Must be one of: 'agent', 'client', 'observer', 'ability'
162
+ */
163
+ role: 'agent' | 'client' | 'observer' | 'ability';
164
+ /**
165
+ * Agent name
166
+ */
167
+ name?: string;
168
+ /**
169
+ * Agent version
170
+ */
171
+ version?: string;
172
+ /**
173
+ * Protocol version
174
+ */
175
+ protocolVersion?: string;
176
+ /**
177
+ * Networks this agent wants to join
178
+ */
179
+ networks?: string[];
180
+ }
181
+ /**
182
+ * Handshake response result
183
+ */
184
+ export interface HandshakeResult {
185
+ /**
186
+ * Assigned agent ID
187
+ * Empty string for unauthenticated connections (observers, clients)
188
+ */
189
+ agentId: string;
190
+ /**
191
+ * Whether this connection requires capability registration
192
+ * True for agent/ability roles, false for client/observer roles
193
+ */
194
+ requiresRegistration: boolean;
195
+ }
196
+ /**
197
+ * Capability registration parameters
198
+ */
199
+ export interface RegisterCapabilitiesParams {
200
+ /**
201
+ * Tools this agent provides
202
+ */
203
+ tools: ToolDefinition[];
204
+ /**
205
+ * Networks to register in
206
+ */
207
+ networks?: string[];
208
+ /**
209
+ * Display name for this agent
210
+ */
211
+ displayName?: string;
212
+ }
213
+ /**
214
+ * Tool invocation parameters
215
+ */
216
+ export interface ToolInvokeParams {
217
+ /**
218
+ * Target agent name
219
+ */
220
+ targetAgent: string;
221
+ /**
222
+ * Tool name to invoke
223
+ */
224
+ toolName: string;
225
+ /**
226
+ * Input parameters
227
+ */
228
+ toolInput?: unknown;
229
+ /**
230
+ * Request ID for tracking
231
+ */
232
+ requestId?: string;
233
+ /**
234
+ * Timeout in milliseconds
235
+ */
236
+ timeout?: number;
237
+ }
238
+ /**
239
+ * Event subscription parameters
240
+ */
241
+ export interface EventSubscribeParams {
242
+ /**
243
+ * Event patterns to subscribe to
244
+ */
245
+ channels: string[];
246
+ /**
247
+ * Network to subscribe within
248
+ */
249
+ networkId?: string;
250
+ }
251
+ /**
252
+ * Event publish parameters
253
+ */
254
+ export interface EventPublishParams {
255
+ /**
256
+ * Event channel/name
257
+ */
258
+ channel: string;
259
+ /**
260
+ * Event data
261
+ */
262
+ data: unknown;
263
+ /**
264
+ * Optional hints for delivery
265
+ */
266
+ hints?: {
267
+ latestOnly?: boolean;
268
+ coalescingKey?: string;
269
+ ttl?: number;
270
+ };
271
+ /**
272
+ * Network to publish to
273
+ */
274
+ networkId?: string;
275
+ }
276
+ /**
277
+ * Pending request tracker
278
+ */
279
+ export interface PendingRequest<T = unknown> {
280
+ /**
281
+ * Request ID
282
+ */
283
+ id: string | number;
284
+ /**
285
+ * Promise resolve function
286
+ */
287
+ resolve: (value: T) => void;
288
+ /**
289
+ * Promise reject function
290
+ */
291
+ reject: (reason: unknown) => void;
292
+ /**
293
+ * Timeout timer
294
+ */
295
+ timeout?: NodeJS.Timeout;
296
+ /**
297
+ * When the request was sent
298
+ */
299
+ timestamp: number;
300
+ }
301
+ //# sourceMappingURL=broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Broker Types
3
+ *
4
+ * Type definitions for broker connections, protocol, and communication.
5
+ * Brokers enable service discovery and remote communication between agents.
6
+ */
7
+ /**
8
+ * Connection state enum
9
+ */
10
+ export var ConnectionState;
11
+ (function (ConnectionState) {
12
+ ConnectionState["DISCONNECTED"] = "disconnected";
13
+ ConnectionState["CONNECTING"] = "connecting";
14
+ ConnectionState["CONNECTED"] = "connected";
15
+ ConnectionState["AUTHENTICATING"] = "authenticating";
16
+ ConnectionState["AUTHENTICATED"] = "authenticated";
17
+ ConnectionState["ERROR"] = "error";
18
+ })(ConnectionState || (ConnectionState = {}));
19
+ /**
20
+ * KADI broker protocol methods
21
+ *
22
+ * IMPORTANT: These must match KadiMessages in src/messages/index.ts!
23
+ *
24
+ * @deprecated Use KadiMessages directly from '@kadi.build/core/messages' instead
25
+ */
26
+ export var KadiProtocolMethod;
27
+ (function (KadiProtocolMethod) {
28
+ // Session lifecycle
29
+ KadiProtocolMethod["HANDSHAKE"] = "kadi.session.hello";
30
+ KadiProtocolMethod["AUTHENTICATE"] = "kadi.session.authenticate";
31
+ KadiProtocolMethod["HEARTBEAT"] = "kadi.session.ping";
32
+ KadiProtocolMethod["GOODBYE"] = "kadi.session.goodbye";
33
+ // Agent registration
34
+ KadiProtocolMethod["REGISTER_CAPABILITIES"] = "kadi.agent.register";
35
+ // Tool operations
36
+ KadiProtocolMethod["LIST_TOOLS"] = "kadi.ability.list";
37
+ KadiProtocolMethod["TOOL_INVOKE"] = "kadi.ability.request";
38
+ KadiProtocolMethod["TOOL_RESULT"] = "kadi.ability.result";
39
+ KadiProtocolMethod["TOOL_PENDING"] = "kadi.ability.pending";
40
+ // Events
41
+ KadiProtocolMethod["EVENT_SUBSCRIBE"] = "kadi.event.subscribe";
42
+ KadiProtocolMethod["EVENT_UNSUBSCRIBE"] = "kadi.event.unsubscribe";
43
+ KadiProtocolMethod["EVENT_PUBLISH"] = "kadi.event.publish";
44
+ KadiProtocolMethod["EVENT_DELIVERY"] = "kadi.event.delivery";
45
+ })(KadiProtocolMethod || (KadiProtocolMethod = {}));
46
+ //# sourceMappingURL=broker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuDH;;GAEG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;IAC/B,kCAAe,CAAA;AACjB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAqFD;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,oBAAoB;IACpB,sDAAgC,CAAA;IAChC,gEAA0C,CAAA;IAC1C,qDAA+B,CAAA;IAC/B,sDAAgC,CAAA;IAEhC,qBAAqB;IACrB,mEAA6C,CAAA;IAE7C,kBAAkB;IAClB,sDAAgC,CAAA;IAChC,0DAAoC,CAAA;IACpC,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IAErC,SAAS;IACT,8DAAwC,CAAA;IACxC,kEAA4C,CAAA;IAC5C,0DAAoC,CAAA;IACpC,4DAAsC,CAAA;AACxC,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Configuration Types
3
+ *
4
+ * Type definitions for KADI client and service configuration.
5
+ * Clear precedence: Code > Environment > File > Defaults
6
+ */
7
+ /**
8
+ * Transport protocol types
9
+ */
10
+ export type TransportKind = 'native' | 'stdio' | 'broker';
11
+ /**
12
+ * Agent role type
13
+ */
14
+ export type AgentRole = 'agent' | 'ability' | 'client' | 'observer';
15
+ /**
16
+ * KADI Client Configuration
17
+ *
18
+ * Complete configuration for creating a KADI client.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const config: KadiClientConfig = {
23
+ * name: 'my-service',
24
+ * brokers: {
25
+ * local: 'ws://localhost:8080',
26
+ * prod: 'wss://prod.example.com'
27
+ * },
28
+ * networks: ['global', 'team-alpha']
29
+ * };
30
+ * ```
31
+ */
32
+ export interface KadiClientConfig {
33
+ /**
34
+ * Agent/service name (required)
35
+ */
36
+ name: string;
37
+ /**
38
+ * Version string (semver recommended)
39
+ */
40
+ version?: string;
41
+ /**
42
+ * Human-readable description
43
+ */
44
+ description?: string;
45
+ /**
46
+ * Role of this agent
47
+ * @default 'agent'
48
+ */
49
+ role?: AgentRole;
50
+ /**
51
+ * Default transport mode for loading abilities
52
+ * @default 'native'
53
+ */
54
+ transport?: TransportKind;
55
+ /**
56
+ * Named broker configurations
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * brokers: {
61
+ * local: 'ws://localhost:8080',
62
+ * production: 'wss://broker.example.com'
63
+ * }
64
+ * ```
65
+ */
66
+ brokers?: Record<string, string>;
67
+ /**
68
+ * Default broker to use (must be a key in `brokers`)
69
+ */
70
+ defaultBroker?: string;
71
+ /**
72
+ * Networks to join
73
+ * @default ['global']
74
+ */
75
+ networks?: string[];
76
+ /**
77
+ * Path to agent.json file (for ability mode)
78
+ */
79
+ abilityAgentJSON?: string;
80
+ /**
81
+ * Whether to automatically connect to brokers on instantiation
82
+ * @default false
83
+ */
84
+ autoConnect?: boolean;
85
+ /**
86
+ * Advanced configuration options
87
+ */
88
+ advanced?: AdvancedConfig;
89
+ }
90
+ /**
91
+ * Advanced configuration options
92
+ */
93
+ export interface AdvancedConfig {
94
+ /**
95
+ * Heartbeat interval in milliseconds
96
+ * @default 30000 (30 seconds)
97
+ */
98
+ heartbeatInterval?: number;
99
+ /**
100
+ * Request timeout in milliseconds
101
+ * @default 30000 (30 seconds)
102
+ */
103
+ requestTimeout?: number;
104
+ /**
105
+ * Connection timeout in milliseconds
106
+ * @default 10000 (10 seconds)
107
+ */
108
+ connectionTimeout?: number;
109
+ /**
110
+ * Whether to automatically reconnect on disconnect
111
+ * @default true
112
+ */
113
+ autoReconnect?: boolean;
114
+ /**
115
+ * Maximum reconnection attempts
116
+ * @default 5
117
+ */
118
+ maxReconnectAttempts?: number;
119
+ /**
120
+ * Enable verbose logging
121
+ * @default false
122
+ */
123
+ verbose?: boolean;
124
+ }
125
+ /**
126
+ * Simplified configuration for quick setup
127
+ *
128
+ * Can be just a broker URL string or a full config object
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * // Simple
133
+ * const config: KadiConfig = 'ws://localhost:8080';
134
+ *
135
+ * // Full
136
+ * const config: KadiConfig = {
137
+ * name: 'my-service',
138
+ * broker: 'ws://localhost:8080'
139
+ * };
140
+ * ```
141
+ */
142
+ export type KadiConfig = string | KadiClientConfig;
143
+ /**
144
+ * Service configuration (simplified for service creation)
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const config: ServiceConfig = {
149
+ * name: 'calculator',
150
+ * broker: 'ws://localhost:8080'
151
+ * };
152
+ * ```
153
+ */
154
+ export interface ServiceConfig {
155
+ /**
156
+ * Service name
157
+ */
158
+ name: string;
159
+ /**
160
+ * Broker URL or name
161
+ */
162
+ broker?: string;
163
+ /**
164
+ * Version
165
+ */
166
+ version?: string;
167
+ /**
168
+ * Description
169
+ */
170
+ description?: string;
171
+ /**
172
+ * Networks to join
173
+ */
174
+ networks?: string[];
175
+ }
176
+ /**
177
+ * Ability loading options
178
+ *
179
+ * @deprecated Use {@link LoadOptions} from '@kadi.build/core/abilities' instead
180
+ *
181
+ * **Migration Guide:**
182
+ * ```typescript
183
+ * // OLD (deprecated)
184
+ * import type { LoadAbilityOptions } from '@kadi.build/core/types';
185
+ * const options: LoadAbilityOptions = {
186
+ * transport: 'broker',
187
+ * networks: ['global']
188
+ * };
189
+ *
190
+ * // NEW (recommended)
191
+ * import type { LoadOptions } from '@kadi.build/core/abilities';
192
+ * const options: LoadOptions = {
193
+ * transport: 'broker',
194
+ * networks: ['global']
195
+ * };
196
+ * ```
197
+ *
198
+ * **Benefits of new LoadOptions:**
199
+ * - Type-safe discriminated unions (only relevant fields per transport)
200
+ * - Better autocomplete
201
+ * - Compile-time validation
202
+ * - Auto-detection support
203
+ *
204
+ * This interface kept temporarily for backward compatibility.
205
+ * Will be removed in next major version.
206
+ */
207
+ export interface LoadAbilityOptions {
208
+ /**
209
+ * Transport protocol to use
210
+ * @deprecated Use LoadOptions from abilities module
211
+ */
212
+ transport?: TransportKind;
213
+ /**
214
+ * Version constraint (semver)
215
+ * @deprecated Use LoadOptions from abilities module
216
+ */
217
+ version?: string;
218
+ /**
219
+ * Networks to search in (for broker transport)
220
+ * @deprecated Use LoadOptions from abilities module
221
+ */
222
+ networks?: string[];
223
+ /**
224
+ * Specific broker to use (overrides client default)
225
+ * @deprecated Use LoadOptions from abilities module
226
+ */
227
+ broker?: string;
228
+ /**
229
+ * Timeout for loading
230
+ * @deprecated Use LoadOptions from abilities module
231
+ */
232
+ timeout?: number;
233
+ /**
234
+ * Path to ability directory (for native/stdio transports)
235
+ * @deprecated Use LoadOptions from abilities module
236
+ */
237
+ path?: string;
238
+ }
239
+ /**
240
+ * Configuration loaded from agent.json file
241
+ */
242
+ export interface AgentJsonConfig {
243
+ /**
244
+ * Agent name
245
+ */
246
+ name: string;
247
+ /**
248
+ * Version
249
+ */
250
+ version?: string;
251
+ /**
252
+ * Description
253
+ */
254
+ description?: string;
255
+ /**
256
+ * Broker configuration
257
+ */
258
+ brokers?: Record<string, string>;
259
+ /**
260
+ * Default broker
261
+ */
262
+ defaultBroker?: string;
263
+ /**
264
+ * Networks
265
+ */
266
+ networks?: string[];
267
+ /**
268
+ * Tools/capabilities this agent provides
269
+ */
270
+ tools?: Array<{
271
+ name: string;
272
+ handler: string;
273
+ schema?: Record<string, unknown>;
274
+ }>;
275
+ /**
276
+ * Other metadata
277
+ */
278
+ [key: string]: unknown;
279
+ }
280
+ /**
281
+ * Environment variable configuration
282
+ */
283
+ export interface EnvConfig {
284
+ /**
285
+ * KADI_BROKER_URL
286
+ */
287
+ KADI_BROKER_URL?: string;
288
+ /**
289
+ * KADI_NETWORKS (comma-separated)
290
+ */
291
+ KADI_NETWORKS?: string;
292
+ /**
293
+ * KADI_TRANSPORT
294
+ */
295
+ KADI_TRANSPORT?: TransportKind;
296
+ /**
297
+ * KADI_AGENT_NAME
298
+ */
299
+ KADI_AGENT_NAME?: string;
300
+ /**
301
+ * KADI_AUTO_CONNECT
302
+ */
303
+ KADI_AUTO_CONNECT?: string;
304
+ }
305
+ /**
306
+ * Resolved configuration after merging all sources
307
+ */
308
+ export interface ResolvedConfig extends Required<KadiClientConfig> {
309
+ /**
310
+ * Configuration source for each field
311
+ */
312
+ sources: {
313
+ [K in keyof KadiClientConfig]?: ConfigSource;
314
+ };
315
+ }
316
+ /**
317
+ * Configuration source
318
+ */
319
+ export declare enum ConfigSource {
320
+ CODE = "code",
321
+ ENVIRONMENT = "environment",
322
+ FILE = "file",
323
+ DEFAULT = "default"
324
+ }
325
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Configuration Types
3
+ *
4
+ * Type definitions for KADI client and service configuration.
5
+ * Clear precedence: Code > Environment > File > Defaults
6
+ */
7
+ /**
8
+ * Configuration source
9
+ */
10
+ export var ConfigSource;
11
+ (function (ConfigSource) {
12
+ ConfigSource["CODE"] = "code";
13
+ ConfigSource["ENVIRONMENT"] = "environment";
14
+ ConfigSource["FILE"] = "file";
15
+ ConfigSource["DEFAULT"] = "default";
16
+ })(ConfigSource || (ConfigSource = {}));
17
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoWH;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,2CAA2B,CAAA;IAC3B,6BAAa,CAAA;IACb,mCAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB"}