@naylence/agent-sdk 0.3.11 → 0.3.13

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 (57) hide show
  1. package/README.md +30 -0
  2. package/dist/browser/index.js +3268 -1913
  3. package/dist/browser/index.js.map +1 -1
  4. package/dist/cjs/index.d.ts +1 -0
  5. package/dist/cjs/index.js +27 -2
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/naylence/agent/agent-proxy.js.map +1 -1
  8. package/dist/cjs/naylence/agent/agent.js.map +1 -1
  9. package/dist/cjs/naylence/agent/background-task-agent.js.map +1 -1
  10. package/dist/cjs/naylence/agent/base-agent.js.map +1 -1
  11. package/dist/cjs/naylence/agent/configs.d.ts +12 -0
  12. package/dist/cjs/naylence/agent/configs.js +12 -0
  13. package/dist/cjs/naylence/agent/configs.js.map +1 -1
  14. package/dist/cjs/public-api.d.ts +7 -0
  15. package/dist/cjs/public-api.js +26 -0
  16. package/dist/cjs/public-api.js.map +1 -0
  17. package/dist/cjs/version.d.ts +1 -1
  18. package/dist/cjs/version.js +1 -1
  19. package/dist/esm/index.d.ts +1 -0
  20. package/dist/esm/index.js +31 -2
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/naylence/agent/agent-proxy.d.ts +148 -0
  23. package/dist/esm/naylence/agent/agent-proxy.js +130 -0
  24. package/dist/esm/naylence/agent/agent-proxy.js.map +1 -1
  25. package/dist/esm/naylence/agent/agent.d.ts +194 -2
  26. package/dist/esm/naylence/agent/agent.js +123 -0
  27. package/dist/esm/naylence/agent/agent.js.map +1 -1
  28. package/dist/esm/naylence/agent/background-task-agent.d.ts +164 -0
  29. package/dist/esm/naylence/agent/background-task-agent.js +150 -0
  30. package/dist/esm/naylence/agent/background-task-agent.js.map +1 -1
  31. package/dist/esm/naylence/agent/base-agent.d.ts +171 -0
  32. package/dist/esm/naylence/agent/base-agent.js +170 -1
  33. package/dist/esm/naylence/agent/base-agent.js.map +1 -1
  34. package/dist/esm/naylence/agent/configs.d.ts +12 -0
  35. package/dist/esm/naylence/agent/configs.js +12 -0
  36. package/dist/esm/naylence/agent/configs.js.map +1 -1
  37. package/dist/esm/public-api.d.ts +15 -0
  38. package/dist/esm/public-api.js +16 -0
  39. package/dist/esm/public-api.js.map +1 -0
  40. package/dist/esm/version.d.ts +1 -1
  41. package/dist/esm/version.js +2 -2
  42. package/dist/types/index.d.ts +1 -0
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/naylence/agent/agent-proxy.d.ts +148 -0
  45. package/dist/types/naylence/agent/agent-proxy.d.ts.map +1 -1
  46. package/dist/types/naylence/agent/agent.d.ts +194 -2
  47. package/dist/types/naylence/agent/agent.d.ts.map +1 -1
  48. package/dist/types/naylence/agent/background-task-agent.d.ts +164 -0
  49. package/dist/types/naylence/agent/background-task-agent.d.ts.map +1 -1
  50. package/dist/types/naylence/agent/base-agent.d.ts +171 -0
  51. package/dist/types/naylence/agent/base-agent.d.ts.map +1 -1
  52. package/dist/types/naylence/agent/configs.d.ts +12 -0
  53. package/dist/types/naylence/agent/configs.d.ts.map +1 -1
  54. package/dist/types/public-api.d.ts +16 -0
  55. package/dist/types/public-api.d.ts.map +1 -0
  56. package/dist/types/version.d.ts +1 -1
  57. package/package.json +7 -2
