@nolag/agents 0.1.0 → 0.2.0

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/dist/index.cjs CHANGED
@@ -178,13 +178,20 @@ class AgentRoom extends EventEmitter {
178
178
  }
179
179
  this._publish(TOPIC_TASKS, envelope);
180
180
  }
181
- /** Publish to the results topic */
181
+ /** Publish to the results topic — directed to the dispatcher via filter when replyTo is set */
182
182
  publishResult(envelope) {
183
183
  // Auto-set completedBy if not set
184
184
  if (!envelope.completedBy) {
185
185
  envelope.completedBy = this.agentId;
186
186
  }
187
- this._publish(TOPIC_RESULTS, envelope);
187
+ if (envelope.replyTo) {
188
+ this._publish(TOPIC_RESULTS, envelope, { filter: envelope.replyTo });
189
+ }
190
+ else {
191
+ // Legacy: no reply address — unfiltered publish (only reaches
192
+ // wildcard subscribers, i.e. pre-0.2.0 SDKs)
193
+ this._publish(TOPIC_RESULTS, envelope);
194
+ }
188
195
  }
189
196
  /** Publish to the state topic (retained) */
190
197
  publishState(data) {
@@ -206,8 +213,17 @@ class AgentRoom extends EventEmitter {
206
213
  publishInbox(data) {
207
214
  this._publish(TOPIC_INBOX, data);
208
215
  }
209
- /** Publish to the tools topic */
216
+ /**
217
+ * Publish a tool message.
218
+ * Requests go to the tools topic (load-balanced one-of-N across server
219
+ * replicas). Responses are directed to the requester on the results topic
220
+ * via filter — never load-balanced, never broadcast.
221
+ */
210
222
  publishTools(data) {
223
+ if (data?.type === "tool_response" && typeof data.replyTo === "string" && data.replyTo) {
224
+ this._publish(TOPIC_RESULTS, data, { filter: data.replyTo });
225
+ return;
226
+ }
211
227
  this._publish(TOPIC_TOOLS, data);
212
228
  }
213
229
  /** Publish to the approval topic (retained) */
@@ -309,23 +325,33 @@ class AgentRoom extends EventEmitter {
309
325
  });
310
326
  }
