@kadi.build/core 0.0.1-alpha.2 → 0.0.1-alpha.4
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 +1122 -216
- package/dist/KadiClient.d.ts +303 -0
- package/dist/KadiClient.d.ts.map +1 -0
- package/dist/KadiClient.js +1162 -0
- package/dist/KadiClient.js.map +1 -0
- package/dist/errors/error-codes.d.ts +215 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +295 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/loadAbility.d.ts +65 -0
- package/dist/loadAbility.d.ts.map +1 -0
- package/dist/loadAbility.js +335 -0
- package/dist/loadAbility.js.map +1 -0
- package/dist/messages/BrokerMessages.d.ts +84 -0
- package/dist/messages/BrokerMessages.d.ts.map +1 -0
- package/dist/messages/BrokerMessages.js +127 -0
- package/dist/messages/BrokerMessages.js.map +1 -0
- package/dist/messages/MessageBuilder.d.ts +83 -0
- package/dist/messages/MessageBuilder.d.ts.map +1 -0
- package/dist/messages/MessageBuilder.js +144 -0
- package/dist/messages/MessageBuilder.js.map +1 -0
- package/dist/schemas/events.schemas.d.ts +177 -0
- package/dist/schemas/events.schemas.d.ts.map +1 -0
- package/dist/schemas/events.schemas.js +265 -0
- package/dist/schemas/events.schemas.js.map +1 -0
- package/dist/schemas/index.d.ts +3 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +4 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/kadi.schemas.d.ts +70 -0
- package/dist/schemas/kadi.schemas.d.ts.map +1 -0
- package/dist/schemas/kadi.schemas.js +120 -0
- package/dist/schemas/kadi.schemas.js.map +1 -0
- package/dist/transports/BrokerTransport.d.ts +96 -0
- package/dist/transports/BrokerTransport.d.ts.map +1 -0
- package/dist/transports/BrokerTransport.js +145 -0
- package/dist/transports/BrokerTransport.js.map +1 -0
- package/dist/transports/NativeTransport.d.ts +92 -0
- package/dist/transports/NativeTransport.d.ts.map +1 -0
- package/dist/transports/NativeTransport.js +221 -0
- package/dist/transports/NativeTransport.js.map +1 -0
- package/dist/transports/StdioTransport.d.ts +112 -0
- package/dist/transports/StdioTransport.d.ts.map +1 -0
- package/dist/transports/StdioTransport.js +440 -0
- package/dist/transports/StdioTransport.js.map +1 -0
- package/dist/transports/Transport.d.ts +93 -0
- package/dist/transports/Transport.d.ts.map +1 -0
- package/dist/transports/Transport.js +13 -0
- package/dist/transports/Transport.js.map +1 -0
- package/dist/types/broker.d.ts +31 -0
- package/dist/types/broker.d.ts.map +1 -0
- package/dist/types/broker.js +6 -0
- package/dist/types/broker.js.map +1 -0
- package/dist/types/core.d.ts +138 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +26 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/events.d.ts +186 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +16 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/protocol.d.ts +160 -0
- package/dist/types/protocol.d.ts.map +1 -0
- package/dist/types/protocol.js +5 -0
- package/dist/types/protocol.js.map +1 -0
- package/dist/utils/agentUtils.d.ts +102 -0
- package/dist/utils/agentUtils.d.ts.map +1 -0
- package/dist/utils/agentUtils.js +166 -0
- package/dist/utils/agentUtils.js.map +1 -0
- package/dist/utils/commandUtils.d.ts +45 -0
- package/dist/utils/commandUtils.d.ts.map +1 -0
- package/dist/utils/commandUtils.js +145 -0
- package/dist/utils/commandUtils.js.map +1 -0
- package/dist/utils/configUtils.d.ts +55 -0
- package/dist/utils/configUtils.d.ts.map +1 -0
- package/dist/utils/configUtils.js +100 -0
- package/dist/utils/configUtils.js.map +1 -0
- package/dist/utils/logger.d.ts +59 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +122 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pathUtils.d.ts +48 -0
- package/dist/utils/pathUtils.d.ts.map +1 -0
- package/dist/utils/pathUtils.js +128 -0
- package/dist/utils/pathUtils.js.map +1 -0
- package/package.json +58 -5
- package/agent.json +0 -18
- package/broker.js +0 -214
- package/index.js +0 -382
- package/ipc.js +0 -220
- package/ipcInterfaces/pythonAbilityIPC.py +0 -177
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { JSONSchema, BrokerConnection } from './types/core.js';
|
|
3
|
+
import { LoadedAbility } from './loadAbility.js';
|
|
4
|
+
export interface KadiClientConfig {
|
|
5
|
+
name?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
role?: 'agent' | 'ability' | 'service';
|
|
9
|
+
protocol?: 'native' | 'stdio' | 'broker';
|
|
10
|
+
scope?: string;
|
|
11
|
+
networks?: string[];
|
|
12
|
+
brokerUrls?: string[];
|
|
13
|
+
brokerUrl?: string;
|
|
14
|
+
maxBufferSize?: number;
|
|
15
|
+
abilityAgentJSON?: string;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}
|
|
18
|
+
export interface ToolSchema {
|
|
19
|
+
name?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
inputSchema?: JSONSchema;
|
|
22
|
+
outputSchema?: JSONSchema;
|
|
23
|
+
}
|
|
24
|
+
type ToolHandler = (params: unknown) => Promise<unknown>;
|
|
25
|
+
interface RegisteredTool {
|
|
26
|
+
name: string;
|
|
27
|
+
handler: ToolHandler;
|
|
28
|
+
schema?: ToolSchema;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* KadiClient - Unified client for KADI protocol
|
|
32
|
+
*
|
|
33
|
+
* This class combines the functionality of KadiAgent and KadiAbility,
|
|
34
|
+
* providing a single interface for:
|
|
35
|
+
*
|
|
36
|
+
* 1. Registering tools that can be called by others
|
|
37
|
+
* 2. Calling remote tools on other services
|
|
38
|
+
* 3. Supporting multiple protocols (native, stdio, broker)
|
|
39
|
+
* 4. Connecting to broker with configurable role (agent, ability, service)
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Create as an ability
|
|
44
|
+
* const service = new KadiClient({
|
|
45
|
+
* name: 'math-service',
|
|
46
|
+
* role: 'ability',
|
|
47
|
+
* protocol: 'broker'
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // Register tools
|
|
51
|
+
* service.registerTool('add', async ({a, b}) => ({result: a + b}));
|
|
52
|
+
*
|
|
53
|
+
* // With schema
|
|
54
|
+
* service.tool('multiply', async ({a, b}) => ({result: a * b}));
|
|
55
|
+
*
|
|
56
|
+
* // Start serving
|
|
57
|
+
* await service.serve();
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare class KadiClient extends EventEmitter {
|
|
61
|
+
readonly name: string;
|
|
62
|
+
readonly version: string;
|
|
63
|
+
readonly description: string;
|
|
64
|
+
readonly role: 'agent' | 'ability' | 'service';
|
|
65
|
+
protocol: 'native' | 'stdio' | 'broker';
|
|
66
|
+
readonly scope: string;
|
|
67
|
+
readonly networks: string[];
|
|
68
|
+
readonly brokerUrls: string[];
|
|
69
|
+
readonly abilityAgentJSON?: string;
|
|
70
|
+
private readonly logger;
|
|
71
|
+
private protocolHandler?;
|
|
72
|
+
readonly toolHandlers: Map<string, RegisteredTool>;
|
|
73
|
+
private readonly _abilities;
|
|
74
|
+
private readonly _brokerConnections;
|
|
75
|
+
private _isConnected;
|
|
76
|
+
private _agentId;
|
|
77
|
+
private _idFactory;
|
|
78
|
+
private _pendingResponses;
|
|
79
|
+
private _pendingToolCalls;
|
|
80
|
+
private _eventSubscriptions;
|
|
81
|
+
constructor(options?: KadiClientConfig);
|
|
82
|
+
/**
|
|
83
|
+
* Register a tool for this service
|
|
84
|
+
*
|
|
85
|
+
* @param name - Tool name
|
|
86
|
+
* @param handler - Handler function
|
|
87
|
+
* @param schema - Optional schema
|
|
88
|
+
* @returns This instance for chaining
|
|
89
|
+
*/
|
|
90
|
+
registerTool(name: string, handler: ToolHandler, schema?: ToolSchema): this;
|
|
91
|
+
/**
|
|
92
|
+
* Get all registered tool names
|
|
93
|
+
*/
|
|
94
|
+
getToolNames(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Get all registered tools (agent compatibility)
|
|
97
|
+
*/
|
|
98
|
+
getTools(): string[];
|
|
99
|
+
/**
|
|
100
|
+
* Check if a tool is registered
|
|
101
|
+
*/
|
|
102
|
+
hasTool(name: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Get tool handler
|
|
105
|
+
*/
|
|
106
|
+
getToolHandler(name: string): ToolHandler | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Get tool schema
|
|
109
|
+
*/
|
|
110
|
+
getToolSchema(name: string): ToolSchema | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Publish an event
|
|
113
|
+
*/
|
|
114
|
+
publishEvent(eventName: string, data?: any): void;
|
|
115
|
+
/**
|
|
116
|
+
* Connect to brokers (for event subscription and/or broker protocol)
|
|
117
|
+
*/
|
|
118
|
+
connectToBrokers(urls?: string[]): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Connect to a single broker
|
|
121
|
+
*/
|
|
122
|
+
private connectToBroker;
|
|
123
|
+
/**
|
|
124
|
+
* Perform KADI protocol handshake
|
|
125
|
+
*/
|
|
126
|
+
private performHandshake;
|
|
127
|
+
/**
|
|
128
|
+
* Start heartbeat to keep broker connection alive
|
|
129
|
+
* Sends ping messages at the specified interval to prevent timeout
|
|
130
|
+
*/
|
|
131
|
+
private startHeartbeat;
|
|
132
|
+
/**
|
|
133
|
+
* Register capabilities with broker
|
|
134
|
+
*/
|
|
135
|
+
private registerCapabilities;
|
|
136
|
+
/**
|
|
137
|
+
* Send request to broker and wait for response
|
|
138
|
+
*/
|
|
139
|
+
private sendRequest;
|
|
140
|
+
/**
|
|
141
|
+
* Handle incoming broker messages
|
|
142
|
+
*/
|
|
143
|
+
private handleBrokerMessage;
|
|
144
|
+
/**
|
|
145
|
+
* Handle tool invocation result from broker
|
|
146
|
+
*/
|
|
147
|
+
private handleToolResult;
|
|
148
|
+
/**
|
|
149
|
+
* Handle incoming tool invocation request
|
|
150
|
+
*/
|
|
151
|
+
private handleToolInvocation;
|
|
152
|
+
/**
|
|
153
|
+
* Extract tool definitions for broker registration
|
|
154
|
+
*/
|
|
155
|
+
private extractToolsForBroker;
|
|
156
|
+
/**
|
|
157
|
+
* Start serving (main entry point)
|
|
158
|
+
*
|
|
159
|
+
* @param options - Optional serve options
|
|
160
|
+
*/
|
|
161
|
+
serve(options?: {
|
|
162
|
+
mode?: 'native' | 'stdio' | 'broker';
|
|
163
|
+
}): Promise<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Start the client (alias for serve for agent compatibility)
|
|
166
|
+
*/
|
|
167
|
+
start(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Discover tools available from a remote agent
|
|
170
|
+
*
|
|
171
|
+
* This function queries the broker to find what tools
|
|
172
|
+
* a specific remote agent provides.
|
|
173
|
+
*
|
|
174
|
+
* @param targetAgent - The name of the agent to discover tools from
|
|
175
|
+
* @returns Array of tool names available from the target agent
|
|
176
|
+
*/
|
|
177
|
+
discoverRemoteTools(targetAgent: string): Promise<string[]>;
|
|
178
|
+
/**
|
|
179
|
+
* Call a tool on a remote agent via the broker
|
|
180
|
+
*
|
|
181
|
+
* This function sends an RPC call through the broker to invoke
|
|
182
|
+
* a specific tool on a remote agent.
|
|
183
|
+
*
|
|
184
|
+
* @param targetAgent - The name of the agent that has the tool
|
|
185
|
+
* @param toolName - The tool name to invoke
|
|
186
|
+
* @param params - The parameters to pass to the tool
|
|
187
|
+
* @returns The result from the remote tool invocation
|
|
188
|
+
*/
|
|
189
|
+
callTool<TInput = unknown, TOutput = unknown>(targetAgent: string, toolName: string, params?: TInput): Promise<TOutput>;
|
|
190
|
+
/**
|
|
191
|
+
* Load an external ability
|
|
192
|
+
*/
|
|
193
|
+
loadAbility(nameOrPath: string, protocol?: 'native' | 'stdio' | 'broker', options?: {
|
|
194
|
+
brokerUrl?: string;
|
|
195
|
+
spawnAbility?: boolean;
|
|
196
|
+
networks?: string[];
|
|
197
|
+
}): Promise<LoadedAbility>;
|
|
198
|
+
/**
|
|
199
|
+
* Disconnect from brokers
|
|
200
|
+
*/
|
|
201
|
+
disconnect(): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Helper to load agent.json exports
|
|
204
|
+
*/
|
|
205
|
+
private _loadAgentJsonExports;
|
|
206
|
+
/**
|
|
207
|
+
* Find agent.json file
|
|
208
|
+
*/
|
|
209
|
+
private _findAgentJson;
|
|
210
|
+
/**
|
|
211
|
+
* Subscribe to events with unified API across all protocols
|
|
212
|
+
*
|
|
213
|
+
* @param pattern Event pattern - exact string for native/stdio, wildcards supported for broker
|
|
214
|
+
* @param callback Function to call when event is received
|
|
215
|
+
* @returns Unsubscribe function
|
|
216
|
+
*/
|
|
217
|
+
subscribeToEvent(pattern: string, callback: (data: any) => void): () => void;
|
|
218
|
+
/**
|
|
219
|
+
* Subscribe to multiple events at once
|
|
220
|
+
*
|
|
221
|
+
* @param patterns Array of event patterns
|
|
222
|
+
* @param callback Function to call when any event is received (receives eventName and data)
|
|
223
|
+
* @returns Unsubscribe function that removes all subscriptions
|
|
224
|
+
*/
|
|
225
|
+
subscribeToEvents(patterns: string[], callback: (eventName: string, data: any) => void): () => void;
|
|
226
|
+
/**
|
|
227
|
+
* Unsubscribe from event pattern
|
|
228
|
+
*
|
|
229
|
+
* @param pattern Event pattern to unsubscribe from
|
|
230
|
+
* @param callback Optional specific callback to remove (if not provided, removes all)
|
|
231
|
+
*/
|
|
232
|
+
unsubscribeFromEvent(pattern: string, callback?: (data: any) => void): void;
|
|
233
|
+
/**
|
|
234
|
+
* Subscribe to an event only once
|
|
235
|
+
*
|
|
236
|
+
* @param pattern Event pattern
|
|
237
|
+
* @param callback Function to call when event is received (auto-unsubscribes after first call)
|
|
238
|
+
*/
|
|
239
|
+
onceEvent(pattern: string, callback: (data: any) => void): void;
|
|
240
|
+
/**
|
|
241
|
+
* Setup universal event subscription that works regardless of client protocol
|
|
242
|
+
*
|
|
243
|
+
* @private
|
|
244
|
+
* @param pattern Event pattern to subscribe to
|
|
245
|
+
*/
|
|
246
|
+
/**
|
|
247
|
+
* Marker to track if we've already set up the event transport infrastructure
|
|
248
|
+
*/
|
|
249
|
+
private _eventTransportSetup;
|
|
250
|
+
/**
|
|
251
|
+
* Setup the event transport infrastructure ONCE, then subscribe to specific patterns
|
|
252
|
+
* TODO: I do not understand this function very well - better step by step comments
|
|
253
|
+
* would be nice.
|
|
254
|
+
*
|
|
255
|
+
* @private
|
|
256
|
+
* @param pattern Event pattern to subscribe to (e.g., 'echo.test-event')
|
|
257
|
+
*/
|
|
258
|
+
private _setupProtocolEventSubscription;
|
|
259
|
+
/**
|
|
260
|
+
* Subscribe to broker events
|
|
261
|
+
*
|
|
262
|
+
* @private
|
|
263
|
+
* @param pattern Event pattern to subscribe to
|
|
264
|
+
*/
|
|
265
|
+
private _subscribeToBrokerEvent;
|
|
266
|
+
/**
|
|
267
|
+
* Setup broker event delivery handler
|
|
268
|
+
*
|
|
269
|
+
* @private
|
|
270
|
+
*/
|
|
271
|
+
private _brokerEventHandlerSetup;
|
|
272
|
+
private _setupBrokerEventHandler;
|
|
273
|
+
/**
|
|
274
|
+
* Clean up protocol-specific event subscription
|
|
275
|
+
*
|
|
276
|
+
* @private
|
|
277
|
+
* @param pattern Event pattern to clean up
|
|
278
|
+
*/
|
|
279
|
+
private _cleanupProtocolEventSubscription;
|
|
280
|
+
/**
|
|
281
|
+
* Check if event name matches pattern
|
|
282
|
+
*
|
|
283
|
+
* @private
|
|
284
|
+
* @param eventName Event name to check
|
|
285
|
+
* @param pattern Pattern to match against (supports wildcards for broker protocol)
|
|
286
|
+
* @returns True if matches
|
|
287
|
+
*/
|
|
288
|
+
private _matchesPattern;
|
|
289
|
+
/**
|
|
290
|
+
* Dispatch event to subscribers
|
|
291
|
+
* TODO: I do not understand this function
|
|
292
|
+
*
|
|
293
|
+
* @private
|
|
294
|
+
* @param pattern Pattern that matched
|
|
295
|
+
* @param data Event data
|
|
296
|
+
*/
|
|
297
|
+
private _dispatchEvent;
|
|
298
|
+
get isConnected(): boolean;
|
|
299
|
+
get agentId(): string;
|
|
300
|
+
get broker(): BrokerConnection | undefined;
|
|
301
|
+
}
|
|
302
|
+
export default KadiClient;
|
|
303
|
+
//# sourceMappingURL=KadiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KadiClient.d.ts","sourceRoot":"","sources":["../src/KadiClient.ts"],"names":[],"mappings":"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"}
|