@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.
Files changed (99) hide show
  1. package/README.md +1122 -216
  2. package/dist/KadiClient.d.ts +303 -0
  3. package/dist/KadiClient.d.ts.map +1 -0
  4. package/dist/KadiClient.js +1162 -0
  5. package/dist/KadiClient.js.map +1 -0
  6. package/dist/errors/error-codes.d.ts +215 -0
  7. package/dist/errors/error-codes.d.ts.map +1 -0
  8. package/dist/errors/error-codes.js +295 -0
  9. package/dist/errors/error-codes.js.map +1 -0
  10. package/dist/index.d.ts +15 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +24 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/loadAbility.d.ts +65 -0
  15. package/dist/loadAbility.d.ts.map +1 -0
  16. package/dist/loadAbility.js +335 -0
  17. package/dist/loadAbility.js.map +1 -0
  18. package/dist/messages/BrokerMessages.d.ts +84 -0
  19. package/dist/messages/BrokerMessages.d.ts.map +1 -0
  20. package/dist/messages/BrokerMessages.js +127 -0
  21. package/dist/messages/BrokerMessages.js.map +1 -0
  22. package/dist/messages/MessageBuilder.d.ts +83 -0
  23. package/dist/messages/MessageBuilder.d.ts.map +1 -0
  24. package/dist/messages/MessageBuilder.js +144 -0
  25. package/dist/messages/MessageBuilder.js.map +1 -0
  26. package/dist/schemas/events.schemas.d.ts +177 -0
  27. package/dist/schemas/events.schemas.d.ts.map +1 -0
  28. package/dist/schemas/events.schemas.js +265 -0
  29. package/dist/schemas/events.schemas.js.map +1 -0
  30. package/dist/schemas/index.d.ts +3 -0
  31. package/dist/schemas/index.d.ts.map +1 -0
  32. package/dist/schemas/index.js +4 -0
  33. package/dist/schemas/index.js.map +1 -0
  34. package/dist/schemas/kadi.schemas.d.ts +70 -0
  35. package/dist/schemas/kadi.schemas.d.ts.map +1 -0
  36. package/dist/schemas/kadi.schemas.js +120 -0
  37. package/dist/schemas/kadi.schemas.js.map +1 -0
  38. package/dist/transports/BrokerTransport.d.ts +96 -0
  39. package/dist/transports/BrokerTransport.d.ts.map +1 -0
  40. package/dist/transports/BrokerTransport.js +145 -0
  41. package/dist/transports/BrokerTransport.js.map +1 -0
  42. package/dist/transports/NativeTransport.d.ts +92 -0
  43. package/dist/transports/NativeTransport.d.ts.map +1 -0
  44. package/dist/transports/NativeTransport.js +221 -0
  45. package/dist/transports/NativeTransport.js.map +1 -0
  46. package/dist/transports/StdioTransport.d.ts +112 -0
  47. package/dist/transports/StdioTransport.d.ts.map +1 -0
  48. package/dist/transports/StdioTransport.js +440 -0
  49. package/dist/transports/StdioTransport.js.map +1 -0
  50. package/dist/transports/Transport.d.ts +93 -0
  51. package/dist/transports/Transport.d.ts.map +1 -0
  52. package/dist/transports/Transport.js +13 -0
  53. package/dist/transports/Transport.js.map +1 -0
  54. package/dist/types/broker.d.ts +31 -0
  55. package/dist/types/broker.d.ts.map +1 -0
  56. package/dist/types/broker.js +6 -0
  57. package/dist/types/broker.js.map +1 -0
  58. package/dist/types/core.d.ts +138 -0
  59. package/dist/types/core.d.ts.map +1 -0
  60. package/dist/types/core.js +26 -0
  61. package/dist/types/core.js.map +1 -0
  62. package/dist/types/events.d.ts +186 -0
  63. package/dist/types/events.d.ts.map +1 -0
  64. package/dist/types/events.js +16 -0
  65. package/dist/types/events.js.map +1 -0
  66. package/dist/types/index.d.ts +9 -0
  67. package/dist/types/index.d.ts.map +1 -0
  68. package/dist/types/index.js +13 -0
  69. package/dist/types/index.js.map +1 -0
  70. package/dist/types/protocol.d.ts +160 -0
  71. package/dist/types/protocol.d.ts.map +1 -0
  72. package/dist/types/protocol.js +5 -0
  73. package/dist/types/protocol.js.map +1 -0
  74. package/dist/utils/agentUtils.d.ts +102 -0
  75. package/dist/utils/agentUtils.d.ts.map +1 -0
  76. package/dist/utils/agentUtils.js +166 -0
  77. package/dist/utils/agentUtils.js.map +1 -0
  78. package/dist/utils/commandUtils.d.ts +45 -0
  79. package/dist/utils/commandUtils.d.ts.map +1 -0
  80. package/dist/utils/commandUtils.js +145 -0
  81. package/dist/utils/commandUtils.js.map +1 -0
  82. package/dist/utils/configUtils.d.ts +55 -0
  83. package/dist/utils/configUtils.d.ts.map +1 -0
  84. package/dist/utils/configUtils.js +100 -0
  85. package/dist/utils/configUtils.js.map +1 -0
  86. package/dist/utils/logger.d.ts +59 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +122 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/dist/utils/pathUtils.d.ts +48 -0
  91. package/dist/utils/pathUtils.d.ts.map +1 -0
  92. package/dist/utils/pathUtils.js +128 -0
  93. package/dist/utils/pathUtils.js.map +1 -0
  94. package/package.json +58 -5
  95. package/agent.json +0 -18
  96. package/broker.js +0 -214
  97. package/index.js +0 -382
  98. package/ipc.js +0 -220
  99. package/ipcInterfaces/pythonAbilityIPC.py +0 -177
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.schemas.js","sourceRoot":"","sources":["../../src/schemas/events.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './kadi.schemas.js';
2
+ export * from './events.schemas.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Export all schemas from a single entry point
2
+ export * from './kadi.schemas.js';
3
+ export * from './events.schemas.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ export declare const NetworkIdSchema: z.ZodString;
3
+ export declare const ToolNameSchema: z.ZodString;
4
+ export declare const ToolSchema: z.ZodObject<{
5
+ name: z.ZodString;
6
+ title: z.ZodOptional<z.ZodString>;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ version: z.ZodOptional<z.ZodString>;
9
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
+ networks: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
+ }, z.core.$strip>;
13
+ export declare const MailboxModeSchema: z.ZodEnum<{
14
+ volatile: "volatile";
15
+ persistent: "persistent";
16
+ }>;
17
+ export declare const AgentIdSchema: z.ZodString;
18
+ export declare const KadiRegisterParamsSchema: z.ZodObject<{
19
+ tools: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
20
+ name: z.ZodString;
21
+ title: z.ZodOptional<z.ZodString>;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ version: z.ZodOptional<z.ZodString>;
24
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
26
+ networks: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ }, z.core.$strip>>>>;
28
+ displayName: z.ZodOptional<z.ZodString>;
29
+ mailboxMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
30
+ volatile: "volatile";
31
+ persistent: "persistent";
32
+ }>>>;
33
+ networks: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>;
34
+ parentAgentId: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>;
36
+ export type KadiRegisterParams = z.infer<typeof KadiRegisterParamsSchema>;
37
+ export declare const KadiRegisterResultSchema: z.ZodObject<{
38
+ agentId: z.ZodString;
39
+ registered: z.ZodNumber;
40
+ networks: z.ZodArray<z.ZodString>;
41
+ mailbox: z.ZodString;
42
+ mailboxMode: z.ZodEnum<{
43
+ volatile: "volatile";
44
+ persistent: "persistent";
45
+ }>;
46
+ }, z.core.$strip>;
47
+ export type KadiRegisterResult = z.infer<typeof KadiRegisterResultSchema>;
48
+ export declare const KadiToolListParamsSchema: z.ZodObject<{
49
+ networks: z.ZodOptional<z.ZodArray<z.ZodString>>;
50
+ }, z.core.$strip>;
51
+ export type KadiToolListParams = z.infer<typeof KadiToolListParamsSchema>;
52
+ export declare const KadiToolInvokeParamsSchema: z.ZodObject<{
53
+ toolName: z.ZodString;
54
+ toolInput: z.ZodOptional<z.ZodUnknown>;
55
+ requestId: z.ZodOptional<z.ZodString>;
56
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
58
+ }, z.core.$strip>;
59
+ export type KadiToolInvokeParams = z.infer<typeof KadiToolInvokeParamsSchema>;
60
+ export declare const KadiToolResultParamsSchema: z.ZodObject<{
61
+ requestId: z.ZodString;
62
+ result: z.ZodOptional<z.ZodUnknown>;
63
+ error: z.ZodOptional<z.ZodUnknown>;
64
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
65
+ }, z.core.$strip>;
66
+ export type KadiToolResultParams = z.infer<typeof KadiToolResultParamsSchema>;
67
+ export declare class ValidationMiddleware {
68
+ static validateParams<T>(method: string, params: unknown): T;
69
+ }
70
+ //# sourceMappingURL=kadi.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kadi.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/kadi.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,eAAe,aAKK,CAAC;AAMlC,eAAO,MAAM,cAAc,aAmB2B,CAAC;AAGvD,eAAO,MAAM,UAAU;;;;;;;;iBAWrB,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;EAAqC,CAAC;AAGpE,eAAO,MAAM,aAAa,aAKK,CAAC;AAOhC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;iBAiBjC,CAAC;AAEL,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,wBAAwB;;;;;;;;;iBAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,0BAA0B;;;;;;iBAMrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAG9E,eAAO,MAAM,0BAA0B;;;;;iBAKrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC;CAc7D"}
@@ -0,0 +1,120 @@
1
+ import { z } from 'zod';
2
+ // ============================================================================
3
+ // NETWORK VALIDATION SCHEMAS
4
+ // ============================================================================
5
+ // Network ID validation
6
+ export const NetworkIdSchema = z
7
+ .string()
8
+ .min(1)
9
+ .max(128)
10
+ .regex(/^[a-z0-9][a-z0-9-_.]*$/i)
11
+ .describe('Network identifier');
12
+ // Tool name validation - Supports both legacy and namespaced formats
13
+ // Namespaced format: <namespace>/<name>@<major>[.<minor>]
14
+ // Legacy format: simple name (will be auto-normalized)
15
+ // Examples: 'data/analyze_dataset@1', 'kadi/echo@1.0', 'legacy_tool'
16
+ export const ToolNameSchema = z
17
+ .string()
18
+ .min(1)
19
+ .max(128)
20
+ .refine((val) => {
21
+ // Allow legacy format (simple names)
22
+ const legacyRegex = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
23
+ // Strict namespaced format
24
+ const namespacedRegex = /^[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*@\d+(?:\.\d+)?$/;
25
+ return legacyRegex.test(val) || namespacedRegex.test(val);
26
+ }, {
27
+ message: 'Tool name must be either legacy format (alphanumeric) or namespaced format (<namespace>/<name>@<version>)'
28
+ })
29
+ .describe('Tool name - legacy or namespaced format');
30
+ // Tool schema with networks, namespace, and versioning
31
+ export const ToolSchema = z.object({
32
+ name: ToolNameSchema, // Now supports namespace/name@version format
33
+ title: z.string().min(1).max(128).optional(), // Human-readable title
34
+ description: z.string().optional(),
35
+ version: z
36
+ .string()
37
+ .regex(/^\d+\.\d+\.\d+$/)
38
+ .optional(), // Semantic version
39
+ tags: z.array(z.string()).optional(), // Routing hints like ['cpu-heavy', 'batch']
40
+ inputSchema: z.record(z.string(), z.unknown()).optional(),
41
+ networks: z.array(NetworkIdSchema).optional()
42
+ });
43
+ // Mailbox mode validation
44
+ export const MailboxModeSchema = z.enum(['volatile', 'persistent']);
45
+ // Agent ID validation
46
+ export const AgentIdSchema = z
47
+ .string()
48
+ .min(1)
49
+ .max(64)
50
+ .regex(/^[a-z0-9]+$/i)
51
+ .describe('Agent identifier');
52
+ // ============================================================================
53
+ // KADI PROTOCOL MESSAGE SCHEMAS
54
+ // ============================================================================
55
+ // Registration Schema - Updated to use 'networks' instead of 'scopes'
56
+ export const KadiRegisterParamsSchema = z
57
+ .object({
58
+ tools: z.array(ToolSchema).optional().default([]),
59
+ displayName: z.string().min(1).max(64).optional(),
60
+ mailboxMode: MailboxModeSchema.optional().default('volatile'),
61
+ networks: z
62
+ .union([
63
+ // Changed from 'scopes'
64
+ NetworkIdSchema,
65
+ z.array(NetworkIdSchema)
66
+ ])
67
+ .transform((val) => (Array.isArray(val) ? val : [val])),
68
+ parentAgentId: AgentIdSchema.optional()
69
+ })
70
+ .refine((data) => data.networks.length > 0, {
71
+ message: 'At least one network must be specified',
72
+ path: ['networks']
73
+ });
74
+ // Registration Result
75
+ export const KadiRegisterResultSchema = z.object({
76
+ agentId: z.string(),
77
+ registered: z.number(),
78
+ networks: z.array(NetworkIdSchema),
79
+ mailbox: z.string(),
80
+ mailboxMode: MailboxModeSchema
81
+ });
82
+ // Tool List params - Changed from 'scopes'
83
+ export const KadiToolListParamsSchema = z.object({
84
+ networks: z.array(NetworkIdSchema).optional() // Filter by networks
85
+ });
86
+ // Tool invocation params
87
+ export const KadiToolInvokeParamsSchema = z.object({
88
+ toolName: ToolNameSchema,
89
+ toolInput: z.unknown().optional(),
90
+ requestId: z.string().optional(),
91
+ timeout: z.number().min(1000).max(300000).optional().default(30000),
92
+ metadata: z.record(z.string(), z.unknown()).optional().default({})
93
+ });
94
+ // Tool result params
95
+ export const KadiToolResultParamsSchema = z.object({
96
+ requestId: z.string(),
97
+ result: z.unknown().optional(),
98
+ error: z.unknown().optional(),
99
+ metadata: z.record(z.string(), z.unknown()).optional().default({})
100
+ });
101
+ // ============================================================================
102
+ // VALIDATION MIDDLEWARE
103
+ // ============================================================================
104
+ export class ValidationMiddleware {
105
+ static validateParams(method, params) {
106
+ switch (method) {
107
+ case 'kadi.agent.register':
108
+ return KadiRegisterParamsSchema.parse(params);
109
+ case 'kadi.ability.list':
110
+ return KadiToolListParamsSchema.parse(params);
111
+ case 'kadi.ability.invoke':
112
+ return KadiToolInvokeParamsSchema.parse(params);
113
+ case 'kadi.ability.result':
114
+ return KadiToolResultParamsSchema.parse(params);
115
+ default:
116
+ return params;
117
+ }
118
+ }
119
+ }
120
+ //# sourceMappingURL=kadi.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kadi.schemas.js","sourceRoot":"","sources":["../../src/schemas/kadi.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * BrokerTransport - Handles communication with remote abilities via broker
3
+ *
4
+ * This transport connects to a broker (WebSocket server) to invoke methods
5
+ * on remote agents/abilities. Unlike Native and Stdio transports which load
6
+ * local code, BrokerTransport is purely a client that calls remote services.
7
+ *
8
+ * The broker acts as a message router, allowing agents to discover and
9
+ * invoke each other's methods across network boundaries.
10
+ *
11
+ * Communication Flow:
12
+ * 1. Connect to broker via WebSocket
13
+ * 2. Authenticate and join networks
14
+ * 3. Discover available methods from target agent
15
+ * 4. Send method invocations through broker
16
+ * 5. Receive results back through broker
17
+ */
18
+ import { EventEmitter } from 'events';
19
+ import { Transport, TransportOptions } from './Transport.js';
20
+ /**
21
+ * Options specific to BrokerTransport
22
+ */
23
+ interface BrokerTransportOptions extends TransportOptions {
24
+ /**
25
+ * The target agent name we want to call methods on
26
+ * This is the remote agent that has the methods we want to invoke
27
+ */
28
+ targetAgent: string;
29
+ /**
30
+ * WebSocket URL of the broker
31
+ */
32
+ brokerUrl: string;
33
+ /**
34
+ * Networks to join for discovering agents
35
+ */
36
+ networks?: string[];
37
+ /**
38
+ * Whether to spawn the ability locally first (not used for client-only mode)
39
+ */
40
+ spawnAbility?: boolean;
41
+ }
42
+ /**
43
+ * BrokerTransport - Client for invoking methods on remote agents
44
+ *
45
+ * This transport is a thin wrapper around KadiClient's broker functionality.
46
+ * It creates an ephemeral KadiClient instance that connects to the broker
47
+ * solely for the purpose of calling methods on a remote agent.
48
+ *
49
+ * Unlike serving mode (where an agent registers its own methods),
50
+ * this transport is purely a consumer of remote methods.
51
+ */
52
+ export declare class BrokerTransport extends EventEmitter implements Transport {
53
+ private options;
54
+ private logger;
55
+ private client?;
56
+ private targetAgent;
57
+ private connected;
58
+ constructor(options: BrokerTransportOptions);
59
+ /**
60
+ * Connect to the broker and discover target agent's methods
61
+ *
62
+ * This creates an ephemeral KadiClient that connects to the broker
63
+ * as a client (not serving any methods of its own).
64
+ */
65
+ connect(): Promise<void>;
66
+ /**
67
+ * Invoke a method on the remote agent
68
+ *
69
+ * Sends the method invocation through the broker to the target agent.
70
+ */
71
+ invoke(method: string, params: unknown): Promise<unknown>;
72
+ /**
73
+ * Get list of discovered methods
74
+ *
75
+ * Returns empty array as broker transport doesn't do method discovery.
76
+ */
77
+ getMethods(): string[];
78
+ /**
79
+ * Disconnect from the broker
80
+ *
81
+ * Closes the WebSocket connection and cleans up resources.
82
+ */
83
+ disconnect(): Promise<void>;
84
+ /**
85
+ * Check if transport is connected
86
+ */
87
+ isConnected(): boolean;
88
+ /**
89
+ * Get the target agent name
90
+ *
91
+ * Useful for debugging and logging
92
+ */
93
+ getTargetAgent(): string;
94
+ }
95
+ export {};
96
+ //# sourceMappingURL=BrokerTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrokerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BrokerTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI7D;;GAEG;AACH,UAAU,sBAAuB,SAAQ,gBAAgB;IACvD;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,YAAa,YAAW,SAAS;IAMxD,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEN,OAAO,EAAE,sBAAsB;IAWnD;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD9B;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B/D;;;;OAIG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,cAAc,IAAI,MAAM;CAGzB"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * BrokerTransport - Handles communication with remote abilities via broker
3
+ *
4
+ * This transport connects to a broker (WebSocket server) to invoke methods
5
+ * on remote agents/abilities. Unlike Native and Stdio transports which load
6
+ * local code, BrokerTransport is purely a client that calls remote services.
7
+ *
8
+ * The broker acts as a message router, allowing agents to discover and
9
+ * invoke each other's methods across network boundaries.
10
+ *
11
+ * Communication Flow:
12
+ * 1. Connect to broker via WebSocket
13
+ * 2. Authenticate and join networks
14
+ * 3. Discover available methods from target agent
15
+ * 4. Send method invocations through broker
16
+ * 5. Receive results back through broker
17
+ */
18
+ import { EventEmitter } from 'events';
19
+ import { KadiClient } from '../KadiClient.js';
20
+ import { createComponentLogger } from '../utils/logger.js';
21
+ /**
22
+ * BrokerTransport - Client for invoking methods on remote agents
23
+ *
24
+ * This transport is a thin wrapper around KadiClient's broker functionality.
25
+ * It creates an ephemeral KadiClient instance that connects to the broker
26
+ * solely for the purpose of calling methods on a remote agent.
27
+ *
28
+ * Unlike serving mode (where an agent registers its own methods),
29
+ * this transport is purely a consumer of remote methods.
30
+ */
31
+ export class BrokerTransport extends EventEmitter {
32
+ options;
33
+ logger;
34
+ client;
35
+ targetAgent;
36
+ connected = false;
37
+ constructor(options) {
38
+ super();
39
+ this.options = options;
40
+ this.targetAgent = options.targetAgent || options.abilityName;
41
+ this.logger = createComponentLogger('BrokerTransport');
42
+ this.logger.lifecycle('constructor', `Creating broker transport for target: ${this.targetAgent}`);
43
+ }
44
+ /**
45
+ * Connect to the broker and discover target agent's methods
46
+ *
47
+ * This creates an ephemeral KadiClient that connects to the broker
48
+ * as a client (not serving any methods of its own).
49
+ */
50
+ async connect() {
51
+ this.logger.lifecycle('connect', `Connecting to broker for target agent: ${this.targetAgent}`);
52
+ // Create an ephemeral client with a unique name
53
+ // This client doesn't serve any methods - it's just for calling remote methods
54
+ this.client = new KadiClient({
55
+ name: `client-for-${this.targetAgent}-${Date.now()}`,
56
+ role: 'agent',
57
+ protocol: 'broker',
58
+ networks: this.options.networks || ['global'],
59
+ brokerUrls: [this.options.brokerUrl]
60
+ });
61
+ // Forward events from the client
62
+ this.client.on('connected', () => {
63
+ this.logger.debug('connect', 'KadiClient connected to broker');
64
+ });
65
+ this.client.on('error', (error) => {
66
+ this.logger.error('connect', 'KadiClient error', error);
67
+ this.emit('error', error);
68
+ });
69
+ this.client.on('disconnected', () => {
70
+ this.logger.debug('connect', 'KadiClient disconnected from broker');
71
+ this.connected = false;
72
+ this.emit('disconnected');
73
+ });
74
+ try {
75
+ // Connect to the broker
76
+ await this.client.connectToBrokers([this.options.brokerUrl]);
77
+ this.logger.info('connect', `Connected to broker at ${this.options.brokerUrl}`);
78
+ this.connected = true;
79
+ this.logger.lifecycle('connect', `Broker transport connected to ${this.targetAgent}`);
80
+ this.emit('connected');
81
+ }
82
+ catch (error) {
83
+ this.logger.error('connect', `Failed to connect to broker: ${error}`);
84
+ throw error;
85
+ }
86
+ }
87
+ /**
88
+ * Invoke a method on the remote agent
89
+ *
90
+ * Sends the method invocation through the broker to the target agent.
91
+ */
92
+ async invoke(method, params) {
93
+ if (!this.connected || !this.client) {
94
+ throw new Error('Not connected to broker');
95
+ }
96
+ this.logger.trace('invoke', `Invoking ${this.targetAgent}.${method}`);
97
+ try {
98
+ // Use KadiClient's remote tool invocation
99
+ const result = await this.client.callTool(this.targetAgent, method, params);
100
+ this.logger.trace('invoke', `Method ${method} completed successfully`);
101
+ return result;
102
+ }
103
+ catch (error) {
104
+ this.logger.error('invoke', `Failed to invoke ${this.targetAgent}.${method}: ${error}`);
105
+ throw error;
106
+ }
107
+ }
108
+ /**
109
+ * Get list of discovered methods
110
+ *
111
+ * Returns empty array as broker transport doesn't do method discovery.
112
+ */
113
+ getMethods() {
114
+ return [];
115
+ }
116
+ /**
117
+ * Disconnect from the broker
118
+ *
119
+ * Closes the WebSocket connection and cleans up resources.
120
+ */
121
+ async disconnect() {
122
+ this.logger.lifecycle('disconnect', 'Disconnecting broker transport');
123
+ if (this.client) {
124
+ await this.client.disconnect();
125
+ this.client = undefined;
126
+ }
127
+ this.connected = false;
128
+ this.emit('disconnected');
129
+ }
130
+ /**
131
+ * Check if transport is connected
132
+ */
133
+ isConnected() {
134
+ return this.connected;
135
+ }
136
+ /**
137
+ * Get the target agent name
138
+ *
139
+ * Useful for debugging and logging
140
+ */
141
+ getTargetAgent() {
142
+ return this.targetAgent;
143
+ }
144
+ }
145
+ //# sourceMappingURL=BrokerTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrokerTransport.js","sourceRoot":"","sources":["../../src/transports/BrokerTransport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * NativeTransport - Handles direct in-process ability loading
3
+ *
4
+ * This transport loads abilities directly into the same process,
5
+ * allowing for zero-overhead method invocation. It's used when
6
+ * you want to load local JavaScript/TypeScript modules as abilities.
7
+ *
8
+ * The native protocol is the fastest but requires the ability code
9
+ * to be trusted since it runs in the same process.
10
+ */
11
+ import { EventEmitter } from 'events';
12
+ import { Transport, TransportOptions } from './Transport.js';
13
+ /**
14
+ * Options specific to NativeTransport
15
+ */
16
+ interface NativeTransportOptions extends TransportOptions {
17
+ /**
18
+ * Directory where the ability code is located
19
+ */
20
+ abilityDir: string;
21
+ /**
22
+ * Manifest containing ability metadata
23
+ */
24
+ manifest?: {
25
+ interfaces?: {
26
+ native?: {
27
+ entry?: string;
28
+ };
29
+ };
30
+ };
31
+ }
32
+ /**
33
+ * NativeTransport - Loads and executes abilities in the same process
34
+ *
35
+ * This transport provides the fastest execution since there's no
36
+ * serialization or IPC overhead. The ability code runs directly
37
+ * in the Node.js process.
38
+ */
39
+ export declare class NativeTransport extends EventEmitter implements Transport {
40
+ private options;
41
+ private logger;
42
+ private ability;
43
+ private methodHandlers;
44
+ private connected;
45
+ constructor(options: NativeTransportOptions);
46
+ /**
47
+ * Connect by loading the ability module into memory
48
+ *
49
+ * This method dynamically imports the ability's JavaScript/TypeScript
50
+ * module and extracts all available methods.
51
+ */
52
+ connect(): Promise<void>;
53
+ /**
54
+ * Extract methods from the loaded module
55
+ *
56
+ * Handles different export formats:
57
+ * - KadiClient/KadiAbility instances
58
+ * - Plain objects with function properties
59
+ * - Class constructors
60
+ */
61
+ private extractMethods;
62
+ /**
63
+ * Invoke a method on the loaded ability
64
+ *
65
+ * Since this is native, we just call the function directly
66
+ * with no serialization overhead.
67
+ */
68
+ invoke(method: string, params: unknown): Promise<unknown>;
69
+ /**
70
+ * Get list of available methods
71
+ */
72
+ getMethods(): string[];
73
+ /**
74
+ * Get schema for a specific method (if available)
75
+ */
76
+ getMethodSchema(method: string): {
77
+ inputSchema?: unknown;
78
+ outputSchema?: unknown;
79
+ } | undefined;
80
+ /**
81
+ * Disconnect and cleanup
82
+ *
83
+ * Releases references to the loaded module to allow garbage collection
84
+ */
85
+ disconnect(): Promise<void>;
86
+ /**
87
+ * Check if transport is connected
88
+ */
89
+ isConnected(): boolean;
90
+ }
91
+ export {};
92
+ //# sourceMappingURL=NativeTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/NativeTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI7D;;GAEG;AACH,UAAU,sBAAuB,SAAQ,gBAAgB;IACvD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE;YACX,MAAM,CAAC,EAAE;gBACP,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAOD;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,YAAa,YAAW,SAAS;IAMxD,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,SAAS,CAAS;gBAEN,OAAO,EAAE,sBAAsB;IAUnD;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D9B;;;;;;;OAOG;YACW,cAAc;IAoG5B;;;;;OAKG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/D;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,GACb;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IAQhE;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;IACH,WAAW,IAAI,OAAO;CAGvB"}