@nority/bridge-sdk 0.2.1 → 0.2.2
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/README.md +3 -3
- package/dist/agent.d.ts +58 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/auth/jwt.d.ts +9 -0
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/jwt.js +2 -0
- package/dist/auth/jwt.js.map +1 -1
- package/dist/auth/pairing.d.ts +9 -0
- package/dist/auth/pairing.d.ts.map +1 -1
- package/dist/auth/pairing.js +6 -0
- package/dist/auth/pairing.js.map +1 -1
- package/dist/auth/reconnect.d.ts +9 -0
- package/dist/auth/reconnect.d.ts.map +1 -1
- package/dist/auth/reconnect.js +2 -0
- package/dist/auth/reconnect.js.map +1 -1
- package/dist/connection-types.d.ts +20 -0
- package/dist/connection-types.d.ts.map +1 -1
- package/dist/conversation/replay.d.ts +22 -0
- package/dist/conversation/replay.d.ts.map +1 -1
- package/dist/conversation/replay.js +9 -0
- package/dist/conversation/replay.js.map +1 -1
- package/dist/conversation/runtime.d.ts +1 -0
- package/dist/conversation/runtime.d.ts.map +1 -1
- package/dist/conversation/runtime.js.map +1 -1
- package/dist/conversation/state.d.ts +7 -0
- package/dist/conversation/state.d.ts.map +1 -1
- package/dist/conversation/state.js +6 -0
- package/dist/conversation/state.js.map +1 -1
- package/dist/crypto/conversation.d.ts +2 -0
- package/dist/crypto/conversation.d.ts.map +1 -1
- package/dist/crypto/conversation.js +2 -0
- package/dist/crypto/conversation.js.map +1 -1
- package/dist/crypto/identity.d.ts +3 -0
- package/dist/crypto/identity.d.ts.map +1 -1
- package/dist/crypto/identity.js.map +1 -1
- package/dist/crypto/x25519.d.ts +6 -0
- package/dist/crypto/x25519.d.ts.map +1 -1
- package/dist/crypto/x25519.js +3 -0
- package/dist/crypto/x25519.js.map +1 -1
- package/dist/pairing/client.d.ts.map +1 -1
- package/dist/pairing/client.js +3 -5
- package/dist/pairing/client.js.map +1 -1
- package/dist/pairing/types.d.ts +25 -0
- package/dist/pairing/types.d.ts.map +1 -1
- package/dist/protocol/frames.d.ts +3 -0
- package/dist/protocol/frames.d.ts.map +1 -1
- package/dist/protocol/frames.js.map +1 -1
- package/dist/protocol/validation.d.ts +4 -0
- package/dist/protocol/validation.d.ts.map +1 -1
- package/dist/protocol/validation.js +1 -0
- package/dist/protocol/validation.js.map +1 -1
- package/dist/runtime/proactive.d.ts +4 -0
- package/dist/runtime/proactive.d.ts.map +1 -1
- package/dist/runtime/proactive.js.map +1 -1
- package/dist/transport/websocket.d.ts +44 -0
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +9 -1
- package/dist/transport/websocket.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Creates a new conversation entry with the given symmetric key and empty history. */
|
|
1
2
|
export function createConversationEntry(conversationId, symmetricKey) {
|
|
2
3
|
if (!conversationId) {
|
|
3
4
|
throw new Error("createConversationEntry: conversationId is required");
|
|
@@ -13,6 +14,7 @@ export function createConversationEntry(conversationId, symmetricKey) {
|
|
|
13
14
|
pendingAssistantTurns: {},
|
|
14
15
|
};
|
|
15
16
|
}
|
|
17
|
+
/** Converts a {@link ConversationEntry} to its JSON-serializable {@link PersistedConversationEntry} form. */
|
|
16
18
|
export function serializeConversationEntry(entry) {
|
|
17
19
|
assertConversationEntry(entry, "serializeConversationEntry");
|
|
18
20
|
return {
|
|
@@ -23,6 +25,7 @@ export function serializeConversationEntry(entry) {
|
|
|
23
25
|
pendingAssistantTurns: { ...entry.pendingAssistantTurns },
|
|
24
26
|
};
|
|
25
27
|
}
|
|
28
|
+
/** Restores a {@link ConversationEntry} from its persisted JSON form. */
|
|
26
29
|
export function deserializeConversationEntry(entry) {
|
|
27
30
|
if (!entry) {
|
|
28
31
|
throw new Error("deserializeConversationEntry: entry is required");
|
|
@@ -50,6 +53,7 @@ export function deserializeConversationEntry(entry) {
|
|
|
50
53
|
assertConversationEntry(deserialized, "deserializeConversationEntry");
|
|
51
54
|
return deserialized;
|
|
52
55
|
}
|
|
56
|
+
/** Appends a new turn to a conversation entry's history. */
|
|
53
57
|
export function appendTurn(entry, role, parts) {
|
|
54
58
|
assertConversationEntry(entry, "appendTurn");
|
|
55
59
|
if (!Array.isArray(parts) || parts.length === 0) {
|
|
@@ -60,6 +64,7 @@ export function appendTurn(entry, role, parts) {
|
|
|
60
64
|
parts: parts.map(clonePart),
|
|
61
65
|
});
|
|
62
66
|
}
|
|
67
|
+
/** Returns a deep copy of a conversation turn. */
|
|
63
68
|
export function cloneTurn(turn) {
|
|
64
69
|
if (!turn) {
|
|
65
70
|
throw new Error("cloneTurn: turn is required");
|
|
@@ -72,6 +77,7 @@ export function cloneTurn(turn) {
|
|
|
72
77
|
parts: turn.parts.map(clonePart),
|
|
73
78
|
};
|
|
74
79
|
}
|
|
80
|
+
/** Concatenates all text content parts into a single string, ignoring media parts. */
|
|
75
81
|
export function extractPlainText(parts) {
|
|
76
82
|
if (!Array.isArray(parts)) {
|
|
77
83
|
throw new Error("extractPlainText: parts must be an array");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/conversation/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/conversation/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ import { type KeyObject } from "node:crypto";
|
|
|
6
6
|
* 2. Derive 32-byte key via HKDF-SHA3-256 with info="nority-conv-v1"
|
|
7
7
|
*/
|
|
8
8
|
export declare function deriveConversationKey(localPrivateKeyPem: string, remotePublicKeyPem: string): Promise<Buffer>;
|
|
9
|
+
/** Derives the per-conversation AES-256-GCM key from X25519 KeyObject instances. */
|
|
9
10
|
export declare function deriveConversationKeyFromKeyObjects(privateKey: KeyObject, publicKey: KeyObject): Buffer;
|
|
11
|
+
/** Derives the per-conversation AES-256-GCM key from a raw X25519 shared secret via HKDF-SHA3-256. */
|
|
10
12
|
export declare function deriveConversationKeyFromSharedSecret(sharedSecret: Buffer): Buffer;
|
|
11
13
|
/**
|
|
12
14
|
* Encrypt a plaintext payload using AES-256-GCM.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/crypto/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAQrB;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,SAAS,GACnB,MAAM,CAmBR;AAED,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,MAAM,GACnB,MAAM,CAsBR;AA6DD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBvE"}
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/crypto/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAQrB;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,oFAAoF;AACpF,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,SAAS,GACnB,MAAM,CAmBR;AAED,sGAAsG;AACtG,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,MAAM,GACnB,MAAM,CAsBR;AA6DD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBvE"}
|
|
@@ -24,6 +24,7 @@ export async function deriveConversationKey(localPrivateKeyPem, remotePublicKeyP
|
|
|
24
24
|
}
|
|
25
25
|
return deriveConversationKeyFromKeyObjects(privateKey, publicKey);
|
|
26
26
|
}
|
|
27
|
+
/** Derives the per-conversation AES-256-GCM key from X25519 KeyObject instances. */
|
|
27
28
|
export function deriveConversationKeyFromKeyObjects(privateKey, publicKey) {
|
|
28
29
|
if (!privateKey || !publicKey) {
|
|
29
30
|
throw new Error("deriveConversationKeyFromKeyObjects: privateKey and publicKey are required");
|
|
@@ -37,6 +38,7 @@ export function deriveConversationKeyFromKeyObjects(privateKey, publicKey) {
|
|
|
37
38
|
const sharedSecret = diffieHellman({ privateKey, publicKey });
|
|
38
39
|
return deriveConversationKeyFromSharedSecret(sharedSecret);
|
|
39
40
|
}
|
|
41
|
+
/** Derives the per-conversation AES-256-GCM key from a raw X25519 shared secret via HKDF-SHA3-256. */
|
|
40
42
|
export function deriveConversationKeyFromSharedSecret(sharedSecret) {
|
|
41
43
|
if (!sharedSecret || sharedSecret.length === 0) {
|
|
42
44
|
throw new Error("deriveConversationKeyFromSharedSecret: sharedSecret is required");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/crypto/conversation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/crypto/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,EACd,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,SAAS,GAAG,gBAAgB,CAAC;AACnC,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,kBAA0B,EAC1B,kBAA0B;IAE1B,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAI,UAAU,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,2DAA2D,UAAU,CAAC,iBAAiB,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,0DAA0D,SAAS,CAAC,iBAAiB,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,mCAAmC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,mCAAmC,CACjD,UAAqB,EACrB,SAAoB;IAEpB,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,yEAAyE,UAAU,CAAC,iBAAiB,EAAE,CACxG,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,wEAAwE,SAAS,CAAC,iBAAiB,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,OAAO,qCAAqC,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,qCAAqC,CACnD,YAAoB;IAEpB,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAC5B,YAAY,EACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EACf,SAAS,EACT,cAAc,CACf,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,6DAA6D,UAAU,CAAC,MAAM,QAAQ,cAAc,EAAE,CACvG,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,MAAc;IAEd,0CAA0C;IAC1C,4DAA4D;IAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,kBAAkB;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,WAAW,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAE5C,oCAAoC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAW,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW,EAAE,IAAY;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,6BAA6B;IAEpD,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACzB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACzB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,SAAiB;IAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,+BAA+B,cAAc,eAAe,GAAG,CAAC,MAAM,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACxB,MAAM,CAAC,KAAK,EAAE;KACf,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEhC,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAG,CAAC,MAAM,QAAQ,UAAU,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,WAAmB;IAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,+BAA+B,cAAc,eAAe,GAAG,CAAC,MAAM,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;IAC5C,IAAI,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,CAAC,MAAM,MAAM,SAAS,GAAG,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CACrC,YAAY,EACZ,WAAW,CAAC,MAAM,GAAG,UAAU,CAChC,CAAC;IACF,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/** An Ed25519 keypair in PEM format, used for bridge proof-of-possession authentication. */
|
|
1
2
|
export interface Ed25519Identity {
|
|
3
|
+
/** PKCS#8-encoded Ed25519 private key. */
|
|
2
4
|
privateKeyPem: string;
|
|
5
|
+
/** SPKI-encoded Ed25519 public key. */
|
|
3
6
|
publicKeyPem: string;
|
|
4
7
|
}
|
|
5
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/crypto/identity.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,eAAe,CAoBzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAelB"}
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/crypto/identity.ts"],"names":[],"mappings":"AAQA,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,eAAe,CAoBzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAelB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/crypto/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,EACJ,MAAM,GACP,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/crypto/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto/x25519.d.ts
CHANGED
|
@@ -5,12 +5,18 @@ interface X25519PrivateJwk {
|
|
|
5
5
|
x: string;
|
|
6
6
|
d: string;
|
|
7
7
|
}
|
|
8
|
+
/** An ephemeral X25519 keypair used for per-conversation ECDH key exchange. */
|
|
8
9
|
export interface X25519EphemeralKeyPair {
|
|
10
|
+
/** The X25519 private key as a Node.js KeyObject. */
|
|
9
11
|
privateKey: KeyObject;
|
|
12
|
+
/** The raw X25519 public key encoded as standard base64. */
|
|
10
13
|
publicKeyBase64: string;
|
|
11
14
|
}
|
|
15
|
+
/** Generates a fresh ephemeral X25519 keypair for ECDH key exchange. */
|
|
12
16
|
export declare function generateX25519EphemeralKeyPair(): X25519EphemeralKeyPair;
|
|
17
|
+
/** Derives the per-conversation AES-256-GCM key from a local private key and a base64-encoded remote public key. */
|
|
13
18
|
export declare function deriveConversationKeyFromBase64(privateKey: KeyObject, remotePublicKeyBase64: string): Buffer;
|
|
19
|
+
/** Imports an X25519 private key from JWK format into a Node.js KeyObject. */
|
|
14
20
|
export declare function importX25519PrivateKeyFromJwk(privateKeyJwk: X25519PrivateJwk): KeyObject;
|
|
15
21
|
export {};
|
|
16
22
|
//# sourceMappingURL=x25519.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../src/crypto/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,UAAU,gBAAgB;IACxB,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAQD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,SAAS,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,8BAA8B,IAAI,sBAAsB,CAavE;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,SAAS,EACrB,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAmBR;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,gBAAgB,GAC9B,SAAS,CAOX"}
|
|
1
|
+
{"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../src/crypto/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,UAAU,gBAAgB;IACxB,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAQD,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,UAAU,EAAE,SAAS,CAAC;IACtB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wEAAwE;AACxE,wBAAgB,8BAA8B,IAAI,sBAAsB,CAavE;AAED,oHAAoH;AACpH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,SAAS,EACrB,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAmBR;AAED,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,gBAAgB,GAC9B,SAAS,CAOX"}
|
package/dist/crypto/x25519.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPrivateKey, createPublicKey, generateKeyPairSync, } from "node:crypto";
|
|
2
2
|
import { deriveConversationKeyFromKeyObjects } from "./conversation.js";
|
|
3
|
+
/** Generates a fresh ephemeral X25519 keypair for ECDH key exchange. */
|
|
3
4
|
export function generateX25519EphemeralKeyPair() {
|
|
4
5
|
const { privateKey, publicKey } = generateKeyPairSync("x25519");
|
|
5
6
|
const publicJwk = publicKey.export({ format: "jwk" });
|
|
@@ -11,6 +12,7 @@ export function generateX25519EphemeralKeyPair() {
|
|
|
11
12
|
publicKeyBase64: base64UrlToBase64(publicJwk.x),
|
|
12
13
|
};
|
|
13
14
|
}
|
|
15
|
+
/** Derives the per-conversation AES-256-GCM key from a local private key and a base64-encoded remote public key. */
|
|
14
16
|
export function deriveConversationKeyFromBase64(privateKey, remotePublicKeyBase64) {
|
|
15
17
|
if (!privateKey) {
|
|
16
18
|
throw new Error("deriveConversationKeyFromBase64: privateKey is required");
|
|
@@ -28,6 +30,7 @@ export function deriveConversationKeyFromBase64(privateKey, remotePublicKeyBase6
|
|
|
28
30
|
});
|
|
29
31
|
return deriveConversationKeyFromKeyObjects(privateKey, publicKey);
|
|
30
32
|
}
|
|
33
|
+
/** Imports an X25519 private key from JWK format into a Node.js KeyObject. */
|
|
31
34
|
export function importX25519PrivateKeyFromJwk(privateKeyJwk) {
|
|
32
35
|
if (!privateKeyJwk || !privateKeyJwk.d || !privateKeyJwk.x) {
|
|
33
36
|
throw new Error("importX25519PrivateKeyFromJwk: X25519 private JWK with d and x is required");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/crypto/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/crypto/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAuBxE,wEAAwE;AACxE,MAAM,UAAU,8BAA8B;IAC5C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAA6B,CAAC;IAClF,IAAI,SAAS,CAAC,GAAG,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU;QACV,eAAe,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,+BAA+B,CAC7C,UAAqB,EACrB,qBAA6B;IAE7B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE;YACH,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,QAAQ;YACb,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;SAClB;KAC5B,CAAC,CAAC;IACH,OAAO,mCAAmC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,6BAA6B,CAC3C,aAA+B;IAE/B,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/pairing/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBrE;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,mBAAmB;IAevC,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAoB9B;;;OAGG;IACH,MAAM,IAAI,IAAI;IAWd;;;OAGG;IACH,eAAe,IAAI,WAAW;YAkBhB,gBAAgB;YAKhB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/pairing/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBrE;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,mBAAmB;IAevC,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAoB9B;;;OAGG;IACH,MAAM,IAAI,IAAI;IAWd;;;OAGG;IACH,eAAe,IAAI,WAAW;YAkBhB,gBAAgB;YAKhB,kBAAkB;YAuDlB,oBAAoB;IA6DlC,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,iBAAiB;CAM1B"}
|
package/dist/pairing/client.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createPairingExpiry, createPairingToken, createDeeplinkUrl, PAIRING_TOK
|
|
|
2
2
|
import { FileBridgeStateStore } from "../storage/state-store.js";
|
|
3
3
|
import { createFrame } from "../protocol/frames.js";
|
|
4
4
|
import { getEd25519PublicKeyBase64 } from "../crypto/identity.js";
|
|
5
|
+
import { defaultWebSocketFactory } from "../transport/websocket.js";
|
|
5
6
|
const noopLogger = {
|
|
6
7
|
debug: () => { },
|
|
7
8
|
info: () => { },
|
|
@@ -122,11 +123,8 @@ export class PairingClient {
|
|
|
122
123
|
this.pairingTimer = setTimeout(() => {
|
|
123
124
|
void this.restartPairingFlow(identity);
|
|
124
125
|
}, PAIRING_TOKEN_TTL_SECONDS * 1000);
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
throw new Error("PairingClient: webSocketFactory is required for pairing");
|
|
128
|
-
}
|
|
129
|
-
const socket = webSocketFactory.create(this.config.backendUrl, {});
|
|
126
|
+
const factory = this.config.webSocketFactory ?? defaultWebSocketFactory;
|
|
127
|
+
const socket = factory.create(this.config.backendUrl, {});
|
|
130
128
|
this.pairingSocket = socket;
|
|
131
129
|
await waitForOpen(socket);
|
|
132
130
|
socket.addEventListener("message", (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/pairing/client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAA0B,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/pairing/client.ts"],"names":[],"mappings":"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"}
|
package/dist/pairing/types.d.ts
CHANGED
|
@@ -2,19 +2,44 @@ import type { BridgeLogger, PairingInfo } from "../agent.js";
|
|
|
2
2
|
import type { AccessTokenRecord } from "../auth/jwt.js";
|
|
3
3
|
import type { Ed25519Identity } from "../crypto/identity.js";
|
|
4
4
|
import type { WebSocketFactory } from "../transport/websocket.js";
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for {@link PairingClient}, the standalone pairing layer.
|
|
7
|
+
*
|
|
8
|
+
* Use this when you want to run the pairing ceremony yourself — embed the QR
|
|
9
|
+
* in your own UI, store the credential in your own database, or decouple
|
|
10
|
+
* pairing from the authenticated connection.
|
|
11
|
+
*/
|
|
5
12
|
export interface PairingClientConfig {
|
|
13
|
+
/** Nority backend WebSocket URL. */
|
|
6
14
|
backendUrl: string;
|
|
15
|
+
/** Directory for durable state (Ed25519 identity). */
|
|
7
16
|
dataDir: string;
|
|
17
|
+
/** Called each time a new pairing token is generated (initial + auto-regenerate). */
|
|
8
18
|
onPairingInfo?: (info: PairingInfo) => void;
|
|
19
|
+
/** Structured logger. Defaults to no-op. */
|
|
9
20
|
logger?: BridgeLogger;
|
|
21
|
+
/** Override the built-in `ws`-based WebSocket. */
|
|
10
22
|
webSocketFactory?: WebSocketFactory;
|
|
23
|
+
/** Override the system clock (useful for testing). */
|
|
11
24
|
clock?: () => Date;
|
|
25
|
+
/** Override the random pairing token generator. */
|
|
12
26
|
pairingTokenFactory?: () => string;
|
|
13
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The result of a successful pairing ceremony.
|
|
30
|
+
*
|
|
31
|
+
* Contains everything needed to establish an authenticated {@link BridgeConnection}:
|
|
32
|
+
* the durable credential, the Ed25519 identity, and a first JWT to skip
|
|
33
|
+
* the initial challenge-response.
|
|
34
|
+
*/
|
|
14
35
|
export interface PairingResult {
|
|
36
|
+
/** The agent ID assigned by the backend. */
|
|
15
37
|
agentId: string;
|
|
38
|
+
/** Long-lived bridge credential — persist this securely. */
|
|
16
39
|
credential: string;
|
|
40
|
+
/** The Ed25519 keypair used for proof-of-possession auth. */
|
|
17
41
|
identity: Ed25519Identity;
|
|
42
|
+
/** First access JWT — pass as `seedJwt` to {@link BridgeConnection} to skip one auth round-trip. */
|
|
18
43
|
initialToken: AccessTokenRecord;
|
|
19
44
|
}
|
|
20
45
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pairing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,iBAAiB,CAAC;CACjC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pairing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,4CAA4C;IAC5C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,eAAe,CAAC;IAC1B,oGAAoG;IACpG,YAAY,EAAE,iBAAiB,CAAC;CACjC"}
|
|
@@ -8,8 +8,11 @@ export declare const BRIDGE_FRAME_TYPES: readonly ["pair_request", "key_exchange
|
|
|
8
8
|
* Backend -> Bridge frame types
|
|
9
9
|
*/
|
|
10
10
|
export declare const BACKEND_FRAME_TYPES: readonly ["paired", "key_exchange", "message", "conversation_deleted", "replay", "token_expiring", "error"];
|
|
11
|
+
/** Union of frame types sent from the bridge to the backend. */
|
|
11
12
|
export type BridgeFrameType = (typeof BRIDGE_FRAME_TYPES)[number];
|
|
13
|
+
/** Union of frame types sent from the backend to the bridge. */
|
|
12
14
|
export type BackendFrameType = (typeof BACKEND_FRAME_TYPES)[number];
|
|
15
|
+
/** Union of all frame types in the bridge protocol. */
|
|
13
16
|
export type FrameType = BridgeFrameType | BackendFrameType;
|
|
14
17
|
/**
|
|
15
18
|
* Versioned frame envelope as defined by the bridge protocol.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/protocol/frames.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,8HAQrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,6GAQtB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,IAAI,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAC7C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,cAAc,CAAC,EAAE,MAAM,GACtB,WAAW,CAAC,CAAC,CAAC,CAahB"}
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/protocol/frames.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,8HAQrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,6GAQtB,CAAC;AAEX,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,IAAI,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAC7C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,cAAc,CAAC,EAAE,MAAM,GACtB,WAAW,CAAC,CAAC,CAAC,CAahB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/protocol/frames.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,uBAAuB;IACvB,aAAa;IACb,gBAAgB;IAChB,sBAAsB;IACtB,MAAM;IACN,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,cAAc;IACd,SAAS;IACT,sBAAsB;IACtB,QAAQ;IACR,gBAAgB;IAChB,OAAO;CACC,CAAC;
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/protocol/frames.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,uBAAuB;IACvB,aAAa;IACb,gBAAgB;IAChB,sBAAsB;IACtB,MAAM;IACN,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,cAAc;IACd,SAAS;IACT,sBAAsB;IACtB,QAAQ;IACR,gBAAgB;IAChB,OAAO;CACC,CAAC;AAmBX;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAO,EACP,OAAgC,EAChC,cAAuB;IAEvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,eAAe,GAAG,cAAc,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/** The result of validating a frame against the bridge protocol JSON schema. */
|
|
1
2
|
export interface ValidationResult {
|
|
3
|
+
/** Whether the frame is valid. */
|
|
2
4
|
valid: boolean;
|
|
5
|
+
/** Human-readable error messages (empty when valid). */
|
|
3
6
|
errors: string[];
|
|
4
7
|
}
|
|
8
|
+
/** Validates a frame object against the bridge protocol JSON schema. */
|
|
5
9
|
export declare function validateFrame(frame: unknown): ValidationResult;
|
|
6
10
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/protocol/validation.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiB9D"}
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/protocol/validation.ts"],"names":[],"mappings":"AA6BA,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiB9D"}
|
|
@@ -18,6 +18,7 @@ function getValidator() {
|
|
|
18
18
|
cachedValidator = ajv.compile(schema);
|
|
19
19
|
return cachedValidator;
|
|
20
20
|
}
|
|
21
|
+
/** Validates a frame object against the bridge protocol JSON schema. */
|
|
21
22
|
export function validateFrame(frame) {
|
|
22
23
|
if (typeof frame !== "object" || frame === null) {
|
|
23
24
|
return { valid: false, errors: ["Frame must be a non-null object"] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/protocol/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,GAA8B,MAAM,KAAK,CAAC;AAEjD,MAAM,WAAW,GAAG,IAAI,CACtB,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAC7D,wEAAwE,CACzE,CAAC;AAEF,IAAI,eAAe,GAA4B,IAAI,CAAC;AAEpD,SAAS,YAAY;IACnB,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAE5C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8CAA8C,WAAW,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,eAAe,CAAC;AACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/protocol/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,GAA8B,MAAM,KAAK,CAAC;AAEjD,MAAM,WAAW,GAAG,IAAI,CACtB,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAC7D,wEAAwE,CACzE,CAAC;AAEF,IAAI,eAAe,GAA4B,IAAI,CAAC;AAEpD,SAAS,YAAY;IACnB,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAE5C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8CAA8C,WAAW,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,eAAe,CAAC;AACzB,CAAC;AAUD,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CACnE,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { ContentPart } from "../agent.js";
|
|
2
2
|
import { type BridgeFrame } from "../protocol/frames.js";
|
|
3
|
+
/** Request payload for a bridge-initiated (proactive) assistant turn. */
|
|
3
4
|
export interface ProactiveTurnRequest {
|
|
5
|
+
/** Unique identifier for this turn request. */
|
|
4
6
|
requestId: string;
|
|
7
|
+
/** Idempotency key to prevent duplicate turns on retry. */
|
|
5
8
|
idempotencyKey: string;
|
|
9
|
+
/** Content parts for the proactive turn. */
|
|
6
10
|
input: ContentPart[];
|
|
7
11
|
}
|
|
8
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proactive.d.ts","sourceRoot":"","sources":["../../src/runtime/proactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,oBAAoB,GAC5B,WAAW,CAAC,sBAAsB,CAAC,CAqCrC"}
|
|
1
|
+
{"version":3,"file":"proactive.d.ts","sourceRoot":"","sources":["../../src/runtime/proactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEtE,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,oBAAoB,GAC5B,WAAW,CAAC,sBAAsB,CAAC,CAqCrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proactive.js","sourceRoot":"","sources":["../../src/runtime/proactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"proactive.js","sourceRoot":"","sources":["../../src/runtime/proactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AAYtE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,cAAsB,EACtB,OAA6B;IAE7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,WAAW,CAChB,sBAAsB,EACtB;QACE,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,eAAe,EAAE,OAAO,CAAC,cAAc;QACvC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChC,IAAI,CAAC,IAAI,KAAK,MAAM;YAClB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACnC,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC5B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAChC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aACtB,CACN;KACF,EACD,cAAc,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import type { BridgeLogger } from "../agent.js";
|
|
2
2
|
import { type BridgeFrame } from "../protocol/frames.js";
|
|
3
|
+
/** Base delay for exponential backoff (milliseconds). */
|
|
3
4
|
export declare const BACKOFF_BASE_MS = 1000;
|
|
5
|
+
/** Maximum delay cap for exponential backoff (milliseconds). */
|
|
4
6
|
export declare const BACKOFF_MAX_MS = 30000;
|
|
7
|
+
/** Jitter ratio applied to backoff delays (0.5 = +/- 50%). */
|
|
5
8
|
export declare const BACKOFF_JITTER = 0.5;
|
|
9
|
+
/** Options passed to {@link WebSocketFactory.create}. */
|
|
6
10
|
export interface WebSocketFactoryOptions {
|
|
11
|
+
/** HTTP headers to include in the WebSocket upgrade request (e.g. Authorization). */
|
|
7
12
|
headers?: Record<string, string>;
|
|
8
13
|
}
|
|
14
|
+
/** Minimal message event shape compatible with both browser and Node.js WebSocket APIs. */
|
|
9
15
|
export interface WebSocketMessageEvent {
|
|
10
16
|
data: string;
|
|
11
17
|
}
|
|
18
|
+
/** Minimal close event shape compatible with both browser and Node.js WebSocket APIs. */
|
|
12
19
|
export interface WebSocketCloseEvent {
|
|
13
20
|
code: number;
|
|
14
21
|
reason: string;
|
|
15
22
|
wasClean: boolean;
|
|
16
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Minimal WebSocket interface used by the SDK.
|
|
26
|
+
*
|
|
27
|
+
* Compatible with browser `WebSocket`, Node.js `ws`, and Bun's built-in WebSocket.
|
|
28
|
+
* Implement this if you need a custom transport (e.g. for testing or proxying).
|
|
29
|
+
*/
|
|
17
30
|
export interface WebSocketLike {
|
|
18
31
|
readonly readyState: number;
|
|
19
32
|
send(data: string): void;
|
|
@@ -37,27 +50,52 @@ export interface WebSocketLike {
|
|
|
37
50
|
error?: unknown;
|
|
38
51
|
}) => void): void;
|
|
39
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Factory for creating WebSocket connections.
|
|
55
|
+
*
|
|
56
|
+
* The SDK ships with a default factory that uses the `ws` npm package.
|
|
57
|
+
* Provide a custom factory to use a different WebSocket implementation
|
|
58
|
+
* or to intercept connections for testing.
|
|
59
|
+
*/
|
|
40
60
|
export interface WebSocketFactory {
|
|
61
|
+
/** Creates a new WebSocket connection to the given URL. */
|
|
41
62
|
create(url: string, options?: WebSocketFactoryOptions): WebSocketLike;
|
|
42
63
|
}
|
|
64
|
+
/** Action recommended by {@link getCloseCodeAction} based on a WebSocket close code. */
|
|
43
65
|
export interface CloseCodeAction {
|
|
66
|
+
/** Whether to reconnect or stop permanently. */
|
|
44
67
|
kind: "reconnect" | "stop";
|
|
68
|
+
/** Whether to force-refresh the access token before reconnecting. */
|
|
45
69
|
forceRefresh: boolean;
|
|
70
|
+
/** Whether to reconnect immediately (skip backoff). */
|
|
46
71
|
immediate: boolean;
|
|
72
|
+
/** Whether this close code indicates a permanent, unrecoverable failure. */
|
|
47
73
|
fatal: boolean;
|
|
48
74
|
}
|
|
75
|
+
/** Options for {@link AuthenticatedWebSocketTransport}. */
|
|
49
76
|
export interface AuthenticatedWebSocketTransportOptions {
|
|
77
|
+
/** Nority backend WebSocket URL. */
|
|
50
78
|
backendUrl: string;
|
|
79
|
+
/** Callback to obtain (or refresh) a bridge access JWT. */
|
|
51
80
|
getAccessToken: (forceRefresh?: boolean) => Promise<string>;
|
|
81
|
+
/** Override the built-in `ws`-based WebSocket. */
|
|
52
82
|
webSocketFactory?: WebSocketFactory;
|
|
83
|
+
/** Heartbeat interval in milliseconds. Default: 15000. */
|
|
53
84
|
heartbeatIntervalMs?: number;
|
|
85
|
+
/** Idle timeout in milliseconds. Must be greater than `heartbeatIntervalMs`. Default: 45000. */
|
|
54
86
|
idleTimeoutMs?: number;
|
|
87
|
+
/** Override `Math.random` for backoff jitter (useful for testing). */
|
|
55
88
|
random?: () => number;
|
|
89
|
+
/** Override the system clock (useful for testing). */
|
|
56
90
|
clock?: () => Date;
|
|
91
|
+
/** Structured logger. Defaults to no-op. */
|
|
57
92
|
logger?: BridgeLogger;
|
|
93
|
+
/** Called for each frame received over the WebSocket. */
|
|
58
94
|
onFrame?: (frame: BridgeFrame) => void | Promise<void>;
|
|
95
|
+
/** Called when the transport state changes. */
|
|
59
96
|
onStateChange?: (state: TransportState) => void;
|
|
60
97
|
}
|
|
98
|
+
/** Lifecycle states for {@link AuthenticatedWebSocketTransport}. */
|
|
61
99
|
export type TransportState = "idle" | "connecting" | "connected" | "reconnecting" | "stopped" | "blocked" | "failed";
|
|
62
100
|
/**
|
|
63
101
|
* Calculate next backoff delay with jitter.
|
|
@@ -106,4 +144,10 @@ export declare class AuthenticatedWebSocketTransport {
|
|
|
106
144
|
private retryOpenSocket;
|
|
107
145
|
private setState;
|
|
108
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Default WebSocket factory that uses the `ws` npm package.
|
|
149
|
+
*
|
|
150
|
+
* Used automatically when no custom `webSocketFactory` is provided.
|
|
151
|
+
*/
|
|
152
|
+
export declare const defaultWebSocketFactory: WebSocketFactory;
|
|
109
153
|
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import WS from "ws";
|
|
2
2
|
import { createFrame } from "../protocol/frames.js";
|
|
3
3
|
import { OutboundQueue } from "./outbound-queue.js";
|
|
4
|
+
/** Base delay for exponential backoff (milliseconds). */
|
|
4
5
|
export const BACKOFF_BASE_MS = 1000;
|
|
6
|
+
/** Maximum delay cap for exponential backoff (milliseconds). */
|
|
5
7
|
export const BACKOFF_MAX_MS = 30000;
|
|
8
|
+
/** Jitter ratio applied to backoff delays (0.5 = +/- 50%). */
|
|
6
9
|
export const BACKOFF_JITTER = 0.5;
|
|
7
10
|
const DEFAULT_HEARTBEAT_INTERVAL_MS = 15_000;
|
|
8
11
|
const DEFAULT_IDLE_TIMEOUT_MS = 45_000;
|
|
@@ -338,7 +341,12 @@ export class AuthenticatedWebSocketTransport {
|
|
|
338
341
|
this.onStateChange?.(nextState);
|
|
339
342
|
}
|
|
340
343
|
}
|
|
341
|
-
|
|
344
|
+
/**
|
|
345
|
+
* Default WebSocket factory that uses the `ws` npm package.
|
|
346
|
+
*
|
|
347
|
+
* Used automatically when no custom `webSocketFactory` is provided.
|
|
348
|
+
*/
|
|
349
|
+
export const defaultWebSocketFactory = {
|
|
342
350
|
create(url, options = {}) {
|
|
343
351
|
return new WS(url, { headers: options.headers });
|
|
344
352
|
},
|