@masons/agent-network 0.4.6 → 0.4.7
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/channel.d.ts.map +1 -1
- package/dist/channel.js +35 -14
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAc9D,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,oBAAoB,CAAC,CAAC;IAC9B,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;IACvD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IACjE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/D;AAED,UAAU,sBAAsB;IAC9B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACzE;AAED,UAAU,qBAAqB,CAAC,CAAC,GAAG,OAAO;IACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAsDD,UAAU,qBAAqB,CAAC,CAAC,GAAG,OAAO;IACzC,YAAY,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,WAAW,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAClD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;CACrD;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAc9D,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,oBAAoB,CAAC,CAAC;IAC9B,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;IACvD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IACjE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/D;AAED,UAAU,sBAAsB;IAC9B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACzE;AAED,UAAU,qBAAqB,CAAC,CAAC,GAAG,OAAO;IACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAsDD,UAAU,qBAAqB,CAAC,CAAC,GAAG,OAAO;IACzC,YAAY,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,WAAW,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAClD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;CACrD;AAkED,eAAO,MAAM,mBAAmB,EAAE,yBAkXjC,CAAC"}
|
package/dist/channel.js
CHANGED
|
@@ -10,21 +10,32 @@ const dbg = createDebug("agent-network:channel");
|
|
|
10
10
|
// not per-message metadata. See the message_received handler for details.
|
|
11
11
|
// See: docs/openclaw/research/session-identity-mapping.md §5
|
|
12
12
|
/**
|
|
13
|
-
* Extract a human-readable name from the
|
|
13
|
+
* Extract a human-readable name from the sender's metadata.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* Resolution order (account-level identity first, then address):
|
|
16
|
+
* 1. `metadata.visitor_name` — display name for Passport browser visitors
|
|
17
|
+
* (resolved by Connector from user_info.displayName)
|
|
18
|
+
* 2. `metadata.from` — MSTP address for agent-to-agent connections
|
|
19
|
+
* (e.g. `mstps://preview.masons.ai/alice` → "alice")
|
|
20
|
+
* 3. Fallback: "Unknown" for direct MSTP clients without metadata
|
|
21
|
+
*
|
|
22
|
+
* Design: Channel determines routing, Account determines identity.
|
|
23
|
+
* See: interop-routing-system-design.md §3 "Channel vs Account".
|
|
18
24
|
*/
|
|
19
25
|
function deriveSenderName(event) {
|
|
26
|
+
// Account-level identity: Passport visitor with resolved display name
|
|
27
|
+
const visitorName = event.metadata?.visitor_name;
|
|
28
|
+
if (visitorName && typeof visitorName === "string") {
|
|
29
|
+
return visitorName;
|
|
30
|
+
}
|
|
31
|
+
// MSTP address: extract handle from agent address
|
|
20
32
|
const from = event.metadata?.from;
|
|
21
|
-
if (
|
|
22
|
-
|
|
33
|
+
if (from && typeof from === "string") {
|
|
34
|
+
const trimmed = from.replace(/\/+$/, "");
|
|
35
|
+
const parts = trimmed.split("/");
|
|
36
|
+
return parts[parts.length - 1] || from;
|
|
23
37
|
}
|
|
24
|
-
|
|
25
|
-
const trimmed = from.replace(/\/+$/, "");
|
|
26
|
-
const parts = trimmed.split("/");
|
|
27
|
-
return parts[parts.length - 1] || from;
|
|
38
|
+
return "Unknown";
|
|
28
39
|
}
|
|
29
40
|
/**
|
|
30
41
|
* Extract the Connector host from a connectorUrl.
|
|
@@ -159,13 +170,20 @@ export const agentNetworkChannel = {
|
|
|
159
170
|
// senderId for OpenClaw routing: use MSTP address if available,
|
|
160
171
|
// fall back to sessionId for unknown sessions / direct MSTP clients.
|
|
161
172
|
const senderId = isRealAddress ? senderAddress : event.sessionId;
|
|
162
|
-
// Derive sender name
|
|
173
|
+
// Derive sender name.
|
|
174
|
+
// - MSTP agents: extract handle from address.
|
|
175
|
+
// - Passport visitors / direct clients: use the contact name stored
|
|
176
|
+
// in ConversationManager at session_created time (which read
|
|
177
|
+
// visitor_name from session metadata). Per-message metadata does
|
|
178
|
+
// NOT carry session-level fields like visitor_name, so we must
|
|
179
|
+
// use the stored value. Falls back to deriveSenderName → "Unknown".
|
|
163
180
|
const senderName = isRealAddress
|
|
164
181
|
? deriveSenderName({
|
|
165
182
|
...event,
|
|
166
183
|
metadata: { ...event.metadata, from: senderAddress },
|
|
167
184
|
})
|
|
168
|
-
:
|
|
185
|
+
: (conversationManager.getContactBySessionId(event.sessionId) ??
|
|
186
|
+
deriveSenderName(event));
|
|
169
187
|
try {
|
|
170
188
|
// Step 1 — Resolve agent route (await defensively — may be sync or async)
|
|
171
189
|
const route = await runtime.channel.routing.resolveAgentRoute({
|
|
@@ -242,8 +260,11 @@ export const agentNetworkChannel = {
|
|
|
242
260
|
conversationManager.registerInbound(event.sessionId, contact, remoteAddress);
|
|
243
261
|
}
|
|
244
262
|
else {
|
|
245
|
-
// No address
|
|
246
|
-
|
|
263
|
+
// No MSTP address — Passport visitor or direct MSTP client.
|
|
264
|
+
// Use visitor_name from session metadata (account-level identity
|
|
265
|
+
// resolved by Connector) if available, else sessionId fallback.
|
|
266
|
+
const contact = deriveSenderName(event);
|
|
267
|
+
conversationManager.registerInbound(event.sessionId, contact, event.sessionId);
|
|
247
268
|
}
|
|
248
269
|
}
|
|
249
270
|
// Outbound sessions are handled by SessionLifecycle internally
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Plugin version — must match package.json. Validated by prepublishOnly. */
|
|
2
|
-
export const PLUGIN_VERSION = "0.4.
|
|
2
|
+
export const PLUGIN_VERSION = "0.4.7";
|
package/package.json
CHANGED