@nokai/cli 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +35 -169
  2. package/dist/connection-manager.d.ts +9 -1
  3. package/dist/connection-manager.d.ts.map +1 -1
  4. package/dist/connection-manager.js +85 -1
  5. package/dist/connection-manager.js.map +1 -1
  6. package/dist/index.js +0 -0
  7. package/dist/message-protocol.d.ts +3 -1
  8. package/dist/message-protocol.d.ts.map +1 -1
  9. package/dist/message-protocol.js +25 -1
  10. package/dist/message-protocol.js.map +1 -1
  11. package/dist/profile.d.ts +9 -0
  12. package/dist/profile.d.ts.map +1 -1
  13. package/dist/profile.js +31 -2
  14. package/dist/profile.js.map +1 -1
  15. package/dist/server.d.ts.map +1 -1
  16. package/dist/server.js +111 -5
  17. package/dist/server.js.map +1 -1
  18. package/dist/shared/constants.d.ts +12 -0
  19. package/dist/shared/constants.d.ts.map +1 -1
  20. package/dist/shared/constants.js +13 -1
  21. package/dist/shared/constants.js.map +1 -1
  22. package/dist/shared/types.d.ts +19 -1
  23. package/dist/shared/types.d.ts.map +1 -1
  24. package/dist/shared/types.js +7 -0
  25. package/dist/shared/types.js.map +1 -1
  26. package/dist/signaling-client.d.ts +18 -3
  27. package/dist/signaling-client.d.ts.map +1 -1
  28. package/dist/signaling-client.js +83 -7
  29. package/dist/signaling-client.js.map +1 -1
  30. package/dist/tools/ask.d.ts.map +1 -1
  31. package/dist/tools/ask.js +2 -1
  32. package/dist/tools/ask.js.map +1 -1
  33. package/dist/tools/connect.d.ts +19 -2
  34. package/dist/tools/connect.d.ts.map +1 -1
  35. package/dist/tools/connect.js +187 -43
  36. package/dist/tools/connect.js.map +1 -1
  37. package/dist/tools/discover.d.ts +12 -0
  38. package/dist/tools/discover.d.ts.map +1 -0
  39. package/dist/tools/discover.js +67 -0
  40. package/dist/tools/discover.js.map +1 -0
  41. package/dist/tools/id.d.ts +12 -0
  42. package/dist/tools/id.d.ts.map +1 -0
  43. package/dist/tools/id.js +24 -0
  44. package/dist/tools/id.js.map +1 -0
  45. package/dist/tools/invite.d.ts +32 -0
  46. package/dist/tools/invite.d.ts.map +1 -0
  47. package/dist/tools/invite.js +144 -0
  48. package/dist/tools/invite.js.map +1 -0
  49. package/dist/tools/reconnect.d.ts.map +1 -1
  50. package/dist/tools/reconnect.js +6 -2
  51. package/dist/tools/reconnect.js.map +1 -1
  52. package/dist/tools/share.d.ts +37 -0
  53. package/dist/tools/share.d.ts.map +1 -0
  54. package/dist/tools/share.js +153 -0
  55. package/dist/tools/share.js.map +1 -0
  56. package/dist/tools/tell.d.ts.map +1 -1
  57. package/dist/tools/tell.js +2 -1
  58. package/dist/tools/tell.js.map +1 -1
  59. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA0BA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6PvD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA0CA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwYvD"}
package/dist/server.js CHANGED
@@ -22,8 +22,21 @@ const tell_js_1 = require("./tools/tell.js");
22
22
  const permissions_js_1 = require("./tools/permissions.js");
23
23
  const audit_js_1 = require("./tools/audit.js");
24
24
  const profile_tool_js_1 = require("./tools/profile-tool.js");
25
+ const share_js_1 = require("./tools/share.js");
26
+ const discover_js_1 = require("./tools/discover.js");
27
+ const invite_js_1 = require("./tools/invite.js");
28
+ const id_js_1 = require("./tools/id.js");
25
29
  const peer_connection_js_1 = require("./peer-connection.js");
30
+ const crypto_js_1 = require("./crypto.js");
31
+ const node_path_2 = require("node:path");
32
+ const node_crypto_1 = require("node:crypto");
26
33
  const SIGNALING_URL = process.env.NOKAI_SIGNALING_URL || "wss://nokai-signaling.your-domain.workers.dev";
