@naylence/agent-sdk 0.3.12 → 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 (41) hide show
  1. package/README.md +30 -0
  2. package/dist/browser/index.js +1167 -439
  3. package/dist/browser/index.js.map +1 -1
  4. package/dist/cjs/naylence/agent/agent-proxy.js.map +1 -1
  5. package/dist/cjs/naylence/agent/agent.js.map +1 -1
  6. package/dist/cjs/naylence/agent/background-task-agent.js.map +1 -1
  7. package/dist/cjs/naylence/agent/base-agent.js.map +1 -1
  8. package/dist/cjs/public-api.d.ts +7 -0
  9. package/dist/cjs/public-api.js +26 -0
  10. package/dist/cjs/public-api.js.map +1 -0
  11. package/dist/cjs/version.d.ts +1 -1
  12. package/dist/cjs/version.js +1 -1
  13. package/dist/esm/naylence/agent/agent-proxy.d.ts +148 -0
  14. package/dist/esm/naylence/agent/agent-proxy.js +130 -0
  15. package/dist/esm/naylence/agent/agent-proxy.js.map +1 -1
  16. package/dist/esm/naylence/agent/agent.d.ts +194 -2
  17. package/dist/esm/naylence/agent/agent.js +123 -0
  18. package/dist/esm/naylence/agent/agent.js.map +1 -1
  19. package/dist/esm/naylence/agent/background-task-agent.d.ts +164 -0
  20. package/dist/esm/naylence/agent/background-task-agent.js +150 -0
  21. package/dist/esm/naylence/agent/background-task-agent.js.map +1 -1
  22. package/dist/esm/naylence/agent/base-agent.d.ts +171 -0
  23. package/dist/esm/naylence/agent/base-agent.js +170 -1
  24. package/dist/esm/naylence/agent/base-agent.js.map +1 -1
  25. package/dist/esm/public-api.d.ts +15 -0
  26. package/dist/esm/public-api.js +16 -0
  27. package/dist/esm/public-api.js.map +1 -0
  28. package/dist/esm/version.d.ts +1 -1
  29. package/dist/esm/version.js +2 -2
  30. package/dist/types/naylence/agent/agent-proxy.d.ts +148 -0
  31. package/dist/types/naylence/agent/agent-proxy.d.ts.map +1 -1
  32. package/dist/types/naylence/agent/agent.d.ts +194 -2
  33. package/dist/types/naylence/agent/agent.d.ts.map +1 -1
  34. package/dist/types/naylence/agent/background-task-agent.d.ts +164 -0
  35. package/dist/types/naylence/agent/background-task-agent.d.ts.map +1 -1
  36. package/dist/types/naylence/agent/base-agent.d.ts +171 -0
  37. package/dist/types/naylence/agent/base-agent.d.ts.map +1 -1
  38. package/dist/types/public-api.d.ts +16 -0
  39. package/dist/types/public-api.d.ts.map +1 -0
  40. package/dist/types/version.d.ts +1 -1
  41. package/package.json +7 -2
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Agent module providing the abstract {@link Agent} class.
3
+ *
4
+ * An Agent is a self-contained unit of work that can receive tasks, process them,
5
+ * and return results. Agents communicate over the Fame fabric using a standard
6
+ * task-based protocol.
7
+ *
8
+ * @remarks
9
+ * For concrete implementations:
10
+ * - Use {@link BaseAgent} when you need full control over task handling and state.
11
+ * - Use {@link BackgroundTaskAgent} for long-running or async background work.
12
+ *
13
+ * @module
14
+ */
1
15
  import { FameAddress, FameFabric, basicConfig, fabricStack, generateId, getLogger, LogLevel, } from '@naylence/runtime';
2
16
  import { RpcMixin } from '@naylence/runtime';
3
17
  import { resolveAgentProxyCtor } from './agent-proxy-registry.js';