311
327
  _wireTopicListeners() {
312
- // All topics that need broker subscriptions
313
- const allTopics = [
314
- TOPIC_TASKS,
315
- TOPIC_RESULTS,
316
- TOPIC_STATE,
317
- TOPIC_EVENTS,
318
- TOPIC_INBOX,
319
- TOPIC_TOOLS,
320
- TOPIC_APPROVAL,
321
- ];
322
- for (const topic of allTopics) {
323
- this._roomContext.subscribe(topic);
328
+ // Work distribution topics honour the connection-level loadBalance
329
+ // setting, so a pool shares each message one-of-N (no double handling):
330
+ // - tasks: each task goes to exactly one worker in the group
331
+ // - tools: each tool REQUEST goes to exactly one tool-server replica
332
+ this._roomContext.subscribe(TOPIC_TASKS);
333
+ this._roomContext.subscribe(TOPIC_TOOLS);
334
+ // Replies are DIRECTED, not broadcast: the results topic carries task
335
+ // results and tool responses published with `filter: <recipient agentId>`,
336
+ // and each agent subscribes only to its own filter sub-topic. The broker
337
+ // routes each reply straight to the requester — no fan-out waste, and
338
+ // immune to load-balance groups (a broadcast or LB'd reply could land on
339
+ // a group member that doesn't hold the pending correlation, timing out
340
+ // the requester even though the responder did the work).
341
+ this._roomContext.subscribe(TOPIC_RESULTS, {
342
+ loadBalance: false,
343
+ filters: [this.agentId],
344
+ });
345
+ // Broadcast topics must always fan out, even when the connection enables
346
+ // loadBalance for work distribution: state/events are broadcasts by
347
+ // nature; inbox and approval messages are claimed client-side.
348
+ const broadcastTopics = [TOPIC_STATE, TOPIC_EVENTS, TOPIC_INBOX, TOPIC_APPROVAL];
349
+ for (const topic of broadcastTopics) {
350
+ this._roomContext.subscribe(topic, { loadBalance: false });
324
351
  }
325
352
  // Simple 1:1 mappings
326
353
  const simpleMap = [
327
354
  { topic: TOPIC_TASKS, event: "task" },
328
- { topic: TOPIC_RESULTS, event: "result" },
329
355
  { topic: TOPIC_STATE, event: "stateChange" },
330
356
  { topic: TOPIC_EVENTS, event: "event" },
331
357
  { topic: TOPIC_INBOX, event: "inbox" },
@@ -336,6 +362,17 @@ class AgentRoom extends EventEmitter {
336
362
  this.emit(event, data);
337
363
  });
338
364
  }
365
+ // Multiplexed: results topic carries task results AND tool responses,
366
+ // both filter-directed to this agent.
367
+ this._roomContext.on(TOPIC_RESULTS, (data) => {
368
+ this._log(`received ${TOPIC_RESULTS} in room ${this.name}`);
369
+ if (data?.type === "tool_response") {
370
+ this.emit("toolResponse", data);
371
+ }
372
+ else {
373
+ this.emit("result", data);
374
+ }
375
+ });
339
376
  // Multiplexed: approval topic carries requests + responses
340
377
  this._roomContext.on(TOPIC_APPROVAL, (data) => {
341
378
  this._log(`received ${TOPIC_APPROVAL} in room ${this.name}`);
@@ -346,7 +383,9 @@ class AgentRoom extends EventEmitter {
346
383
  this.emit("approvalRequest", data);
347
384
  }
348
385
  });
349
- // Multiplexed: tools topic carries requests + responses
386
+ // Tools topic carries requests; tool_response is still accepted here for
387
+ // backward compatibility with responders on older SDK versions (their
388
+ // responses are only reliable when the requester is not load-balanced).
350
389
  this._roomContext.on(TOPIC_TOOLS, (data) => {
351
390
  this._log(`received ${TOPIC_TOOLS} in room ${this.name}`);
352
391
  if (data?.type === "tool_response") {
@@ -673,7 +712,7 @@ function createTaskEnvelope(capability, payload, options) {
673
712
  timeout: options?.timeout,
674
713
  };
675
714
  }
676
- function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy) {
715
+ function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy, replyTo) {
677
716
  return {
678
717
  type: "result",
679
718
  correlationId,
@@ -683,6 +722,7 @@ function createResultEnvelope(taskId, correlationId, status, payload, error, com
683
722
  error,
684
723
  completedAt: createTimestamp(),
685
724
  completedBy,
725
+ replyTo,
686
726
  };
687
727
  }
688
728
  function createStateEnvelope(key, value, version, updatedBy) {
@@ -742,7 +782,7 @@ function createToolRequest(toolName, args, requestedBy, options) {
742
782
  requestedAt: createTimestamp(),
743
783
  };
744
784
  }
745
- function createToolResponse(requestId, correlationId, status, result, error, respondedBy) {
785
+ function createToolResponse(requestId, correlationId, status, result, error, respondedBy, replyTo) {
746
786
  return {
747
787
  type: "tool_response",
748
788
  requestId,
@@ -752,6 +792,7 @@ function createToolResponse(requestId, correlationId, status, result, error, res
752
792
  error,
753
793
  respondedBy,
754
794
  respondedAt: createTimestamp(),
795
+ replyTo,
755
796
  };
756
797
  }
757
798
 
@@ -808,32 +849,29 @@ class Handoff {
808
849
  }
809
850
  const envelope = createTaskEnvelope(capability, payload, {
810
851
  ...options,
811
- createdBy: this._room.agentId,
852
+ createdBy: options?.createdBy ?? this._room.agentId,
853
+ // Reply address: workers publish the result filter-directed to this
854
+ // room's results subscription
855
+ replyTo: options?.replyTo ?? this._room.agentId,
812
856
  });
813
857
  this._room.publishTask(envelope);
814
858
  if (options?.waitForResult) {
815
859
  return this._correlations.register(envelope.correlationId, options.timeout);
816
860
  }
817
861
  }
818
- /**
819
- * Register a handler for incoming tasks, filtered by capabilities.
820
- *
821
- * Only tasks whose `capability` field matches one of the provided
822
- * capabilities will be delivered to the handler. Non-matching tasks
823
- * are silently ignored.
824
- *
825
- * @param capabilities - Array of capabilities this worker handles.
826
- * Pass `'*'` to receive all tasks.
827
- * @param handler - Async handler called with the task and a respond function.
828
- */
829
- onTask(capabilities, handler) {
862
+ onTask(capabilitiesOrHandler, maybeHandler) {
863
+ // Single-arg form: onTask(handler) receives all tasks
864
+ const capabilities = typeof capabilitiesOrHandler === "function" ? '*' : capabilitiesOrHandler;
865
+ const handler = typeof capabilitiesOrHandler === "function" ? capabilitiesOrHandler : maybeHandler;
830
866
  this._room.on("task", (task) => {
831
867
  // Filter by capability unless wildcard
832
868
  if (capabilities !== '*' && !capabilities.includes(task.capability)) {
833
869
  return;
834
870
  }
835
871
  const respond = (status, payload, error) => {
836
- const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId);
872
+ const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId,
873
+ // Direct the result to the dispatcher's filter sub-topic
874
+ task.replyTo ?? task.createdBy);
837
875
  this._room.publishResult(result);
838
876
  };
839
877
  handler(task, respond);
@@ -1043,16 +1081,18 @@ class Tools {
1043
1081
  const handler = this._handlers.get(envelope.toolName);
1044
1082
  if (!handler)
1045
1083
  return;
1084
+ // Direct the response back to the requester's filter sub-topic
1085
+ const replyTo = envelope.replyTo ?? envelope.requestedBy;
1046
1086
  try {
1047
1087
  const result = await handler(envelope.arguments);
1048
- const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId);
1088
+ const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId, replyTo);
1049
1089
  this._room.publishTools(response);
1050
1090
  }
1051
1091
  catch (err) {
1052
1092
  const response = createToolResponse(envelope.requestId, envelope.correlationId, "error", null, {
1053
1093
  code: "TOOL_ERROR",
1054
1094
  message: err instanceof Error ? err.message : String(err),
1055
- }, this._agentId);
1095
+ }, this._agentId, replyTo);
1056
1096
  this._room.publishTools(response);
1057
1097
  }
1058
1098
  });
@@ -1067,7 +1107,13 @@ class Tools {
1067
1107
  * Invoke a remote tool and wait for the response.
1068
1108
  */
1069
1109
  async invoke(toolName, args, options) {
1070
- const envelope = createToolRequest(toolName, args, this._agentId);
1110
+ // replyTo is the room's agentId — the filter sub-topic this room's
1111
+ // results subscription listens on. (this._agentId may differ when a
1112
+ // caller attributes requests to a logical agent; delivery must use the
1113
+ // address that is actually subscribed.)
1114
+ const envelope = createToolRequest(toolName, args, this._agentId, {
1115
+ replyTo: this._room.agentId,
1116
+ });
1071
1117
  this._room.publishTools(envelope);
1072
1118
  return this._correlations.register(envelope.correlationId, options?.timeout);
1073
1119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/constants.ts","../src/AgentRoom.ts","../src/utils.ts","../src/NoLagAgents.ts","../src/correlation.ts","../src/envelope.ts","../src/patterns/handoff.ts","../src/patterns/inbox.ts","../src/patterns/blackboard.ts","../src/patterns/observe.ts","../src/patterns/approve.ts","../src/patterns/tools.ts","../src/tags.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["NoLag"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/constants.ts","../src/AgentRoom.ts","../src/utils.ts","../src/NoLagAgents.ts","../src/correlation.ts","../src/envelope.ts","../src/patterns/handoff.ts","../src/patterns/inbox.ts","../src/patterns/blackboard.ts","../src/patterns/observe.ts","../src/patterns/approve.ts","../src/patterns/tools.ts","../src/tags.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["NoLag"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -176,13 +176,20 @@ class AgentRoom extends EventEmitter {
176
176
  }
177
177
  this._publish(TOPIC_TASKS, envelope);
178
178
  }
179
- /** Publish to the results topic */
179
+ /** Publish to the results topic — directed to the dispatcher via filter when replyTo is set */
180
180
  publishResult(envelope) {
181
181
  // Auto-set completedBy if not set
182
182
  if (!envelope.completedBy) {
183
183
  envelope.completedBy = this.agentId;
184
184
  }
185
- this._publish(TOPIC_RESULTS, envelope);
185
+ if (envelope.replyTo) {
186
+ this._publish(TOPIC_RESULTS, envelope, { filter: envelope.replyTo });
187
+ }
188
+ else {
189
+ // Legacy: no reply address — unfiltered publish (only reaches
190
+ // wildcard subscribers, i.e. pre-0.2.0 SDKs)
191
+ this._publish(TOPIC_RESULTS, envelope);
192
+ }
186
193
  }
187
194
  /** Publish to the state topic (retained) */
188
195
  publishState(data) {
@@ -204,8 +211,17 @@ class AgentRoom extends EventEmitter {
204
211
  publishInbox(data) {
205
212
  this._publish(TOPIC_INBOX, data);
206
213
  }
207
- /** Publish to the tools topic */
214
+ /**
215
+ * Publish a tool message.
216
+ * Requests go to the tools topic (load-balanced one-of-N across server
217
+ * replicas). Responses are directed to the requester on the results topic
218
+ * via filter — never load-balanced, never broadcast.
219
+ */
208
220
  publishTools(data) {
221
+ if (data?.type === "tool_response" && typeof data.replyTo === "string" && data.replyTo) {
222
+ this._publish(TOPIC_RESULTS, data, { filter: data.replyTo });
223
+ return;
224
+ }
209
225
  this._publish(TOPIC_TOOLS, data);
210
226
  }
211
227
  /** Publish to the approval topic (retained) */
@@ -307,23 +323,33 @@ class AgentRoom extends EventEmitter {
307
323
  });
308
324
  }
309
325
  _wireTopicListeners() {
310
- // All topics that need broker subscriptions
311
- const allTopics = [
312
- TOPIC_TASKS,
313
- TOPIC_RESULTS,
314
- TOPIC_STATE,
315
- TOPIC_EVENTS,
316
- TOPIC_INBOX,
317
- TOPIC_TOOLS,
318
- TOPIC_APPROVAL,
319
- ];
320
- for (const topic of allTopics) {
321
- this._roomContext.subscribe(topic);
326
+ // Work distribution topics honour the connection-level loadBalance
327
+ // setting, so a pool shares each message one-of-N (no double handling):
328
+ // - tasks: each task goes to exactly one worker in the group
329
+ // - tools: each tool REQUEST goes to exactly one tool-server replica
330
+ this._roomContext.subscribe(TOPIC_TASKS);
331
+ this._roomContext.subscribe(TOPIC_TOOLS);
332
+ // Replies are DIRECTED, not broadcast: the results topic carries task
333
+ // results and tool responses published with `filter: <recipient agentId>`,
334
+ // and each agent subscribes only to its own filter sub-topic. The broker
335
+ // routes each reply straight to the requester — no fan-out waste, and
336
+ // immune to load-balance groups (a broadcast or LB'd reply could land on
337
+ // a group member that doesn't hold the pending correlation, timing out
338
+ // the requester even though the responder did the work).
339
+ this._roomContext.subscribe(TOPIC_RESULTS, {
340
+ loadBalance: false,
341
+ filters: [this.agentId],
342
+ });
343
+ // Broadcast topics must always fan out, even when the connection enables
344
+ // loadBalance for work distribution: state/events are broadcasts by
345
+ // nature; inbox and approval messages are claimed client-side.
346
+ const broadcastTopics = [TOPIC_STATE, TOPIC_EVENTS, TOPIC_INBOX, TOPIC_APPROVAL];
347
+ for (const topic of broadcastTopics) {
348
+ this._roomContext.subscribe(topic, { loadBalance: false });
322
349
  }
323
350
  // Simple 1:1 mappings
324
351
  const simpleMap = [
325
352
  { topic: TOPIC_TASKS, event: "task" },
326
- { topic: TOPIC_RESULTS, event: "result" },
327
353
  { topic: TOPIC_STATE, event: "stateChange" },
328
354
  { topic: TOPIC_EVENTS, event: "event" },
329
355
  { topic: TOPIC_INBOX, event: "inbox" },
@@ -334,6 +360,17 @@ class AgentRoom extends EventEmitter {
334
360
  this.emit(event, data);
335
361
  });
336
362
  }
363
+ // Multiplexed: results topic carries task results AND tool responses,
364
+ // both filter-directed to this agent.
365
+ this._roomContext.on(TOPIC_RESULTS, (data) => {
366
+ this._log(`received ${TOPIC_RESULTS} in room ${this.name}`);
367
+ if (data?.type === "tool_response") {
368
+ this.emit("toolResponse", data);
369
+ }
370
+ else {
371
+ this.emit("result", data);
372
+ }
373
+ });
337
374
  // Multiplexed: approval topic carries requests + responses
338
375
  this._roomContext.on(TOPIC_APPROVAL, (data) => {
339
376
  this._log(`received ${TOPIC_APPROVAL} in room ${this.name}`);
@@ -344,7 +381,9 @@ class AgentRoom extends EventEmitter {
344
381
  this.emit("approvalRequest", data);
345
382
  }
346
383
  });
347
- // Multiplexed: tools topic carries requests + responses
384
+ // Tools topic carries requests; tool_response is still accepted here for
385
+ // backward compatibility with responders on older SDK versions (their
386
+ // responses are only reliable when the requester is not load-balanced).
348
387
  this._roomContext.on(TOPIC_TOOLS, (data) => {
349
388
  this._log(`received ${TOPIC_TOOLS} in room ${this.name}`);
350
389
  if (data?.type === "tool_response") {
@@ -671,7 +710,7 @@ function createTaskEnvelope(capability, payload, options) {
671
710
  timeout: options?.timeout,
672
711
  };
673
712
  }
674
- function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy) {
713
+ function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy, replyTo) {
675
714
  return {
676
715
  type: "result",
677
716
  correlationId,
@@ -681,6 +720,7 @@ function createResultEnvelope(taskId, correlationId, status, payload, error, com
681
720
  error,
682
721
  completedAt: createTimestamp(),
683
722
  completedBy,
723
+ replyTo,
684
724
  };
685
725
  }
686
726
  function createStateEnvelope(key, value, version, updatedBy) {
@@ -740,7 +780,7 @@ function createToolRequest(toolName, args, requestedBy, options) {
740
780
  requestedAt: createTimestamp(),
741
781
  };
742
782
  }
743
- function createToolResponse(requestId, correlationId, status, result, error, respondedBy) {
783
+ function createToolResponse(requestId, correlationId, status, result, error, respondedBy, replyTo) {
744
784
  return {
745
785
  type: "tool_response",
746
786
  requestId,
@@ -750,6 +790,7 @@ function createToolResponse(requestId, correlationId, status, result, error, res
750
790
  error,
751
791
  respondedBy,
752
792
  respondedAt: createTimestamp(),
793
+ replyTo,
753
794
  };
754
795
  }
755
796
 
@@ -806,32 +847,29 @@ class Handoff {
806
847
  }
807
848
  const envelope = createTaskEnvelope(capability, payload, {
808
849
  ...options,
809
- createdBy: this._room.agentId,
850
+ createdBy: options?.createdBy ?? this._room.agentId,
851
+ // Reply address: workers publish the result filter-directed to this
852
+ // room's results subscription
853
+ replyTo: options?.replyTo ?? this._room.agentId,
810
854
  });
811
855
  this._room.publishTask(envelope);
812
856
  if (options?.waitForResult) {
813
857
  return this._correlations.register(envelope.correlationId, options.timeout);
814
858
  }
815
859
  }
816
- /**
817
- * Register a handler for incoming tasks, filtered by capabilities.
818
- *
819
- * Only tasks whose `capability` field matches one of the provided
820
- * capabilities will be delivered to the handler. Non-matching tasks
821
- * are silently ignored.
822
- *
823
- * @param capabilities - Array of capabilities this worker handles.
824
- * Pass `'*'` to receive all tasks.
825
- * @param handler - Async handler called with the task and a respond function.
826
- */
827
- onTask(capabilities, handler) {
860
+ onTask(capabilitiesOrHandler, maybeHandler) {
861
+ // Single-arg form: onTask(handler) receives all tasks
862
+ const capabilities = typeof capabilitiesOrHandler === "function" ? '*' : capabilitiesOrHandler;
863
+ const handler = typeof capabilitiesOrHandler === "function" ? capabilitiesOrHandler : maybeHandler;
828
864
  this._room.on("task", (task) => {
829
865
  // Filter by capability unless wildcard
830
866
  if (capabilities !== '*' && !capabilities.includes(task.capability)) {
831
867
  return;
832
868
  }
833
869
  const respond = (status, payload, error) => {
834
- const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId);
870
+ const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId,
871
+ // Direct the result to the dispatcher's filter sub-topic
872
+ task.replyTo ?? task.createdBy);
835
873
  this._room.publishResult(result);
836
874
  };
837
875
  handler(task, respond);
@@ -1041,16 +1079,18 @@ class Tools {
1041
1079
  const handler = this._handlers.get(envelope.toolName);
1042
1080
  if (!handler)
1043
1081
  return;
1082
+ // Direct the response back to the requester's filter sub-topic
1083
+ const replyTo = envelope.replyTo ?? envelope.requestedBy;
1044
1084
  try {
1045
1085
  const result = await handler(envelope.arguments);
1046
- const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId);
1086
+ const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId, replyTo);
1047
1087
  this._room.publishTools(response);
1048
1088
  }
1049
1089
  catch (err) {
1050
1090
  const response = createToolResponse(envelope.requestId, envelope.correlationId, "error", null, {
1051
1091
  code: "TOOL_ERROR",
1052
1092
  message: err instanceof Error ? err.message : String(err),
1053
- }, this._agentId);
1093
+ }, this._agentId, replyTo);
1054
1094
  this._room.publishTools(response);
1055
1095
  }
1056
1096
  });
@@ -1065,7 +1105,13 @@ class Tools {
1065
1105
  * Invoke a remote tool and wait for the response.
1066
1106
  */
1067
1107
  async invoke(toolName, args, options) {
1068
- const envelope = createToolRequest(toolName, args, this._agentId);
1108
+ // replyTo is the room's agentId — the filter sub-topic this room's
1109
+ // results subscription listens on. (this._agentId may differ when a
1110
+ // caller attributes requests to a logical agent; delivery must use the
1111
+ // address that is actually subscribed.)
1112
+ const envelope = createToolRequest(toolName, args, this._agentId, {
1113
+ replyTo: this._room.agentId,
1114
+ });
1069
1115
  this._room.publishTools(envelope);
1070
1116
  return this._correlations.register(envelope.correlationId, options?.timeout);
1071
1117
  }