@kadi.build/core 0.0.1-alpha.4 → 0.0.1-alpha.6
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.
- package/README.md +359 -188
- package/dist/KadiClient.d.ts +153 -16
- package/dist/KadiClient.d.ts.map +1 -1
- package/dist/KadiClient.js +395 -39
- package/dist/KadiClient.js.map +1 -1
- package/dist/loadAbility.d.ts +64 -23
- package/dist/loadAbility.d.ts.map +1 -1
- package/dist/loadAbility.js +81 -40
- package/dist/loadAbility.js.map +1 -1
- package/dist/messages/BrokerMessages.d.ts.map +1 -1
- package/dist/messages/BrokerMessages.js +0 -2
- package/dist/messages/BrokerMessages.js.map +1 -1
- package/dist/transports/BrokerTransport.d.ts +14 -4
- package/dist/transports/BrokerTransport.d.ts.map +1 -1
- package/dist/transports/BrokerTransport.js +61 -29
- package/dist/transports/BrokerTransport.js.map +1 -1
- package/dist/transports/NativeTransport.d.ts +2 -12
- package/dist/transports/NativeTransport.d.ts.map +1 -1
- package/dist/transports/NativeTransport.js +66 -24
- package/dist/transports/NativeTransport.js.map +1 -1
- package/dist/transports/StdioTransport.d.ts.map +1 -1
- package/dist/transports/StdioTransport.js +8 -3
- package/dist/transports/StdioTransport.js.map +1 -1
- package/dist/types/core.d.ts +1 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/utils/agentUtils.d.ts +86 -1
- package/dist/utils/agentUtils.d.ts.map +1 -1
- package/dist/utils/agentUtils.js +20 -1
- package/dist/utils/agentUtils.js.map +1 -1
- package/package.json +3 -5
package/dist/KadiClient.d.ts
CHANGED
|
@@ -2,16 +2,29 @@ import { EventEmitter } from 'events';
|
|
|
2
2
|
import { JSONSchema, BrokerConnection } from './types/core.js';
|
|
3
3
|
import { LoadedAbility } from './loadAbility.js';
|
|
4
4
|
export interface KadiClientConfig {
|
|
5
|
+
/** Agent display name for identification */
|
|
5
6
|
name?: string;
|
|
7
|
+
/** Agent version string */
|
|
6
8
|
version?: string;
|
|
9
|
+
/** Human-readable description of the agent */
|
|
7
10
|
description?: string;
|
|
8
|
-
|
|
11
|
+
/** Role when connecting to broker - determines available operations */
|
|
12
|
+
role?: 'agent' | 'ability';
|
|
13
|
+
/** Communication protocol - determines how the client serves requests */
|
|
9
14
|
protocol?: 'native' | 'stdio' | 'broker';
|
|
10
|
-
|
|
15
|
+
/** Primary network segment for message routing - defines which network this client operates in. Used for isolation and access control between different environments. */
|
|
16
|
+
network?: string;
|
|
17
|
+
/** Additional network identifiers this client belongs to - enables participation in multiple network segments simultaneously */
|
|
11
18
|
networks?: string[];
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
/** Named broker configurations - enables connection to multiple brokers simultaneously */
|
|
20
|
+
brokers?: {
|
|
21
|
+
[brokerName: string]: string;
|
|
22
|
+
};
|
|
23
|
+
/** Default broker name for message routing when no specific broker is targeted */
|
|
24
|
+
defaultBroker?: string;
|
|
25
|
+
/** Maximum buffer size for message handling (primarily for stdio protocol) */
|
|
14
26
|
maxBufferSize?: number;
|
|
27
|
+
/** Path to ability agent.json configuration file */
|
|
15
28
|
abilityAgentJSON?: string;
|
|
16
29
|
[key: string]: any;
|
|
17
30
|
}
|
|
@@ -61,11 +74,14 @@ export declare class KadiClient extends EventEmitter {
|
|
|
61
74
|
readonly name: string;
|
|
62
75
|
readonly version: string;
|
|
63
76
|
readonly description: string;
|
|
64
|
-
readonly role: 'agent' | 'ability'
|
|
77
|
+
readonly role: 'agent' | 'ability';
|
|
65
78
|
protocol: 'native' | 'stdio' | 'broker';
|
|
66
|
-
readonly
|
|
79
|
+
readonly network: string;
|
|
67
80
|
readonly networks: string[];
|
|
68
|
-
readonly
|
|
81
|
+
readonly brokers: {
|
|
82
|
+
[brokerName: string]: string;
|
|
83
|
+
};
|
|
84
|
+
readonly defaultBroker?: string;
|
|
69
85
|
readonly abilityAgentJSON?: string;
|
|
70
86
|
private readonly logger;
|
|
71
87
|
private protocolHandler?;
|
|
@@ -77,8 +93,50 @@ export declare class KadiClient extends EventEmitter {
|
|
|
77
93
|
private _idFactory;
|
|
78
94
|
private _pendingResponses;
|
|
79
95
|
private _pendingToolCalls;
|
|
96
|
+
private _currentBroker?;
|
|
97
|
+
/**
|
|
98
|
+
* Resolver function for the native protocol serve promise.
|
|
99
|
+
* When serve() is called with native protocol, it creates a promise to keep
|
|
100
|
+
* the process alive. This resolver allows us to resolve that promise during
|
|
101
|
+
* disconnect(), enabling clean shutdown of native abilities.
|
|
102
|
+
*/
|
|
103
|
+
private _nativeServePromiseResolve?;
|
|
104
|
+
/**
|
|
105
|
+
* Stores all event subscriptions as a Map of pattern → array of callback functions
|
|
106
|
+
* Example structure:
|
|
107
|
+
* {
|
|
108
|
+
* 'user.login' => [handleLogin, logLoginEvent], // 2 functions listening to user.login
|
|
109
|
+
* 'payment.*' => [processPayment], // 1 function listening to all payment events
|
|
110
|
+
* 'system.shutdown' => [saveState, cleanupResources] // 2 functions for shutdown
|
|
111
|
+
* }
|
|
112
|
+
* When an event arrives, we check which patterns match and call all their callbacks
|
|
113
|
+
*/
|
|
80
114
|
private _eventSubscriptions;
|
|
81
115
|
constructor(options?: KadiClientConfig);
|
|
116
|
+
/**
|
|
117
|
+
* Get the currently active broker name
|
|
118
|
+
*/
|
|
119
|
+
get currentBroker(): string | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* Set the currently active broker
|
|
122
|
+
* @param brokerName The name of the broker to use
|
|
123
|
+
* @throws Error if the broker name doesn't exist in configuration
|
|
124
|
+
*/
|
|
125
|
+
setCurrentBroker(brokerName: string): void;
|
|
126
|
+
/**
|
|
127
|
+
* Get the current broker's connection (if connected)
|
|
128
|
+
*/
|
|
129
|
+
private getCurrentBrokerConnection;
|
|
130
|
+
/**
|
|
131
|
+
* Resolve broker configuration with agent.json integration
|
|
132
|
+
* Precedence: Code brokers > agent.json brokers > environment defaults
|
|
133
|
+
*/
|
|
134
|
+
private resolveBrokerConfiguration;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve default broker with fallback logic
|
|
137
|
+
* Priority: Explicit defaultBroker > agent.json defaultBroker > 'prod' key > first broker key
|
|
138
|
+
*/
|
|
139
|
+
private resolveDefaultBroker;
|
|
82
140
|
/**
|
|
83
141
|
* Register a tool for this service
|
|
84
142
|
*
|
|
@@ -113,13 +171,18 @@ export declare class KadiClient extends EventEmitter {
|
|
|
113
171
|
*/
|
|
114
172
|
publishEvent(eventName: string, data?: any): void;
|
|
115
173
|
/**
|
|
116
|
-
* Connect to brokers (for event subscription and/or broker protocol)
|
|
174
|
+
* Connect to all configured brokers (for event subscription and/or broker protocol)
|
|
175
|
+
* Always connects to ALL brokers defined in this.brokers for maximum redundancy
|
|
176
|
+
*/
|
|
177
|
+
connectToBrokers(): Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Check if connected to a specific broker URL
|
|
117
180
|
*/
|
|
118
|
-
|
|
181
|
+
isConnectedToBroker(url: string): boolean;
|
|
119
182
|
/**
|
|
120
183
|
* Connect to a single broker
|
|
121
184
|
*/
|
|
122
|
-
|
|
185
|
+
connectToBroker(url: string, brokerName?: string): Promise<void>;
|
|
123
186
|
/**
|
|
124
187
|
* Perform KADI protocol handshake
|
|
125
188
|
*/
|
|
@@ -188,15 +251,83 @@ export declare class KadiClient extends EventEmitter {
|
|
|
188
251
|
*/
|
|
189
252
|
callTool<TInput = unknown, TOutput = unknown>(targetAgent: string, toolName: string, params?: TInput): Promise<TOutput>;
|
|
190
253
|
/**
|
|
191
|
-
*
|
|
254
|
+
* Send a request directly to the broker
|
|
255
|
+
* Uses the current broker or the specified broker
|
|
256
|
+
*
|
|
257
|
+
* @param method The RPC method to call (e.g., 'kadi.ability.list')
|
|
258
|
+
* @param params The parameters for the method
|
|
259
|
+
* @param brokerName Optional broker name to use (overrides current broker)
|
|
260
|
+
* @returns The response from the broker
|
|
261
|
+
*/
|
|
262
|
+
sendBrokerRequest(method: string, params?: unknown, brokerName?: string): Promise<unknown>;
|
|
263
|
+
/**
|
|
264
|
+
* Load an external ability and make its methods available for calling
|
|
265
|
+
*
|
|
266
|
+
* This is the KadiClient's convenient wrapper for loading abilities. It handles
|
|
267
|
+
* broker resolution from your client config and delegates the actual loading
|
|
268
|
+
* to the standalone loadAbility() function.
|
|
269
|
+
*
|
|
270
|
+
* Note: This method delegates to the standalone loadAbility() function after
|
|
271
|
+
* resolving broker configurations. If you need more control or don't have a
|
|
272
|
+
* KadiClient instance, you can use the standalone loadAbility() function directly.
|
|
273
|
+
*
|
|
274
|
+
* @param nameOrPath - Which ability to load. Can be:
|
|
275
|
+
* - "ability-name" - loads from your installed abilities
|
|
276
|
+
* - "/path/to/ability" - loads from a folder path
|
|
277
|
+
*
|
|
278
|
+
* @param protocol - How to connect to the ability:
|
|
279
|
+
* - 'native': Load directly into this process (fastest, same language only)
|
|
280
|
+
* - 'stdio': Spawn as child process, communicate via stdin/stdout (any language)
|
|
281
|
+
* - 'broker': Connect via broker (ability runs anywhere, most flexible)
|
|
282
|
+
*
|
|
283
|
+
* @param options - Configuration for how to load the ability:
|
|
284
|
+
*
|
|
285
|
+
* broker: Which named broker to use (from your KadiClient config). Only for 'broker' protocol.
|
|
286
|
+
* Example: 'prod', 'local', 'staging'
|
|
287
|
+
* Uses your current/default broker if not specified.
|
|
288
|
+
*
|
|
289
|
+
* brokerUrl: Direct broker WebSocket URL. Only for 'broker' protocol.
|
|
290
|
+
* Example: 'ws://localhost:8080', 'wss://broker.company.com'
|
|
291
|
+
* Overrides the 'broker' option if provided.
|
|
292
|
+
*
|
|
293
|
+
* spawnAbility: Whether to start the ability first. Only for 'broker' protocol.
|
|
294
|
+
* - true: Start the ability process AND connect to it (useful for development)
|
|
295
|
+
* - false (default): Just connect to an already-running ability
|
|
296
|
+
* Most production setups use false since abilities run independently.
|
|
297
|
+
*
|
|
298
|
+
* networks: Which KADI networks to search for the ability. Only for 'broker' protocol.
|
|
299
|
+
* Example: ['global', 'team-alpha', 'dev-environment']
|
|
300
|
+
* search specific networks to find them. Defaults to ['global'] if not specified.
|
|
301
|
+
*
|
|
302
|
+
* @returns A proxy object that lets you call the ability's methods directly.
|
|
303
|
+
* Example: ability.processData({input: "hello"}) calls the ability's processData method.
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* // Load a JavaScript ability in the same process (fastest)
|
|
307
|
+
* const mathLib = await client.loadAbility('math-utils', 'native');
|
|
308
|
+
* const result = await mathLib.add({a: 5, b: 3}); // Returns 8
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* // Load a Go/Python/Rust ability via child process
|
|
312
|
+
* const imageProcessor = await client.loadAbility('image-resizer', 'stdio');
|
|
313
|
+
* const thumbnail = await imageProcessor.resize({image: buffer, size: '100x100'});
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* // Connect to an ability running on a remote broker (using named broker from config)
|
|
317
|
+
* const aiService = await client.loadAbility('gpt-analyzer', 'broker', {
|
|
318
|
+
* broker: 'prod', // Use the 'prod' broker from KadiClient config
|
|
319
|
+
* networks: ['ai-services', 'global'] // Look in these networks
|
|
320
|
+
* });
|
|
321
|
+
* const analysis = await aiService.analyze({text: "Hello world"});
|
|
192
322
|
*/
|
|
193
323
|
loadAbility(nameOrPath: string, protocol?: 'native' | 'stdio' | 'broker', options?: {
|
|
324
|
+
broker?: string;
|
|
194
325
|
brokerUrl?: string;
|
|
195
326
|
spawnAbility?: boolean;
|
|
196
327
|
networks?: string[];
|
|
197
328
|
}): Promise<LoadedAbility>;
|
|
198
329
|
/**
|
|
199
|
-
* Disconnect from brokers
|
|
330
|
+
* Disconnect from brokers and cleanup resources
|
|
200
331
|
*/
|
|
201
332
|
disconnect(): Promise<void>;
|
|
202
333
|
/**
|
|
@@ -205,6 +336,7 @@ export declare class KadiClient extends EventEmitter {
|
|
|
205
336
|
private _loadAgentJsonExports;
|
|
206
337
|
/**
|
|
207
338
|
* Find agent.json file
|
|
339
|
+
* TODO: Not sure, but maybe this function can be moved to pathUtils.ts?
|
|
208
340
|
*/
|
|
209
341
|
private _findAgentJson;
|
|
210
342
|
/**
|
|
@@ -287,12 +419,17 @@ export declare class KadiClient extends EventEmitter {
|
|
|
287
419
|
*/
|
|
288
420
|
private _matchesPattern;
|
|
289
421
|
/**
|
|
290
|
-
* Dispatch event to subscribers
|
|
291
|
-
*
|
|
422
|
+
* Dispatch event to subscribers - This is the final delivery step
|
|
423
|
+
*
|
|
424
|
+
* After all the routing through transports and pattern matching,
|
|
425
|
+
* this function actually calls the user's callback functions with the event data.
|
|
426
|
+
*
|
|
427
|
+
* Example: If user did `client.subscribeToEvent('user.login', myFunction)`
|
|
428
|
+
* then when 'user.login' event arrives, this calls `myFunction(eventData)`
|
|
292
429
|
*
|
|
293
430
|
* @private
|
|
294
|
-
* @param pattern Pattern that matched
|
|
295
|
-
* @param data Event data
|
|
431
|
+
* @param pattern Pattern that matched (e.g., 'user.login' or 'payment.*')
|
|
432
|
+
* @param data Event data to pass to the callbacks
|
|
296
433
|
*/
|
|
297
434
|
private _dispatchEvent;
|
|
298
435
|
get isConnected(): boolean;
|
package/dist/KadiClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KadiClient.d.ts","sourceRoot":"","sources":["../src/KadiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,EACL,UAAU,EAGV,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"KadiClient.d.ts","sourceRoot":"","sources":["../src/KadiClient.ts"],"names":[],"mappings":"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"}
|