remnote-mcp-server 0.14.1 → 0.15.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 (49) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +82 -28
  3. package/dist/cli.d.ts +2 -1
  4. package/dist/cli.js +9 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +14 -2
  7. package/dist/config.js +210 -10
  8. package/dist/config.js.map +1 -1
  9. package/dist/daemon.d.ts +61 -0
  10. package/dist/daemon.js +735 -0
  11. package/dist/daemon.js.map +1 -0
  12. package/dist/index.js +6 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/remnote-cli/cli.js +4 -0
  15. package/dist/remnote-cli/cli.js.map +1 -1
  16. package/dist/remnote-cli/client/mcp-server-client.js +7 -1
  17. package/dist/remnote-cli/client/mcp-server-client.js.map +1 -1
  18. package/dist/remnote-cli/commands/content-input.d.ts +0 -12
  19. package/dist/remnote-cli/commands/content-input.js +0 -20
  20. package/dist/remnote-cli/commands/content-input.js.map +1 -1
  21. package/dist/remnote-cli/commands/create.js +3 -3
  22. package/dist/remnote-cli/commands/create.js.map +1 -1
  23. package/dist/remnote-cli/commands/journal.js +3 -0
  24. package/dist/remnote-cli/commands/journal.js.map +1 -1
  25. package/dist/remnote-cli/commands/read.js +20 -2
  26. package/dist/remnote-cli/commands/read.js.map +1 -1
  27. package/dist/remnote-cli/commands/search.js +24 -5
  28. package/dist/remnote-cli/commands/search.js.map +1 -1
  29. package/dist/remnote-cli/commands/update.js +5 -24
  30. package/dist/remnote-cli/commands/update.js.map +1 -1
  31. package/dist/remnote-cli/commands/write-actions.d.ts +4 -0
  32. package/dist/remnote-cli/commands/write-actions.js +123 -0
  33. package/dist/remnote-cli/commands/write-actions.js.map +1 -0
  34. package/dist/schemas/remnote-schemas.d.ts +33 -10
  35. package/dist/schemas/remnote-schemas.js +58 -16
  36. package/dist/schemas/remnote-schemas.js.map +1 -1
  37. package/dist/tools/index.d.ts +1264 -12
  38. package/dist/tools/index.js +157 -47
  39. package/dist/tools/index.js.map +1 -1
  40. package/dist/websocket-server.d.ts +5 -0
  41. package/dist/websocket-server.js +64 -10
  42. package/dist/websocket-server.js.map +1 -1
  43. package/mcpb/remnote-local/README.md +4 -3
  44. package/mcpb/remnote-local/manifest.json +30 -28
  45. package/mcpb/remnote-local/package.json +1 -1
  46. package/mcpb/remnote-local/remnote-local.mcpb +0 -0
  47. package/mcpb/remnote-local/server/fallback-tools.generated.js +323 -0
  48. package/mcpb/remnote-local/server/index.js +7 -122
  49. package/package.json +5 -3
@@ -4,6 +4,9 @@ import { SearchSchema } from '../schemas/remnote-schemas.js';
4
4
  import { SearchByTagSchema } from '../schemas/remnote-schemas.js';
5
5
  import { ReadNoteSchema } from '../schemas/remnote-schemas.js';
6
6
  import { UpdateNoteSchema } from '../schemas/remnote-schemas.js';
7
+ import { InsertChildrenSchema } from '../schemas/remnote-schemas.js';
8
+ import { ReplaceChildrenSchema } from '../schemas/remnote-schemas.js';
9
+ import { UpdateTagsSchema } from '../schemas/remnote-schemas.js';
7
10
  import { AppendJournalSchema } from '../schemas/remnote-schemas.js';
8
11
  import { ReadTableSchema } from '../schemas/remnote-schemas.js';
9
12
  import { checkVersionCompatibility } from '../version-compat.js';