@@ -14,7 +28,9 @@ function requireBaseAgentCtor() {
14
28
  export function registerBaseAgentConstructor(ctor) {
15
29
  registeredBaseAgentCtor = ctor;
16
30
  }
31
+ /** @internal */
17
32
  const isNodeRuntime = () => typeof process !== 'undefined' && process.release?.name === 'node';
33
+ /** @internal */
18
34
  const LOG_LEVEL_KEYWORDS = {
19
35
  critical: LogLevel.CRITICAL,
20
36
  error: LogLevel.ERROR,
@@ -24,6 +40,7 @@ const LOG_LEVEL_KEYWORDS = {
24
40
  debug: LogLevel.DEBUG,
25
41
  trace: LogLevel.TRACE,
26
42
  };
43
+ /** @internal */
27
44
  function normalizeLogLevel(level) {
28
45
  if (typeof level === 'number') {
29
46
  if (Object.values(LogLevel).includes(level)) {
@@ -41,6 +58,7 @@ function normalizeLogLevel(level) {
41
58
  }
42
59
  return level;
43
60
  }
61
+ /** @internal */
44
62
  class Deferred {
45
63
  constructor() {
46
64
  this.settled = false;
@@ -62,6 +80,7 @@ class Deferred {
62
80
  this.internalReject(reason);
63
81
  }
64
82
  }
83
+ /** @internal */
65
84
  async function setupSignalHandlers(stop) {
66
85
  if (!isNodeRuntime()) {
67
86
  return () => { };
@@ -86,6 +105,7 @@ async function setupSignalHandlers(stop) {
86
105
  }
87
106
  };
88
107
  }
108
+ /** @internal */
89
109
  async function acquireFabric(options) {
90
110
  const manageContext = fabricStack.length === 0;
91
111
  const fabric = await FameFabric.getOrCreate(options ?? {});
@@ -107,19 +127,68 @@ async function acquireFabric(options) {
107
127
  },
108
128
  };
109
129
  }
130
+ /** @internal */
110
131
  function toFameAddress(value) {
111
132
  return value instanceof FameAddress ? value : new FameAddress(String(value));
112
133
  }
134
+ /** @internal */
113
135
  function invokeProxyRunTask(proxy, payload, taskId) {
114
136
  if (typeof proxy.runTask === 'function') {
115
137
  return proxy.runTask(payload, taskId);
116
138
  }
117
139
  throw new Error('AgentProxy must implement runTask');
118
140
  }
141
+ /**
142
+ * Abstract base class for all agents.
143
+ *
144
+ * Agents are addressable services that handle tasks over the Fame fabric.
145
+ * This class defines the core protocol methods every agent must implement.
146
+ *
147
+ * @remarks
148
+ * Do not extend Agent directly. Instead:
149
+ * - Extend {@link BaseAgent} for standard request-response agents.
150
+ * - Extend {@link BackgroundTaskAgent} for long-running background work.
151
+ *
152
+ * Use {@link Agent.remote} or {@link Agent.remoteByAddress} to create proxies
153
+ * for communicating with remote agents.
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * import { BaseAgent, Payload } from '@naylence/agent-sdk';
158
+ *
159
+ * class EchoAgent extends BaseAgent {
160
+ * async runTask(payload: Payload): Promise<Payload> {
161
+ * return payload;
162
+ * }
163
+ * }
164
+ *
165
+ * const agent = new EchoAgent('echo');
166
+ * await agent.serve('fame://echo');
167
+ * ```
168
+ */
119
169
  export class Agent extends RpcMixin {
170
+ /**
171
+ * Capabilities advertised by this agent for discovery.
172
+ */
120
173
  get capabilities() {
121
174
  return undefined;
122
175
  }
176
+ /**
177
+ * Creates a proxy for communicating with a remote agent.
178
+ *
179
+ * @remarks
180
+ * Provide exactly one of `address` or `capabilities` in the options.
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const proxy = Agent.remote<EchoAgent>({ address: 'fame://echo' });
185
+ * const result = await proxy.runTask('hello');
186
+ * ```
187
+ *
188
+ * @param options - Remote agent options.
189
+ * @returns A proxy for the remote agent.
190
+ * @throws Error if both or neither of address/capabilities are provided.
191
+ */
123
192
  static remote(options) {
124
193
  const { address, capabilities, fabric } = options;
125
194
  const selected = Number(address != null) + Number(capabilities != null);
@@ -136,6 +205,13 @@ export class Agent extends RpcMixin {
136
205
  fabric: resolvedFabric,
137
206
  });
138
207
  }
208
+ /**
209
+ * Creates a proxy for a remote agent by its address.
210
+ *
211
+ * @param address - The target agent's address.
212
+ * @param options - Optional fabric configuration.
213
+ * @returns A proxy for the remote agent.
214
+ */
139
215
  static remoteByAddress(address, options = {}) {
140
216
  const remoteOptions = { address };
141
217
  if (options.fabric !== undefined) {
@@ -143,6 +219,13 @@ export class Agent extends RpcMixin {
143
219
  }
144
220
  return this.remote(remoteOptions);
145
221
  }
222
+ /**
223
+ * Creates a proxy for a remote agent by required capabilities.
224
+ *
225
+ * @param capabilities - Required capabilities for discovery.
226
+ * @param options - Optional fabric configuration.
227
+ * @returns A proxy for a matching remote agent.
228
+ */
146
229
  static remoteByCapabilities(capabilities, options = {}) {
147
230
  const remoteOptions = { capabilities };
148
231
  if (options.fabric !== undefined) {
@@ -150,6 +233,15 @@ export class Agent extends RpcMixin {
150
233
  }
151
234
  return this.remote(remoteOptions);
152
235
  }
236
+ /**
237
+ * Creates an agent from a simple handler function.
238
+ *
239
+ * @remarks
240
+ * Useful for quick prototyping without defining a full agent class.
241
+ *
242
+ * @param handler - Function that processes task payloads.
243
+ * @returns A new agent instance wrapping the handler.
244
+ */
153
245
  static async fromHandler(handler) {
154
246
  if (!registeredBaseAgentCtor) {
155
247
  await import('./base-agent.js');
@@ -166,10 +258,25 @@ export class Agent extends RpcMixin {
166
258
  }
167
259
  return new HandlerAgent();
168
260
  }
261
+ /**
262
+ * Sends the same payload to multiple agents.
263
+ *
264
+ * @param addresses - List of agent addresses.
265
+ * @param payload - Payload to send to all agents.
266
+ * @param options - Execution options.
267
+ * @returns Array of [address, result|error] tuples.
268
+ */
169
269
  static async broadcast(addresses, payload = null, options = {}) {
170
270
  const targets = addresses.map((address) => [address, payload]);
171
271
  return this.runMany(targets, options);
172
272
  }
273
+ /**
274
+ * Runs tasks on multiple agents with individual payloads.
275
+ *
276
+ * @param targets - Iterable of [address, payload] pairs.
277
+ * @param options - Execution options.
278
+ * @returns Array of [address, result|error] tuples.
279
+ */
173
280
  static async runMany(targets, options = {}) {
174
281
  const { fabric, gatherExceptions = true } = options;
175
282
  const resolvedFabric = fabric ?? FameFabric.current();
@@ -205,6 +312,16 @@ export class Agent extends RpcMixin {
205
312
  return [addressKey, result.reason];
206
313
  });
207
314
  }
315
+ /**
316
+ * Starts serving this agent at the given address.
317
+ *
318
+ * @remarks
319
+ * In Node.js, the agent listens for SIGINT/SIGTERM to shut down gracefully.
320
+ * The method returns when the agent stops serving.
321
+ *
322
+ * @param address - The address to serve at (e.g., 'fame://my-agent').
323
+ * @param options - Serve options including log level and fabric config.
324
+ */
208
325
  async aserve(address, options = {}) {
209
326
  // Extract logLevel, pass everything else to fabric
210
327
  const { logLevel = null, ...fabricOptions } = options;
@@ -233,6 +350,12 @@ export class Agent extends RpcMixin {
233
350
  await release();
234
351
  }
235
352
  }
353
+ /**
354
+ * Alias for {@link Agent.aserve}.
355
+ *
356
+ * @param address - The address to serve at.
357
+ * @param options - Serve options.
358
+ */
236
359
  serve(address, options = {}) {
237
360
  return this.aserve(address, options);
238
361
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../src/naylence/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../src/naylence/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,200 @@
1
1
  import { type Artifact, type Message, Task, type TaskArtifactUpdateEvent, TaskIdParams, type TaskQueryParams, TaskSendParams, TaskState, type TaskStatusUpdateEvent } from './a2a-types.js';
2
2
  import { BaseAgent, type BaseAgentOptions, type BaseAgentState } from './base-agent.js';
3
+ /** @internal */
3
4
  type TaskEvent = TaskStatusUpdateEvent | TaskArtifactUpdateEvent;
5
+ /**
6
+ * Configuration options for {@link BackgroundTaskAgent}.
7
+ */
4
8
  export interface BackgroundTaskAgentOptions<StateT extends BaseAgentState> extends BaseAgentOptions<StateT> {
9
+ /** Maximum number of events buffered per task. Defaults to 1000. */
5
10
  maxQueueSize?: number;
11
+ /**
12
+ * Maximum task execution time in milliseconds.
13
+ * Tasks exceeding this limit are automatically canceled. Null disables the limit.
14
+ */
6
15
  maxTaskLifetimeMs?: number | null;
16
+ /** Maximum number of completed tasks to cache. Defaults to 100. */
7
17
  completedCacheSize?: number;
18
+ /** Time-to-live for cached completed tasks in seconds. Defaults to 300. */
8
19
  completedCacheTtlSec?: number;
9
20
  }
21
+ /**
22
+ * Base class for agents that execute long-running background tasks.
23
+ *
24
+ * Unlike {@link BaseAgent} which runs tasks synchronously in startTask,
25
+ * BackgroundTaskAgent starts tasks in the background and streams status
26
+ * updates to subscribers. This is ideal for work that takes significant time.
27
+ *
28
+ * @remarks
29
+ * Lifecycle:
30
+ * 1. Client calls startTask, which returns immediately with WORKING status
31
+ * 2. runBackgroundTask executes asynchronously
32
+ * 3. Status updates are queued and delivered to subscribers
33
+ * 4. Task completes with COMPLETED, FAILED, or CANCELED status
34
+ *
35
+ * Completed tasks are cached briefly for late subscribers to retrieve final status.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import {
40
+ * BackgroundTaskAgent,
41
+ * TaskSendParams,
42
+ * TaskState,
43
+ * } from '@naylence/agent-sdk';
44
+ *
45
+ * class SlowAgent extends BackgroundTaskAgent {
46
+ * protected async runBackgroundTask(params: TaskSendParams): Promise<string> {
47
+ * // Report progress
48
+ * await this.updateTaskState(params.id, TaskState.WORKING);
49
+ *
50
+ * // Do expensive work
51
+ * await someSlowOperation();
52
+ *
53
+ * // Return value becomes the task result
54
+ * return 'done';
55
+ * }
56
+ * }
57
+ *
58
+ * const agent = new SlowAgent('slow-worker', {
59
+ * maxTaskLifetimeMs: 60_000, // 1 minute timeout
60
+ * });
61
+ * await agent.serve('fame://slow-worker');
62
+ * ```
63
+ *
64
+ * @typeParam StateT - The state model type, defaults to {@link BaseAgentState}.
65
+ */
10
66
  export declare abstract class BackgroundTaskAgent<StateT extends BaseAgentState = BaseAgentState> extends BaseAgent<StateT> {
67
+ /** @internal */
11
68
  private readonly maxQueueSize;
69
+ /** @internal */
12
70
  private readonly maxTaskLifetimeMs;
71
+ /** @internal */
13
72
  private readonly taskStatuses;
73
+ /** @internal */
14
74
  private readonly taskEventQueues;
75
+ /** @internal */
15
76
  private readonly completed;
77
+ /** @internal */
16
78
  private readonly completedCacheSize;
79
+ /** @internal */
17
80
  private readonly completedCacheTtlSec;
81
+ /** @internal */
18
82
  private readonly statusLock;
83
+ /**
84
+ * Creates a new BackgroundTaskAgent.
85
+ *
86
+ * @param name - Agent name. Defaults to snake_case of the class name.
87
+ * @param options - Configuration options for task execution and caching.
88
+ */
19
89
  protected constructor(name?: string | null, options?: BackgroundTaskAgentOptions<StateT>);
90
+ /** @internal */
20
91
  private isTerminalTaskState;
92
+ /**
93
+ * Starts a background task.
94
+ *
95
+ * Returns immediately with WORKING status. The task executes asynchronously
96
+ * via {@link BackgroundTaskAgent.runBackgroundTask}.
97
+ *
98
+ * @param params - Task parameters.
99
+ * @returns The task with initial WORKING status.
100
+ */
21
101
  startTask(params: TaskSendParams): Promise<Task>;
102
+ /** @internal */
22
103
  private enforceMaxLifetime;
104
+ /** @internal */
23
105
  private runBackgroundTaskInternal;
106
+ /**
107
+ * Override to implement background task execution logic.
108
+ *
109
+ * This method runs asynchronously after startTask returns. The return value
110
+ * becomes the task's completion message. Throwing an error fails the task.
111
+ *
112
+ * @remarks
113
+ * Call {@link BackgroundTaskAgent.updateTaskState} to report progress.
114
+ * Call {@link BackgroundTaskAgent.updateTaskArtifact} to emit artifacts.
115
+ *
116
+ * @param params - The original task parameters.
117
+ * @returns The task result, which is included in the completion message.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * protected async runBackgroundTask(params: TaskSendParams): Promise<unknown> {
122
+ * for (let i = 0; i < 10; i++) {
123
+ * await this.updateTaskState(params.id, TaskState.WORKING);
124
+ * await doStep(i);
125
+ * }
126
+ * return { steps: 10 };
127
+ * }
128
+ * ```
129
+ */
24
130
  protected abstract runBackgroundTask(params: TaskSendParams): Promise<unknown>;
131
+ /**
132
+ * Gets the current state of a task.
133
+ *
134
+ * @param taskId - The task identifier.
135
+ * @returns The current task state, or UNKNOWN if not found.
136
+ */
25
137
  getTaskState(taskId: string): Promise<TaskState>;
138
+ /**
139
+ * Retrieves the full status of a task.
140
+ *
141
+ * @param params - Query parameters including the task ID.
142
+ * @returns The task with current status.
143
+ * @throws Error if the task is unknown or expired.
144
+ */
26
145
  getTaskStatus(params: TaskQueryParams): Promise<Task>;
146
+ /**
147
+ * Updates the state of a running task.
148
+ *
149
+ * Call this from {@link BackgroundTaskAgent.runBackgroundTask} to report progress.
150
+ * Status updates are delivered to subscribers.
151
+ *
152
+ * @param taskId - The task identifier.
153
+ * @param state - The new task state.
154
+ * @param message - Optional message with details.
155
+ * @returns True if the update was applied, false if the task is already terminal.
156
+ */
27
157
  updateTaskState(taskId: string, state: TaskState, message?: Message | null): Promise<boolean>;
158
+ /** @internal */
28
159
  private addToCompleted;
160
+ /**
161
+ * Emits an artifact for a running task.
162
+ *
163
+ * Artifacts are delivered to subscribers as TaskArtifactUpdateEvents.
164
+ *
165
+ * @param taskId - The task identifier.
166
+ * @param artifact - The artifact to emit.
167
+ */
29
168
  updateTaskArtifact(taskId: string, artifact: Artifact): Promise<void>;
169
+ /**
170
+ * Subscribes to updates for a task.
171
+ *
172
+ * Returns an async iterable that yields status and artifact events.
173
+ * For completed tasks, yields the cached final status if still available.
174
+ *
175
+ * @param params - Task parameters including the task ID.
176
+ * @returns Async iterable of task events.
177
+ */
30
178
  subscribeToTaskUpdates(params: TaskSendParams): AsyncIterable<TaskEvent>;
179
+ /**
180
+ * Cancels a task subscription.
181
+ *
182
+ * @param params - Parameters including the task ID.
183
+ */
31
184
  unsubscribeTask(params: TaskIdParams): Promise<void>;
185
+ /**
186
+ * Cancels a running task.
187
+ *
188
+ * Sets the task state to CANCELED. Does not interrupt runBackgroundTask,
189
+ * but prevents further state updates.
190
+ *
191
+ * @param params - Parameters including the task ID.
192
+ * @returns The task with CANCELED status.
193
+ */
32
194
  cancelTask(params: TaskIdParams): Promise<Task>;
195
+ /** @internal */
33
196
  private purgeCompletedAfterTtl;
197
+ /** @internal */
34
198
  private normalizeResultPayload;
35
199
  }
36
200
  export {};