@masons/agent-network 0.5.11 → 0.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +125 -23
- package/dist/cli-setup.d.ts +57 -23
- package/dist/cli-setup.d.ts.map +1 -1
- package/dist/cli-setup.js +435 -39
- package/dist/platform-client.d.ts +50 -10
- package/dist/platform-client.d.ts.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +62 -8
- package/dist/types.d.ts +50 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/session-lifecycle.d.ts +0 -89
- package/dist/session-lifecycle.d.ts.map +0 -1
- package/dist/session-lifecycle.js +0 -348
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;CAKlB;AAMD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA6CH,UAAU,WAAW;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,CACP,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED,UAAU,OAAO;IACf,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACzE;AAwCD,uDAAuD;AACvD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA6CH,UAAU,WAAW;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,CACP,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED,UAAU,OAAO;IACf,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACzE;AAwCD,uDAAuD;AACvD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AA4ED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAm2BhD"}
|
package/dist/tools.js
CHANGED
|
@@ -98,6 +98,28 @@ function maybeAppendUpdateNotice(result) {
|
|
|
98
98
|
function withUpdateNotice(fn) {
|
|
99
99
|
return async (id, params) => maybeAppendUpdateNotice(await fn(id, params));
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Format a Node kind discriminator as a prefix label for list rendering.
|
|
103
|
+
*
|
|
104
|
+
* Returns:
|
|
105
|
+
* - "[Human Node] " when kind === "user"
|
|
106
|
+
* - "[Agent Node] " when kind === "agent"
|
|
107
|
+
* - "[Node:<kind>] " for future / unknown kinds (forward-compat per
|
|
108
|
+
* `docs/concepts/human-node-capability-obligations.md § 5` — never
|
|
109
|
+
* suppress, never crash)
|
|
110
|
+
* - "" (empty) when kind is absent — preserves backward-compatible
|
|
111
|
+
* rendering against Connector versions that have not adopted NodeRef
|
|
112
|
+
* projection.
|
|
113
|
+
*/
|
|
114
|
+
function formatKindLabel(kind) {
|
|
115
|
+
if (!kind)
|
|
116
|
+
return "";
|
|
117
|
+
if (kind === "user")
|
|
118
|
+
return "[Human Node] ";
|
|
119
|
+
if (kind === "agent")
|
|
120
|
+
return "[Agent Node] ";
|
|
121
|
+
return `[Node:${kind}] `;
|
|
122
|
+
}
|
|
101
123
|
function formatConnectionResult(requestIds, status) {
|
|
102
124
|
if (requestIds.length === 0) {
|
|
103
125
|
return "Already connected or request already pending — no new request needed.";
|
|
@@ -362,13 +384,28 @@ export function registerTools(api) {
|
|
|
362
384
|
}
|
|
363
385
|
const lines = result.items.map((item) => {
|
|
364
386
|
const dir = item.direction ?? direction;
|
|
365
|
-
// For incoming: sender is in
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
387
|
+
// For incoming: sender NodeRef is in `fromNode` (since #1450 Phase 1).
|
|
388
|
+
// For outgoing: target NodeRef is in `toNode`. Both may be null when
|
|
389
|
+
// the Connector ran NodeRef enrichment but the entity record was
|
|
390
|
+
// missing. Back-compat fallback: `fromAgent` / `toAgent` carry just
|
|
391
|
+
// `{ handle, name }` from older Connector versions or the back-compat
|
|
392
|
+
// shape #1450 still emits.
|
|
393
|
+
const node = dir === "outgoing" ? item.toNode : item.fromNode;
|
|
394
|
+
const compat = dir === "outgoing" ? item.toAgent : item.fromAgent;
|
|
395
|
+
// Display fallback chain per `human-node-capability-obligations.md § 2`:
|
|
396
|
+
// NodeRef.displayName → NodeRef.handle → back-compat name → handle → "unknown".
|
|
397
|
+
const otherName = node?.displayName ||
|
|
398
|
+
node?.handle ||
|
|
399
|
+
compat?.name ||
|
|
400
|
+
compat?.handle ||
|
|
401
|
+
"unknown";
|
|
402
|
+
const otherHandle = node?.handle || compat?.handle || "unknown";
|
|
403
|
+
// Kind discriminator: surface "Human Node" / "Agent Node" / future kinds
|
|
404
|
+
// when the Connector projects `kind` per the same doc § 5 forward-compat.
|
|
405
|
+
const kindLabel = formatKindLabel(node?.kind);
|
|
369
406
|
const dirArrow = dir === "outgoing" ? "→" : "←";
|
|
370
407
|
const parts = [
|
|
371
|
-
`• ${dirArrow} ${otherName} (@${otherHandle})`,
|
|
408
|
+
`• ${dirArrow} ${kindLabel}${otherName} (@${otherHandle})`,
|
|
372
409
|
` ID: ${item.id} | Variant: ${item.variant} | Status: ${item.status}`,
|
|
373
410
|
];
|
|
374
411
|
if (item.matchmaking?.title) {
|
|
@@ -416,8 +453,17 @@ export function registerTools(api) {
|
|
|
416
453
|
const requestId = params.requestId;
|
|
417
454
|
try {
|
|
418
455
|
const result = await acceptRequest(cfg, apiKey, requestId);
|
|
419
|
-
|
|
420
|
-
|
|
456
|
+
// Prefer NodeRef on `counterparty` (since #1450 Phase 1); fall
|
|
457
|
+
// back to legacy `connection.{name, handle}` for older Connector
|
|
458
|
+
// versions or when enrichment returned null.
|
|
459
|
+
const node = result.counterparty;
|
|
460
|
+
const who = node?.displayName ||
|
|
461
|
+
node?.handle ||
|
|
462
|
+
result.connection.name ||
|
|
463
|
+
result.connection.handle;
|
|
464
|
+
const handle = node?.handle || result.connection.handle;
|
|
465
|
+
const kindLabel = formatKindLabel(node?.kind);
|
|
466
|
+
return textResult(`Connected with ${kindLabel}${who} (@${handle})! You can now send messages using masons_send_message.`);
|
|
421
467
|
}
|
|
422
468
|
catch (err) {
|
|
423
469
|
if (err instanceof PlatformApiError && err.status === 404) {
|
|
@@ -476,7 +522,15 @@ export function registerTools(api) {
|
|
|
476
522
|
if (result.total === 0) {
|
|
477
523
|
return textResult("No connections yet. Use masons_send_connection_request to connect with other agents.");
|
|
478
524
|
}
|
|
479
|
-
const lines = result.items.map((item, i) =>
|
|
525
|
+
const lines = result.items.map((item, i) => {
|
|
526
|
+
// NodeRef on `counterparty` (since #1450 Phase 1); falls back to
|
|
527
|
+
// legacy `name + address` for older Connector versions.
|
|
528
|
+
const node = item.counterparty;
|
|
529
|
+
const displayName = node?.displayName || node?.handle || item.name || "(unnamed)";
|
|
530
|
+
const address = node?.mstpAddress || item.address;
|
|
531
|
+
const kindLabel = formatKindLabel(node?.kind);
|
|
532
|
+
return `${i + 1}. ${kindLabel}${displayName} (${address})`;
|
|
533
|
+
});
|
|
480
534
|
return textResult(`${result.total} connection(s):\n\n${lines.join("\n")}\n\nUse masons_send_message with a handle or address to send a message.`);
|
|
481
535
|
}),
|
|
482
536
|
});
|
package/dist/types.d.ts
CHANGED
|
@@ -61,7 +61,25 @@ export interface SendAckEvent {
|
|
|
61
61
|
messageId: string;
|
|
62
62
|
status: "delivered" | "stored";
|
|
63
63
|
}
|
|
64
|
-
/** Message received from a routable address.
|
|
64
|
+
/** Message received from a routable address.
|
|
65
|
+
*
|
|
66
|
+
* The `metadata` bag is intentionally `Record<string, unknown>` — the wire
|
|
67
|
+
* contract does not constrain it. Two shapes the Connector may project:
|
|
68
|
+
* - **Full Node sender** (Node ↔ Node): `metadata.sender` carries a
|
|
69
|
+
* NodeRef-shaped projection per
|
|
70
|
+
* `docs/concepts/human-node-capability-obligations.md § 2`, alongside
|
|
71
|
+
* the existing Identified-Client back-compat fields. See {@link NodeRefView}
|
|
72
|
+
* and `apps/connector/src/routes/root.ts` § Piece 2 projection.
|
|
73
|
+
* - **Identified / Anonymous Client sender** (Client → Node):
|
|
74
|
+
* `metadata.sender` is absent; only `visitor_name`, `is_owner`,
|
|
75
|
+
* `client_type` per
|
|
76
|
+
* `docs/concepts/client-to-node-capability-obligations.md § 2`.
|
|
77
|
+
*
|
|
78
|
+
* Discriminator semantics on the wire: when `metadata.sender` is present,
|
|
79
|
+
* it is the AUTHORITATIVE identity of the sender — consumers updated to
|
|
80
|
+
* recognise NodeRef MUST treat `metadata.sender` as the source of truth
|
|
81
|
+
* and the legacy fields as deprecated annotations. See `channel.ts §
|
|
82
|
+
* tryProjectNodeRef`. */
|
|
65
83
|
export interface AddressedMessageEvent {
|
|
66
84
|
event: "MESSAGE_RECEIVED";
|
|
67
85
|
from: string;
|
|
@@ -75,6 +93,37 @@ export interface AddressedMessageEvent {
|
|
|
75
93
|
* (online delivery + gap fill). (#1133) */
|
|
76
94
|
seq?: number;
|
|
77
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* NodeRef view, as carried under `AddressedMessageEvent.metadata.sender`
|
|
98
|
+
* by the Connector when the sender is a Full Node (per
|
|
99
|
+
* `docs/concepts/human-node-capability-obligations.md § 2` +
|
|
100
|
+
* `apps/connector/src/routes/root.ts` § Piece 2 projection).
|
|
101
|
+
*
|
|
102
|
+
* Fields:
|
|
103
|
+
* - `kind` — discriminator. MASONS Cloud emits `"user"` (Human Node) or
|
|
104
|
+
* `"agent"` (Agent Node). Consumers MUST accept other string values per
|
|
105
|
+
* the same doc § 5 (forward-compat).
|
|
106
|
+
* - `mstpAddress` — canonical Node identity URI. Always populated when
|
|
107
|
+
* `kind` is. Equality between two NodeRefs is defined as string-equality
|
|
108
|
+
* on `mstpAddress`.
|
|
109
|
+
* - `handle` — handle within the host's namespace. Populated for
|
|
110
|
+
* MASONS-Cloud-hosted Nodes; may be omitted for federated Nodes.
|
|
111
|
+
* - `displayName` — owner-set display name. Optional.
|
|
112
|
+
* - `avatarUrl` — image URL. Optional.
|
|
113
|
+
*
|
|
114
|
+
* Plugin consumption: `channel.ts § tryProjectNodeRef` extracts this view
|
|
115
|
+
* from `event.metadata.sender` when both `kind` and `mstpAddress` are
|
|
116
|
+
* strings. Callers that receive a non-null view route via the standard
|
|
117
|
+
* Node-peer dispatch path; callers that receive null fall through to the
|
|
118
|
+
* Client-side metadata shape (`visitor_name`, `is_owner`, `client_type`).
|
|
119
|
+
*/
|
|
120
|
+
export interface NodeRefView {
|
|
121
|
+
kind: string;
|
|
122
|
+
mstpAddress: string;
|
|
123
|
+
handle?: string;
|
|
124
|
+
displayName?: string;
|
|
125
|
+
avatarUrl?: string;
|
|
126
|
+
}
|
|
78
127
|
/** Notification that stored messages have been delivered. */
|
|
79
128
|
export interface DeliveryPendingEvent {
|
|
80
129
|
event: "DELIVERY_PENDING";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAQ1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;8EAE0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,QAAQ,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD;gCAC4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;CAChC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAQ1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;8EAE0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,QAAQ,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD;gCAC4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;0BAkB0B;AAC1B,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;gDAE4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mDAAmD;AACnD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,kBAAkB,GAClB,oBAAoB,GACpB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,YAAY,GACZ,qBAAqB,GACrB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,CAAC;AAUzB,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,gBAAgB,CAErE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAM7D;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,qBAAqB,CAO/B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,oBAAoB,CAO7E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,mBAAmB,CAO3E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,oBAAoB,CAO7E"}
|
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.5.
|
|
2
|
+
export const PLUGIN_VERSION = "0.5.13";
|
package/package.json
CHANGED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Lifecycle — manages MSTP session state per contact.
|
|
3
|
-
*
|
|
4
|
-
* State machine: idle -> creating -> active -> recreating -> failed.
|
|
5
|
-
* Internal key: MSTP address (not handle) — supports same handle on different Connectors.
|
|
6
|
-
*
|
|
7
|
-
* Responsibilities:
|
|
8
|
-
* - Maps MSTP address to session state (sessionId, status, pending promise)
|
|
9
|
-
* - Auto-creates sessions on demand via ensureSession()
|
|
10
|
-
* - Deduplicates concurrent creates (second caller awaits first's promise)
|
|
11
|
-
* - Registers inbound sessions from remote agents
|
|
12
|
-
* - Invalidates all sessions on transport disconnect
|
|
13
|
-
* - Subscribes to ConnectorClient events: session_created, session_error, session_ended, disconnected
|
|
14
|
-
*
|
|
15
|
-
* @see docs/openclaw/session-abstraction-system-design.md §6.1
|
|
16
|
-
*/
|
|
17
|
-
import type { ConnectorClient } from "./connector-client.js";
|
|
18
|
-
export type SessionStatus = "idle" | "creating" | "active" | "recreating" | "failed";
|
|
19
|
-
export interface SessionState {
|
|
20
|
-
status: SessionStatus;
|
|
21
|
-
sessionId: string | null;
|
|
22
|
-
pendingRequestId: string | null;
|
|
23
|
-
retryCount: number;
|
|
24
|
-
/** Promise that resolves when session creation completes. Used for dedup. */
|
|
25
|
-
createPromise: Promise<string> | null;
|
|
26
|
-
/** Resolve function for the create promise. */
|
|
27
|
-
createResolve: ((sessionId: string) => void) | null;
|
|
28
|
-
/** Reject function for the create promise. */
|
|
29
|
-
createReject: ((err: Error) => void) | null;
|
|
30
|
-
}
|
|
31
|
-
export declare class SessionLifecycle {
|
|
32
|
-
private readonly client;
|
|
33
|
-
/** Primary map: MSTP address -> session state */
|
|
34
|
-
private readonly sessions;
|
|
35
|
-
/** Reverse index: sessionId -> MSTP address */
|
|
36
|
-
private readonly sessionToAddress;
|
|
37
|
-
/** Configurable timeout for tests */
|
|
38
|
-
private timeoutMs;
|
|
39
|
-
constructor(client: ConnectorClient);
|
|
40
|
-
/**
|
|
41
|
-
* Ensure an active session exists for the given address.
|
|
42
|
-
* Returns the sessionId. Creates a new session if none exists.
|
|
43
|
-
* Concurrent callers get the same promise (dedup).
|
|
44
|
-
*/
|
|
45
|
-
ensureSession(address: string): Promise<string>;
|
|
46
|
-
/**
|
|
47
|
-
* Get the active sessionId for an address, or null.
|
|
48
|
-
*/
|
|
49
|
-
getSession(address: string): string | null;
|
|
50
|
-
/**
|
|
51
|
-
* Close the session for an address.
|
|
52
|
-
*/
|
|
53
|
-
closeSession(address: string, reason?: string): void;
|
|
54
|
-
/**
|
|
55
|
-
* Register an inbound session (remote initiated).
|
|
56
|
-
*/
|
|
57
|
-
registerInbound(sessionId: string, address: string): void;
|
|
58
|
-
/**
|
|
59
|
-
* Invalidate all sessions. Called on transport disconnect.
|
|
60
|
-
* Conversations are preserved but sessions are cleared.
|
|
61
|
-
*/
|
|
62
|
-
invalidateAll(): void;
|
|
63
|
-
/**
|
|
64
|
-
* Reverse lookup: sessionId -> MSTP address.
|
|
65
|
-
*/
|
|
66
|
-
getAddressBySessionId(sessionId: string): string | undefined;
|
|
67
|
-
/**
|
|
68
|
-
* Get all session entries (for listing conversations).
|
|
69
|
-
*/
|
|
70
|
-
listSessions(): Array<{
|
|
71
|
-
address: string;
|
|
72
|
-
status: SessionStatus;
|
|
73
|
-
sessionId: string | null;
|
|
74
|
-
}>;
|
|
75
|
-
/**
|
|
76
|
-
* Remove a session entry entirely (for endConversation).
|
|
77
|
-
*/
|
|
78
|
-
removeSession(address: string): void;
|
|
79
|
-
/** @internal Override timeout for tests. */
|
|
80
|
-
_setTimeoutForTesting(ms: number): void;
|
|
81
|
-
/** @internal Reset for test isolation. */
|
|
82
|
-
_resetForTesting(): void;
|
|
83
|
-
private subscribe;
|
|
84
|
-
private createNewSession;
|
|
85
|
-
private handleSessionCreated;
|
|
86
|
-
private handleSessionEnded;
|
|
87
|
-
private handleSessionError;
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=session-lifecycle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-lifecycle.d.ts","sourceRoot":"","sources":["../src/session-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,+CAA+C;IAC/C,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,8CAA8C;IAC9C,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAaD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAE9D,qCAAqC;IACrC,OAAO,CAAC,SAAS,CAA6B;gBAElC,MAAM,EAAE,eAAe;IASnC;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB/C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ1C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBpD;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAqBzD;;;OAGG;IACH,aAAa,IAAI,IAAI;IAqBrB;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5D;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,aAAa,CAAC;QACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IAgBF;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAcpC,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvC,0CAA0C;IAC1C,gBAAgB,IAAI,IAAI;IAmBxB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,gBAAgB;IA+GxB,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;CA0B3B"}
|