@@ -12,9 +15,18 @@ const NAVIGATION_PRESET = {
12
15
  depth: 1,
13
16
  childLimit: 500,
14
17
  };
18
+ const TAG_INFO_SCHEMA = {
19
+ type: 'object',
20
+ properties: {
21
+ tagRemId: { type: 'string', description: 'Exact tag Rem ID' },
22
+ name: { type: 'string', description: 'Human-readable tag name' },
23
+ },
24
+ required: ['tagRemId', 'name'],
25
+ additionalProperties: false,
26
+ };
15
27
  export const CREATE_NOTE_TOOL = {
16
28
  name: 'remnote_create_note',
17
- description: 'Create a new note in RemNote with optional content, parent, and tags. Supports hierarchical markdown in content and flashcard syntax (e.g. "- Term :: Definition"). At least one of title or content must be provided. Recommended preflight once per session: remnote_status.',
29
+ description: 'Create a new note in RemNote with optional content, parent, and exact tag Rem IDs. Supports hierarchical markdown in content and flashcard syntax (e.g. "- Term :: Definition"). At least one of title or content must be provided. Recommended preflight once per session: remnote_status.',
18
30
  inputSchema: {
19
31
  type: 'object',
20
32
  properties: {
@@ -27,9 +39,14 @@ export const CREATE_NOTE_TOOL = {
27
39
  description: 'Content as plain text, child bullets or hierarchical markdown',
28
40
  },
29
41
  parentId: { type: 'string', description: 'Parent Rem ID' },
30
- tags: { type: 'array', items: { type: 'string' }, description: 'Tags to apply' },
42
+ tagRemIds: {
43
+ type: 'array',
44
+ items: { type: 'string' },
45
+ description: 'Exact tag Rem IDs to apply',
46
+ },
31
47
  },
32
48
  required: [],
49
+ additionalProperties: false,
33
50
  },
34
51
  outputSchema: {
35
52
  type: 'object',
@@ -106,8 +123,8 @@ export const SEARCH_TOOL = {
106
123
  },
107
124
  tags: {
108
125
  type: 'array',
109
- items: { type: 'string' },
110
- description: 'Direct tag names applied to the returned Rem (omitted if none or unavailable from the bridge runtime)',
126
+ items: TAG_INFO_SCHEMA,
127
+ description: 'Direct tags applied to the returned Rem as exact tag Rem IDs plus names (omitted if none or unavailable from the bridge runtime)',
111
128
  },
112
129
  remType: {
113
130
  type: 'string',
@@ -140,8 +157,8 @@ export const SEARCH_TOOL = {
140
157
  },
141
158
  tags: {
142
159
  type: 'array',
143
- items: { type: 'string' },
144
- description: 'Direct tag names applied to the child Rem (omitted if none or unavailable from the bridge runtime)',
160
+ items: TAG_INFO_SCHEMA,
161
+ description: 'Direct tags applied to the child Rem as exact tag Rem IDs plus names (omitted if none or unavailable from the bridge runtime)',
145
162
  },
146
163
  remType: {
147
164
  type: 'string',
@@ -186,13 +203,13 @@ export const SEARCH_TOOL = {
186
203
  };
187
204
  export const SEARCH_BY_TAG_TOOL = {
188
205
  name: 'remnote_search_by_tag',
189
- description: 'Find notes by tag and return resolved ancestor context targets (nearest document/daily document when available, otherwise nearest non-document ancestor). Supports the same includeContent modes as remnote_search.',
206
+ description: 'Find notes by exact tag Rem ID and return resolved ancestor context targets (nearest document/daily document when available, otherwise nearest non-document ancestor). Does not look up tags by name or alias. Supports the same includeContent modes as remnote_search.',
190
207
  inputSchema: {
191
208
  type: 'object',
192
209
  properties: {
193
- tag: {
210
+ tagRemId: {
194
211
  type: 'string',
195
- description: 'Tag name to search (with or without # prefix)',
212
+ description: 'Exact tag Rem ID to search',
196
213
  },
197
214
  limit: { type: 'number', description: 'Maximum results (1-150, default: 50)' },
198
215
  includeContent: {
@@ -213,7 +230,7 @@ export const SEARCH_BY_TAG_TOOL = {
213
230
  description: 'Maximum character length for rendered content (default: 3000)',
214
231
  },
215
232
  },
216
- required: ['tag'],
233
+ required: ['tagRemId'],
217
234
  },
218
235
  outputSchema: SEARCH_TOOL.outputSchema,
219
236
  };
@@ -268,8 +285,8 @@ export const READ_NOTE_TOOL = {
268
285
  },
269
286
  tags: {
270
287
  type: 'array',
271
- items: { type: 'string' },
272
- description: 'Direct tag names applied to the returned Rem (omitted if none or unavailable from the bridge runtime)',
288
+ items: TAG_INFO_SCHEMA,
289
+ description: 'Direct tags applied to the returned Rem as exact tag Rem IDs plus names (omitted if none or unavailable from the bridge runtime)',
273
290
  },
274
291
  remType: {
275
292
  type: 'string',
@@ -302,8 +319,8 @@ export const READ_NOTE_TOOL = {
302
319
  },
303
320
  tags: {
304
321
  type: 'array',
305
- items: { type: 'string' },
306
- description: 'Direct tag names applied to the child Rem (omitted if none or unavailable from the bridge runtime)',
322
+ items: TAG_INFO_SCHEMA,
323
+ description: 'Direct tags applied to the child Rem as exact tag Rem IDs plus names (omitted if none or unavailable from the bridge runtime)',
307
324
  },
308
325
  remType: {
309
326
  type: 'string',
@@ -345,24 +362,15 @@ export const READ_NOTE_TOOL = {
345
362
  };
346
363
  export const UPDATE_NOTE_TOOL = {
347
364
  name: 'remnote_update_note',
348
- description: 'Update an existing note in RemNote (change title, append content, replace content, or modify tags). Recommended preflight once per session: remnote_status. appendContent and replaceContent are mutually exclusive. replaceContent may be blocked by bridge policy.',
365
+ description: 'Update note metadata in RemNote. Use this tool for title changes only.',
349
366
  inputSchema: {
350
367
  type: 'object',
351
368
  properties: {
352
369
  remId: { type: 'string', description: 'The Rem ID to update' },
353
370
  title: { type: 'string', description: 'New title' },
354
- appendContent: {
355
- type: 'string',
356
- description: 'Content to append as children (markdown supported)',
357
- },
358
- replaceContent: {
359
- type: 'string',
360
- description: 'Content to replace direct children (markdown supported, empty string clears children)',
361
- },
362
- addTags: { type: 'array', items: { type: 'string' }, description: 'Tags to add' },
363
- removeTags: { type: 'array', items: { type: 'string' }, description: 'Tags to remove' },
364
371
  },
365
- required: ['remId'],
372
+ required: ['remId', 'title'],
373
+ additionalProperties: false,
366
374
  },
367
375
  outputSchema: {
368
376
  type: 'object',
@@ -381,9 +389,80 @@ export const UPDATE_NOTE_TOOL = {
381
389
  required: ['remIds', 'titles'],
382
390
  },
383
391
  };
392
+ export const INSERT_CHILDREN_TOOL = {
393
+ name: 'remnote_insert_children',
394
+ description: 'Insert new child Rems under a parent at a deterministic position without replacing existing children. Use this for tag description nodes and hierarchy maintenance.',
395
+ inputSchema: {
396
+ type: 'object',
397
+ properties: {
398
+ parentRemId: {
399
+ type: 'string',
400
+ description: 'Parent Rem ID that will receive the new children',
401
+ },
402
+ content: { type: 'string', description: 'Markdown content to insert as child Rems' },
403
+ position: {
404
+ type: 'string',
405
+ enum: ['first', 'last', 'before', 'after'],
406
+ description: 'Where to insert the new child Rems',
407
+ },
408
+ siblingRemId: {
409
+ type: 'string',
410
+ description: 'Sibling Rem ID required when position is before or after',
411
+ },
412
+ },
413
+ required: ['parentRemId', 'content', 'position'],
414
+ additionalProperties: false,
415
+ },
416
+ outputSchema: UPDATE_NOTE_TOOL.outputSchema,
417
+ };
418
+ export const REPLACE_CHILDREN_TOOL = {
419
+ name: 'remnote_replace_children',
420
+ description: 'Replace all direct children under a parent Rem. This is destructive because existing child Rem IDs are removed and may be blocked by bridge policy.',
421
+ inputSchema: {
422
+ type: 'object',
423
+ properties: {
424
+ parentRemId: {
425
+ type: 'string',
426
+ description: 'Parent Rem ID whose direct children will be replaced',
427
+ },
428
+ content: {
429
+ type: 'string',
430
+ description: 'Markdown content to use as replacement children; empty string clears all direct children',
431
+ },
432
+ },
433
+ required: ['parentRemId', 'content'],
434
+ additionalProperties: false,
435
+ },
436
+ outputSchema: UPDATE_NOTE_TOOL.outputSchema,
437
+ };
438
+ export const UPDATE_TAGS_TOOL = {
439
+ name: 'remnote_update_tags',
440
+ description: 'Add or remove tags from a note by exact tag Rem IDs. Use this for production tagging workflows to avoid ambiguous name lookup.',
441
+ inputSchema: {
442
+ type: 'object',
443
+ properties: {
444
+ remId: { type: 'string', description: 'The Rem ID whose tags should change' },
445
+ addTagRemIds: {
446
+ type: 'array',
447
+ items: { type: 'string' },
448
+ minItems: 1,
449
+ description: 'Exact tag Rem IDs to add',
450
+ },
451
+ removeTagRemIds: {
452
+ type: 'array',
453
+ items: { type: 'string' },
454
+ minItems: 1,
455
+ description: 'Exact tag Rem IDs to remove',
456
+ },
457
+ },
458
+ required: ['remId'],
459
+ additionalProperties: false,
460
+ },
461
+ outputSchema: UPDATE_NOTE_TOOL.outputSchema,
462
+ };
384
463
  export const APPEND_JOURNAL_TOOL = {
385
464
  name: 'remnote_append_journal',
386
- description: "Append content to today's daily document in RemNote. Recommended preflight once per session: remnote_status.",
465
+ description: "Append content to today's daily document in RemNote with optional exact tag Rem IDs. Recommended preflight once per session: remnote_status.",
387
466
  inputSchema: {
388
467
  type: 'object',
389
468
  properties: {
@@ -392,8 +471,14 @@ export const APPEND_JOURNAL_TOOL = {
392
471
  description: "Content to append to today's daily document (markdown supported)",
393
472
  },
394
473
  timestamp: { type: 'boolean', description: 'Include timestamp (default: true)' },
474
+ tagRemIds: {
475
+ type: 'array',
476
+ items: { type: 'string' },
477
+ description: 'Exact tag Rem IDs to apply',
478
+ },
395
479
  },
396
480
  required: ['content'],
481
+ additionalProperties: false,
397
482
  },
398
483
  outputSchema: {
399
484
  type: 'object',
@@ -431,11 +516,11 @@ export const STATUS_TOOL = {
431
516
  },
432
517
  acceptWriteOperations: {
433
518
  type: 'boolean',
434
- description: 'Whether bridge allows write actions (create/update/journal)',
519
+ description: 'Whether bridge allows write actions',
435
520
  },
436
521
  acceptReplaceOperation: {
437
522
  type: 'boolean',
438
- description: 'Whether bridge allows update replaceContent operations',
523
+ description: 'Whether bridge allows remnote_replace_children operations',
439
524
  },
440
525
  message: {
441
526
  type: 'string',
@@ -580,6 +665,20 @@ export const PLAYBOOK_TOOL = {
580
665
  required: ['playbookVersion', 'summary', 'decisionTree', 'navigationPresets', 'contentModes'],
581
666
  },
582
667
  };
668
+ export const ALL_TOOLS = [
669
+ CREATE_NOTE_TOOL,
670
+ SEARCH_TOOL,
671
+ SEARCH_BY_TAG_TOOL,
672
+ READ_NOTE_TOOL,
673
+ UPDATE_NOTE_TOOL,
674
+ INSERT_CHILDREN_TOOL,
675
+ REPLACE_CHILDREN_TOOL,
676
+ UPDATE_TAGS_TOOL,
677
+ APPEND_JOURNAL_TOOL,
678
+ PLAYBOOK_TOOL,
679
+ STATUS_TOOL,
680
+ READ_TABLE_TOOL,
681
+ ];
583
682
  export function registerAllTools(server, wsServer, logger) {
584
683
  const toolLogger = logger.child({ context: 'tools' });
585
684
  async function buildStatusResult() {
@@ -638,6 +737,21 @@ export function registerAllTools(server, wsServer, logger) {
638
737
  result = await wsServer.sendRequest('update_note', args);
639
738
  break;
640
739
  }
740
+ case 'remnote_insert_children': {
741
+ const args = InsertChildrenSchema.parse(request.params.arguments);
742
+ result = await wsServer.sendRequest('insert_children', args);
743
+ break;
744
+ }
745
+ case 'remnote_replace_children': {
746
+ const args = ReplaceChildrenSchema.parse(request.params.arguments);
747
+ result = await wsServer.sendRequest('replace_children', args);
748
+ break;
749
+ }
750
+ case 'remnote_update_tags': {
751
+ const args = UpdateTagsSchema.parse(request.params.arguments);
752
+ result = await wsServer.sendRequest('update_tags', args);
753
+ break;
754
+ }
641
755
  case 'remnote_append_journal': {
642
756
  const args = AppendJournalSchema.parse(request.params.arguments);
643
757
  result = await wsServer.sendRequest('append_journal', args);
@@ -655,7 +769,7 @@ export function registerAllTools(server, wsServer, logger) {
655
769
  };
656
770
  }
657
771
  result = {
658
- playbookVersion: '1.0.0',
772
+ playbookVersion: '1.1.0',
659
773
  summary: 'Use this playbook to navigate RemNote efficiently via remIds, and to apply write-safety checks before mutations.',
660
774
  recommendedStatusCheck: {
661
775
  tool: 'remnote_status',
@@ -665,10 +779,16 @@ export function registerAllTools(server, wsServer, logger) {
665
779
  decisionTree: [
666
780
  'Need connection/capability context? Call remnote_status first.',
667
781
  'Need to orient across the KB? Use remnote_search with includeContent="structured", depth=1, childLimit=500.',
782
+ 'Need tagged-note context? Use remnote_search_by_tag with tagRemId; it does not resolve tag names or aliases.',
668
783
  'Need to traverse a specific branch? Use remnote_read_note on a chosen remId with includeContent="structured", depth=1, childLimit=500, then recurse by child remIds.',
669
784
  'Need tabular/structured data from an Advanced Table? Use remnote_read_table with either tableTitle or tableRemId. Use propertyFilter to limit columns for large tables.',
670
785
  'Need a human-readable summary? Switch to includeContent="markdown" on search/read results.',
671
- 'Need to modify content? Check remnote_status: if acceptWriteOperations is false, stop; if using replaceContent, ensure acceptReplaceOperation is true.',
786
+ 'Need to rename a note? Use remnote_update_note with remId and title only.',
787
+ 'Need to create a note? Use remnote_create_note; pass tagRemIds for exact-ID tag assignment.',
788
+ 'Need to append to today journal? Use remnote_append_journal; pass tagRemIds when the journal entry should be tagged.',
789
+ 'Need to insert children? Use remnote_insert_children with an explicit position.',
790
+ 'Need to replace children? Check remnote_status first; remnote_replace_children requires acceptReplaceOperation=true.',
791
+ 'Need to update tags on an existing note? Use remnote_update_tags with exact tag Rem IDs.',
672
792
  ],
673
793
  navigationPresets: {
674
794
  orientation: NAVIGATION_PRESET,
@@ -683,9 +803,11 @@ export function registerAllTools(server, wsServer, logger) {
683
803
  statusTool: 'remnote_status',
684
804
  requiredFields: ['acceptWriteOperations', 'acceptReplaceOperation'],
685
805
  guidance: [
686
- 'Create/update/journal require acceptWriteOperations=true.',
687
- 'replaceContent updates require acceptReplaceOperation=true.',
688
- 'appendContent and replaceContent cannot be used in the same remnote_update_note call.',
806
+ 'Create/update/insert/replace/tag/journal writes require acceptWriteOperations=true.',
807
+ 'remnote_update_note is metadata-only; use insert_children, replace_children, and update_tags for structural or tag writes.',
808
+ 'remnote_replace_children requires acceptReplaceOperation=true.',
809
+ 'remnote_insert_children preserves existing child Rem IDs; remnote_replace_children removes them.',
810
+ 'All production tag writes use exact tag Rem IDs: create_note.tagRemIds, append_journal.tagRemIds, and update_tags add/remove arrays.',
689
811
  ],
690
812
  },
691
813
  currentStatus,
@@ -732,19 +854,7 @@ export function registerAllTools(server, wsServer, logger) {
732
854
  // Register list_tools handler
733
855
  server.setRequestHandler(ListToolsRequestSchema, async () => {
734
856
  toolLogger.debug('Listing available tools');
735
- return {
736
- tools: [
737
- CREATE_NOTE_TOOL,
738
- SEARCH_TOOL,
739
- SEARCH_BY_TAG_TOOL,
740
- READ_NOTE_TOOL,
741
- UPDATE_NOTE_TOOL,
742
- APPEND_JOURNAL_TOOL,
743
- PLAYBOOK_TOOL,
744
- STATUS_TOOL,
745
- READ_TABLE_TOOL,
746
- ],
747
- };
857
+ return { tools: [...ALL_TOOLS] };
748
858
  });
749
859
  }
750
860
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Logger } from './logger.js';
2
2
  export declare const REQUEST_TIMEOUT_MS = 15000;
3
+ export declare const HELLO_TIMEOUT_MS = 2000;
3
4
  export declare class WebSocketServer {
4
5
  private wss;
5
6
  private client;
@@ -10,6 +11,8 @@ export declare class WebSocketServer {
10
11
  private responseLogger;
11
12
  private serverVersion;
12
13
  private bridgeVersion;
14
+ private clientAccepted;
15
+ private helloTimeout;
13
16
  private pendingRequests;
14
17
  private connectCallbacks;
15
18
  private disconnectCallbacks;
@@ -23,4 +26,6 @@ export declare class WebSocketServer {
23
26
  onClientConnect(callback: () => void): void;
24
27
  onClientDisconnect(callback: () => void): void;
25
28
  private handleMessage;
29
+ private rejectBridge;
30
+ private clearHelloTimeout;
26
31
  }
@@ -2,6 +2,10 @@ import { WebSocketServer as WSServer, WebSocket } from 'ws';
2
2
  import { randomUUID } from 'crypto';
3
3
  import { checkVersionCompatibility } from './version-compat.js';
4
4
  export const REQUEST_TIMEOUT_MS = 15000;
5
+ export const HELLO_TIMEOUT_MS = 2000;
6
+ const POLICY_VIOLATION = 1008;
7
+ const INCOMPATIBLE_BRIDGE_REASON = 'Wrong/incompatible RemNote plugin installed. Install MCP/OpenClaw Automation Bridge matching server.';
8
+ const BRIDGE_REJECTION_LOG_PREFIX = `Rejecting bridge connection: ${INCOMPATIBLE_BRIDGE_REASON}`;
5
9
  export class WebSocketServer {
6
10
  wss = null;
7
11
  client = null;
@@ -12,6 +16,8 @@ export class WebSocketServer {
12
16
  responseLogger = null;
13
17
  serverVersion;
14
18
  bridgeVersion = null;
19
+ clientAccepted = false;
20
+ helloTimeout = null;
15
21
  pendingRequests = new Map();
16
22
  connectCallbacks = [];
17
23
  disconnectCallbacks = [];
@@ -37,11 +43,18 @@ export class WebSocketServer {
37
43
  // Only allow single client connection
38
44
  if (this.client && this.client.readyState === WebSocket.OPEN) {
39
45
  this.logger.warn('Rejecting connection: client already connected');
40
- ws.close(1008, 'Only one client allowed');
46
+ ws.close(POLICY_VIOLATION, 'Only one client allowed');
41
47
  return;
42
48
  }
43
49
  this.client = ws;
50
+ this.clientAccepted = false;
44
51
  this.logger.info('WebSocket client connected');
52
+ this.helloTimeout = setTimeout(() => {
53
+ if (this.client === ws && !this.clientAccepted && ws.readyState === WebSocket.OPEN) {
54
+ this.logger.warn(`${BRIDGE_REJECTION_LOG_PREFIX} Detail: hello timeout.`);
55
+ ws.close(POLICY_VIOLATION, INCOMPATIBLE_BRIDGE_REASON);
56
+ }
57
+ }, HELLO_TIMEOUT_MS);
45
58
  setImmediate(() => {
46
59
  if (ws.readyState !== WebSocket.OPEN) {
47
60
  return;
@@ -52,7 +65,6 @@ export class WebSocketServer {
52
65
  version: this.serverVersion,
53
66
  }));
54
67
  });
55
- this.connectCallbacks.forEach((cb) => cb());
56
68
  ws.on('message', (data) => {
57
69
  try {
58
70
  this.handleMessage(data.toString());
@@ -63,15 +75,22 @@ export class WebSocketServer {
63
75
  });
64
76
  ws.on('close', () => {
65
77
  this.logger.info('WebSocket client disconnected');
66
- this.client = null;
67
- this.bridgeVersion = null;
78
+ const wasAccepted = this.clientAccepted;
79
+ if (this.client === ws) {
80
+ this.client = null;
81
+ this.bridgeVersion = null;
82
+ this.clientAccepted = false;
83
+ this.clearHelloTimeout();
84
+ }
68
85
  // Reject all pending requests
69
86
  for (const [_id, pending] of this.pendingRequests.entries()) {
70
87
  clearTimeout(pending.timeout);
71
88
  pending.reject(new Error('Connection lost'));
72
89
  }
73
90
  this.pendingRequests.clear();
74
- this.disconnectCallbacks.forEach((cb) => cb());
91
+ if (wasAccepted) {
92
+ this.disconnectCallbacks.forEach((cb) => cb());
93
+ }
75
94
  });
76
95
  ws.on('error', (error) => {
77
96
  this.logger.error({ error }, 'WebSocket client error');
@@ -84,6 +103,9 @@ export class WebSocketServer {
84
103
  if (this.client) {
85
104
  this.client.close();
86
105
  this.client = null;
106
+ this.bridgeVersion = null;
107
+ this.clientAccepted = false;
108
+ this.clearHelloTimeout();
87
109
  }
88
110
  if (this.wss) {
89
111
  this.wss.close(() => {
@@ -98,7 +120,7 @@ export class WebSocketServer {
98
120
  });
99
121
  }
100
122
  async sendRequest(action, payload) {
101
- if (!this.client || this.client.readyState !== WebSocket.OPEN) {
123
+ if (!this.isConnected()) {
102
124
  throw new Error('RemNote plugin not connected. Please ensure the plugin is installed and running.');
103
125
  }
104
126
  const id = randomUUID();
@@ -152,7 +174,7 @@ export class WebSocketServer {
152
174
  });
153
175
  }
154
176
  isConnected() {
155
- return this.client !== null && this.client.readyState === WebSocket.OPEN;
177
+ return this.client !== null && this.client.readyState === WebSocket.OPEN && this.clientAccepted;
156
178
  }
157
179
  getBridgeVersion() {
158
180
  return this.bridgeVersion;
@@ -174,12 +196,20 @@ export class WebSocketServer {
174
196
  }, 'Received message');
175
197
  // Handle hello from bridge plugin
176
198
  if ('type' in message && message.type === 'hello') {
177
- this.bridgeVersion = message.version;
178
- this.logger.info({ bridgeVersion: message.version }, 'Bridge identified');
199
+ if (typeof message.version !== 'string') {
200
+ this.rejectBridge('Bridge hello missing version', INCOMPATIBLE_BRIDGE_REASON);
201
+ return;
202
+ }
179
203
  const warning = checkVersionCompatibility(this.serverVersion, message.version);
180
204
  if (warning) {
181
- this.logger.warn({ warning }, 'Bridge version compatibility warning');
205
+ this.rejectBridge(warning, INCOMPATIBLE_BRIDGE_REASON);
206
+ return;
182
207
  }
208
+ this.bridgeVersion = message.version;
209
+ this.clientAccepted = true;
210
+ this.clearHelloTimeout();
211
+ this.logger.info({ bridgeVersion: message.version }, 'Bridge identified');
212
+ this.connectCallbacks.forEach((cb) => cb());
183
213
  return;
184
214
  }
185
215
  // Handle pong response to ping
@@ -195,6 +225,10 @@ export class WebSocketServer {
195
225
  }
196
226
  // Handle response to our request
197
227
  if ('id' in message) {
228
+ if (!this.clientAccepted) {
229
+ this.rejectBridge('Bridge sent response before compatible hello', INCOMPATIBLE_BRIDGE_REASON);
230
+ return;
231
+ }
198
232
  const response = message;
199
233
  const pending = this.pendingRequests.get(response.id);
200
234
  if (pending) {
@@ -211,10 +245,30 @@ export class WebSocketServer {
211
245
  this.logger.warn({ id: response.id }, 'Unknown request ID');
212
246
  }
213
247
  }
248
+ if (!this.clientAccepted) {
249
+ this.rejectBridge('Bridge sent message before compatible hello', INCOMPATIBLE_BRIDGE_REASON);
250
+ }
214
251
  }
215
252
  catch (error) {
216
253
  this.logger.error({ error }, 'Error parsing message');
254
+ if (!this.clientAccepted) {
255
+ this.rejectBridge('Bridge sent invalid JSON before compatible hello', INCOMPATIBLE_BRIDGE_REASON);
256
+ }
257
+ }
258
+ }
259
+ rejectBridge(detail, closeReason) {
260
+ this.logger.warn({ detail }, BRIDGE_REJECTION_LOG_PREFIX);
261
+ this.clearHelloTimeout();
262
+ if (this.client && this.client.readyState === WebSocket.OPEN) {
263
+ this.client.close(POLICY_VIOLATION, closeReason);
264
+ }
265
+ }
266
+ clearHelloTimeout() {
267
+ if (!this.helloTimeout) {
268
+ return;
217
269
  }
270
+ clearTimeout(this.helloTimeout);
271
+ this.helloTimeout = null;
218
272
  }
219
273
  }
220
274
  //# sourceMappingURL=websocket-server.js.map