@nolag/agents 1.1.1 → 1.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/AgentRoom.d.ts +49 -8
- package/dist/NoLagAgents.d.ts +2 -2
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/index.cjs +251 -78
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +251 -78
- package/dist/index.mjs.map +1 -1
- package/dist/patterns/observe.d.ts +26 -2
- package/dist/react-native.js +251 -78
- package/dist/react-native.js.map +1 -1
- package/dist/types.d.ts +50 -0
- package/dist/utils.d.ts +49 -0
- package/package.json +1 -1
package/dist/AgentRoom.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RoomContext } from "@nolag/js-sdk";
|
|
2
2
|
import { EventEmitter } from "./EventEmitter";
|
|
3
|
-
import type { AgentRoomEvents, TaskEnvelope, ResultEnvelope, AgentPresenceData } from "./types";
|
|
3
|
+
import type { AgentRoomEvents, TaskEnvelope, ResultEnvelope, AgentPresenceData, FilterValue, AgentFilterOptions, AgentFilterTopic, AgentPublishOptions } from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* ConnectedAgent — represents an agent discovered via presence.
|
|
6
6
|
*/
|
|
@@ -55,8 +55,10 @@ export declare class AgentRoom extends EventEmitter<AgentRoomEvents> {
|
|
|
55
55
|
/** Registry of connected agents discovered via presence */
|
|
56
56
|
private _agents;
|
|
57
57
|
private _topicHandlers;
|
|
58
|
+
/** Filter values applied per topic. `results` is never included. */
|
|
59
|
+
private _filters;
|
|
58
60
|
/** @internal */
|
|
59
|
-
constructor(name: string, roomContext: RoomContext, log: (...args: unknown[]) => void, agentId: string, appName: string, isConnected: () => boolean, presence?: AgentPresenceData);
|
|
61
|
+
constructor(name: string, roomContext: RoomContext, log: (...args: unknown[]) => void, agentId: string, appName: string, isConnected: () => boolean, presence?: AgentPresenceData, filters?: FilterValue[]);
|
|
60
62
|
/** Get all currently connected agents */
|
|
61
63
|
getConnectedAgents(): ConnectedAgent[];
|
|
62
64
|
/** Find agents that have a specific capability */
|
|
@@ -72,24 +74,61 @@ export declare class AgentRoom extends EventEmitter<AgentRoomEvents> {
|
|
|
72
74
|
/** Get the underlying RoomContext for advanced usage */
|
|
73
75
|
get context(): RoomContext;
|
|
74
76
|
/** Publish to the tasks topic */
|
|
75
|
-
publishTask(envelope: TaskEnvelope): void;
|
|
77
|
+
publishTask(envelope: TaskEnvelope, opts?: AgentPublishOptions): void;
|
|
76
78
|
/** Publish to the results topic — directed to the dispatcher via filter when replyTo is set */
|
|
77
79
|
publishResult(envelope: ResultEnvelope): void;
|
|
78
80
|
/** Publish to the state topic (retained) */
|
|
79
|
-
publishState(data: Record<string, unknown
|
|
81
|
+
publishState(data: Record<string, unknown>, opts?: AgentPublishOptions): void;
|
|
80
82
|
/** Publish to the events topic */
|
|
81
|
-
publishEvent(data: Record<string, unknown
|
|
83
|
+
publishEvent(data: Record<string, unknown>, opts?: AgentPublishOptions): void;
|
|
82
84
|
/** Publish to the inbox topic */
|
|
83
|
-
publishInbox(data: Record<string, unknown
|
|
85
|
+
publishInbox(data: Record<string, unknown>, opts?: AgentPublishOptions): void;
|
|
84
86
|
/**
|
|
85
87
|
* Publish a tool message.
|
|
86
88
|
* Requests go to the tools topic (load-balanced one-of-N across server
|
|
87
89
|
* replicas). Responses are directed to the requester on the results topic
|
|
88
90
|
* via filter — never load-balanced, never broadcast.
|
|
89
91
|
*/
|
|
90
|
-
publishTools(data: Record<string, unknown
|
|
92
|
+
publishTools(data: Record<string, unknown>, opts?: AgentPublishOptions): void;
|
|
91
93
|
/** Publish to the approval topic (retained) */
|
|
92
|
-
publishApproval(data: Record<string, unknown
|
|
94
|
+
publishApproval(data: Record<string, unknown>, opts?: AgentPublishOptions): void;
|
|
95
|
+
/** The filter values currently applied to this room, by topic. */
|
|
96
|
+
get filters(): Record<AgentFilterTopic, FilterValue[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Replace this room's filters — only messages published with one of these
|
|
99
|
+
* values are delivered. Applies to every filterable topic unless scoped with
|
|
100
|
+
* `{ topic }`.
|
|
101
|
+
*
|
|
102
|
+
* The usual case is a worker declaring its capabilities on `tasks`, so the
|
|
103
|
+
* broker routes only work it can do instead of every worker receiving every
|
|
104
|
+
* task and discarding the rest. Pair it with
|
|
105
|
+
* `publishTask(envelope, { filter: capability })` on the dispatcher.
|
|
106
|
+
*
|
|
107
|
+
* `results` is never filtered here: it carries directed replies keyed to
|
|
108
|
+
* this agent's id, and repointing it would strand pending results.
|
|
109
|
+
*
|
|
110
|
+
* With load balancing on, keep a worker pool uniform — the broker treats a
|
|
111
|
+
* wildcard and a filtered subscription as separate share groups, so a mixed
|
|
112
|
+
* pool delivers each task twice.
|
|
113
|
+
*
|
|
114
|
+
* Passing an empty array clears filtering and restores the wildcard
|
|
115
|
+
* subscription, which receives everything.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* room.setFilters(['ocr', 'translate'], { topic: 'tasks' });
|
|
120
|
+
* room.setFilters([]); // everything
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
setFilters(values: FilterValue[], opts?: AgentFilterOptions): void;
|
|
124
|
+
/** Add filter values to the existing set. Existing AND groups are kept. */
|
|
125
|
+
addFilters(values: string[], opts?: AgentFilterOptions): void;
|
|
126
|
+
/**
|
|
127
|
+
* Remove filter values from the existing set. Removing the last value
|
|
128
|
+
* restores the wildcard subscription.
|
|
129
|
+
*/
|
|
130
|
+
removeFilters(values: string[], opts?: AgentFilterOptions): void;
|
|
131
|
+
private _targetTopics;
|
|
93
132
|
/** @internal Re-apply local presence after a reconnect (core does not restore it) */
|
|
94
133
|
_updateLocalPresence(): void;
|
|
95
134
|
/** @internal Route a presence:join event in from the parent */
|
|
@@ -106,6 +145,8 @@ export declare class AgentRoom extends EventEmitter<AgentRoomEvents> {
|
|
|
106
145
|
_cleanup(): void;
|
|
107
146
|
private _on;
|
|
108
147
|
private _publish;
|
|
148
|
+
/** @internal Subscribe honouring the topic's filter set. */
|
|
149
|
+
private _subscribeFiltered;
|
|
109
150
|
private _toConnectedAgent;
|
|
110
151
|
private _fetchInitialPresence;
|
|
111
152
|
private _wireTopicListeners;
|
package/dist/NoLagAgents.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LobbyPresenceState, NoLagSocket } from "@nolag/js-sdk";
|
|
2
2
|
import { EventEmitter } from "./EventEmitter";
|
|
3
3
|
import { AgentRoom } from "./AgentRoom";
|
|
4
|
-
import type { NoLagAgentsOptions, AgentClientEvents } from "./types";
|
|
4
|
+
import type { NoLagAgentsOptions, AgentClientEvents, JoinAgentRoomOptions } from "./types";
|
|
5
5
|
/**
|
|
6
6
|
* NoLagAgents — high-level agent coordination SDK built on @nolag/js-sdk.
|
|
7
7
|
*
|
|
@@ -93,7 +93,7 @@ export declare class NoLagAgents extends EventEmitter<AgentClientEvents> {
|
|
|
93
93
|
* Get or create an AgentRoom wrapper.
|
|
94
94
|
* If the room hasn't been joined yet, it will be joined automatically.
|
|
95
95
|
*/
|
|
96
|
-
room(name: string): AgentRoom;
|
|
96
|
+
room(name: string, opts?: JoinAgentRoomOptions): AgentRoom;
|
|
97
97
|
/**
|
|
98
98
|
* Subscribe to a lobby for cross-room presence observation. Lobby presence
|
|
99
99
|
* events are forwarded into all AgentRooms. Prefer the `lobby` constructor
|
package/dist/browser.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
class e{constructor(){this._handlers=new Map}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),this}off(e,t){return t?this._handlers.get(e)?.delete(t):this._handlers.delete(e),this}removeAllListeners(){return this._handlers.clear(),this}emit(e,...t){const o=this._handlers.get(e);if(o)for(const s of o)try{const o=s(...t);o&&"function"==typeof o.then&&o.then(void 0,t=>{console.error(`Error in async ${String(e)} handler:`,t)})}catch(t){console.error(`Error in ${String(e)} handler:`,t)}}listenerCount(e){return this._handlers.get(e)?.size??0}}const t="tasks",o="results",s="state",n="events",i="inbox",r="tools",a="approval",c=2;class h extends e{constructor(e,t,o,s,n,i,r){super(),this._agents=new Map,this._topicHandlers=[],this.name=e,this.agentId=s,this._roomContext=t,this._log=o,this._appName=n,this._isConnected=i,this._presence=r,this._wireTopicListeners(),r&&(this._presence={protocol:2,...r},this._log(`setting presence in room ${e}:`,this._presence),this._roomContext.setPresence({...this._presence,__scope:n})),this._fetchInitialPresence()}getConnectedAgents(){return Array.from(this._agents.values())}findAgents(e){return Array.from(this._agents.values()).filter(t=>t.capabilities.includes(e))}hasCapability(e){return this.findAgents(e).length>0}getAvailableCapabilities(){const e=new Set;for(const t of this._agents.values())for(const o of t.capabilities)e.add(o);return Array.from(e)}setPresence(e){this._presence={protocol:2,...e},this._log(`updating presence in room ${this.name}`),this._roomContext.setPresence({...this._presence,__scope:this._appName})}async fetchPresence(){try{return(await this._roomContext.fetchPresence()||[]).map(e=>this._toConnectedAgent(e))}catch{return[]}}get context(){return this._roomContext}publishTask(e){e.createdBy||(e.createdBy=this.agentId),this._publish(t,e)}publishResult(e){e.completedBy||(e.completedBy=this.agentId),e.replyTo?this._publish(o,e,{filter:e.replyTo}):this._publish(o,e)}publishState(e){e.updatedBy||(e.updatedBy=this.agentId),this._publish(s,e,{retain:!0})}publishEvent(e){e.emittedBy||(e.emittedBy=this.agentId),this._publish(n,e)}publishInbox(e){this._publish(i,e)}publishTools(e){"tool_response"===e?.type&&"string"==typeof e.replyTo&&e.replyTo?this._publish(o,e,{filter:e.replyTo}):this._publish(r,e)}publishApproval(e){this._publish(a,e,{retain:!0})}_updateLocalPresence(){this._presence&&this._roomContext.setPresence({...this._presence,__scope:this._appName})}_handlePresenceJoin(e,t){const o=t||{},s={actorId:e,name:o.name||e,role:o.role||"agent",capabilities:o.capabilities||[],metadata:o.metadata,connectedAt:Date.now(),protocol:"number"==typeof o.protocol?o.protocol:1};this._agents.set(e,s),this._log(`agent joined room ${this.name}:`,s.name,s.capabilities),this.emit("presenceJoin",e,o)}_handlePresenceLeave(e){const t=this._agents.get(e);this._agents.delete(e),this._log(`agent left room ${this.name}:`,t?.name||e),this.emit("presenceLeave",e)}_handlePresenceUpdate(e,t){const o=t||{},s=this._agents.get(e),n={actorId:e,name:o.name||s?.name||e,role:o.role||s?.role||"agent",capabilities:o.capabilities||s?.capabilities||[],metadata:o.metadata||s?.metadata,connectedAt:s?.connectedAt||Date.now(),protocol:"number"==typeof o.protocol?o.protocol:s?.protocol??1};this._agents.set(e,n),this.emit("presenceUpdate",e,o)}_cleanup(){if(this._log(`room cleanup: ${this.name}`),this._isConnected()){const e=new Set(this._topicHandlers.map(e=>e.topic));for(const t of e)this._roomContext.unsubscribe(t)}for(const{topic:e,handler:t}of this._topicHandlers)this._roomContext.off(e,t);this._topicHandlers=[],this._agents.clear(),this.removeAllListeners()}_on(e,t){this._topicHandlers.push({topic:e,handler:t}),this._roomContext.on(e,t)}_publish(e,t,o){this._log(`publish to ${e} in room ${this.name}`),o?this._roomContext.emit(e,t,o):this._roomContext.emit(e,t)}_toConnectedAgent(e){const t=e.presence||e.data||{};return{actorId:e.actorTokenId||e.actorId||"",name:t.name||e.actorTokenId||"",role:t.role||"agent",capabilities:t.capabilities||[],metadata:t.metadata,connectedAt:e.joinedAt||Date.now(),protocol:"number"==typeof t.protocol?t.protocol:1,status:e.status}}async _fetchInitialPresence(){try{const e=await this._roomContext.fetchPresence();if(Array.isArray(e)){for(const t of e){const e=this._toConnectedAgent(t);e.actorId&&this._agents.set(e.actorId,e)}this._log(`discovered ${this._agents.size} agents in room ${this.name}`)}}catch{}}_wireTopicListeners(){this._roomContext.subscribe(t),this._roomContext.subscribe(r),this._roomContext.subscribe(o,{loadBalance:!1,filters:[this.agentId]});const e=[s,n,i,a];for(const t of e)this._roomContext.subscribe(t,{loadBalance:!1});const c=[{topic:t,event:"task"},{topic:s,event:"stateChange"},{topic:n,event:"event"},{topic:i,event:"inbox"}];for(const{topic:e,event:t}of c)this._on(e,o=>{this._log(`received ${e} in room ${this.name}`),this.emit(t,o)});this._on(o,e=>{this._log(`received ${o} in room ${this.name}`),"tool_response"===e?.type?this.emit("toolResponse",e):this.emit("result",e)}),this._on(a,e=>{this._log(`received ${a} in room ${this.name}`),"approval_response"===e?.type?this.emit("approvalResponse",e):this.emit("approvalRequest",e)}),this._on(r,e=>{this._log(`received ${r} in room ${this.name}`),"tool_response"===e?.type?this.emit("toolResponse",e):this.emit("toolRequest",e)})}}function l(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxx-xxxx-xxxx-xxxx".replace(/x/g,()=>Math.floor(16*Math.random()).toString(16))}function _(e,t){return t?(...t)=>{console.log(`[${e}]`,...t)}:(...e)=>{}}function d(){return Date.now()}const p=new WeakMap;class u extends e{constructor(e){if(super(),this._rooms=new Map,this._lobby=null,this._epoch=0,this._detached=!1,this._isReady=!1,this._lobbyRefreshTimer=null,this._onConnectRef=()=>this._onConnect(),this._onDisconnectRef=e=>{this._log("disconnected:",e),this.emit("disconnected",e)},this._onReconnectRef=()=>{this._log("reconnecting..."),this.emit("reconnecting")},this._onErrorRef=e=>{this._log("error:",e?.message??e),this.emit("error",e)},this._onPresenceJoinRef=e=>this._handleRoomPresenceJoin(e),this._onPresenceLeaveRef=e=>this._handleRoomPresenceLeave(e),this._onPresenceUpdateRef=e=>this._handleRoomPresenceUpdate(e),this._onLobbyJoinRef=e=>this._handleLobbyJoin(e),this._onLobbyLeaveRef=e=>this._handleLobbyLeave(e),this._onLobbyUpdateRef=e=>this._handleLobbyUpdate(e),!e?.client)throw new TypeError("NoLagAgents requires an injected NoLag client: new NoLagAgents({ client, ... })");this._client=e.client,this._options={appName:e.appName??"agents",agentId:e.agentId??l(),name:e.name,role:e.role,debug:e.debug??!1,rooms:e.rooms??["default-workflow"],lobby:e.lobby,presence:e.presence??this._presenceFromIdentity(e)},this._log=_("NoLagAgents",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,o){let s=p.get(e);s||(s=new Map,p.set(e,s));const n=s.get(t);n&&console.warn(`[${o}] Another wrapper (${n}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),s.set(t,o)}(this._client,this._options.appName,"NoLagAgents"),this._client.on("connect",this._onConnectRef),this._client.on("disconnect",this._onDisconnectRef),this._client.on("reconnect",this._onReconnectRef),this._client.on("error",this._onErrorRef),this._client.on("presence:join",this._onPresenceJoinRef),this._client.on("presence:leave",this._onPresenceLeaveRef),this._client.on("presence:update",this._onPresenceUpdateRef),this._client.on("lobbyPresence:join",this._onLobbyJoinRef),this._client.on("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.on("lobbyPresence:update",this._onLobbyUpdateRef),queueMicrotask(()=>{0===this._epoch&&!this._detached&&this._client.connected&&this._onConnect()})}get agentId(){return this._options.agentId}get connected(){return!this._detached&&this._client.connected}get client(){return this._client}get rooms(){return this._rooms}ready(){return this._readyPromise}detach(){if(!this._detached){this._log("detaching..."),this._detached=!0,this._epoch++,this._lobbyRefreshTimer&&(clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=null),this._client.off("connect",this._onConnectRef),this._client.off("disconnect",this._onDisconnectRef),this._client.off("reconnect",this._onReconnectRef),this._client.off("error",this._onErrorRef),this._client.off("presence:join",this._onPresenceJoinRef),this._client.off("presence:leave",this._onPresenceLeaveRef),this._client.off("presence:update",this._onPresenceUpdateRef),this._client.off("lobbyPresence:join",this._onLobbyJoinRef),this._client.off("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.off("lobbyPresence:update",this._onLobbyUpdateRef);for(const e of[...this._rooms.keys()])this._rooms.get(e)._cleanup(),this._rooms.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,e=this._client,t=this._options.appName,p.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagAgents detached before ready"))}}_onConnect(){this._epoch++,this._runSetup(this._epoch)}async _runSetup(e){const t=()=>e!==this._epoch||this._detached;if(this._log(this._isReady?"restoring after reconnect...":"setting up..."),this._log("agentId:",this._options.agentId,"→ actorId:",this._client.actorId),this._isReady)for(const e of this._rooms.values())e._updateLocalPresence();else for(const e of this._options.rooms)this._joinRoomInternal(e);if(this._options.lobby){this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby(this._options.lobby));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateLobby(e),this._log("lobby subscribed:",this._options.lobby)}catch(e){if(t())return;this._log("lobby subscription failed:",e)}}t()||(this._isReady?this.emit("reconnected"):(this._isReady=!0,this._readyResolve(),this.emit("connected")),this._options.lobby&&this._scheduleLobbyRefresh(e))}_scheduleLobbyRefresh(e){this._lobbyRefreshTimer&&clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=setTimeout(()=>{this._lobbyRefreshTimer=null,e===this._epoch&&!this._detached&&this._client.connected&&this._lobby&&this._lobby.fetchPresence().then(t=>{e!==this._epoch||this._detached||this._diffHydrateLobby(t)}).catch(()=>{})},2e3)}room(e){this._assertUsable();const t=this._rooms.get(e);return t||this._joinRoomInternal(e)}async subscribeLobby(e){this._assertUsable(),this._log(`subscribing to lobby: ${e}`),this._options.lobby=e,this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby(e));try{const e=await this._lobby.subscribe();return this._detached||this._diffHydrateLobby(e),e||{}}catch(e){return this._log("lobby subscription failed:",e),{}}}_assertUsable(){if(this._detached)throw new Error("NoLagAgents has been detached — construct a new instance");if(!this._isReady)throw new Error('NoLagAgents not ready — await ready() or the "connected" event')}_joinRoomInternal(e){this._log(`joining room: ${e}`);const t=this._client.setApp(this._options.appName).setRoom(e),o=new h(e,t,_(`AgentRoom:${e}`,this._options.debug),this._options.agentId,this._options.appName,()=>this._client.connected,this._options.presence);return this._rooms.set(e,o),o}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._client.actorId)return;const t=e.presence||{};if(this._foreignScope(t))return;const o=e.roomId;for(const s of this._targetRooms(o))s._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId===this._client.actorId)return;const t=e.roomId;for(const o of this._targetRooms(t))o._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._client.actorId)return;const t=e.presence||{};if(this._foreignScope(t))return;const o=e.roomId;for(const s of this._targetRooms(o))s._handlePresenceUpdate(e.actorTokenId,t)}_targetRooms(e){return e&&this._rooms.has(e)?[this._rooms.get(e)]:e?[]:[...this._rooms.values()]}_handleLobbyJoin(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s)){this._log(`lobby presence:join — ${s.name||t}`);for(const e of this._rooms.values())e._handlePresenceJoin(t,s)}}_handleLobbyLeave(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s)){this._log(`lobby presence:leave — ${t}`);for(const e of this._rooms.values())e._handlePresenceLeave(t)}}_handleLobbyUpdate(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s))for(const e of this._rooms.values())e._handlePresenceUpdate(t,s)}_diffHydrateLobby(e){for(const t of Object.keys(e)){const o=e[t];for(const e of Object.keys(o)){if(e===this._client.actorId)continue;const t=o[e],s=t?.presence??t;if(!this._foreignScope(s))for(const t of this._rooms.values())t._handlePresenceJoin(e,s)}}}_presenceFromIdentity(e){if(e.name||e.role)return{name:e.name??e.agentId??"agent",role:e.role??"agent"}}}class m extends Error{constructor(e,t){super(`${e} cannot succeed: every relevant agent advertises agents-protocol < 2 [${t.map(e=>`${e.name} (protocol ${e.protocol})`).join(", ")}]. Protocol >= 2 responders direct replies to the requester; older ones broadcast and their replies never reach this SDK's filtered subscription. Upgrade the responders to @nolag/agents >= 0.2.0 / nolag-agents >= 0.3.0. NOTE: 0.2.x/0.3.0 responders DO have directed replies but do not yet advertise protocol — if your responders run those versions, pass { allowLegacyResponders: true }.`),this.name="IncompatibleProtocolError"}}class g{constructor(){this._pending=new Map}register(e,t,o){return new Promise((s,n)=>{let i=null;t&&t>0&&(i=setTimeout(()=>{this._pending.delete(e);n(new Error(`${o??`Correlation ${e}`} timed out after ${t}ms`))},t)),this._pending.set(e,{resolve:s,reject:n,timer:i})})}resolve(e,t){const o=this._pending.get(e);return!!o&&(o.timer&&clearTimeout(o.timer),this._pending.delete(e),o.resolve(t),!0)}reject(e,t){const o=this._pending.get(e);return!!o&&(o.timer&&clearTimeout(o.timer),this._pending.delete(e),o.reject(t),!0)}has(e){return this._pending.has(e)}clear(){for(const[e,t]of this._pending)t.timer&&clearTimeout(t.timer),t.reject(new Error(`Correlation ${e} cancelled`));this._pending.clear()}get size(){return this._pending.size}}function f(e,t,o){return{type:"task",protocol:2,taskId:l(),correlationId:l(),replyTo:o?.replyTo,capability:e,payload:t,tags:o?.tags,priority:o?.priority??"medium",metadata:o?.metadata,createdAt:d(),createdBy:o?.createdBy,timeout:o?.timeout}}function b(e,t,o,s,n,i,r){return{type:"result",protocol:2,correlationId:t,taskId:e,status:o,payload:s,error:n,completedAt:d(),completedBy:i,replyTo:r}}function y(e,t,o,s){return{type:"state",protocol:2,key:e,value:t,version:o,updatedBy:s,updatedAt:d()}}function I(e,t,o,s="info"){return{type:"event",protocol:2,eventId:l(),severity:s,category:e,emittedBy:t,payload:o,timestamp:d()}}function v(e,t,o,s){return{type:"approval_request",protocol:2,requestId:l(),correlationId:l(),action:e,context:t,urgency:s?.urgency??"medium",requestedBy:o,requestedAt:d(),expiresAt:s?.expiresAt}}function R(e,t,o,s,n){return{type:"approval_response",protocol:2,requestId:e,correlationId:t,decision:o,respondedBy:s,reason:n,respondedAt:d()}}function w(e,t,o,s){return{type:"tool_request",protocol:2,requestId:l(),correlationId:l(),replyTo:s?.replyTo,toolName:e,arguments:t,requestedBy:o,requestedAt:d()}}function T(e,t,o,s,n,i,r){return{type:"tool_response",protocol:2,requestId:e,correlationId:t,status:o,result:s,error:n,respondedBy:i,respondedAt:d(),replyTo:r}}class A{constructor(e){this._correlations=new g,this._warnedMixed=!1,this._room=e,this._room.on("result",e=>{this._correlations.resolve(e.correlationId,e)})}async dispatch(e,t,o){if(!o?.allowNoWorkers){const t=this._room.findAgents(e);if(0===(o?.requireOnline?t.filter(e=>void 0===e.status||"online"===e.status):t).length)throw new Error(`No ${o?.requireOnline?"online ":""}agent with capability "${e}" is available. Available capabilities: [${this._room.getAvailableCapabilities().join(", ")}]. Connected agents: ${this._room.getConnectedAgents().length}. Use { allowNoWorkers: true } to dispatch anyway.`)}const s=f(e,t,{...o,createdBy:o?.createdBy??this._room.agentId,replyTo:o?.replyTo??this._room.agentId});if(this._room.publishTask(s),o?.waitForResult){const t=this._room.findAgents(e);if(!o?.allowLegacyResponders&&t.length>0){const o=t.filter(e=>e.protocol>=2);if(0===o.length)throw new m(`Task '${e}' dispatch with waitForResult`,t.map(e=>({name:e.name,protocol:e.protocol})));o.length<t.length&&!this._warnedMixed&&(this._warnedMixed=!0,console.warn(`[nolag-agents] Capability '${e}' has workers on agents-protocol < 2: `+t.filter(e=>e.protocol<2).map(e=>e.name).join(", ")+". Their results may not be delivered — upgrade them."))}return this._correlations.register(s.correlationId,o.timeout,`Task '${e}' dispatch (${t.length} capable worker${1===t.length?"":"s"} visible). Likely causes: worker crashed mid-task, worker on agents-protocol < 2 (results not directed), or the room is not deliverable`)}}onTask(e,t){const o="function"==typeof e?"*":e,s="function"==typeof e?e:t;this._room.on("task",e=>{if("*"!==o&&!o.includes(e.capability))return;s(e,(t,o,s)=>{const n=b(e.taskId,e.correlationId,t,o,s,this._room.agentId,e.replyTo??e.createdBy);this._room.publishResult(n)})})}getCapableAgents(e){return this._room.findAgents(e)}dispose(){this._correlations.clear()}}class L{constructor(e,t){this._room=e,this._agentId=t}send(e,t){const o={messageId:l(),from:this._agentId,to:e,payload:t,createdAt:d()};this._room.publishInbox(o)}onMessage(e){this._room.on("inbox",t=>{const o=t;o.to===this._agentId&&e(o)})}}class x{constructor(e,t){this._state=new Map,this._room=e,this._agentId=t,this._room.on("stateChange",e=>{this._state.set(e.key,e)})}set(e,t){const o=this._state.get(e),s=y(e,t,o?o.version+1:1,this._agentId);this._state.set(e,s),this._room.publishState(s)}get(e){return this._state.get(e)?.value}getEnvelope(e){return this._state.get(e)}getAll(){return this._state}onChange(e,t){this._room.on("stateChange",o=>{o.key===e&&t(o)})}}class ${constructor(e,t){this._room=e,this._emittedBy=t}emit(e,t,o="info"){const s=I(e,this._emittedBy,t,o);this._room.publishEvent(s)}on(e,t){this._room.on("event",o=>{t?.category&&o.category!==t.category||t?.severity&&o.severity!==t.severity||e(o)})}}class P{constructor(e,t){this._correlations=new g,this._room=e,this._agentId=t,this._room.on("approvalResponse",e=>{this._correlations.resolve(e.correlationId,e)})}async request(e,t,o){const s=v(e,t,this._agentId,{urgency:o?.urgency,expiresAt:o?.expiresAt});return this._room.publishApproval(s),this._correlations.register(s.correlationId,o?.timeout)}onRequest(e){this._room.on("approvalRequest",t=>{e(t,(e,o)=>{const s=R(t.requestId,t.correlationId,e,this._agentId,o);this._room.publishApproval(s)})})}dispose(){this._correlations.clear()}}class C{constructor(e,t){this._correlations=new g,this._handlers=new Map,this._warnedMixed=!1,this._room=e,this._agentId=t,this._room.on("toolResponse",e=>{e&&"string"==typeof e.correlationId&&this._correlations.resolve(e.correlationId,e)}),this._room.on("toolRequest",async e=>{if(!e||"string"!=typeof e.toolName)return;const t=this._handlers.get(e.toolName),o=e.replyTo??e.requestedBy;if(!t){if(!this._ownsNamespace(e.toolName))return;const t=T(e.requestId,e.correlationId,"error",null,{code:"NO_HANDLER",message:`Agent '${this._agentId}' has no handler for tool '${e.toolName}'`},this._agentId,o);return void this._room.publishTools(t)}try{const s=await t(e.arguments),n=T(e.requestId,e.correlationId,"success",s,void 0,this._agentId,o);this._room.publishTools(n)}catch(t){const s=T(e.requestId,e.correlationId,"error",null,{code:"TOOL_ERROR",message:t instanceof Error?t.message:String(t)},this._agentId,o);this._room.publishTools(s)}})}register(e,t){this._handlers.set(e,t)}_ownsNamespace(e){if("string"!=typeof e)return!1;if(0===this._handlers.size)return!1;const t=e.includes(".")?e.slice(0,e.indexOf(".")):null;for(const e of this._handlers.keys()){if((e.includes(".")?e.slice(0,e.indexOf(".")):null)===t)return!0}return!1}async invoke(e,t,o){const s=this._room.getConnectedAgents().filter(e=>"tool-server"===e.role);if(!o?.allowLegacyResponders&&s.length>0){const t=s.filter(e=>e.protocol>=2);if(0===t.length)throw new m(`Tool '${e}' invocation`,s.map(e=>({name:e.name,protocol:e.protocol})));t.length<s.length&&!this._warnedMixed&&(this._warnedMixed=!0,console.warn(`[nolag-agents] Room '${this._room.name}' has tool servers on agents-protocol < 2: `+s.filter(e=>e.protocol<2).map(e=>e.name).join(", ")+". Their replies may not be delivered — upgrade them."))}const n=w(e,t,this._agentId,{replyTo:this._room.agentId});this._room.publishTools(n);const i=s.length;return this._correlations.register(n.correlationId,o?.timeout,`Tool '${e}' invocation in room '${this._room.name}' (${i} tool-server${1===i?"":"s"} visible). Likely causes: no agent has this tool registered (pre-0.3.0 responders don't NACK), the responder is offline, or the room is not deliverable (watch the room 'error' events)`)}dispose(){this._correlations.clear(),this._handlers.clear()}}const k={CAPABILITY:"capability",PRIORITY:"priority",ROLE:"role",SEVERITY:"severity",URGENCY:"urgency",TENANT:"tenant"},N={REQUIRES_HUMAN:"requires_human",REQUIRES_AUDIT:"requires_audit"};function E(e,t){return`${e}:${t}`}export{c as AGENTS_PROTOCOL_VERSION,h as AgentRoom,P as Approve,x as Blackboard,g as CorrelationManager,e as EventEmitter,A as Handoff,L as Inbox,m as IncompatibleProtocolError,u as NoLagAgents,$ as Observe,N as TAG_FLAGS,k as TAG_PREFIX,C as Tools,v as createApprovalRequest,R as createApprovalResponse,I as createEventEnvelope,b as createResultEnvelope,y as createStateEnvelope,f as createTaskEnvelope,w as createToolRequest,T as createToolResponse,E as tag};
|
|
1
|
+
class e{constructor(){this._handlers=new Map}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),this}off(e,t){return t?this._handlers.get(e)?.delete(t):this._handlers.delete(e),this}removeAllListeners(){return this._handlers.clear(),this}emit(e,...t){const o=this._handlers.get(e);if(o)for(const s of o)try{const o=s(...t);o&&"function"==typeof o.then&&o.then(void 0,t=>{console.error(`Error in async ${String(e)} handler:`,t)})}catch(t){console.error(`Error in ${String(e)} handler:`,t)}}listenerCount(e){return this._handlers.get(e)?.size??0}}function t(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxx-xxxx-xxxx-xxxx".replace(/x/g,()=>Math.floor(16*Math.random()).toString(16))}function o(e,t){return t?(...t)=>{console.log(`[${e}]`,...t)}:(...e)=>{}}function s(){return Date.now()}function i(e){return e?.filter?{filter:e.filter}:e?.filters&&e.filters.length>0?{filters:e.filters}:{}}function n(e,t){const o=new Set,s=[];for(const t of e)"string"==typeof t?o.add(t):s.push(t);for(const e of t)o.add(e);return[...o,...s]}function r(e,t){const o=new Set(t);return e.filter(e=>"string"!=typeof e||!o.has(e))}const a=new WeakMap;const c="tasks",h="results",l="state",_="events",d="inbox",p="tools",u="approval",f=2,m={tasks:c,tools:p,state:l,events:_,inbox:d,approval:u},g=Object.keys(m);class b extends e{constructor(e,t,o,s,i,n,r,a){if(super(),this._agents=new Map,this._topicHandlers=[],this._filters={tasks:[],tools:[],state:[],events:[],inbox:[],approval:[]},this.name=e,this.agentId=s,this._roomContext=t,this._log=o,this._appName=i,this._isConnected=n,this._presence=r,a&&a.length>0)for(const e of g)this._filters[e]=[...a];this._wireTopicListeners(),r&&(this._presence={protocol:2,...r},this._log(`setting presence in room ${e}:`,this._presence),this._roomContext.setPresence({...this._presence,__scope:i})),this._fetchInitialPresence()}getConnectedAgents(){return Array.from(this._agents.values())}findAgents(e){return Array.from(this._agents.values()).filter(t=>t.capabilities.includes(e))}hasCapability(e){return this.findAgents(e).length>0}getAvailableCapabilities(){const e=new Set;for(const t of this._agents.values())for(const o of t.capabilities)e.add(o);return Array.from(e)}setPresence(e){this._presence={protocol:2,...e},this._log(`updating presence in room ${this.name}`),this._roomContext.setPresence({...this._presence,__scope:this._appName})}async fetchPresence(){try{return(await this._roomContext.fetchPresence()||[]).map(e=>this._toConnectedAgent(e))}catch{return[]}}get context(){return this._roomContext}publishTask(e,t){e.createdBy||(e.createdBy=this.agentId),this._publish(c,e,i(t))}publishResult(e){e.completedBy||(e.completedBy=this.agentId),e.replyTo?this._publish(h,e,{filter:e.replyTo}):this._publish(h,e)}publishState(e,t){e.updatedBy||(e.updatedBy=this.agentId),this._publish(l,e,{retain:!0,...i(t)})}publishEvent(e,t){e.emittedBy||(e.emittedBy=this.agentId),this._publish(_,e,i(t))}publishInbox(e,t){this._publish(d,e,i(t))}publishTools(e,t){"tool_response"===e?.type&&"string"==typeof e.replyTo&&e.replyTo?this._publish(h,e,{filter:e.replyTo}):this._publish(p,e,i(t))}publishApproval(e,t){this._publish(u,e,{retain:!0,...i(t)})}get filters(){return{tasks:[...this._filters.tasks],tools:[...this._filters.tools],state:[...this._filters.state],events:[...this._filters.events],inbox:[...this._filters.inbox],approval:[...this._filters.approval]}}setFilters(e,t){for(const o of this._targetTopics(t))this._filters[o]=[...e],this._roomContext.setFilters(m[o],e)}addFilters(e,t){for(const o of this._targetTopics(t))this.setFilters(n(this._filters[o],e),{topic:o})}removeFilters(e,t){for(const o of this._targetTopics(t))this.setFilters(r(this._filters[o],e),{topic:o})}_targetTopics(e){return e?.topic?[e.topic]:g}_updateLocalPresence(){this._presence&&this._roomContext.setPresence({...this._presence,__scope:this._appName})}_handlePresenceJoin(e,t){const o=t||{},s={actorId:e,name:o.name||e,role:o.role||"agent",capabilities:o.capabilities||[],metadata:o.metadata,connectedAt:Date.now(),protocol:"number"==typeof o.protocol?o.protocol:1};this._agents.set(e,s),this._log(`agent joined room ${this.name}:`,s.name,s.capabilities),this.emit("presenceJoin",e,o)}_handlePresenceLeave(e){const t=this._agents.get(e);this._agents.delete(e),this._log(`agent left room ${this.name}:`,t?.name||e),this.emit("presenceLeave",e)}_handlePresenceUpdate(e,t){const o=t||{},s=this._agents.get(e),i={actorId:e,name:o.name||s?.name||e,role:o.role||s?.role||"agent",capabilities:o.capabilities||s?.capabilities||[],metadata:o.metadata||s?.metadata,connectedAt:s?.connectedAt||Date.now(),protocol:"number"==typeof o.protocol?o.protocol:s?.protocol??1};this._agents.set(e,i),this.emit("presenceUpdate",e,o)}_cleanup(){if(this._log(`room cleanup: ${this.name}`),this._isConnected()){const e=new Set(this._topicHandlers.map(e=>e.topic));for(const t of e)this._roomContext.unsubscribe(t)}for(const{topic:e,handler:t}of this._topicHandlers)this._roomContext.off(e,t);this._topicHandlers=[],this._agents.clear(),this.removeAllListeners()}_on(e,t){this._topicHandlers.push({topic:e,handler:t}),this._roomContext.on(e,t)}_publish(e,t,o){this._log(`publish to ${e} in room ${this.name}`),o&&Object.keys(o).length>0?this._roomContext.emit(e,t,o):this._roomContext.emit(e,t)}_subscribeFiltered(e,t){t.length>0?this._roomContext.subscribe(e,{filters:t}):this._roomContext.subscribe(e)}_toConnectedAgent(e){const t=e.presence||e.data||{};return{actorId:e.actorTokenId||e.actorId||"",name:t.name||e.actorTokenId||"",role:t.role||"agent",capabilities:t.capabilities||[],metadata:t.metadata,connectedAt:e.joinedAt||Date.now(),protocol:"number"==typeof t.protocol?t.protocol:1,status:e.status}}async _fetchInitialPresence(){try{const e=await this._roomContext.fetchPresence();if(Array.isArray(e)){for(const t of e){const e=this._toConnectedAgent(t);e.actorId&&this._agents.set(e.actorId,e)}this._log(`discovered ${this._agents.size} agents in room ${this.name}`)}}catch{}}_wireTopicListeners(){this._subscribeFiltered(c,this._filters.tasks),this._subscribeFiltered(p,this._filters.tools),this._roomContext.subscribe(h,{loadBalance:!1,filters:[this.agentId]});const e=["state","events","inbox","approval"];for(const t of e){const e=this._filters[t];this._roomContext.subscribe(m[t],{loadBalance:!1,...e.length>0?{filters:e}:{}})}const t=[{topic:c,event:"task"},{topic:l,event:"stateChange"},{topic:_,event:"event"},{topic:d,event:"inbox"}];for(const{topic:e,event:o}of t)this._on(e,t=>{this._log(`received ${e} in room ${this.name}`),this.emit(o,t)});this._on(h,e=>{this._log(`received ${h} in room ${this.name}`),"tool_response"===e?.type?this.emit("toolResponse",e):this.emit("result",e)}),this._on(u,e=>{this._log(`received ${u} in room ${this.name}`),"approval_response"===e?.type?this.emit("approvalResponse",e):this.emit("approvalRequest",e)}),this._on(p,e=>{this._log(`received ${p} in room ${this.name}`),"tool_response"===e?.type?this.emit("toolResponse",e):this.emit("toolRequest",e)})}}class y extends e{constructor(e){if(super(),this._rooms=new Map,this._lobby=null,this._epoch=0,this._detached=!1,this._isReady=!1,this._lobbyRefreshTimer=null,this._onConnectRef=()=>this._onConnect(),this._onDisconnectRef=e=>{this._log("disconnected:",e),this.emit("disconnected",e)},this._onReconnectRef=()=>{this._log("reconnecting..."),this.emit("reconnecting")},this._onErrorRef=e=>{this._log("error:",e?.message??e),this.emit("error",e)},this._onPresenceJoinRef=e=>this._handleRoomPresenceJoin(e),this._onPresenceLeaveRef=e=>this._handleRoomPresenceLeave(e),this._onPresenceUpdateRef=e=>this._handleRoomPresenceUpdate(e),this._onLobbyJoinRef=e=>this._handleLobbyJoin(e),this._onLobbyLeaveRef=e=>this._handleLobbyLeave(e),this._onLobbyUpdateRef=e=>this._handleLobbyUpdate(e),!e?.client)throw new TypeError("NoLagAgents requires an injected NoLag client: new NoLagAgents({ client, ... })");this._client=e.client,this._options={appName:e.appName??"agents",agentId:e.agentId??t(),name:e.name,role:e.role,debug:e.debug??!1,rooms:e.rooms??["default-workflow"],lobby:e.lobby,presence:e.presence??this._presenceFromIdentity(e)},this._log=o("NoLagAgents",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,o){let s=a.get(e);s||(s=new Map,a.set(e,s));const i=s.get(t);i&&console.warn(`[${o}] Another wrapper (${i}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),s.set(t,o)}(this._client,this._options.appName,"NoLagAgents"),this._client.on("connect",this._onConnectRef),this._client.on("disconnect",this._onDisconnectRef),this._client.on("reconnect",this._onReconnectRef),this._client.on("error",this._onErrorRef),this._client.on("presence:join",this._onPresenceJoinRef),this._client.on("presence:leave",this._onPresenceLeaveRef),this._client.on("presence:update",this._onPresenceUpdateRef),this._client.on("lobbyPresence:join",this._onLobbyJoinRef),this._client.on("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.on("lobbyPresence:update",this._onLobbyUpdateRef),queueMicrotask(()=>{0===this._epoch&&!this._detached&&this._client.connected&&this._onConnect()})}get agentId(){return this._options.agentId}get connected(){return!this._detached&&this._client.connected}get client(){return this._client}get rooms(){return this._rooms}ready(){return this._readyPromise}detach(){if(!this._detached){this._log("detaching..."),this._detached=!0,this._epoch++,this._lobbyRefreshTimer&&(clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=null),this._client.off("connect",this._onConnectRef),this._client.off("disconnect",this._onDisconnectRef),this._client.off("reconnect",this._onReconnectRef),this._client.off("error",this._onErrorRef),this._client.off("presence:join",this._onPresenceJoinRef),this._client.off("presence:leave",this._onPresenceLeaveRef),this._client.off("presence:update",this._onPresenceUpdateRef),this._client.off("lobbyPresence:join",this._onLobbyJoinRef),this._client.off("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.off("lobbyPresence:update",this._onLobbyUpdateRef);for(const e of[...this._rooms.keys()])this._rooms.get(e)._cleanup(),this._rooms.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,e=this._client,t=this._options.appName,a.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagAgents detached before ready"))}}_onConnect(){this._epoch++,this._runSetup(this._epoch)}async _runSetup(e){const t=()=>e!==this._epoch||this._detached;if(this._log(this._isReady?"restoring after reconnect...":"setting up..."),this._log("agentId:",this._options.agentId,"→ actorId:",this._client.actorId),this._isReady)for(const e of this._rooms.values())e._updateLocalPresence();else for(const e of this._options.rooms)this._joinRoomInternal(e);if(this._options.lobby){this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby(this._options.lobby));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateLobby(e),this._log("lobby subscribed:",this._options.lobby)}catch(e){if(t())return;this._log("lobby subscription failed:",e)}}t()||(this._isReady?this.emit("reconnected"):(this._isReady=!0,this._readyResolve(),this.emit("connected")),this._options.lobby&&this._scheduleLobbyRefresh(e))}_scheduleLobbyRefresh(e){this._lobbyRefreshTimer&&clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=setTimeout(()=>{this._lobbyRefreshTimer=null,e===this._epoch&&!this._detached&&this._client.connected&&this._lobby&&this._lobby.fetchPresence().then(t=>{e!==this._epoch||this._detached||this._diffHydrateLobby(t)}).catch(()=>{})},2e3)}room(e,t){this._assertUsable();const o=this._rooms.get(e);return o?(t?.filters&&o.setFilters(t.filters),o):this._joinRoomInternal(e,t?.filters)}async subscribeLobby(e){this._assertUsable(),this._log(`subscribing to lobby: ${e}`),this._options.lobby=e,this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby(e));try{const e=await this._lobby.subscribe();return this._detached||this._diffHydrateLobby(e),e||{}}catch(e){return this._log("lobby subscription failed:",e),{}}}_assertUsable(){if(this._detached)throw new Error("NoLagAgents has been detached — construct a new instance");if(!this._isReady)throw new Error('NoLagAgents not ready — await ready() or the "connected" event')}_joinRoomInternal(e,t){this._log(`joining room: ${e}`);const s=this._client.setApp(this._options.appName).setRoom(e),i=new b(e,s,o(`AgentRoom:${e}`,this._options.debug),this._options.agentId,this._options.appName,()=>this._client.connected,this._options.presence,t);return this._rooms.set(e,i),i}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._client.actorId)return;const t=e.presence||{};if(this._foreignScope(t))return;const o=e.roomId;for(const s of this._targetRooms(o))s._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId===this._client.actorId)return;const t=e.roomId;for(const o of this._targetRooms(t))o._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._client.actorId)return;const t=e.presence||{};if(this._foreignScope(t))return;const o=e.roomId;for(const s of this._targetRooms(o))s._handlePresenceUpdate(e.actorTokenId,t)}_targetRooms(e){return e&&this._rooms.has(e)?[this._rooms.get(e)]:e?[]:[...this._rooms.values()]}_handleLobbyJoin(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s)){this._log(`lobby presence:join — ${s.name||t}`);for(const e of this._rooms.values())e._handlePresenceJoin(t,s)}}_handleLobbyLeave(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s)){this._log(`lobby presence:leave — ${t}`);for(const e of this._rooms.values())e._handlePresenceLeave(t)}}_handleLobbyUpdate(e){const{actorId:t,data:o}=e;if(t===this._client.actorId)return;const s=o||{};if(!this._foreignScope(s))for(const e of this._rooms.values())e._handlePresenceUpdate(t,s)}_diffHydrateLobby(e){for(const t of Object.keys(e)){const o=e[t];for(const e of Object.keys(o)){if(e===this._client.actorId)continue;const t=o[e],s=t?.presence??t;if(!this._foreignScope(s))for(const t of this._rooms.values())t._handlePresenceJoin(e,s)}}}_presenceFromIdentity(e){if(e.name||e.role)return{name:e.name??e.agentId??"agent",role:e.role??"agent"}}}class v extends Error{constructor(e,t){super(`${e} cannot succeed: every relevant agent advertises agents-protocol < 2 [${t.map(e=>`${e.name} (protocol ${e.protocol})`).join(", ")}]. Protocol >= 2 responders direct replies to the requester; older ones broadcast and their replies never reach this SDK's filtered subscription. Upgrade the responders to @nolag/agents >= 0.2.0 / nolag-agents >= 0.3.0. NOTE: 0.2.x/0.3.0 responders DO have directed replies but do not yet advertise protocol — if your responders run those versions, pass { allowLegacyResponders: true }.`),this.name="IncompatibleProtocolError"}}class I{constructor(){this._pending=new Map}register(e,t,o){return new Promise((s,i)=>{let n=null;t&&t>0&&(n=setTimeout(()=>{this._pending.delete(e);i(new Error(`${o??`Correlation ${e}`} timed out after ${t}ms`))},t)),this._pending.set(e,{resolve:s,reject:i,timer:n})})}resolve(e,t){const o=this._pending.get(e);return!!o&&(o.timer&&clearTimeout(o.timer),this._pending.delete(e),o.resolve(t),!0)}reject(e,t){const o=this._pending.get(e);return!!o&&(o.timer&&clearTimeout(o.timer),this._pending.delete(e),o.reject(t),!0)}has(e){return this._pending.has(e)}clear(){for(const[e,t]of this._pending)t.timer&&clearTimeout(t.timer),t.reject(new Error(`Correlation ${e} cancelled`));this._pending.clear()}get size(){return this._pending.size}}function R(e,o,i){return{type:"task",protocol:2,taskId:t(),correlationId:t(),replyTo:i?.replyTo,capability:e,payload:o,tags:i?.tags,priority:i?.priority??"medium",metadata:i?.metadata,createdAt:s(),createdBy:i?.createdBy,timeout:i?.timeout}}function w(e,t,o,i,n,r,a){return{type:"result",protocol:2,correlationId:t,taskId:e,status:o,payload:i,error:n,completedAt:s(),completedBy:r,replyTo:a}}function T(e,t,o,i){return{type:"state",protocol:2,key:e,value:t,version:o,updatedBy:i,updatedAt:s()}}function x(e,o,i,n="info"){return{type:"event",protocol:2,eventId:t(),severity:n,category:e,emittedBy:o,payload:i,timestamp:s()}}function A(e,o,i,n){return{type:"approval_request",protocol:2,requestId:t(),correlationId:t(),action:e,context:o,urgency:n?.urgency??"medium",requestedBy:i,requestedAt:s(),expiresAt:n?.expiresAt}}function L(e,t,o,i,n){return{type:"approval_response",protocol:2,requestId:e,correlationId:t,decision:o,respondedBy:i,reason:n,respondedAt:s()}}function $(e,o,i,n){return{type:"tool_request",protocol:2,requestId:t(),correlationId:t(),replyTo:n?.replyTo,toolName:e,arguments:o,requestedBy:i,requestedAt:s()}}function P(e,t,o,i,n,r,a){return{type:"tool_response",protocol:2,requestId:e,correlationId:t,status:o,result:i,error:n,respondedBy:r,respondedAt:s(),replyTo:a}}class k{constructor(e){this._correlations=new I,this._warnedMixed=!1,this._room=e,this._room.on("result",e=>{this._correlations.resolve(e.correlationId,e)})}async dispatch(e,t,o){if(!o?.allowNoWorkers){const t=this._room.findAgents(e);if(0===(o?.requireOnline?t.filter(e=>void 0===e.status||"online"===e.status):t).length)throw new Error(`No ${o?.requireOnline?"online ":""}agent with capability "${e}" is available. Available capabilities: [${this._room.getAvailableCapabilities().join(", ")}]. Connected agents: ${this._room.getConnectedAgents().length}. Use { allowNoWorkers: true } to dispatch anyway.`)}const s=R(e,t,{...o,createdBy:o?.createdBy??this._room.agentId,replyTo:o?.replyTo??this._room.agentId});if(this._room.publishTask(s),o?.waitForResult){const t=this._room.findAgents(e);if(!o?.allowLegacyResponders&&t.length>0){const o=t.filter(e=>e.protocol>=2);if(0===o.length)throw new v(`Task '${e}' dispatch with waitForResult`,t.map(e=>({name:e.name,protocol:e.protocol})));o.length<t.length&&!this._warnedMixed&&(this._warnedMixed=!0,console.warn(`[nolag-agents] Capability '${e}' has workers on agents-protocol < 2: `+t.filter(e=>e.protocol<2).map(e=>e.name).join(", ")+". Their results may not be delivered — upgrade them."))}return this._correlations.register(s.correlationId,o.timeout,`Task '${e}' dispatch (${t.length} capable worker${1===t.length?"":"s"} visible). Likely causes: worker crashed mid-task, worker on agents-protocol < 2 (results not directed), or the room is not deliverable`)}}onTask(e,t){const o="function"==typeof e?"*":e,s="function"==typeof e?e:t;this._room.on("task",e=>{if("*"!==o&&!o.includes(e.capability))return;s(e,(t,o,s)=>{const i=w(e.taskId,e.correlationId,t,o,s,this._room.agentId,e.replyTo??e.createdBy);this._room.publishResult(i)})})}getCapableAgents(e){return this._room.findAgents(e)}dispose(){this._correlations.clear()}}class C{constructor(e,t){this._room=e,this._agentId=t}send(e,o){const i={messageId:t(),from:this._agentId,to:e,payload:o,createdAt:s()};this._room.publishInbox(i)}onMessage(e){this._room.on("inbox",t=>{const o=t;o.to===this._agentId&&e(o)})}}class N{constructor(e,t){this._state=new Map,this._room=e,this._agentId=t,this._room.on("stateChange",e=>{this._state.set(e.key,e)})}set(e,t){const o=this._state.get(e),s=T(e,t,o?o.version+1:1,this._agentId);this._state.set(e,s),this._room.publishState(s)}get(e){return this._state.get(e)?.value}getEnvelope(e){return this._state.get(e)}getAll(){return this._state}onChange(e,t){this._room.on("stateChange",o=>{o.key===e&&t(o)})}}class E{constructor(e,t){this._room=e,this._emittedBy=t}emit(e,t,o="info",s){const i=x(e,this._emittedBy,t,o);this._room.publishEvent(i,s)}setFilters(e){this._room.setFilters(e,{topic:"events"})}on(e,t){this._room.on("event",o=>{t?.category&&o.category!==t.category||t?.severity&&o.severity!==t.severity||e(o)})}}class U{constructor(e,t){this._correlations=new I,this._room=e,this._agentId=t,this._room.on("approvalResponse",e=>{this._correlations.resolve(e.correlationId,e)})}async request(e,t,o){const s=A(e,t,this._agentId,{urgency:o?.urgency,expiresAt:o?.expiresAt});return this._room.publishApproval(s),this._correlations.register(s.correlationId,o?.timeout)}onRequest(e){this._room.on("approvalRequest",t=>{e(t,(e,o)=>{const s=L(t.requestId,t.correlationId,e,this._agentId,o);this._room.publishApproval(s)})})}dispose(){this._correlations.clear()}}class q{constructor(e,t){this._correlations=new I,this._handlers=new Map,this._warnedMixed=!1,this._room=e,this._agentId=t,this._room.on("toolResponse",e=>{e&&"string"==typeof e.correlationId&&this._correlations.resolve(e.correlationId,e)}),this._room.on("toolRequest",async e=>{if(!e||"string"!=typeof e.toolName)return;const t=this._handlers.get(e.toolName),o=e.replyTo??e.requestedBy;if(!t){if(!this._ownsNamespace(e.toolName))return;const t=P(e.requestId,e.correlationId,"error",null,{code:"NO_HANDLER",message:`Agent '${this._agentId}' has no handler for tool '${e.toolName}'`},this._agentId,o);return void this._room.publishTools(t)}try{const s=await t(e.arguments),i=P(e.requestId,e.correlationId,"success",s,void 0,this._agentId,o);this._room.publishTools(i)}catch(t){const s=P(e.requestId,e.correlationId,"error",null,{code:"TOOL_ERROR",message:t instanceof Error?t.message:String(t)},this._agentId,o);this._room.publishTools(s)}})}register(e,t){this._handlers.set(e,t)}_ownsNamespace(e){if("string"!=typeof e)return!1;if(0===this._handlers.size)return!1;const t=e.includes(".")?e.slice(0,e.indexOf(".")):null;for(const e of this._handlers.keys()){if((e.includes(".")?e.slice(0,e.indexOf(".")):null)===t)return!0}return!1}async invoke(e,t,o){const s=this._room.getConnectedAgents().filter(e=>"tool-server"===e.role);if(!o?.allowLegacyResponders&&s.length>0){const t=s.filter(e=>e.protocol>=2);if(0===t.length)throw new v(`Tool '${e}' invocation`,s.map(e=>({name:e.name,protocol:e.protocol})));t.length<s.length&&!this._warnedMixed&&(this._warnedMixed=!0,console.warn(`[nolag-agents] Room '${this._room.name}' has tool servers on agents-protocol < 2: `+s.filter(e=>e.protocol<2).map(e=>e.name).join(", ")+". Their replies may not be delivered — upgrade them."))}const i=$(e,t,this._agentId,{replyTo:this._room.agentId});this._room.publishTools(i);const n=s.length;return this._correlations.register(i.correlationId,o?.timeout,`Tool '${e}' invocation in room '${this._room.name}' (${n} tool-server${1===n?"":"s"} visible). Likely causes: no agent has this tool registered (pre-0.3.0 responders don't NACK), the responder is offline, or the room is not deliverable (watch the room 'error' events)`)}dispose(){this._correlations.clear(),this._handlers.clear()}}const j={CAPABILITY:"capability",PRIORITY:"priority",ROLE:"role",SEVERITY:"severity",URGENCY:"urgency",TENANT:"tenant"},B={REQUIRES_HUMAN:"requires_human",REQUIRES_AUDIT:"requires_audit"};function S(e,t){return`${e}:${t}`}export{f as AGENTS_PROTOCOL_VERSION,b as AgentRoom,U as Approve,N as Blackboard,I as CorrelationManager,e as EventEmitter,k as Handoff,C as Inbox,v as IncompatibleProtocolError,y as NoLagAgents,E as Observe,B as TAG_FLAGS,j as TAG_PREFIX,q as Tools,A as createApprovalRequest,L as createApprovalResponse,x as createEventEnvelope,w as createResultEnvelope,T as createStateEnvelope,R as createTaskEnvelope,$ as createToolRequest,P as createToolResponse,S as tag};
|
|
2
2
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/constants.ts","../src/AgentRoom.ts","../src/utils.ts","../src/NoLagAgents.ts","../src/errors.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,null],"names":["EventEmitter","constructor","this","_handlers","Map","on","event","handler","has","set","Set","get","add","off","delete","removeAllListeners","clear","emit","args","handlers","result","then","undefined","e","console","error","String","listenerCount","size","TOPIC_TASKS","TOPIC_RESULTS","TOPIC_STATE","TOPIC_EVENTS","TOPIC_INBOX","TOPIC_TOOLS","TOPIC_APPROVAL","AGENTS_PROTOCOL_VERSION","AgentRoom","name","roomContext","log","agentId","appName","isConnected","presence","super","_agents","_topicHandlers","_roomContext","_log","_appName","_isConnected","_presence","_wireTopicListeners","protocol","setPresence","__scope","_fetchInitialPresence","getConnectedAgents","Array","from","values","findAgents","capability","filter","a","capabilities","includes","hasCapability","length","getAvailableCapabilities","caps","agent","cap","data","fetchPresence","map","_toConnectedAgent","context","publishTask","envelope","createdBy","_publish","publishResult","completedBy","replyTo","publishState","updatedBy","retain","publishEvent","emittedBy","publishInbox","publishTools","type","publishApproval","_updateLocalPresence","_handlePresenceJoin","actorId","d","role","metadata","connectedAt","Date","now","_handlePresenceLeave","_handlePresenceUpdate","existing","_cleanup","topics","t","topic","unsubscribe","_on","push","options","actor","actorTokenId","joinedAt","status","actors","isArray","connected","subscribe","loadBalance","filters","broadcastTopics","simpleMap","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","_args","createTimestamp","wrapperRegistry","WeakMap","NoLagAgents","_rooms","_lobby","_epoch","_detached","_isReady","_lobbyRefreshTimer","_onConnectRef","_onConnect","_onDisconnectRef","reason","_onReconnectRef","_onErrorRef","message","_onPresenceJoinRef","_handleRoomPresenceJoin","_onPresenceLeaveRef","_handleRoomPresenceLeave","_onPresenceUpdateRef","_handleRoomPresenceUpdate","_onLobbyJoinRef","_handleLobbyJoin","_onLobbyLeaveRef","_handleLobbyLeave","_onLobbyUpdateRef","_handleLobbyUpdate","client","TypeError","_client","_options","debug","rooms","lobby","_presenceFromIdentity","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","catch","wrapperName","apps","warn","registerWrapper","queueMicrotask","ready","detach","clearTimeout","keys","Error","_runSetup","epoch","stale","room","roomName","_joinRoomInternal","setApp","setLobby","state","_diffHydrateLobby","err","_scheduleLobbyRefresh","setTimeout","_assertUsable","subscribeLobby","lobbySlug","setRoom","_foreignScope","scope","roomId","_targetRooms","Object","roomPresence","raw","IncompatibleProtocolError","operation","agents","join","CorrelationManager","_pending","register","correlationId","timeoutMs","timer","value","entry","id","createTaskEnvelope","payload","taskId","tags","priority","createdAt","timeout","createResultEnvelope","completedAt","createStateEnvelope","key","version","updatedAt","createEventEnvelope","category","severity","eventId","timestamp","createApprovalRequest","action","requestedBy","requestId","urgency","requestedAt","expiresAt","createApprovalResponse","decision","respondedBy","respondedAt","createToolRequest","toolName","arguments","createToolResponse","Handoff","_correlations","_warnedMixed","_room","dispatch","allowNoWorkers","capable","requireOnline","waitForResult","allowLegacyResponders","modern","onTask","capabilitiesOrHandler","maybeHandler","task","getCapableAgents","dispose","Inbox","_agentId","send","to","messageId","onMessage","msg","Blackboard","_state","getEnvelope","getAll","onChange","Observe","_emittedBy","Approve","request","onRequest","response","Tools","async","_ownsNamespace","nack","code","ns","slice","indexOf","invoke","servers","serverCount","TAG_PREFIX","CAPABILITY","PRIORITY","ROLE","SEVERITY","URGENCY","TENANT","TAG_FLAGS","REQUIRES_HUMAN","REQUIRES_AUDIT","tag"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/utils.ts","../src/constants.ts","../src/AgentRoom.ts","../src/NoLagAgents.ts","../src/errors.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,null],"names":["EventEmitter","constructor","this","_handlers","Map","on","event","handler","has","set","Set","get","add","off","delete","removeAllListeners","clear","emit","args","handlers","result","then","undefined","e","console","error","String","listenerCount","size","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","log","_args","createTimestamp","Date","now","filterEmitOptions","opts","filter","filters","length","mergeFilters","existing","simple","groups","f","push","v","withoutFilters","remove","drop","wrapperRegistry","WeakMap","TOPIC_TASKS","TOPIC_RESULTS","TOPIC_STATE","TOPIC_EVENTS","TOPIC_INBOX","TOPIC_TOOLS","TOPIC_APPROVAL","AGENTS_PROTOCOL_VERSION","FILTER_TOPICS","tasks","tools","state","events","inbox","approval","ALL_FILTER_TOPICS","Object","keys","AgentRoom","name","roomContext","agentId","appName","isConnected","presence","super","_agents","_topicHandlers","_filters","_roomContext","_log","_appName","_isConnected","_presence","topic","_wireTopicListeners","protocol","setPresence","__scope","_fetchInitialPresence","getConnectedAgents","Array","from","values","findAgents","capability","a","capabilities","includes","hasCapability","getAvailableCapabilities","caps","agent","cap","data","fetchPresence","map","_toConnectedAgent","context","publishTask","envelope","createdBy","_publish","publishResult","completedBy","replyTo","publishState","updatedBy","retain","publishEvent","emittedBy","publishInbox","publishTools","type","publishApproval","setFilters","_targetTopics","addFilters","removeFilters","_updateLocalPresence","_handlePresenceJoin","actorId","d","role","metadata","connectedAt","_handlePresenceLeave","_handlePresenceUpdate","_cleanup","topics","t","unsubscribe","_on","options","_subscribeFiltered","subscribe","actor","actorTokenId","joinedAt","status","actors","isArray","connected","loadBalance","broadcastTopics","key","simpleMap","NoLagAgents","_rooms","_lobby","_epoch","_detached","_isReady","_lobbyRefreshTimer","_onConnectRef","_onConnect","_onDisconnectRef","reason","_onReconnectRef","_onErrorRef","message","_onPresenceJoinRef","_handleRoomPresenceJoin","_onPresenceLeaveRef","_handleRoomPresenceLeave","_onPresenceUpdateRef","_handleRoomPresenceUpdate","_onLobbyJoinRef","_handleLobbyJoin","_onLobbyLeaveRef","_handleLobbyLeave","_onLobbyUpdateRef","_handleLobbyUpdate","client","TypeError","_client","_options","debug","rooms","lobby","_presenceFromIdentity","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","catch","wrapperName","apps","warn","registerWrapper","queueMicrotask","ready","detach","clearTimeout","Error","_runSetup","epoch","stale","room","roomName","_joinRoomInternal","setApp","setLobby","_diffHydrateLobby","err","_scheduleLobbyRefresh","setTimeout","_assertUsable","subscribeLobby","lobbySlug","setRoom","_foreignScope","scope","roomId","_targetRooms","roomPresence","raw","IncompatibleProtocolError","operation","agents","join","CorrelationManager","_pending","register","correlationId","timeoutMs","timer","value","entry","id","createTaskEnvelope","payload","taskId","tags","priority","createdAt","timeout","createResultEnvelope","completedAt","createStateEnvelope","version","updatedAt","createEventEnvelope","category","severity","eventId","timestamp","createApprovalRequest","action","requestedBy","requestId","urgency","requestedAt","expiresAt","createApprovalResponse","decision","respondedBy","respondedAt","createToolRequest","toolName","arguments","createToolResponse","Handoff","_correlations","_warnedMixed","_room","dispatch","allowNoWorkers","capable","requireOnline","waitForResult","allowLegacyResponders","modern","onTask","capabilitiesOrHandler","maybeHandler","task","getCapableAgents","dispose","Inbox","_agentId","send","to","messageId","onMessage","msg","Blackboard","_state","getEnvelope","getAll","onChange","Observe","_emittedBy","Approve","request","onRequest","response","Tools","async","_ownsNamespace","nack","code","ns","slice","indexOf","invoke","servers","serverCount","TAG_PREFIX","CAPABILITY","PRIORITY","ROLE","SEVERITY","URGENCY","TENANT","TAG_FLAGS","REQUIRES_HUMAN","REQUIRES_AUDIT","tag"],"mappings":"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"}
|