@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,279 @@
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
+ * Handshake request parameters
134
+ */
135
+ export interface HandshakeParams {
136
+ /**
137
+ * Agent/client role
138
+ *
139
+ * Must be one of: 'agent', 'client', 'observer', 'ability'
140
+ */
141
+ role: 'agent' | 'client' | 'observer' | 'ability';
142
+ /**
143
+ * Agent name
144
+ */
145
+ name?: string;
146
+ /**
147
+ * Agent version
148
+ */
149
+ version?: string;
150
+ /**
151
+ * Protocol version
152
+ */
153
+ protocolVersion?: string;
154
+ /**
155
+ * Networks this agent wants to join
156
+ */
157
+ networks?: string[];
158
+ }
159
+ /**
160
+ * Handshake response result
161
+ */
162
+ export interface HandshakeResult {
163
+ /**
164
+ * Assigned agent ID
165
+ * Empty string for unauthenticated connections (observers, clients)
166
+ */
167
+ agentId: string;
168
+ /**
169
+ * Whether this connection requires capability registration
170
+ * True for agent/ability roles, false for client/observer roles
171
+ */
172
+ requiresRegistration: boolean;
173
+ }
174
+ /**
175
+ * Capability registration parameters
176
+ */
177
+ export interface RegisterCapabilitiesParams {
178
+ /**
179
+ * Tools this agent provides
180
+ */
181
+ tools: ToolDefinition[];
182
+ /**
183
+ * Networks to register in
184
+ */
185
+ networks?: string[];
186
+ /**
187
+ * Display name for this agent
188
+ */
189
+ displayName?: string;
190
+ }
191
+ /**
192
+ * Tool invocation parameters
193
+ */
194
+ export interface ToolInvokeParams {
195
+ /**
196
+ * Target agent name
197
+ */
198
+ targetAgent: string;
199
+ /**
200
+ * Tool name to invoke
201
+ */
202
+ toolName: string;
203
+ /**
204
+ * Input parameters
205
+ */
206
+ toolInput?: unknown;
207
+ /**
208
+ * Request ID for tracking
209
+ */
210
+ requestId?: string;
211
+ /**
212
+ * Timeout in milliseconds
213
+ */
214
+ timeout?: number;
215
+ }
216
+ /**
217
+ * Event subscription parameters
218
+ */
219
+ export interface EventSubscribeParams {
220
+ /**
221
+ * Event patterns to subscribe to
222
+ */
223
+ channels: string[];
224
+ /**
225
+ * Network to subscribe within
226
+ */
227
+ networkId?: string;
228
+ }
229
+ /**
230
+ * Event publish parameters
231
+ */
232
+ export interface EventPublishParams {
233
+ /**
234
+ * Event channel/name
235
+ */
236
+ channel: string;
237
+ /**
238
+ * Event data
239
+ */
240
+ data: unknown;
241
+ /**
242
+ * Optional hints for delivery
243
+ */
244
+ hints?: {
245
+ latestOnly?: boolean;
246
+ coalescingKey?: string;
247
+ ttl?: number;
248
+ };
249
+ /**
250
+ * Network to publish to
251
+ */
252
+ networkId?: string;
253
+ }
254
+ /**
255
+ * Pending request tracker
256
+ */
257
+ export interface PendingRequest<T = unknown> {
258
+ /**
259
+ * Request ID
260
+ */
261
+ id: string | number;
262
+ /**
263
+ * Promise resolve function
264
+ */
265
+ resolve: (value: T) => void;
266
+ /**
267
+ * Promise reject function
268
+ */
269
+ reject: (reason: unknown) => void;
270
+ /**
271
+ * Timeout timer
272
+ */
273
+ timeout?: NodeJS.Timeout;
274
+ /**
275
+ * When the request was sent
276
+ */
277
+ timestamp: number;
278
+ }
279
+ //# 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,19 @@
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
+ //# 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"}
@@ -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"}