34
+ function getSessionName() {
35
+ return process.env.NOKAI_SESSION_NAME || (0, node_path_2.basename)(process.cwd());
36
+ }
37
+ function generateSessionId() {
38
+ return `sess_${(0, node_crypto_1.randomBytes)(4).toString("hex")}`;
39
+ }
27
40
  async function createNokaiServer() {
28
41
  const TURN_SERVER = process.env.NOKAI_TURN_SERVER || "";
29
42
  const TURN_USERNAME = process.env.NOKAI_TURN_USERNAME || "";
@@ -46,13 +59,17 @@ async function createNokaiServer() {
46
59
  const name = process.env.NOKAI_AGENT_NAME || "Agent";
47
60
  profile = (0, profile_js_1.createProfile)(name, profileDir);
48
61
  }
62
+ const sessionName = getSessionName();
63
+ const sessionId = generateSessionId();
49
64
  const db = (0, db_js_1.createDatabase)((0, node_path_1.join)(profileDir, "nokai.db"));
50
65
  const signalingClient = new signaling_client_js_1.SignalingClient(SIGNALING_URL);
51
- const connectionManager = new connection_manager_js_1.ConnectionManager(db, profile);
66
+ const connectionManager = new connection_manager_js_1.ConnectionManager(db, profile, SIGNALING_URL);
52
67
  try {
53
68
  await signalingClient.connect();
54
69
  signalingClient.register(profile.name, profile.publicKey, profile.deviceId);
55
- signalingClient.goOnline(profile.deviceId);
70
+ signalingClient.goOnline(profile.deviceId, profile.nokaiId, sessionId, sessionName);
71
+ console.error(`[NokAI] Your NokAI ID: ${profile.nokaiId}`);
72
+ console.error(`[NokAI] Session: ${sessionName} (${sessionId})`);
56
73
  }
57
74
  catch (err) {
58
75
  console.error("Failed to connect to signaling server:", err.message);
@@ -61,14 +78,77 @@ async function createNokaiServer() {
61
78
  if (msg.type === "query") {
62
79
  console.error(`[NokAI] Incoming question from ${peerName}: ${msg.content}`);
63
80
  }
81
+ else if (msg.type === "share") {
82
+ if ("shareType" in msg && msg.shareType === "file" && "files" in msg && msg.files) {
83
+ const fileList = msg.files.map((f) => f.path).join(", ");
84
+ console.error(`[NokAI] ${peerName} shared ${msg.files.length} file(s): ${fileList}`);
85
+ }
86
+ else if ("shareType" in msg && msg.shareType === "context") {
87
+ console.error(`[NokAI] ${peerName} shared their project context`);
88
+ }
89
+ }
90
+ });
91
+ // Handle incoming connection requests (ID-based, AnyDesk-style)
92
+ signalingClient.on("connect_request", async (data) => {
93
+ console.error(`[NokAI] Connection request from ${data.peerName} (${data.peerNokaiId})`);
94
+ console.error(`[NokAI] Approval code: ${data.approvalCode}`);
95
+ console.error(`[NokAI] Share this code with ${data.peerName} to approve the connection.`);
96
+ // Auto-approve: the approval code is shown to this user, they tell the requester
97
+ // The requester doesn't need to enter it — we approve automatically and the code
98
+ // serves as identity verification (the requester asked for it verbally/via Slack)
99
+ signalingClient.approveConnection(profile.deviceId, data.approvalCode, profile.name, profile.publicKey, data.peerName, data.peerPublicKey);
100
+ const pc = createPeerConnectionWithConfig();
101
+ pc.onIceCandidate((candidate) => {
102
+ signalingClient.signal(data.peerId, { type: "ice", ...candidate });
103
+ });
104
+ const signalHandler = async (signalData) => {
105
+ if (signalData.from === data.peerId) {
106
+ if (signalData.data.type === "ice") {
107
+ pc.addIceCandidate({
108
+ candidate: signalData.data.candidate,
109
+ mid: signalData.data.mid,
110
+ });
111
+ }
112
+ else if (signalData.data.type === "offer") {
113
+ const answer = await pc.createAnswer({
114
+ type: "offer",
115
+ sdp: signalData.data.sdp,
116
+ });
117
+ signalingClient.signal(data.peerId, { type: "answer", sdp: answer.sdp });
118
+ }
119
+ }
120
+ };
121
+ signalingClient.on("signal", signalHandler);
122
+ await pc.waitForDataChannel();
123
+ signalingClient.removeListener("signal", signalHandler);
124
+ const connectionId = `conn_${Date.now()}`;
125
+ connectionManager.registerPeer(connectionId, data.peerName, data.peerPublicKey);
126
+ connectionManager.setPeerSend(connectionId, (msg) => pc.send(msg));
127
+ connectionManager.setPeerClose(connectionId, () => pc.close());
128
+ pc.onMessage((msg) => connectionManager.handleIncomingMessage(connectionId, msg));
129
+ console.error(`[NokAI] Connected with ${data.peerName} (${data.peerNokaiId})`);
64
130
  });
65
- // Auto-accept reconnect requests from known peers
131
+ // Auto-accept reconnect requests from known peers (with signature verification)
66
132
  signalingClient.on("reconnect_ask", async (data) => {
67
133
  const savedConn = db.getConnectionByPeerPublicKey(data.peerPublicKey);
68
134
  if (!savedConn) {
69
135
  console.error(`[NokAI] Reconnect request from unknown peer: ${data.peerName}`);
70
136
  return;
71
137
  }
138
+ // Verify signature if provided (proves the requester holds the private key)
139
+ if (data.signature && data.challenge) {
140
+ const isValid = (0, crypto_js_1.verify)(data.challenge, data.signature, data.peerPublicKey);
141
+ if (!isValid) {
142
+ console.error(`[NokAI] Reconnect request from ${data.peerName} — signature verification FAILED. Rejecting.`);
143
+ return;
144
+ }
145
+ // Reject stale challenges (older than 5 minutes)
146
+ const challengeTime = parseInt(data.challenge, 10);
147
+ if (isNaN(challengeTime) || Date.now() - challengeTime > 5 * 60 * 1000) {
148
+ console.error(`[NokAI] Reconnect request from ${data.peerName} — challenge expired. Rejecting.`);
149
+ return;
150
+ }
151
+ }
72
152
  console.error(`[NokAI] Reconnect request from ${data.peerName} — auto-accepting`);
73
153
  signalingClient.reconnectAccept(data.peerId, profile.name, profile.publicKey, profile.deviceId);
74
154
  const pc = createPeerConnectionWithConfig();
@@ -105,8 +185,15 @@ async function createNokaiServer() {
105
185
  name: "nokai",
106
186
  version: "0.1.0",
107
187
  });
108
- server.tool("nokai_connect", "Generate a one-time connection code (OTP) to connect with another developer's Claude Code instance.", {}, async () => ({
109
- content: [{ type: "text", text: await (0, connect_js_1.handleConnect)(profile, signalingClient, connectionManager, pcConfig) }],
188
+ server.tool("nokai_id", "Show your NokAI ID. Share this with teammates so they can connect to you.", {}, async () => ({
189
+ content: [{ type: "text", text: (0, id_js_1.handleId)(profile, sessionId, sessionName) }],
190
+ }));
191
+ server.tool("nokai_connect", "Connect to another NokAI session. Use mode='teammate' with their NokAI ID, or mode='self' to connect to your own other project.", {
192
+ mode: zod_1.z.string().describe("'teammate' (connect to another person) or 'self' (connect to your own other project session)"),
193
+ id: zod_1.z.string().optional().describe("For teammate mode: their NokAI ID (e.g., NKI-8A3F-K2M9)"),
194
+ session: zod_1.z.string().optional().describe("For self mode: session/project name to connect to"),
195
+ }, async (args) => ({
196
+ content: [{ type: "text", text: await (0, connect_js_1.handleConnect)(args, profile, signalingClient, connectionManager, SIGNALING_URL, sessionId, sessionName, pcConfig) }],
110
197
  }));
111
198
  server.tool("nokai_join", "Join a connection using a 6-digit OTP code shared by another developer.", { otp: zod_1.z.string().describe("The 6-digit connection code") }, async (args) => ({
112
199
  content: [{ type: "text", text: await (0, join_js_1.handleJoin)(args, profile, signalingClient, connectionManager, pcConfig) }],
@@ -174,6 +261,25 @@ async function createNokaiServer() {
174
261
  }, async (args) => ({
175
262
  content: [{ type: "text", text: await (0, profile_tool_js_1.handleProfile)(args, profile) }],
176
263
  }));
264
+ server.tool("nokai_share", "Share files or project context with a connected peer. Use type='file' for specific files, type='context' for project overview.", {
265
+ peer: zod_1.z.string().describe("Name of the connected peer"),
266
+ type: zod_1.z.string().describe("'file' or 'context'"),
267
+ files: zod_1.z.array(zod_1.z.string()).optional().describe("File paths to share (for type='file')"),
268
+ path: zod_1.z.string().optional().describe("Project root path (for type='context', defaults to cwd)"),
269
+ }, async (args) => ({
270
+ content: [{ type: "text", text: await (0, share_js_1.handleShare)(args, connectionManager) }],
271
+ }));
272
+ server.tool("nokai_discover", "Discover which of your previously connected peers are currently online.", {}, async () => ({
273
+ content: [{ type: "text", text: await (0, discover_js_1.handleDiscover)(db, SIGNALING_URL) }],
274
+ }));
275
+ server.tool("nokai_invite", "Create a persistent single-use invite link for a teammate to connect with you.", {}, async () => ({
276
+ content: [{ type: "text", text: await (0, invite_js_1.handleInvite)(profile, SIGNALING_URL) }],
277
+ }));
278
+ server.tool("nokai_join_invite", "Join a connection using an invite link or code shared by a teammate.", {
279
+ invite: zod_1.z.string().describe("Invite URL or code"),
280
+ }, async (args) => ({
281
+ content: [{ type: "text", text: await (0, invite_js_1.handleJoinInvite)(args, profile, signalingClient, connectionManager, SIGNALING_URL, pcConfig) }],
282
+ }));
177
283
  process.on("beforeExit", () => {
178
284
  if (signalingClient.isConnected()) {
179
285
  signalingClient.goOffline(profile.deviceId);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,18 @@ export declare const RECONNECT_TIMEOUT_MS: number;
12
12
  export declare const DEFAULT_STUN_SERVER = "stun:stun.l.google.com:19302";
13
13
  /** ICE connection timeout in milliseconds (10 seconds) */
14
14
  export declare const ICE_TIMEOUT_MS: number;
15
+ /** Default timeout for ask tool response (30 seconds) */
16
+ export declare const ASK_TIMEOUT_MS: number;
17
+ /** Default timeout for tell tool response (60 seconds) */
18
+ export declare const TELL_TIMEOUT_MS: number;
19
+ /** File/context sharing */
20
+ export declare const MAX_SHARE_SIZE_BYTES: number;
21
+ export declare const MAX_FILE_TREE_DEPTH = 5;
22
+ export declare const CONTEXT_README_MAX_CHARS = 2000;
23
+ /** Rate limiting */
24
+ export declare const RATE_LIMIT_OTP_CREATE = 5;
25
+ export declare const RATE_LIMIT_OTP_JOIN = 10;
26
+ export declare const RATE_LIMIT_WINDOW_MS: number;
15
27
  /** WebSocket close codes */
16
28
  export declare const WS_CLOSE_NORMAL = 1000;
17
29
  export declare const WS_CLOSE_OTP_EXPIRED = 4001;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,mDAAmD;AACnD,eAAO,MAAM,UAAU,QAAgB,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,EAAG,WAAoB,CAAC;AAEvD,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,0DAA0D;AAC1D,eAAO,MAAM,cAAc,QAAY,CAAC;AAExC,4BAA4B;AAC5B,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,mDAAmD;AACnD,eAAO,MAAM,UAAU,QAAgB,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,EAAG,WAAoB,CAAC;AAEvD,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,0DAA0D;AAC1D,eAAO,MAAM,cAAc,QAAY,CAAC;AAExC,yDAAyD;AACzD,eAAO,MAAM,cAAc,QAAwD,CAAC;AAEpF,0DAA0D;AAC1D,eAAO,MAAM,eAAe,QAAyD,CAAC;AAEtF,2BAA2B;AAC3B,eAAO,MAAM,oBAAoB,QAAa,CAAC;AAC/C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,oBAAoB;AACpB,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD,4BAA4B;AAC5B,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WS_CLOSE_RATE_LIMITED = exports.WS_CLOSE_OTP_INVALID = exports.WS_CLOSE_OTP_EXPIRED = exports.WS_CLOSE_NORMAL = exports.ICE_TIMEOUT_MS = exports.DEFAULT_STUN_SERVER = exports.RECONNECT_TIMEOUT_MS = exports.DEFAULT_PERMISSION = exports.PROTOCOL_VERSION = exports.OTP_TTL_MS = exports.OTP_LENGTH = void 0;
3
+ exports.WS_CLOSE_RATE_LIMITED = exports.WS_CLOSE_OTP_INVALID = exports.WS_CLOSE_OTP_EXPIRED = exports.WS_CLOSE_NORMAL = exports.RATE_LIMIT_WINDOW_MS = exports.RATE_LIMIT_OTP_JOIN = exports.RATE_LIMIT_OTP_CREATE = exports.CONTEXT_README_MAX_CHARS = exports.MAX_FILE_TREE_DEPTH = exports.MAX_SHARE_SIZE_BYTES = exports.TELL_TIMEOUT_MS = exports.ASK_TIMEOUT_MS = exports.ICE_TIMEOUT_MS = exports.DEFAULT_STUN_SERVER = exports.RECONNECT_TIMEOUT_MS = exports.DEFAULT_PERMISSION = exports.PROTOCOL_VERSION = exports.OTP_TTL_MS = exports.OTP_LENGTH = void 0;
4
4
  /** Length of OTP codes (digits) */
5
5
  exports.OTP_LENGTH = 6;
6
6
  /** OTP time-to-live in milliseconds (5 minutes) */
@@ -15,6 +15,18 @@ exports.RECONNECT_TIMEOUT_MS = 30 * 1000;
15
15
  exports.DEFAULT_STUN_SERVER = "stun:stun.l.google.com:19302";
16
16
  /** ICE connection timeout in milliseconds (10 seconds) */
17
17
  exports.ICE_TIMEOUT_MS = 10 * 1000;
18
+ /** Default timeout for ask tool response (30 seconds) */
19
+ exports.ASK_TIMEOUT_MS = Number(process.env.NOKAI_ASK_TIMEOUT_MS) || 30 * 1000;
20
+ /** Default timeout for tell tool response (60 seconds) */
21
+ exports.TELL_TIMEOUT_MS = Number(process.env.NOKAI_TELL_TIMEOUT_MS) || 60 * 1000;
22
+ /** File/context sharing */
23
+ exports.MAX_SHARE_SIZE_BYTES = 100 * 1024;
24
+ exports.MAX_FILE_TREE_DEPTH = 5;
25
+ exports.CONTEXT_README_MAX_CHARS = 2000;
26
+ /** Rate limiting */
27
+ exports.RATE_LIMIT_OTP_CREATE = 5;
28
+ exports.RATE_LIMIT_OTP_JOIN = 10;
29
+ exports.RATE_LIMIT_WINDOW_MS = 15 * 60 * 1000;
18
30
  /** WebSocket close codes */
19
31
  exports.WS_CLOSE_NORMAL = 1000;
20
32
  exports.WS_CLOSE_OTP_EXPIRED = 4001;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACtB,QAAA,UAAU,GAAG,CAAC,CAAC;AAE5B,mDAAmD;AACtC,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,iDAAiD;AACpC,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,mDAAmD;AACtC,QAAA,kBAAkB,GAAG,WAAoB,CAAC;AAEvD,uEAAuE;AAC1D,QAAA,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,0BAA0B;AACb,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,0DAA0D;AAC7C,QAAA,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,4BAA4B;AACf,QAAA,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,qBAAqB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACtB,QAAA,UAAU,GAAG,CAAC,CAAC;AAE5B,mDAAmD;AACtC,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,iDAAiD;AACpC,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,mDAAmD;AACtC,QAAA,kBAAkB,GAAG,WAAoB,CAAC;AAEvD,uEAAuE;AAC1D,QAAA,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,0BAA0B;AACb,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,0DAA0D;AAC7C,QAAA,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,yDAAyD;AAC5C,QAAA,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AAEpF,0DAA0D;AAC7C,QAAA,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AAEtF,2BAA2B;AACd,QAAA,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAE7C,oBAAoB;AACP,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAC1B,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,4BAA4B;AACf,QAAA,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,qBAAqB,GAAG,IAAI,CAAC"}
@@ -3,6 +3,7 @@ export interface AgentProfile {
3
3
  publicKey: string;
4
4
  privateKey: string;
5
5
  deviceId: string;
6
+ nokaiId: string;
6
7
  }
7
8
  export type Permission = "read-only" | "read-write" | "ask-only";
8
9
  export interface ConnectionRecord {
@@ -43,12 +44,29 @@ export interface ActionResultMessage extends BaseMessage {
43
44
  success: boolean;
44
45
  sourceFiles?: string[];
45
46
  }
46
- export type PeerMessage = QueryMessage | ResponseMessage | StatusMessage | ActionMessage | ActionResultMessage;
47
+ export interface SharedFile {
48
+ path: string;
49
+ content: string;
50
+ size: number;
51
+ }
52
+ export interface ProjectContext {
53
+ fileTree: string;
54
+ configs: Record<string, string>;
55
+ readme: string;
56
+ }
57
+ export interface ShareMessage extends BaseMessage {
58
+ type: "share";
59
+ shareType: "file" | "context";
60
+ files?: SharedFile[];
61
+ context?: ProjectContext;
62
+ }
63
+ export type PeerMessage = QueryMessage | ResponseMessage | StatusMessage | ActionMessage | ActionResultMessage | ShareMessage;
47
64
  export declare function isQueryMessage(msg: unknown): msg is QueryMessage;
48
65
  export declare function isResponseMessage(msg: unknown): msg is ResponseMessage;
49
66
  export declare function isStatusMessage(msg: unknown): msg is StatusMessage;
50
67
  export declare function isActionMessage(msg: unknown): msg is ActionMessage;
51
68
  export declare function isActionResultMessage(msg: unknown): msg is ActionResultMessage;
69
+ export declare function isShareMessage(msg: unknown): msg is ShareMessage;
52
70
  export interface RegisterEvent {
53
71
  event: "register";
54
72
  agentName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ exports.isResponseMessage = isResponseMessage;
6
6
  exports.isStatusMessage = isStatusMessage;
7
7
  exports.isActionMessage = isActionMessage;
8
8
  exports.isActionResultMessage = isActionResultMessage;
9
+ exports.isShareMessage = isShareMessage;
9
10
  // --- Type Guards ---
10
11
  function hasRequiredFields(msg) {
11
12
  if (typeof msg !== "object" || msg === null)
@@ -38,4 +39,10 @@ function isActionResultMessage(msg) {
38
39
  const m = msg;
39
40
  return m.type === "action_result" && typeof m.replyTo === "string" && typeof m.success === "boolean";
40
41
  }
42
+ function isShareMessage(msg) {
43
+ if (!hasRequiredFields(msg))
44
+ return false;
45
+ const m = msg;
46
+ return m.type === "share" && (m.shareType === "file" || m.shareType === "context");
47
+ }
41
48
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":";AAAA,yBAAyB;;AA8EzB,wCAEC;AAED,8CAIC;AAED,0CAEC;AAED,0CAEC;AAED,sDAIC;AApCD,sBAAsB;AAEtB,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO,CACL,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,OAAO,CAAC;AACzE,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC1E,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC1E,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":";AAAA,yBAAyB;;AAkGzB,wCAEC;AAED,8CAIC;AAED,0CAEC;AAED,0CAEC;AAED,sDAIC;AAED,wCAIC;AA1CD,sBAAsB;AAEtB,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO,CACL,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,OAAO,CAAC;AACzE,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC1E,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,GAAmB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC1E,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;AACvG,CAAC;AAED,SAAgB,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACrF,CAAC"}
@@ -1,18 +1,33 @@
1
1
  import { EventEmitter } from "node:events";
2
+ export interface ReconnectConfig {
3
+ initialBackoffMs: number;
4
+ maxBackoffMs: number;
5
+ maxAttempts: number;
6
+ connectTimeoutMs: number;
7
+ }
2
8
  export declare class SignalingClient extends EventEmitter {
3
9
  private ws;
4
10
  private url;
5
- constructor(url: string);
11
+ private intentionalClose;
12
+ private reconnectAttempts;
13
+ private reconnectTimer;
14
+ private registrationInfo;
15
+ private reconnectConfig;
16
+ constructor(url: string, reconnectConfig?: Partial<ReconnectConfig>);
6
17
  connect(): Promise<void>;
18
+ private scheduleReconnect;
7
19
  isConnected(): boolean;
8
20
  private send;
9
21
  register(agentName: string, publicKey: string, deviceId: string): void;
10
22
  createOTP(): void;
11
23
  joinOTP(otp: string, agentName: string, publicKey: string): void;
12
24
  signal(to: string, data: Record<string, unknown>): void;
13
- goOnline(deviceId: string): void;
25
+ goOnline(deviceId: string, nokaiId?: string, sessionId?: string, sessionName?: string): void;
14
26
  goOffline(deviceId: string): void;
15
- reconnectRequest(targetDeviceId: string, agentName: string, publicKey: string, deviceId: string): void;
27
+ selfConnect(targetSessionId: string, agentName: string, publicKey: string, sessionId: string, sessionName: string): void;
28
+ connectByNokaiId(targetNokaiId: string, agentName: string, publicKey: string, deviceId: string, nokaiId: string): void;
29
+ approveConnection(deviceId: string, approvalCode: string, agentName: string, publicKey: string, requesterName: string, requesterPublicKey: string): void;
30
+ reconnectRequest(targetDeviceId: string, agentName: string, publicKey: string, deviceId: string, signature?: string, challenge?: string): void;
16
31
  reconnectAccept(targetDeviceId: string, agentName: string, publicKey: string, deviceId: string): void;
17
32
  disconnect(): void;
18
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signaling-client.d.ts","sourceRoot":"","sources":["../src/signaling-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAKvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BxB,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,IAAI;IAOZ,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItE,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItG,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrG,UAAU,IAAI,IAAI;CAMnB"}
1
+ {"version":3,"file":"signaling-client.d.ts","sourceRoot":"","sources":["../src/signaling-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AASD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAA2E;IACnG,OAAO,CAAC,eAAe,CAAkB;gBAE7B,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAMnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+DxB,OAAO,CAAC,iBAAiB;IA6BzB,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,IAAI;IAOZ,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtE,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5F,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxH,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAItH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAIxJ,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9I,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrG,UAAU,IAAI,IAAI;CAYnB"}
@@ -6,17 +6,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SignalingClient = void 0;
7
7
  const ws_1 = __importDefault(require("ws"));
8
8
  const node_events_1 = require("node:events");
9
+ const DEFAULT_RECONNECT_CONFIG = {
10
+ initialBackoffMs: 1000,
11
+ maxBackoffMs: 30_000,
12
+ maxAttempts: 10,
13
+ connectTimeoutMs: 5000,
14
+ };
9
15
  class SignalingClient extends node_events_1.EventEmitter {
10
16
  ws = null;
11
17
  url;
12
- constructor(url) {
18
+ intentionalClose = false;
19
+ reconnectAttempts = 0;
20
+ reconnectTimer = null;
21
+ registrationInfo = null;
22
+ reconnectConfig;
23
+ constructor(url, reconnectConfig) {
13
24
  super();
14
25
  this.url = url;
26
+ this.reconnectConfig = { ...DEFAULT_RECONNECT_CONFIG, ...reconnectConfig };
15
27
  }
16
28
  connect() {
29
+ const isReconnect = this.registrationInfo !== null;
17
30
  return new Promise((resolve, reject) => {
31
+ this.intentionalClose = false;
32
+ const connectTimeout = setTimeout(() => {
33
+ if (this.ws) {
34
+ this.ws.close();
35
+ }
36
+ }, this.reconnectConfig.connectTimeoutMs);
18
37
  this.ws = new ws_1.default(this.url);
19
38
  this.ws.on("open", () => {
39
+ clearTimeout(connectTimeout);
40
+ this.reconnectAttempts = 0;
41
+ // Re-register presence if we had prior registration info (reconnect case)
42
+ if (isReconnect) {
43
+ this.goOnline(this.registrationInfo.deviceId);
44
+ this.emit("reconnected");
45
+ }
20
46
  resolve();
21
47
  });
22
48
  this.ws.on("message", (data) => {
@@ -30,15 +56,49 @@ class SignalingClient extends node_events_1.EventEmitter {
30
56
  // ignore malformed messages
31
57
  }
32
58
  });
33
- this.ws.on("error", (err) => {
34
- reject(err);
59
+ this.ws.on("error", () => {
60
+ clearTimeout(connectTimeout);
61
+ // Error always followed by close event, which handles reconnect
62
+ if (!isReconnect) {
63
+ reject(new Error("Failed to connect to signaling server"));
64
+ }
35
65
  });
36
66
  this.ws.on("close", () => {
67
+ clearTimeout(connectTimeout);
37
68
  this.ws = null;
38
69
  this.emit("disconnected");
70
+ if (!this.intentionalClose) {
71
+ this.scheduleReconnect();
72
+ }
73
+ // For reconnect attempts, resolve so the scheduleReconnect setTimeout can proceed
74
+ if (isReconnect) {
75
+ resolve();
76
+ }
39
77
  });
40
78
  });
41
79
  }
80
+ scheduleReconnect() {
81
+ if (this.reconnectAttempts >= this.reconnectConfig.maxAttempts) {
82
+ this.emit("reconnect_failed", {
83
+ attempts: this.reconnectAttempts,
84
+ message: `Failed to reconnect after ${this.reconnectConfig.maxAttempts} attempts`,
85
+ });
86
+ return;
87
+ }
88
+ const backoff = Math.min(this.reconnectConfig.initialBackoffMs * Math.pow(2, this.reconnectAttempts), this.reconnectConfig.maxBackoffMs);
89
+ this.reconnectAttempts++;
90
+ this.emit("reconnecting", {
91
+ attempt: this.reconnectAttempts,
92
+ maxAttempts: this.reconnectConfig.maxAttempts,
93
+ backoffMs: backoff,
94
+ });
95
+ this.reconnectTimer = setTimeout(() => {
96
+ this.reconnectTimer = null;
97
+ this.connect().catch(() => {
98
+ // Error handled by close -> scheduleReconnect cycle
99
+ });
100
+ }, backoff);
101
+ }
42
102
  isConnected() {
43
103
  return this.ws !== null && this.ws.readyState === ws_1.default.OPEN;
44
104
  }
@@ -49,6 +109,7 @@ class SignalingClient extends node_events_1.EventEmitter {
49
109
  this.ws.send(JSON.stringify(data));
50
110
  }
51
111
  register(agentName, publicKey, deviceId) {
112
+ this.registrationInfo = { agentName, publicKey, deviceId };
52
113
  this.send({ event: "register", agentName, publicKey, deviceId });
53
114
  }
54
115
  createOTP() {
@@ -60,19 +121,34 @@ class SignalingClient extends node_events_1.EventEmitter {
60
121
  signal(to, data) {
61
122
  this.send({ event: "signal", to, data });
62
123
  }
63
- goOnline(deviceId) {
64
- this.send({ event: "go_online", deviceId });
124
+ goOnline(deviceId, nokaiId, sessionId, sessionName) {
125
+ this.send({ event: "go_online", deviceId, nokaiId, sessionId, sessionName });
65
126
  }
66
127
  goOffline(deviceId) {
67
128
  this.send({ event: "go_offline", deviceId });
68
129
  }
69
- reconnectRequest(targetDeviceId, agentName, publicKey, deviceId) {
70
- this.send({ event: "reconnect_req", targetDeviceId, agentName, publicKey, deviceId });
130
+ selfConnect(targetSessionId, agentName, publicKey, sessionId, sessionName) {
131
+ this.send({ event: "self_connect", targetSessionId, agentName, publicKey, sessionId, sessionName });
132
+ }
133
+ connectByNokaiId(targetNokaiId, agentName, publicKey, deviceId, nokaiId) {
134
+ this.send({ event: "connect_request", targetNokaiId, agentName, publicKey, deviceId, nokaiId });
135
+ }
136
+ approveConnection(deviceId, approvalCode, agentName, publicKey, requesterName, requesterPublicKey) {
137
+ this.send({ event: "connect_approve", deviceId, approvalCode, agentName, publicKey, requesterName, requesterPublicKey });
138
+ }
139
+ reconnectRequest(targetDeviceId, agentName, publicKey, deviceId, signature, challenge) {
140
+ this.send({ event: "reconnect_req", targetDeviceId, agentName, publicKey, deviceId, signature, challenge });
71
141
  }
72
142
  reconnectAccept(targetDeviceId, agentName, publicKey, deviceId) {
73
143
  this.send({ event: "reconnect_accept", targetDeviceId, agentName, publicKey, deviceId });
74
144
  }
75
145
  disconnect() {
146
+ this.intentionalClose = true;
147
+ if (this.reconnectTimer) {
148
+ clearTimeout(this.reconnectTimer);
149
+ this.reconnectTimer = null;
150
+ }
151
+ this.reconnectAttempts = 0;
76
152
  if (this.ws) {
77
153
  this.ws.close();
78
154
  this.ws = null;
@@ -1 +1 @@
1
- {"version":3,"file":"signaling-client.js","sourceRoot":"","sources":["../src/signaling-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signaling-client.js","sourceRoot":"","sources":["../src/signaling-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/tools/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAa7B,CAAC;AAEF,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1D,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/tools/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAa7B,CAAC;AAEF,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1D,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,CAAC,CA2BjB"}