@masons/agent-network 0.5.325 → 0.6.1
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-setup.d.ts +1 -1
- package/dist/channel-setup.d.ts.map +1 -1
- package/dist/channel-setup.js +11 -5
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +1 -2
- package/dist/cli-setup.d.ts.map +1 -1
- package/dist/cli-setup.js +18 -1
- package/dist/connector-client.d.ts +8 -1
- package/dist/connector-client.d.ts.map +1 -1
- package/dist/connector-client.js +95 -12
- package/dist/connector-url-boundary.d.ts +12 -0
- package/dist/connector-url-boundary.d.ts.map +1 -0
- package/dist/connector-url-boundary.js +66 -0
- package/dist/handoff.d.ts +2 -0
- package/dist/handoff.d.ts.map +1 -1
- package/dist/handoff.js +6 -1
- package/dist/platform-client.d.ts.map +1 -1
- package/dist/runtime-endpoint-client.d.ts +24 -1
- package/dist/runtime-endpoint-client.d.ts.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +18 -7
- package/dist/types.d.ts +15 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +15 -10
package/dist/channel-setup.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-setup.d.ts","sourceRoot":"","sources":["../src/channel-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel-setup.d.ts","sourceRoot":"","sources":["../src/channel-setup.ts"],"names":[],"mappings":"AAgBA,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAMnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuBD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAgB,6BAA6B,IAAI,wBAAwB,CAKxE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAsC7B;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAejE;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,GAAG,IAAI,CAMrE;AAkED,wBAAgB,4BAA4B,IAAI,IAAI,CAGnD;AAED,eAAO,MAAM,oBAAoB,QAAqB,CAAC"}
|
package/dist/channel-setup.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { readExistingConnectorUrl, writeCredentials, } from "./config.js";
|
|
2
|
+
import { resolveConnectorUrlForSetup } from "./connector-url-boundary.js";
|
|
2
3
|
import { beginBridgeHandoff, completeBridgeHandoff, DEFAULT_IDP_BASE_URL, HANDOFF_TIMEOUT_MS, SetupFlowError, } from "./handoff.js";
|
|
3
|
-
import { DEFAULT_API_HOST
|
|
4
|
+
import { DEFAULT_API_HOST } from "./platform-client.js";
|
|
4
5
|
let pendingSetup = null;
|
|
5
6
|
let lastSetupStatus = null;
|
|
6
7
|
export function getDefaultChannelSetupOptions() {
|
|
7
8
|
return {
|
|
8
9
|
apiHost: DEFAULT_API_HOST,
|
|
9
|
-
connectorUrl: DEFAULT_CONNECTOR_URL,
|
|
10
10
|
idpBaseUrl: DEFAULT_IDP_BASE_URL,
|
|
11
11
|
};
|
|
12
12
|
}
|
|
@@ -20,14 +20,21 @@ export async function startOrGetChannelSetup(options) {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
lastSetupStatus = null;
|
|
23
|
+
const existingConnectorUrl = await readExistingConnectorUrl();
|
|
24
|
+
const connectorUrl = resolveConnectorUrlForSetup({
|
|
25
|
+
apiHost: options.apiHost,
|
|
26
|
+
existingConnectorUrl,
|
|
27
|
+
configuredConnectorUrl: options.connectorUrl,
|
|
28
|
+
});
|
|
23
29
|
const session = await beginBridgeHandoff({
|
|
24
30
|
apiHost: options.apiHost,
|
|
25
31
|
idpBaseUrl: options.idpBaseUrl,
|
|
32
|
+
sessionTopology: "single_session",
|
|
26
33
|
});
|
|
27
34
|
const record = {
|
|
28
35
|
session,
|
|
29
36
|
apiHost: options.apiHost,
|
|
30
|
-
connectorUrl
|
|
37
|
+
connectorUrl,
|
|
31
38
|
idpBaseUrl: options.idpBaseUrl,
|
|
32
39
|
invitedBy: options.invitedBy,
|
|
33
40
|
};
|
|
@@ -81,9 +88,8 @@ async function completePendingSetup(record) {
|
|
|
81
88
|
const handoff = await completeBridgeHandoff(record.session);
|
|
82
89
|
if (pendingSetup !== record)
|
|
83
90
|
return;
|
|
84
|
-
const existingConnectorUrl = await readExistingConnectorUrl();
|
|
85
91
|
const creds = {
|
|
86
|
-
connectorUrl:
|
|
92
|
+
connectorUrl: record.connectorUrl,
|
|
87
93
|
token: handoff.token,
|
|
88
94
|
};
|
|
89
95
|
await writeCredentials(creds, record.apiHost, record.idpBaseUrl, record.invitedBy);
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAoC9D,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAOD,wBAAgB,2BAA2B,IAAI,OAAO,CAIrD;AAGD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE/D;AAUD,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,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,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;AA2DD,iBAAS,iCAAiC,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BzB;AAED,eAAO,MAAM,4CAA4C,0CACtB,CAAC;AAEpC,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;AAmaD,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAoC9D,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAOD,wBAAgB,2BAA2B,IAAI,OAAO,CAIrD;AAGD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE/D;AAUD,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,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,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;AA2DD,iBAAS,iCAAiC,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BzB;AAED,eAAO,MAAM,4CAA4C,0CACtB,CAAC;AAEpC,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;AAmaD,eAAO,MAAM,mBAAmB,EAAE,yBA0NjC,CAAC"}
|
package/dist/channel.js
CHANGED
|
@@ -349,8 +349,7 @@ export const agentNetworkChannel = {
|
|
|
349
349
|
await handleAddressedMessage(event, conversationManager, client, ctx);
|
|
350
350
|
});
|
|
351
351
|
client.on("delivery_pending", (event) => {
|
|
352
|
-
|
|
353
|
-
dbg("delivery_pending → ACK sent count=%d upTo=%s", event.count, event.upTo);
|
|
352
|
+
dbg("legacy delivery_pending ignored count=%d upTo=%s", event.count, event.upTo);
|
|
354
353
|
});
|
|
355
354
|
client.on("disconnected", () => {
|
|
356
355
|
clearOwnerState();
|
package/dist/cli-setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-setup.d.ts","sourceRoot":"","sources":["../src/cli-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-setup.d.ts","sourceRoot":"","sources":["../src/cli-setup.ts"],"names":[],"mappings":"AAyFA,UAAU,eAAe;IACvB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAOD,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiFD,wBAAsB,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEhE"}
|
package/dist/cli-setup.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readExistingConnectorUrl, writeCredentials } from "./config.js";
|
|
2
|
+
import { ConnectorUrlConfigurationError, resolveConnectorUrlForSetup, } from "./connector-url-boundary.js";
|
|
2
3
|
import { beginBridgeHandoff, completeBridgeHandoff, DEFAULT_IDP_BASE_URL, SetupFlowError, } from "./handoff.js";
|
|
3
4
|
import { DEFAULT_API_HOST, DEFAULT_CONNECTOR_URL, PlatformApiError, } from "./platform-client.js";
|
|
4
5
|
async function serverBridgeHandoffFlow(apiHost, idpBaseUrl, runtime, channelInput) {
|
|
@@ -6,6 +7,7 @@ async function serverBridgeHandoffFlow(apiHost, idpBaseUrl, runtime, channelInpu
|
|
|
6
7
|
apiHost,
|
|
7
8
|
idpBaseUrl,
|
|
8
9
|
channelInput,
|
|
10
|
+
sessionTopology: "single_session",
|
|
9
11
|
});
|
|
10
12
|
runtime.writeStdout([
|
|
11
13
|
"",
|
|
@@ -39,7 +41,22 @@ export async function login(ctx) {
|
|
|
39
41
|
}
|
|
40
42
|
const existingConnectorUrl = await readExistingConnectorUrl();
|
|
41
43
|
const configuredConnectorUrl = typeof ctx.cfg.connectorUrl === "string" ? ctx.cfg.connectorUrl : undefined;
|
|
42
|
-
|
|
44
|
+
let connectorUrl;
|
|
45
|
+
try {
|
|
46
|
+
connectorUrl = resolveConnectorUrlForSetup({
|
|
47
|
+
apiHost,
|
|
48
|
+
existingConnectorUrl,
|
|
49
|
+
configuredConnectorUrl,
|
|
50
|
+
defaultConnectorUrl: DEFAULT_CONNECTOR_URL,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
if (err instanceof ConnectorUrlConfigurationError) {
|
|
55
|
+
ctx.runtime.error(err.message);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
43
60
|
await writeCredentials({ connectorUrl, token: handoff.token }, apiHost, idpBaseUrl);
|
|
44
61
|
ctx.runtime.log(`✓ Connected as @${handoff.agent.handle}`);
|
|
45
62
|
}
|
|
@@ -27,13 +27,17 @@ export declare class ConnectorClient extends EventEmitter {
|
|
|
27
27
|
private registerReject;
|
|
28
28
|
private registerTimer;
|
|
29
29
|
private lastKnownSeq;
|
|
30
|
+
private readonly pendingSeqMessages;
|
|
31
|
+
private readonly seenPayloadIds;
|
|
32
|
+
private readonly seenPayloadIdOrder;
|
|
30
33
|
private pendingSends;
|
|
31
34
|
constructor(url: string, token: string);
|
|
32
35
|
connect(): Promise<void>;
|
|
33
36
|
disconnect(): void;
|
|
34
37
|
send(to: string, content: string, contentType?: string, metadata?: Record<string, unknown>): Promise<SendAckEvent>;
|
|
35
38
|
sendTyping(to: string, isTyping: boolean): boolean;
|
|
36
|
-
ackDelivery(
|
|
39
|
+
ackDelivery(upToSeq: number): boolean;
|
|
40
|
+
requestGapFill(sinceSeq: number): boolean;
|
|
37
41
|
on<K extends keyof ConnectorClientEvents>(event: K, listener: ConnectorClientEvents[K]): this;
|
|
38
42
|
on(event: string | symbol, listener: (...args: unknown[]) => void): this;
|
|
39
43
|
once<K extends keyof ConnectorClientEvents>(event: K, listener: ConnectorClientEvents[K]): this;
|
|
@@ -49,6 +53,9 @@ export declare class ConnectorClient extends EventEmitter {
|
|
|
49
53
|
private rejectRegister;
|
|
50
54
|
private handleMessage;
|
|
51
55
|
private dispatchAddressed;
|
|
56
|
+
private handleAddressedMessage;
|
|
57
|
+
private acceptContiguous;
|
|
58
|
+
private rememberPayloadId;
|
|
52
59
|
private handleRegisterAck;
|
|
53
60
|
private handleSendAck;
|
|
54
61
|
private handleStructuredError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-client.d.ts","sourceRoot":"","sources":["../src/connector-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAEL,KAAK,qBAAqB,EAI1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"connector-client.d.ts","sourceRoot":"","sources":["../src/connector-client.ts"],"names":[],"mappings":"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"}
|
package/dist/connector-client.js
CHANGED
|
@@ -3,7 +3,7 @@ import { EventEmitter } from "node:events";
|
|
|
3
3
|
import createDebug from "debug";
|
|
4
4
|
import WebSocket from "ws";
|
|
5
5
|
import { setEnvironmentContext } from "./environment-context.js";
|
|
6
|
-
import { CURRENT_PROTOCOL_VERSION, isAddressedMessage, isDeliveryPending, isDeliveryStatus, isRegisterAck, isSendAck, isStructuredError, REGISTER_ACK_TIMEOUT_MS, SEND_ACK_TIMEOUT_MS, } from "./types.js";
|
|
6
|
+
import { CURRENT_PROTOCOL_VERSION, isAddressedMessage, isDeliveryCursor, isDeliveryPending, isDeliveryStatus, isRegisterAck, isSendAck, isStructuredError, REGISTER_ACK_TIMEOUT_MS, SEND_ACK_TIMEOUT_MS, } from "./types.js";
|
|
7
7
|
import { PLUGIN_VERSION } from "./version.js";
|
|
8
8
|
const dbg = createDebug("agent-network:connector");
|
|
9
9
|
const dbgMsg = createDebug("agent-network:connector:msg");
|
|
@@ -13,6 +13,7 @@ const ALREADY_CONNECTED_RETRY_MS = 2_000;
|
|
|
13
13
|
const ALREADY_CONNECTED_MAX_RETRIES = 30;
|
|
14
14
|
const REPLACED_BY_NEW_RUNTIME_REASON = "Replaced by new Runtime";
|
|
15
15
|
const REPLACED_BY_NEW_RUNTIME_CODE = 4001;
|
|
16
|
+
const SEEN_PAYLOAD_ID_CAP = 4096;
|
|
16
17
|
export class ConnectorError extends Error {
|
|
17
18
|
code;
|
|
18
19
|
to;
|
|
@@ -35,6 +36,9 @@ export class ConnectorClient extends EventEmitter {
|
|
|
35
36
|
registerReject = null;
|
|
36
37
|
registerTimer = null;
|
|
37
38
|
lastKnownSeq;
|
|
39
|
+
pendingSeqMessages = new Map();
|
|
40
|
+
seenPayloadIds = new Set();
|
|
41
|
+
seenPayloadIdOrder = [];
|
|
38
42
|
pendingSends = new Map();
|
|
39
43
|
constructor(url, token) {
|
|
40
44
|
super();
|
|
@@ -91,10 +95,16 @@ export class ConnectorClient extends EventEmitter {
|
|
|
91
95
|
dbg("sendTyping to=%s isTyping=%s sent=%s", to, isTyping, sent);
|
|
92
96
|
return sent;
|
|
93
97
|
}
|
|
94
|
-
ackDelivery(
|
|
95
|
-
const event = { event: "DELIVERY_ACK",
|
|
98
|
+
ackDelivery(upToSeq) {
|
|
99
|
+
const event = { event: "DELIVERY_ACK", upToSeq };
|
|
96
100
|
const sent = this.sendEvent(event);
|
|
97
|
-
dbg("ackDelivery
|
|
101
|
+
dbg("ackDelivery upToSeq=%d sent=%s", upToSeq, sent);
|
|
102
|
+
return sent;
|
|
103
|
+
}
|
|
104
|
+
requestGapFill(sinceSeq) {
|
|
105
|
+
const event = { event: "REQUEST_GAP_FILL", sinceSeq };
|
|
106
|
+
const sent = this.sendEvent(event);
|
|
107
|
+
dbg("REQUEST_GAP_FILL sinceSeq=%d sent=%s", sinceSeq, sent);
|
|
98
108
|
return sent;
|
|
99
109
|
}
|
|
100
110
|
on(event, listener) {
|
|
@@ -188,11 +198,7 @@ export class ConnectorClient extends EventEmitter {
|
|
|
188
198
|
}
|
|
189
199
|
if (isAddressedMessage(parsed)) {
|
|
190
200
|
dbgMsg("MESSAGE_RECEIVED from=%s contentLength=%d seq=%s", parsed.from, parsed.content.length, parsed.seq ?? "none");
|
|
191
|
-
|
|
192
|
-
(this.lastKnownSeq === undefined || parsed.seq > this.lastKnownSeq)) {
|
|
193
|
-
this.lastKnownSeq = parsed.seq;
|
|
194
|
-
}
|
|
195
|
-
this.emit("message_received", parsed);
|
|
201
|
+
this.handleAddressedMessage(parsed);
|
|
196
202
|
return;
|
|
197
203
|
}
|
|
198
204
|
if (isDeliveryPending(parsed)) {
|
|
@@ -205,23 +211,100 @@ export class ConnectorClient extends EventEmitter {
|
|
|
205
211
|
this.emit("delivery_status", parsed);
|
|
206
212
|
return;
|
|
207
213
|
}
|
|
214
|
+
if (isDeliveryCursor(parsed)) {
|
|
215
|
+
const floor = this.lastKnownSeq ?? 0;
|
|
216
|
+
dbg("DELIVERY_CURSOR deliverySeq=%d deliveredSeq=%s local=%d", parsed.deliverySeq, parsed.deliveredSeq ?? "none", floor);
|
|
217
|
+
if (parsed.deliverySeq > floor) {
|
|
218
|
+
this.requestGapFill(floor);
|
|
219
|
+
}
|
|
220
|
+
else if (parsed.deliveredSeq !== undefined &&
|
|
221
|
+
this.lastKnownSeq !== undefined &&
|
|
222
|
+
parsed.deliveredSeq < this.lastKnownSeq) {
|
|
223
|
+
this.ackDelivery(this.lastKnownSeq);
|
|
224
|
+
}
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
208
227
|
if (isStructuredError(parsed)) {
|
|
209
228
|
dbg("ERROR code=%s message=%s", parsed.code, parsed.message);
|
|
210
229
|
this.handleStructuredError(parsed);
|
|
211
230
|
return;
|
|
212
231
|
}
|
|
213
232
|
}
|
|
233
|
+
handleAddressedMessage(message) {
|
|
234
|
+
if (message.messageId && this.rememberPayloadId(message.messageId)) {
|
|
235
|
+
dbgMsg("duplicate MESSAGE_RECEIVED ignored messageId=%s", message.messageId);
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (typeof message.seq !== "number") {
|
|
239
|
+
this.emit("message_received", message);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const floor = this.lastKnownSeq ?? 0;
|
|
243
|
+
if (message.seq <= floor)
|
|
244
|
+
return;
|
|
245
|
+
if (message.seq > floor + 1) {
|
|
246
|
+
this.pendingSeqMessages.set(message.seq, message);
|
|
247
|
+
this.requestGapFill(floor);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
this.acceptContiguous(message);
|
|
251
|
+
}
|
|
252
|
+
acceptContiguous(message) {
|
|
253
|
+
const seq = message.seq;
|
|
254
|
+
if (typeof seq !== "number")
|
|
255
|
+
return;
|
|
256
|
+
this.emit("message_received", message);
|
|
257
|
+
this.lastKnownSeq = seq;
|
|
258
|
+
let next = seq + 1;
|
|
259
|
+
while (this.pendingSeqMessages.has(next)) {
|
|
260
|
+
const pending = this.pendingSeqMessages.get(next);
|
|
261
|
+
this.pendingSeqMessages.delete(next);
|
|
262
|
+
if (!pending)
|
|
263
|
+
break;
|
|
264
|
+
this.emit("message_received", pending);
|
|
265
|
+
this.lastKnownSeq = next;
|
|
266
|
+
next++;
|
|
267
|
+
}
|
|
268
|
+
this.ackDelivery(next - 1);
|
|
269
|
+
}
|
|
270
|
+
rememberPayloadId(payloadId) {
|
|
271
|
+
if (this.seenPayloadIds.has(payloadId))
|
|
272
|
+
return true;
|
|
273
|
+
this.seenPayloadIds.add(payloadId);
|
|
274
|
+
this.seenPayloadIdOrder.push(payloadId);
|
|
275
|
+
while (this.seenPayloadIdOrder.length > SEEN_PAYLOAD_ID_CAP) {
|
|
276
|
+
const evicted = this.seenPayloadIdOrder.shift();
|
|
277
|
+
if (evicted)
|
|
278
|
+
this.seenPayloadIds.delete(evicted);
|
|
279
|
+
}
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
214
282
|
handleRegisterAck(ack) {
|
|
215
283
|
dbg("REGISTER_ACK status=%s protocolVersion=%d", ack.status, ack.protocolVersion);
|
|
216
284
|
if (ack.status === "ok") {
|
|
217
285
|
if (ack.protocolVersion !== CURRENT_PROTOCOL_VERSION) {
|
|
218
|
-
|
|
286
|
+
const reason = `Unsupported protocol version: ${ack.protocolVersion}`;
|
|
287
|
+
this.intentionalClose = true;
|
|
288
|
+
this.rejectRegister(new Error(reason));
|
|
289
|
+
this.emit("error", new Error(reason));
|
|
290
|
+
this.ws?.close(4001, reason);
|
|
291
|
+
return;
|
|
219
292
|
}
|
|
220
293
|
setEnvironmentContext(ack.agent, ack.owner);
|
|
221
294
|
if (typeof ack.deliverySeq === "number" &&
|
|
222
|
-
this.lastKnownSeq === undefined) {
|
|
295
|
+
(this.lastKnownSeq === undefined || ack.deliverySeq > this.lastKnownSeq)) {
|
|
223
296
|
this.lastKnownSeq = ack.deliverySeq;
|
|
224
|
-
|
|
297
|
+
for (const seq of [...this.pendingSeqMessages.keys()]) {
|
|
298
|
+
if (seq <= ack.deliverySeq)
|
|
299
|
+
this.pendingSeqMessages.delete(seq);
|
|
300
|
+
}
|
|
301
|
+
dbg("delivery cursor reconciled: %d", ack.deliverySeq);
|
|
302
|
+
}
|
|
303
|
+
else if (typeof ack.deliverySeq === "number" &&
|
|
304
|
+
this.lastKnownSeq !== undefined &&
|
|
305
|
+
ack.deliverySeq < this.lastKnownSeq) {
|
|
306
|
+
this.ackDelivery(this.lastKnownSeq);
|
|
307
|
+
dbg("delivery cursor re-ack requested: server=%d local=%d", ack.deliverySeq, this.lastKnownSeq);
|
|
225
308
|
}
|
|
226
309
|
this.backoffMs = BACKOFF_INITIAL_MS;
|
|
227
310
|
this.alreadyConnectedRetries = 0;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const MASONS_CLOUD_TRANSPORT_BY_API_HOST: Record<string, string>;
|
|
2
|
+
export declare const MASONS_CLOUD_IDENTITY_AUTHORITY_HOSTS: Set<string>;
|
|
3
|
+
export declare class ConnectorUrlConfigurationError extends Error {
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function resolveConnectorUrlForSetup(input: {
|
|
7
|
+
apiHost: string;
|
|
8
|
+
existingConnectorUrl?: string;
|
|
9
|
+
configuredConnectorUrl?: string;
|
|
10
|
+
defaultConnectorUrl?: string;
|
|
11
|
+
}): string;
|
|
12
|
+
//# sourceMappingURL=connector-url-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-url-boundary.d.ts","sourceRoot":"","sources":["../src/connector-url-boundary.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrE,CAAC;AAEF,eAAO,MAAM,qCAAqC,aAGhD,CAAC;AAEH,qBAAa,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,SAAoC;CAClD;AA+CD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,MAAM,CA4BT"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DEFAULT_CONNECTOR_URL } from "./platform-client.js";
|
|
2
|
+
export const MASONS_CLOUD_TRANSPORT_BY_API_HOST = {
|
|
3
|
+
"api.masons.ai": "connectorapi.masons.ai",
|
|
4
|
+
"preview-api.masons.ai": "preview-connectorapi.masons.ai",
|
|
5
|
+
};
|
|
6
|
+
export const MASONS_CLOUD_IDENTITY_AUTHORITY_HOSTS = new Set([
|
|
7
|
+
"masons.ai",
|
|
8
|
+
"preview.masons.ai",
|
|
9
|
+
]);
|
|
10
|
+
export class ConnectorUrlConfigurationError extends Error {
|
|
11
|
+
name = "ConnectorUrlConfigurationError";
|
|
12
|
+
}
|
|
13
|
+
function normalizeHost(value) {
|
|
14
|
+
const trimmed = value.trim().replace(/\/+$/, "");
|
|
15
|
+
const withScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed)
|
|
16
|
+
? trimmed
|
|
17
|
+
: `https://${trimmed}`;
|
|
18
|
+
try {
|
|
19
|
+
return new URL(withScheme).hostname.toLowerCase();
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return trimmed.toLowerCase();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function parseUrl(value) {
|
|
26
|
+
try {
|
|
27
|
+
return new URL(value);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function defaultMasonsCloudConnectorUrl(apiHost) {
|
|
34
|
+
const transportHost = MASONS_CLOUD_TRANSPORT_BY_API_HOST[normalizeHost(apiHost)];
|
|
35
|
+
return transportHost ? `wss://${transportHost}/gateway` : undefined;
|
|
36
|
+
}
|
|
37
|
+
function healKnownStaleMasonsCloudConnectorUrl(connectorUrl, apiHost) {
|
|
38
|
+
if (!connectorUrl)
|
|
39
|
+
return undefined;
|
|
40
|
+
const transportDefault = defaultMasonsCloudConnectorUrl(apiHost);
|
|
41
|
+
if (!transportDefault)
|
|
42
|
+
return connectorUrl;
|
|
43
|
+
const parsed = parseUrl(connectorUrl);
|
|
44
|
+
if (!parsed)
|
|
45
|
+
return connectorUrl;
|
|
46
|
+
if (!MASONS_CLOUD_IDENTITY_AUTHORITY_HOSTS.has(parsed.hostname.toLowerCase())) {
|
|
47
|
+
return connectorUrl;
|
|
48
|
+
}
|
|
49
|
+
return transportDefault;
|
|
50
|
+
}
|
|
51
|
+
export function resolveConnectorUrlForSetup(input) {
|
|
52
|
+
const cloudDefault = defaultMasonsCloudConnectorUrl(input.apiHost);
|
|
53
|
+
const existingConnectorUrl = healKnownStaleMasonsCloudConnectorUrl(input.existingConnectorUrl, input.apiHost);
|
|
54
|
+
if (existingConnectorUrl)
|
|
55
|
+
return existingConnectorUrl;
|
|
56
|
+
const configuredConnectorUrl = healKnownStaleMasonsCloudConnectorUrl(input.configuredConnectorUrl, input.apiHost);
|
|
57
|
+
if (configuredConnectorUrl)
|
|
58
|
+
return configuredConnectorUrl;
|
|
59
|
+
if (cloudDefault)
|
|
60
|
+
return cloudDefault;
|
|
61
|
+
if (input.defaultConnectorUrl &&
|
|
62
|
+
input.defaultConnectorUrl !== DEFAULT_CONNECTOR_URL) {
|
|
63
|
+
return input.defaultConnectorUrl;
|
|
64
|
+
}
|
|
65
|
+
throw new ConnectorUrlConfigurationError(`connectorUrl is required for self-hosted apiHost "${normalizeHost(input.apiHost)}". Configure the Connector transport URL explicitly; the MASONS preview Connector default is only used for MASONS Cloud accounts.`);
|
|
66
|
+
}
|
package/dist/handoff.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare const DEFAULT_IDP_BASE_URL = "https://preview.masons.ai";
|
|
|
3
3
|
export declare const HANDOFF_TIMEOUT_MS: number;
|
|
4
4
|
export declare class SetupFlowError extends Error {
|
|
5
5
|
}
|
|
6
|
+
export type AgentSessionTopology = "single_session" | "multi_session";
|
|
6
7
|
export interface BridgeHandoffResult {
|
|
7
8
|
token: string;
|
|
8
9
|
agent: {
|
|
@@ -22,6 +23,7 @@ export interface BeginBridgeHandoffOptions {
|
|
|
22
23
|
apiHost: string;
|
|
23
24
|
idpBaseUrl: string;
|
|
24
25
|
channelInput?: string;
|
|
26
|
+
sessionTopology?: AgentSessionTopology;
|
|
25
27
|
}
|
|
26
28
|
export declare function beginBridgeHandoff(options: BeginBridgeHandoffOptions): Promise<BridgeHandoffSession>;
|
|
27
29
|
export declare function completeBridgeHandoff(session: BridgeHandoffSession): Promise<BridgeHandoffResult>;
|
package/dist/handoff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAarB,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAiBhE,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAKhD,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAY5C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAQD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAOhB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAarB,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAiBhE,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAKhD,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAY5C,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAQD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAOhB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAMD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAyD/B;AAKD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAmC9B"}
|
package/dist/handoff.js
CHANGED
|
@@ -18,7 +18,12 @@ export async function beginBridgeHandoff(options) {
|
|
|
18
18
|
const initRes = await fetch(`${apiBase}/v1/cli-handoff/init`, {
|
|
19
19
|
method: "POST",
|
|
20
20
|
headers: { "content-type": "application/json" },
|
|
21
|
-
body: JSON.stringify({
|
|
21
|
+
body: JSON.stringify({
|
|
22
|
+
cli_pubkey: cliPubkeySpki,
|
|
23
|
+
...(options.sessionTopology !== undefined
|
|
24
|
+
? { session_topology: options.sessionTopology }
|
|
25
|
+
: {}),
|
|
26
|
+
}),
|
|
22
27
|
});
|
|
23
28
|
if (!initRes.ok) {
|
|
24
29
|
throw new SetupFlowError(`Setup service rejected init (HTTP ${initRes.status}). Retry in a moment; if it persists, check that ${apiBase} is reachable and not behind a proxy that strips the request body.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { PlatformApiError, type PlatformClientConfig } from "./platform-client.js";
|
|
2
2
|
export { PlatformApiError, type PlatformClientConfig };
|
|
3
3
|
export type RuntimeKind = "claude-code" | "openclaw" | "codex" | "passport" | "custom" | (string & {});
|
|
4
|
+
export type RuntimeEndpointCapability = "remote_spawn_v1" | "background_exchange_v1" | "foreground_channel_v1" | (string & {});
|
|
5
|
+
export type EndpointExecutionSurface = "owner_attached" | "headless" | (string & {});
|
|
6
|
+
export type EndpointBackgroundExchangeMode = "resident_endpoint" | "adapter_managed_turn" | (string & {});
|
|
7
|
+
export type RuntimeWorkTargetRef = {
|
|
8
|
+
kind: "projection_endpoint";
|
|
9
|
+
projection_endpoint_id: string;
|
|
10
|
+
background_exchange_mode: "resident_endpoint";
|
|
11
|
+
} | {
|
|
12
|
+
kind: "projection_endpoint";
|
|
13
|
+
projection_endpoint_id: string;
|
|
14
|
+
runtime_session_id: string;
|
|
15
|
+
background_exchange_mode: "adapter_managed_turn";
|
|
16
|
+
};
|
|
4
17
|
export interface WorkspaceMetadata {
|
|
5
18
|
root: string;
|
|
6
19
|
cwd: string;
|
|
7
20
|
remote?: string;
|
|
8
21
|
branch?: string;
|
|
9
22
|
}
|
|
10
|
-
export type ShareWithPeerField = "workspace" | "tracking_ref" | "
|
|
23
|
+
export type ShareWithPeerField = "workspace" | "tracking_ref" | "fingerprint" | (string & {});
|
|
11
24
|
export interface RegisterRuntimeEndpointParams {
|
|
12
25
|
as?: string;
|
|
13
26
|
runtime_kind: RuntimeKind;
|
|
@@ -16,12 +29,18 @@ export interface RegisterRuntimeEndpointParams {
|
|
|
16
29
|
display_label: string;
|
|
17
30
|
workspace?: WorkspaceMetadata;
|
|
18
31
|
tracking_ref?: string;
|
|
32
|
+
runtime_capabilities?: RuntimeEndpointCapability[];
|
|
33
|
+
execution_surface?: EndpointExecutionSurface;
|
|
34
|
+
background_exchange_mode?: EndpointBackgroundExchangeMode;
|
|
19
35
|
share_with_peer?: ShareWithPeerField[];
|
|
20
36
|
}
|
|
21
37
|
export interface RegisterRuntimeEndpointResponse {
|
|
22
38
|
endpoint_id: string;
|
|
23
39
|
node_id: string;
|
|
24
40
|
display_label: string;
|
|
41
|
+
runtime_capabilities?: RuntimeEndpointCapability[];
|
|
42
|
+
execution_surface?: EndpointExecutionSurface;
|
|
43
|
+
background_exchange_mode?: EndpointBackgroundExchangeMode;
|
|
25
44
|
heartbeat_after_seconds: number;
|
|
26
45
|
lease_ttl_seconds: number;
|
|
27
46
|
soft_retention_seconds: number;
|
|
@@ -39,6 +58,10 @@ export interface OwnedRuntimeEndpointView {
|
|
|
39
58
|
fingerprint?: {
|
|
40
59
|
workspace_hash_per_peer?: Record<string, string>;
|
|
41
60
|
};
|
|
61
|
+
runtime_capabilities?: RuntimeEndpointCapability[];
|
|
62
|
+
execution_surface?: EndpointExecutionSurface;
|
|
63
|
+
background_exchange_mode?: EndpointBackgroundExchangeMode;
|
|
64
|
+
runtime_work_target_ref?: RuntimeWorkTargetRef;
|
|
42
65
|
registered_at: string;
|
|
43
66
|
retired_at?: string;
|
|
44
67
|
is_self: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-client.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,CAAC;AAmBvD,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,UAAU,GACV,OAAO,GACP,UAAU,GACV,QAAQ,GACR,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-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":"AAqEA,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,WAAW;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3E,UAAU,OAAO;IACf,YAAY,CACV,IAAI,EAAE,cAAc,GAAG,WAAW,EAClC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,IAAI,CAAC;CACT;AAoDD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAqRD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAqEA,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,WAAW;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3E,UAAU,OAAO;IACf,YAAY,CACV,IAAI,EAAE,cAAc,GAAG,WAAW,EAClC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,IAAI,CAAC;CACT;AAoDD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAqRD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAw0BhD"}
|
package/dist/tools.js
CHANGED
|
@@ -71,7 +71,7 @@ function getSetupOptionsFromToolContext(ctx) {
|
|
|
71
71
|
const cfg = extractSetupConfig(ctx);
|
|
72
72
|
return {
|
|
73
73
|
apiHost: stringValue(cfg.apiHost) ?? defaults.apiHost,
|
|
74
|
-
connectorUrl: stringValue(cfg.connectorUrl)
|
|
74
|
+
connectorUrl: stringValue(cfg.connectorUrl),
|
|
75
75
|
idpBaseUrl: stringValue(cfg.idpBaseUrl) ?? defaults.idpBaseUrl,
|
|
76
76
|
};
|
|
77
77
|
}
|
|
@@ -216,12 +216,23 @@ export function registerTools(api) {
|
|
|
216
216
|
? params.invitedBy
|
|
217
217
|
: undefined;
|
|
218
218
|
const existing = consumeChannelSetupStatus();
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
219
|
+
let result;
|
|
220
|
+
try {
|
|
221
|
+
result = existing
|
|
222
|
+
? existing
|
|
223
|
+
: await startOrGetChannelSetup({
|
|
224
|
+
...getSetupOptionsFromToolContext(ctx),
|
|
225
|
+
invitedBy,
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
result = {
|
|
230
|
+
status: "failed",
|
|
231
|
+
message: err instanceof Error
|
|
232
|
+
? err.message
|
|
233
|
+
: "Agent Network setup failed.",
|
|
234
|
+
};
|
|
235
|
+
}
|
|
225
236
|
return textResult(formatChannelSetupResult(result));
|
|
226
237
|
},
|
|
227
238
|
}), { name: "masons_setup" });
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const CURRENT_PROTOCOL_VERSION =
|
|
1
|
+
export declare const CURRENT_PROTOCOL_VERSION = 3;
|
|
2
2
|
export declare const REGISTER_ACK_TIMEOUT_MS = 15000;
|
|
3
3
|
export declare const SEND_ACK_TIMEOUT_MS = 15000;
|
|
4
4
|
export interface RegisterEvent {
|
|
@@ -23,7 +23,11 @@ export interface AddressedTypingEvent {
|
|
|
23
23
|
}
|
|
24
24
|
export interface AddressedDeliveryAckEvent {
|
|
25
25
|
event: "DELIVERY_ACK";
|
|
26
|
-
|
|
26
|
+
upToSeq: number;
|
|
27
|
+
}
|
|
28
|
+
export interface RequestGapFillEvent {
|
|
29
|
+
event: "REQUEST_GAP_FILL";
|
|
30
|
+
sinceSeq: number;
|
|
27
31
|
}
|
|
28
32
|
export interface RegisterAckEvent {
|
|
29
33
|
event: "REGISTER_ACK";
|
|
@@ -47,6 +51,7 @@ export interface SendAckEvent {
|
|
|
47
51
|
}
|
|
48
52
|
export interface AddressedMessageEvent {
|
|
49
53
|
event: "MESSAGE_RECEIVED";
|
|
54
|
+
messageId?: string;
|
|
50
55
|
from: string;
|
|
51
56
|
content: string;
|
|
52
57
|
contentType: string;
|
|
@@ -79,12 +84,18 @@ export interface DeliveryStatusEvent {
|
|
|
79
84
|
status: "delivered";
|
|
80
85
|
deliveredAt?: string;
|
|
81
86
|
}
|
|
82
|
-
export
|
|
83
|
-
|
|
87
|
+
export interface DeliveryCursorEvent {
|
|
88
|
+
event: "DELIVERY_CURSOR";
|
|
89
|
+
deliverySeq: number;
|
|
90
|
+
deliveredSeq?: number;
|
|
91
|
+
}
|
|
92
|
+
export type PluginToConnectorEvent = RegisterEvent | AddressedSendEvent | AddressedTypingEvent | AddressedDeliveryAckEvent | RequestGapFillEvent;
|
|
93
|
+
export type ConnectorToPluginEvent = RegisterAckEvent | SendAckEvent | AddressedMessageEvent | DeliveryPendingEvent | DeliveryStatusEvent | DeliveryCursorEvent | StructuredErrorEvent;
|
|
84
94
|
export declare function isRegisterAck(data: unknown): data is RegisterAckEvent;
|
|
85
95
|
export declare function isSendAck(data: unknown): data is SendAckEvent;
|
|
86
96
|
export declare function isAddressedMessage(data: unknown): data is AddressedMessageEvent;
|
|
87
97
|
export declare function isDeliveryPending(data: unknown): data is DeliveryPendingEvent;
|
|
88
98
|
export declare function isDeliveryStatus(data: unknown): data is DeliveryStatusEvent;
|
|
99
|
+
export declare function isDeliveryCursor(data: unknown): data is DeliveryCursorEvent;
|
|
89
100
|
export declare function isStructuredError(data: unknown): data is StructuredErrorEvent;
|
|
90
101
|
//# sourceMappingURL=types.d.ts.map
|
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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const CURRENT_PROTOCOL_VERSION =
|
|
1
|
+
export const CURRENT_PROTOCOL_VERSION = 3;
|
|
2
2
|
export const REGISTER_ACK_TIMEOUT_MS = 15_000;
|
|
3
3
|
export const SEND_ACK_TIMEOUT_MS = 15_000;
|
|
4
4
|
function isObject(data) {
|
|
@@ -15,6 +15,7 @@ export function isSendAck(data) {
|
|
|
15
15
|
export function isAddressedMessage(data) {
|
|
16
16
|
return (isObject(data) &&
|
|
17
17
|
data.event === "MESSAGE_RECEIVED" &&
|
|
18
|
+
(data.messageId === undefined || typeof data.messageId === "string") &&
|
|
18
19
|
typeof data.from === "string" &&
|
|
19
20
|
typeof data.content === "string");
|
|
20
21
|
}
|
|
@@ -30,6 +31,17 @@ export function isDeliveryStatus(data) {
|
|
|
30
31
|
typeof data.messageId === "string" &&
|
|
31
32
|
typeof data.status === "string");
|
|
32
33
|
}
|
|
34
|
+
export function isDeliveryCursor(data) {
|
|
35
|
+
return (isObject(data) &&
|
|
36
|
+
data.event === "DELIVERY_CURSOR" &&
|
|
37
|
+
typeof data.deliverySeq === "number" &&
|
|
38
|
+
Number.isInteger(data.deliverySeq) &&
|
|
39
|
+
data.deliverySeq >= 0 &&
|
|
40
|
+
(data.deliveredSeq === undefined ||
|
|
41
|
+
(typeof data.deliveredSeq === "number" &&
|
|
42
|
+
Number.isInteger(data.deliveredSeq) &&
|
|
43
|
+
data.deliveredSeq >= 0)));
|
|
44
|
+
}
|
|
33
45
|
export function isStructuredError(data) {
|
|
34
46
|
return (isObject(data) &&
|
|
35
47
|
data.event === "ERROR" &&
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PLUGIN_VERSION = "0.
|
|
1
|
+
export declare const PLUGIN_VERSION = "0.6.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,UAAU,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PLUGIN_VERSION = "0.
|
|
1
|
+
export const PLUGIN_VERSION = "0.6.1";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@masons/agent-network",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "MASONS Agent Network — OpenClaw channel plugin for connecting agent runtimes to the Agent Network over MSTP.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "MASONS.ai <hello@masons.ai> (https://masons.ai)",
|
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"test": "tsc -p test/tsconfig.json && node --test --loader ts-node/esm 'test/**/*.test.ts'",
|
|
28
|
+
"lint": "biome check",
|
|
29
|
+
"format": "biome format --write",
|
|
30
|
+
"prepublishOnly": "bash scripts/check-version.sh && npm run build && npm run test",
|
|
31
|
+
"release": "pnpm publish --access public"
|
|
32
|
+
},
|
|
24
33
|
"files": [
|
|
25
34
|
"dist/",
|
|
26
35
|
"openclaw.plugin.json",
|
|
@@ -65,6 +74,10 @@
|
|
|
65
74
|
"./handoff": {
|
|
66
75
|
"types": "./dist/handoff.d.ts",
|
|
67
76
|
"default": "./dist/handoff.js"
|
|
77
|
+
},
|
|
78
|
+
"./connector-url-boundary": {
|
|
79
|
+
"types": "./dist/connector-url-boundary.d.ts",
|
|
80
|
+
"default": "./dist/connector-url-boundary.js"
|
|
68
81
|
}
|
|
69
82
|
},
|
|
70
83
|
"dependencies": {
|
|
@@ -79,13 +92,5 @@
|
|
|
79
92
|
"@types/ws": "^8",
|
|
80
93
|
"ts-node": "^10",
|
|
81
94
|
"typescript": "^5"
|
|
82
|
-
},
|
|
83
|
-
"scripts": {
|
|
84
|
-
"build": "tsc",
|
|
85
|
-
"dev": "tsc --watch",
|
|
86
|
-
"test": "tsc -p test/tsconfig.json && node --test --loader ts-node/esm 'test/**/*.test.ts'",
|
|
87
|
-
"lint": "biome check",
|
|
88
|
-
"format": "biome format --write",
|
|
89
|
-
"release": "pnpm publish --access public"
|
|
90
95
|
}
|
|
91
|
-
}
|
|
96
|
+
}
|