@@ -1,36 +1,135 @@
1
+ /**
2
+ * Agent proxy module for remote agent communication.
3
+ *
4
+ * An {@link AgentProxy} is a client-side handle for invoking methods on a remote
5
+ * agent. Use it when you need to call an agent that lives in another process,
6
+ * container, or network location.
7
+ *
8
+ * @remarks
9
+ * Create proxies via {@link Agent.remote}, {@link Agent.remoteByAddress}, or
10
+ * {@link Agent.remoteByCapabilities} rather than instantiating AgentProxy directly.
11
+ *
12
+ * @module
13
+ */
1
14
  import { FameAddress } from '@naylence/runtime';
2
15
  import type { FameFabric } from '@naylence/runtime';
3
16
  import type { FameEnvelope } from '@naylence/core';
4
17
  import { type AgentCard, type AuthenticationInfo, type PushNotificationConfig, type Task, type TaskArtifactUpdateEvent, type TaskIdParams, type TaskPushNotificationConfig, type TaskQueryParams, type TaskSendParams, type TaskStatusUpdateEvent } from './a2a-types.js';
5
18
  import { Agent, type Payload } from './agent.js';
19
+ /** @internal */
6
20
  type RunTaskPayload = Payload;
21
+ /** @internal */
7
22
  type AgentTaskResult<TAgent extends Agent> = Awaited<ReturnType<TAgent['runTask']>>;
23
+ /** @internal */
8
24
  interface AgentProxyCtorOptions {
9
25
  address?: FameAddress | string | null;
10
26
  capabilities?: string[] | null;
11
27
  intentNl?: string | null;
12
28
  fabric: FameFabric;
13
29
  }
30
+ /** @internal */
14
31
  interface StreamOptions {
15
32
  timeoutMs?: number | null;
16
33
  maxItems?: number | null;
17
34
  }
35
+ /**
36
+ * Client-side proxy for communicating with remote agents.
37
+ *
38
+ * AgentProxy implements the {@link Agent} interface, allowing you to call
39
+ * remote agents as if they were local objects. Method calls are serialized
40
+ * and sent over the Fame fabric.
41
+ *
42
+ * @remarks
43
+ * Do not instantiate AgentProxy directly. Use the factory methods on
44
+ * {@link Agent} to create proxies:
45
+ * - {@link Agent.remote} for flexible options
46
+ * - {@link Agent.remoteByAddress} for direct addressing
47
+ * - {@link Agent.remoteByCapabilities} for capability-based discovery
48
+ *
49
+ * The proxy also supports arbitrary RPC method calls. Any method not defined
50
+ * on the proxy class is forwarded as an RPC call to the remote agent.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * import { Agent } from '@naylence/agent-sdk';
55
+ *
56
+ * // Create a proxy to a remote agent
57
+ * const proxy = Agent.remoteByAddress('fame://calculator');
58
+ *
59
+ * // Run a task synchronously
60
+ * const result = await proxy.runTask({ a: 1, b: 2 });
61
+ *
62
+ * // Or start a task and poll for completion
63
+ * const task = await proxy.startTask({
64
+ * id: 'task-1',
65
+ * message: { role: 'user', parts: [{ type: 'text', text: 'compute' }] },
66
+ * });
67
+ * ```
68
+ *
69
+ * @typeParam TAgent - The type of the remote agent for result typing.
70
+ */
18
71
  export declare class AgentProxy<TAgent extends Agent = Agent> extends Agent {
72
+ /** @internal */
19
73
  private readonly targetAddress;
74
+ /** @internal */
20
75
  private readonly targetCapabilities;
76
+ /** @internal */
21
77
  private readonly intentNl;
78
+ /** @internal */
22
79
  private readonly fabric;
80
+ /**
81
+ * Index signature allowing arbitrary RPC method calls.
82
+ * Methods not defined on AgentProxy are forwarded to the remote agent.
83
+ */
23
84
  [key: string]: any;
85
+ /** @internal */
24
86
  constructor(options: AgentProxyCtorOptions);
87
+ /** Returns null as proxies do not have a local name. */
25
88
  get name(): string | null;
89
+ /** Returns the proxy's targeting specification. */
26
90
  get spec(): Record<string, unknown>;
91
+ /**
92
+ * The target agent's address, if specified.
93
+ * @deprecated Use {@link AgentProxy.address} instead.
94
+ */
27
95
  get addressRef(): FameAddress | null;
96
+ /** The target agent's address, if specified. */
28
97
  get address(): FameAddress | null;
98
+ /** The required capabilities for discovery, if specified. */
29
99
  get capabilities(): string[] | undefined;
100
+ /** The fabric this proxy uses for communication. */
30
101
  get proxyFabric(): FameFabric;
31
102
  getAgentCard(): Promise<AgentCard>;
32
103
  authenticate(_credentials: AuthenticationInfo): boolean;
104
+ /**
105
+ * Executes a task on the remote agent and waits for completion.
106
+ *
107
+ * Starts the task, subscribes to updates, and returns when the task reaches
108
+ * a terminal state (completed, failed, or canceled).
109
+ *
110
+ * @param payload - The task payload to send.
111
+ * @param id - Optional task identifier. Generated if not provided.
112
+ * @returns The task result extracted from the final status message.
113
+ * @throws Error if the task fails.
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const proxy = Agent.remoteByAddress('fame://echo');
118
+ * const result = await proxy.runTask('hello');
119
+ * console.log(result); // 'hello'
120
+ * ```
121
+ */
33
122
  runTask(payload?: RunTaskPayload, id?: string | null): Promise<AgentTaskResult<TAgent>>;
123
+ /**
124
+ * Initiates a task on the remote agent.
125
+ *
126
+ * Returns immediately with the initial task status. Use
127
+ * {@link AgentProxy.subscribeToTaskUpdates} or polling with
128
+ * {@link AgentProxy.getTaskStatus} to track progress.
129
+ *
130
+ * @param params - Task parameters or convenience options.
131
+ * @returns The created task with initial status.
132
+ */
34
133
  startTask(params: TaskSendParams): Promise<Task>;
35
134
  startTask(options: {
36
135
  id: string;
@@ -42,17 +141,66 @@ export declare class AgentProxy<TAgent extends Agent = Agent> extends Agent {
42
141
  historyLength?: number | null;
43
142
  metadata?: Record<string, unknown> | null;
44
143
  }): Promise<Task>;
144
+ /**
145
+ * Retrieves the current status of a task.
146
+ *
147
+ * @param params - Query parameters including the task ID.
148
+ * @returns The task with current status.
149
+ */
45
150
  getTaskStatus(params: TaskQueryParams): Promise<Task>;
151
+ /**
152
+ * Requests cancellation of a running task.
153
+ *
154
+ * @param params - Parameters including the task ID.
155
+ * @returns The task with updated status.
156
+ */
46
157
  cancelTask(params: TaskIdParams): Promise<Task>;
158
+ /**
159
+ * Subscribes to real-time updates for a task.
160
+ *
161
+ * Returns an async iterable that yields status and artifact events
162
+ * until the task reaches a terminal state or the stream is closed.
163
+ *
164
+ * @param params - Task parameters.
165
+ * @param options - Optional timeout and item limit settings.
166
+ * @returns Async iterable of task events.
167
+ */
47
168
  subscribeToTaskUpdates(params: TaskSendParams, options?: StreamOptions): AsyncIterable<TaskStatusUpdateEvent | TaskArtifactUpdateEvent>;
169
+ /**
170
+ * Cancels a task subscription.
171
+ *
172
+ * @param params - Parameters including the task ID.
173
+ */
48
174
  unsubscribeTask(params: TaskIdParams): Promise<unknown>;
175
+ /**
176
+ * Registers a push notification endpoint for task updates.
177
+ *
178
+ * @param config - Push notification configuration.
179
+ * @returns The registered configuration.
180
+ */
49
181
  registerPushEndpoint(config: TaskPushNotificationConfig): Promise<TaskPushNotificationConfig>;
182
+ /**
183
+ * Retrieves the push notification config for a task.
184
+ *
185
+ * @param params - Parameters including the task ID.
186
+ * @returns The push notification configuration.
187
+ */
50
188
  getPushNotificationConfig(params: TaskIdParams): Promise<TaskPushNotificationConfig>;
189
+ /** @internal */
51
190
  private _streamRpc;
191
+ /** @internal */
52
192
  private _invokeTarget;
193
+ /**
194
+ * Creates a proxy for a remote agent by address.
195
+ * @internal Use {@link Agent.remoteByAddress} instead.
196
+ */
53
197
  static remoteByAddress<TAgent extends Agent>(address: FameAddress, options: {
54
198
  fabric: FameFabric;
55
199
  }): AgentProxy<TAgent>;
200
+ /**
201
+ * Creates a proxy for a remote agent by capabilities.
202
+ * @internal Use {@link Agent.remoteByCapabilities} instead.
203
+ */
56
204
  static remoteByCapabilities<TAgent extends Agent>(capabilities: string[], options: {
57
205
  fabric: FameFabric;
58
206
  }): AgentProxy<TAgent>;
@@ -1,17 +1,33 @@
1
+ /**
2
+ * Agent proxy module for remote agent communication.
3
+ *
4
+ * An {@link AgentProxy} is a client-side handle for invoking methods on a remote
5
+ * agent. Use it when you need to call an agent that lives in another process,
6
+ * container, or network location.
7
+ *
8
+ * @remarks
9
+ * Create proxies via {@link Agent.remote}, {@link Agent.remoteByAddress}, or
10
+ * {@link Agent.remoteByCapabilities} rather than instantiating AgentProxy directly.
11
+ *
12
+ * @module
13
+ */
1
14
  import { FameAddress, generateId, createRpcProxy } from '@naylence/runtime';
2
15
  import { TaskSchema, TaskArtifactUpdateEventSchema, TaskIdParamsSchema, TaskPushNotificationConfigSchema, TaskQueryParamsSchema, TaskSendParamsSchema, TaskState, TaskStatusUpdateEventSchema, } from './a2a-types.js';
3
16
  import { TERMINAL_TASK_STATES } from './task-states.js';
4
17
  import { firstTextPart, makeTaskParams } from './util.js';
5
18
  import { Agent } from './agent.js';
19
+ /** @internal */
6
20
  function toRecord(value) {
7
21
  if (!value || typeof value !== 'object') {
8
22
  return {};
9
23
  }
10
24
  return value;
11
25
  }
26
+ /** @internal */
12
27
  function toFameAddress(address) {
13
28
  return address instanceof FameAddress ? address : new FameAddress(String(address));
14
29
  }
30
+ /** @internal */
15
31
  function wrapAgentProxy(proxy) {
16
32
  // Create RPC proxy options - only include address or capabilities, not both
17
33
  const proxyOptions = {
@@ -40,6 +56,7 @@ function wrapAgentProxy(proxy) {
40
56
  },
41
57
  });
42
58
  }
59
+ /** @internal */
43
60
  async function nextWithTimeout(iterator, timeoutMs) {
44
61
  if (timeoutMs == null) {
45
62
  return await iterator.next();
@@ -57,7 +74,44 @@ async function nextWithTimeout(iterator, timeoutMs) {
57
74
  }
58
75
  }
59
76
  }
77
+ /**
78
+ * Client-side proxy for communicating with remote agents.
79
+ *
80
+ * AgentProxy implements the {@link Agent} interface, allowing you to call
81
+ * remote agents as if they were local objects. Method calls are serialized
82
+ * and sent over the Fame fabric.
83
+ *
84
+ * @remarks
85
+ * Do not instantiate AgentProxy directly. Use the factory methods on
86
+ * {@link Agent} to create proxies:
87
+ * - {@link Agent.remote} for flexible options
88
+ * - {@link Agent.remoteByAddress} for direct addressing
89
+ * - {@link Agent.remoteByCapabilities} for capability-based discovery
90
+ *
91
+ * The proxy also supports arbitrary RPC method calls. Any method not defined
92
+ * on the proxy class is forwarded as an RPC call to the remote agent.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * import { Agent } from '@naylence/agent-sdk';
97
+ *
98
+ * // Create a proxy to a remote agent
99
+ * const proxy = Agent.remoteByAddress('fame://calculator');
100
+ *
101
+ * // Run a task synchronously
102
+ * const result = await proxy.runTask({ a: 1, b: 2 });
103
+ *
104
+ * // Or start a task and poll for completion
105
+ * const task = await proxy.startTask({
106
+ * id: 'task-1',
107
+ * message: { role: 'user', parts: [{ type: 'text', text: 'compute' }] },
108
+ * });
109
+ * ```
110
+ *
111
+ * @typeParam TAgent - The type of the remote agent for result typing.
112
+ */
60
113
  export class AgentProxy extends Agent {
114
+ /** @internal */
61
115
  constructor(options) {
62
116
  const { address = null, capabilities = null, intentNl = null, fabric } = options;
63
117
  const provided = Number(address != null) + Number(capabilities != null) + Number(intentNl != null);
@@ -73,9 +127,11 @@ export class AgentProxy extends Agent {
73
127
  this.intentNl = intentNl;
74
128
  this.fabric = fabric;
75
129
  }
130
+ /** Returns null as proxies do not have a local name. */
76
131
  get name() {
77
132
  return null;
78
133
  }
134
+ /** Returns the proxy's targeting specification. */
79
135
  get spec() {
80
136
  const spec = {
81
137
  address: this.targetAddress ? this.targetAddress.toString() : null,
@@ -88,15 +144,22 @@ export class AgentProxy extends Agent {
88
144
  }
89
145
  return spec;
90
146
  }
147
+ /**
148
+ * The target agent's address, if specified.
149
+ * @deprecated Use {@link AgentProxy.address} instead.
150
+ */
91
151
  get addressRef() {
92
152
  return this.targetAddress;
93
153
  }
154
+ /** The target agent's address, if specified. */
94
155
  get address() {
95
156
  return this.targetAddress;
96
157
  }
158
+ /** The required capabilities for discovery, if specified. */
97
159
  get capabilities() {
98
160
  return this.targetCapabilities ?? undefined;
99
161
  }
162
+ /** The fabric this proxy uses for communication. */
100
163
  get proxyFabric() {
101
164
  return this.fabric;
102
165
  }
@@ -107,6 +170,24 @@ export class AgentProxy extends Agent {
107
170
  void _credentials;
108
171
  throw new Error('Proxy authentication is not supported');
109
172
  }
173
+ /**
174
+ * Executes a task on the remote agent and waits for completion.
175
+ *
176
+ * Starts the task, subscribes to updates, and returns when the task reaches
177
+ * a terminal state (completed, failed, or canceled).
178
+ *
179
+ * @param payload - The task payload to send.
180
+ * @param id - Optional task identifier. Generated if not provided.
181
+ * @returns The task result extracted from the final status message.
182
+ * @throws Error if the task fails.
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * const proxy = Agent.remoteByAddress('fame://echo');
187
+ * const result = await proxy.runTask('hello');
188
+ * console.log(result); // 'hello'
189
+ * ```
190
+ */
110
191
  async runTask(payload = null, id = null) {
111
192
  const taskId = id ?? generateId();
112
193
  const params = makeTaskParams({ id: taskId, payload });
@@ -180,16 +261,38 @@ export class AgentProxy extends Agent {
180
261
  const result = await this._invokeTarget('tasks/send', params);
181
262
  return TaskSchema.parse(result);
182
263
  }
264
+ /**
265
+ * Retrieves the current status of a task.
266
+ *
267
+ * @param params - Query parameters including the task ID.
268
+ * @returns The task with current status.
269
+ */
183
270
  async getTaskStatus(params) {
184
271
  const payload = TaskQueryParamsSchema.parse(params);
185
272
  const result = await this._invokeTarget('tasks/get', payload);
186
273
  return TaskSchema.parse(result);
187
274
  }
275
+ /**
276
+ * Requests cancellation of a running task.
277
+ *
278
+ * @param params - Parameters including the task ID.
279
+ * @returns The task with updated status.
280
+ */
188
281
  async cancelTask(params) {
189
282
  const payload = TaskIdParamsSchema.parse(params);
190
283
  const result = await this._invokeTarget('tasks/cancel', payload);
191
284
  return TaskSchema.parse(result);
192
285
  }
286
+ /**
287
+ * Subscribes to real-time updates for a task.
288
+ *
289
+ * Returns an async iterable that yields status and artifact events
290
+ * until the task reaches a terminal state or the stream is closed.
291
+ *
292
+ * @param params - Task parameters.
293
+ * @param options - Optional timeout and item limit settings.
294
+ * @returns Async iterable of task events.
295
+ */
193
296
  subscribeToTaskUpdates(params, options = {}) {
194
297
  const payload = TaskSendParamsSchema.parse(params);
195
298
  return this._streamRpc('tasks/sendSubscribe', payload, (frame) => {
@@ -199,20 +302,38 @@ export class AgentProxy extends Agent {
199
302
  return TaskStatusUpdateEventSchema.parse(frame);
200
303
  }, 'tasks/sendUnsubscribe', TaskIdParamsSchema.parse({ id: payload.id }), options);
201
304
  }
305
+ /**
306
+ * Cancels a task subscription.
307
+ *
308
+ * @param params - Parameters including the task ID.
309
+ */
202
310
  async unsubscribeTask(params) {
203
311
  const payload = TaskIdParamsSchema.parse(params);
204
312
  return await this._invokeTarget('tasks/sendUnsubscribe', payload);
205
313
  }
314
+ /**
315
+ * Registers a push notification endpoint for task updates.
316
+ *
317
+ * @param config - Push notification configuration.
318
+ * @returns The registered configuration.
319
+ */
206
320
  async registerPushEndpoint(config) {
207
321
  const payload = TaskPushNotificationConfigSchema.parse(config);
208
322
  const result = await this._invokeTarget('tasks/pushNotification/set', payload);
209
323
  return TaskPushNotificationConfigSchema.parse(result ?? payload);
210
324
  }
325
+ /**
326
+ * Retrieves the push notification config for a task.
327
+ *
328
+ * @param params - Parameters including the task ID.
329
+ * @returns The push notification configuration.
330
+ */
211
331
  async getPushNotificationConfig(params) {
212
332
  const payload = TaskIdParamsSchema.parse(params);
213
333
  const result = await this._invokeTarget('tasks/pushNotification/get', payload);
214
334
  return TaskPushNotificationConfigSchema.parse(result ?? payload);
215
335
  }
336
+ /** @internal */
216
337
  _streamRpc(method, params, parseFrame, unsubscribeMethod, unsubscribeParams, options) {
217
338
  const self = this;
218
339
  return {
@@ -282,6 +403,7 @@ export class AgentProxy extends Agent {
282
403
  },
283
404
  };
284
405
  }
406
+ /** @internal */
285
407
  async _invokeTarget(method, params, options = {}) {
286
408
  if (this.intentNl) {
287
409
  throw new Error('Intent-based routing not yet supported');
@@ -301,10 +423,18 @@ export class AgentProxy extends Agent {
301
423
  }
302
424
  throw new Error('Proxy has no routing target');
303
425
  }
426
+ /**
427
+ * Creates a proxy for a remote agent by address.
428
+ * @internal Use {@link Agent.remoteByAddress} instead.
429
+ */
304
430
  static remoteByAddress(address, options) {
305
431
  const proxy = new AgentProxy({ address, fabric: options.fabric });
306
432
  return wrapAgentProxy(proxy);
307
433
  }
434
+ /**
435
+ * Creates a proxy for a remote agent by capabilities.
436
+ * @internal Use {@link Agent.remoteByCapabilities} instead.
437
+ */
308
438
  static remoteByCapabilities(capabilities, options) {
309
439
  const proxy = new AgentProxy({ capabilities, fabric: options.fabric });
310
440
  return wrapAgentProxy(proxy);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-proxy.js","sourceRoot":"","sources":["../../../../src/naylence/agent/agent-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-proxy.js","sourceRoot":"","sources":["../../../../src/naylence/agent/agent-proxy.ts"],"names":[],"mappings":"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"}