rosinterface 1.3.0 → 1.3.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.
Files changed (78) hide show
  1. package/dist/cli/Generate.js +20 -1
  2. package/dist/cli/Generate.js.map +1 -1
  3. package/dist/cli/SchemaInferrer.d.ts +9 -0
  4. package/dist/cli/SchemaInferrer.js +22 -3
  5. package/dist/cli/SchemaInferrer.js.map +1 -1
  6. package/dist/client/CommandBuilder.d.ts +337 -2
  7. package/dist/client/CommandBuilder.js +483 -15
  8. package/dist/client/CommandBuilder.js.map +1 -1
  9. package/dist/client/MikrotikClient.d.ts +349 -1
  10. package/dist/client/MikrotikClient.js +364 -1
  11. package/dist/client/MikrotikClient.js.map +1 -1
  12. package/dist/client/MikrotikPool.d.ts +30 -0
  13. package/dist/client/MikrotikPool.js +31 -1
  14. package/dist/client/MikrotikPool.js.map +1 -1
  15. package/dist/client/MikrotikSwarm.d.ts +167 -0
  16. package/dist/client/MikrotikSwarm.js +178 -1
  17. package/dist/client/MikrotikSwarm.js.map +1 -1
  18. package/dist/client/MikrotikTransaction.d.ts +27 -0
  19. package/dist/client/MikrotikTransaction.js +28 -0
  20. package/dist/client/MikrotikTransaction.js.map +1 -1
  21. package/dist/client/ResultParser.d.ts +19 -0
  22. package/dist/client/ResultParser.js +31 -0
  23. package/dist/client/ResultParser.js.map +1 -1
  24. package/dist/client/SnapshotSubscription.d.ts +139 -0
  25. package/dist/client/SnapshotSubscription.js +169 -0
  26. package/dist/client/SnapshotSubscription.js.map +1 -1
  27. package/dist/core/Auth.d.ts +31 -0
  28. package/dist/core/Auth.js +46 -1
  29. package/dist/core/Auth.js.map +1 -1
  30. package/dist/core/CircuitBreaker.d.ts +26 -0
  31. package/dist/core/CircuitBreaker.js +26 -0
  32. package/dist/core/CircuitBreaker.js.map +1 -1
  33. package/dist/core/HttpConstants.d.ts +29 -16
  34. package/dist/core/HttpConstants.js +23 -7
  35. package/dist/core/HttpConstants.js.map +1 -1
  36. package/dist/core/OfflineQueue.d.ts +16 -0
  37. package/dist/core/OfflineQueue.js +10 -0
  38. package/dist/core/OfflineQueue.js.map +1 -1
  39. package/dist/core/RateLimiter.d.ts +24 -0
  40. package/dist/core/RateLimiter.js +43 -7
  41. package/dist/core/RateLimiter.js.map +1 -1
  42. package/dist/core/RestProtocol.d.ts +9 -0
  43. package/dist/core/RestProtocol.js +16 -1
  44. package/dist/core/RestProtocol.js.map +1 -1
  45. package/dist/core/RosError.d.ts +15 -0
  46. package/dist/core/RosError.js +36 -1
  47. package/dist/core/RosError.js.map +1 -1
  48. package/dist/core/RosProtocol.d.ts +21 -0
  49. package/dist/core/RosProtocol.js +40 -1
  50. package/dist/core/RosProtocol.js.map +1 -1
  51. package/dist/core/SchemaMapper.d.ts +41 -0
  52. package/dist/core/SchemaMapper.js +57 -2
  53. package/dist/core/SchemaMapper.js.map +1 -1
  54. package/dist/core/SocketClient.d.ts +34 -0
  55. package/dist/core/SocketClient.js +51 -3
  56. package/dist/core/SocketClient.js.map +1 -1
  57. package/dist/features/FileManager.d.ts +50 -0
  58. package/dist/features/FileManager.js +72 -6
  59. package/dist/features/FileManager.js.map +1 -1
  60. package/dist/features/LiveCollection.d.ts +51 -0
  61. package/dist/features/LiveCollection.js +69 -0
  62. package/dist/features/LiveCollection.js.map +1 -1
  63. package/dist/features/PrometheusExporter.d.ts +18 -1
  64. package/dist/features/PrometheusExporter.js +21 -1
  65. package/dist/features/PrometheusExporter.js.map +1 -1
  66. package/dist/index.d.ts +66 -0
  67. package/dist/index.js +78 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/types/index.d.ts +4 -0
  70. package/dist/types/index.js +24 -0
  71. package/dist/types/index.js.map +1 -1
  72. package/dist/utils/Helpers.d.ts +16 -0
  73. package/dist/utils/Helpers.js +17 -1
  74. package/dist/utils/Helpers.js.map +1 -1
  75. package/dist/utils/MikrotikCollection.d.ts +85 -0
  76. package/dist/utils/MikrotikCollection.js +97 -1
  77. package/dist/utils/MikrotikCollection.js.map +1 -1
  78. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"CommandBuilder.js","sourceRoot":"","sources":["../../src/client/CommandBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandBuilder.js","sourceRoot":"","sources":["../../src/client/CommandBuilder.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,41 @@ import { SnapshotCallback } from "../features/LiveCollection";
8
8
  import { SnapshotSubscription } from "./SnapshotSubscription";
9
9
  import { MikrotikTransaction } from "./MikrotikTransaction";
10
10
  export interface MikrotikOptions extends SocketClientOptions {
11
+ /**
12
+ * RouterOS username (default: 'admin')
13
+ */
11
14
  user?: string;
15
+ /**
16
+ * RouterOS password (default: empty)
17
+ */
12
18
  password?: string;
19
+ /**
20
+ * Set to true to bypass the .env requirement.
21
+ * WARNING: This is highly discouraged for production environments.
22
+ */
13
23
  allowInsecureConfig?: boolean;
24
+ /**
25
+ * Maximum commands per second allowed before throttling occurs.
26
+ * Default: 50
27
+ */
14
28
  rateLimit?: number;
29
+ /**
30
+ * Configuration for the Circuit Breaker (Fault Tolerance).
31
+ * Defines when to stop trying to connect to a dead router.
32
+ */
15
33
  circuitBreaker?: CircuitBreakerOptions;
16
34
  protocol?: 'socket' | 'rest';
35
+ /**
36
+ * Secondary port for Socket API (API-SSL).
37
+ * Required only when using 'rest' protocol if you want to use .onSnapshot().
38
+ * Default: undefined
39
+ */
17
40
  socketPort?: number;
18
41
  }
42
+ /**
43
+ * Subscription Handle.
44
+ * Returned when starting a stream, allows the user to stop it later.
45
+ */
19
46
  export interface Subscription {
20
47
  stop: () => Promise<void>;
21
48
  }
@@ -23,6 +50,13 @@ export interface IWriteOptions {
23
50
  idempotent?: boolean;
24
51
  idempotencyKey?: string;
25
52
  }
53
+ /**
54
+ * MikrotikClient
55
+ * * The Enterprise Facade.
56
+ * This class acts as the central entry point for all RouterOS interactions.
57
+ * It automatically handles connection pooling, security enforcement,
58
+ * hardware protection (rate limiting), and fault tolerance (circuit breaking).
59
+ */
26
60
  export declare class MikrotikClient {
27
61
  private readonly socket;
28
62
  private readonly options;
@@ -30,32 +64,346 @@ export declare class MikrotikClient {
30
64
  private readonly rest;
31
65
  private isManuallyClosing;
32
66
  private activeLiveCollections;
67
+ /**
68
+ * File Manager Module.
69
+ * Use this to upload/download scripts, backups, and configs.
70
+ * @example client.files.upload('script.rsc', '...');
71
+ */
33
72
  readonly files: FileManager;
73
+ /**
74
+ * The Auto-Topology Engine.
75
+ * Contains information about the RouterOS version, architecture, and smart paths.
76
+ */
34
77
  readonly schema: SchemaMapper;
78
+ /**
79
+ * Traffic Controller (Token Bucket).
80
+ * Protects the router CPU by throttling requests during high load.
81
+ */
35
82
  private rateLimiter;
83
+ /**
84
+ * Fault Tolerance System.
85
+ * Stops execution if the router becomes unresponsive to prevent cascading failures.
86
+ */
36
87
  private breaker;
88
+ /**
89
+ * Maps a unique tag (e.g., "t1") to a pending Promise/Stream.
90
+ */
37
91
  private pendingCommands;
92
+ /**
93
+ * Temporary storage for the current sentence being built word-by-word.
94
+ */
38
95
  private currentSentence;
96
+ /**
97
+ * **MikroTik Client Initializer**
98
+ *
99
+ * Creates a new connection instance to a MikroTik RouterOS device.
100
+ * This constructor implements a **"Secure-by-Default"** philosophy, initializing
101
+ * the TCP/TLS socket, Rate Limiter, and Circuit Breaker subsystems.
102
+ *
103
+ * **Configuration Priority:**
104
+ * 1. **Environment Variables:** `MIKROTIK_HOST`, `MIKROTIK_USER`, etc. (Recommended for Production).
105
+ * 2. **Constructor Options:** Explicit values passed here override defaults but yield to Env Vars if present.
106
+ *
107
+ * @param options Configuration object defining connection, security, and stability parameters.
108
+ *
109
+ * @example
110
+ * // =================================================================
111
+ * // SCENARIO 1: LOCAL TESTING / DEVELOPMENT (Your Example)
112
+ * // =================================================================
113
+ * // Hardcoded credentials are used for quick connectivity testing in the lab.
114
+ * // We enable 'allowInsecureConfig' to silence the security warning.
115
+ * const client = new MikrotikClient({
116
+ * host: '192.168.0.1', // Local Lab IP
117
+ * user: 'admin', // Admin User
118
+ * password: 'admin', // Password (exposed in code)
119
+ * port: 8728, // Standard API Port (Non-Encrypted)
120
+ * useTLS: false, // Disable SSL for local speed/simplicity
121
+ * rateLimit: 50, // Limit concurrency to 50 commands
122
+ * allowInsecureConfig: true, // REQUIRED: Suppresses "Hardcoded Password" warning
123
+ * });
124
+ *
125
+ * @example
126
+ * // =================================================================
127
+ * // SCENARIO 2: PRODUCTION / DEPLOYMENT (Best Practice)
128
+ * // =================================================================
129
+ * // 1. Credentials are removed from code (loaded from .env file or Docker secrets).
130
+ * // 2. TLS encryption is enabled to protect passwords over the network.
131
+ * // 3. Circuit Breaker is configured for high availability.
132
+ * const prodClient = new MikrotikClient({
133
+ * // Credentials are NOT here. They are read from:
134
+ * // process.env.MIKROTIK_HOST, process.env.MIKROTIK_USER, etc.
135
+ *
136
+ * useTLS: true, // Force Encryption (Port 8729)
137
+ * rejectUnauthorized: false, // Set false if using Self-Signed Certs (Standard in MikroTik)
138
+ * allowInsecureConfig: false, // Enforce security: Warn if credentials accidentally appear in code
139
+ *
140
+ * timeout: 15, // Wait max 15s for response (vs 10s default)
141
+ * rateLimit: 100, // Higher throughput for production
142
+ * * circuitBreaker: { // Protect system if router dies
143
+ * failureThreshold: 5, // Fail after 5 errors
144
+ * resetTimeout: 30000 // Retry connection after 30 seconds
145
+ * }
146
+ * });
147
+ */
39
148
  constructor(options: MikrotikOptions);
149
+ /**
150
+ * **Smart Connection Manager**
151
+ *
152
+ * Establishes the connection to the Router based on the selected protocol strategy.
153
+ *
154
+ * **Logic Flow:**
155
+ * 1. **Security Audit:** Ensures no hardcoded credentials in production.
156
+ * 2. **Circuit Breaker:** Wraps the entire sequence to handle network failures.
157
+ * 3. **Protocol Negotiation:**
158
+ * - **REST Mode (v7+):** Connects via HTTPS first. Loads schema instantly.
159
+ * If a secondary socket port is configured (for `.onSnapshot`), it
160
+ * establishes a background TCP tunnel solely for streaming.
161
+ * - **Socket Mode (v6):** Establishes TCP connection, performs MD5/CHAP login,
162
+ * and then loads the schema.
163
+ */
40
164
  connect(): Promise<void>;
165
+ /**
166
+ * Closes the connection to the router and cleans up resources.
167
+ * Sets the 'isManuallyClosing' flag to prevent false error reports.
168
+ */
41
169
  close(): void;
170
+ /**
171
+ * Prints a highly visible warning banner to the console.
172
+ */
42
173
  private printSeriousWarning;
174
+ /**
175
+ * **Fluent Command Builder Factory**
176
+ *
177
+ * Creates a new `CommandBuilder` instance for a specific menu path. This is the
178
+ * primary entry point for constructing standard API operations (Read, Write, Remove)
179
+ * using a clean, method-chaining syntax.
180
+ *
181
+ * **Feature: Schema & Alias Resolution**
182
+ * This method automatically passes the input `path` through the internal `SchemaMapper`.
183
+ * This allows you to use configured aliases or short-hands instead of full paths,
184
+ * effectively abstracting hardware or version differences (e.g., RouterOS v6 vs v7).
185
+ *
186
+ * @template T The TypeScript interface of the resource (e.g., `Interface`, `LogEntry`).
187
+ * @param path The full menu path (e.g., `/ip/address`) or a registered alias (e.g., `wifi`).
188
+ * @returns A `CommandBuilder` instance initialized with the resolved path.
189
+ *
190
+ * @example
191
+ * // EXAMPLE 1: Standard Fluent Usage
192
+ * // Chain methods to filter and fetch specific data
193
+ * const droppedPackets = await client.command('/ip/firewall/filter')
194
+ * .where('chain', 'input')
195
+ * .where('action', 'drop')
196
+ * .print();
197
+ *
198
+ * @example
199
+ * // EXAMPLE 2: Using Schema Aliases (Abstraction)
200
+ * // If your SchemaMapper maps 'secrets' to '/ppp/secret':
201
+ * await client.command('secrets').add({
202
+ * name: 'new_user',
203
+ * password: 'secure_password'
204
+ * });
205
+ */
43
206
  command<T extends Record<string, any> = any>(path: string): CommandBuilder<T>;
207
+ /**
208
+ * Initiates a **Multi-Command Transaction**.
209
+ *
210
+ * This method returns a builder that allows you to queue multiple write operations
211
+ * and execute them as a single batch. It is designed to ensure data integrity
212
+ * by preventing "orphan records" in your network configuration.
213
+ *
214
+ * **Execution Modes:**
215
+ * - **Sequential (Default):** Executes commands one by one. If a command fails,
216
+ * the process stops immediately, preventing subsequent commands from running.
217
+ * - **Parallel:** Executes all commands simultaneously using `Promise.all`.
218
+ * Use `.parallel()` for independent bulk operations (e.g., disabling 50 users).
219
+ *
220
+ * @returns A new `MikrotikTransaction` builder instance.
221
+ *
222
+ * @example
223
+ * // Example: Safe User Creation (Sequential)
224
+ * // If creating the PPP Secret fails, the Simple Queue is NEVER created.
225
+ * try {
226
+ * const results = await client.transaction()
227
+ * .add('/ppp/secret/add', { name: 'client_A', profile: '10M' })
228
+ * .add('/queue/simple/add', { name: 'client_A', target: '192.168.1.50' })
229
+ * .commit();
230
+ * * console.log('User and Queue created successfully!');
231
+ * } catch (error) {
232
+ * console.error('Transaction failed/aborted:', error.message);
233
+ * }
234
+ */
44
235
  transaction(): MikrotikTransaction;
236
+ /**
237
+ * Accesses a **Resource Collection** for reading or streaming.
238
+ *
239
+ * This is the main entry point for data manipulation. It returns a fluent builder
240
+ * that allows you to filter data, fetch it once with advanced transformations,
241
+ * or subscribe to real-time updates using a single shared connection (Singleton).
242
+ *
243
+ * **Features:**
244
+ * - **Filtering:** Chain `.where()` to filter data server-side.
245
+ * - **Reporting:** Use `.print()` to get a `MikrotikCollection` (supports `.toPages()`, `.toMap()`, etc.).
246
+ * - **Streaming:** Use `.onSnapshot()` to get a `SnapshotSubscription` (supports `.onDiff()`, `.throttle()`).
247
+ *
248
+ * @template T The interface of the resource (e.g., `PPPSecret`, `Interface`).
249
+ * @param path The MikroTik menu path (e.g., `/ppp/active`, `/log`, `/interface`).
250
+ * @returns A fluent builder object with `where()`, `print()`, and `onSnapshot()` methods.
251
+ *
252
+ * @example
253
+ * // EXAMPLE 1: Fetch & Transform (One-off)
254
+ * // Get page 2 of active PPPoE users, grouped by profile
255
+ * const report = await client.collection<PPPActive>('/ppp/active')
256
+ * .where('service', 'pppoe')
257
+ * .print()
258
+ * .then(col => col.toGrouped('profile'));
259
+ *
260
+ * @example
261
+ * // EXAMPLE 2: Real-time Monitoring (Streaming)
262
+ * // Listen for changes, receiving only diffs (added/removed) every 500ms
263
+ * const sub = client.collection('/log')
264
+ * .onSnapshot(diff => console.log('Log Update:', diff))
265
+ * .onDiff() // Receive { added, removed } instead of full list
266
+ * .throttle(500); // Optimize CPU by grouping updates
267
+ */
45
268
  collection<T extends Record<string, any> = Record<string, any>>(path: string): {
46
- where: (key: string, value: string | number | boolean) => any;
269
+ where: (key: string, value: string | number | boolean) => /*elided*/ any;
47
270
  print: () => Promise<import("..").MikrotikCollection<T>>;
271
+ /**
272
+ * Subscribes to changes on this collection. Unlike standard listeners, this method
273
+ * returns a smart `SnapshotSubscription` that allows you to apply client-side
274
+ * intelligence like Diffing, Throttling, and Joining.
275
+ *
276
+ * **Efficiency Note (Singleton Pattern):**
277
+ * This method checks if a connection for this specific path+query already exists.
278
+ * If multiple parts of your app listen to `/ppp/active`, they will share
279
+ * a **single physical socket connection** to the router, saving massive CPU/Bandwidth.
280
+ *
281
+ * @param callback Function to execute. Can receive the full array OR a Diff object.
282
+ * @returns A `SnapshotSubscription` object for chaining `.onDiff()`, `.throttle()`, etc.
283
+ *
284
+ * @example
285
+ * // SCENARIO 1: Simple Dashboard (Full List)
286
+ * // Updates the UI with the full list of active users every time something changes.
287
+ * const sub = client.collection('/ppp/active')
288
+ * .onSnapshot((users) => {
289
+ * console.log(`Total users: ${users.length}`);
290
+ * updateTable(users);
291
+ * });
292
+ *
293
+ * @example
294
+ * // SCENARIO 2: High-Performance Monitoring (Diffs + Throttle)
295
+ * // ideal for logs or high-frequency tables.
296
+ * // - '.onDiff()': Receive only { added, removed, modified }
297
+ * // - '.throttle(1000)': Update max once per second
298
+ * const sub = client.collection('/log')
299
+ * .onSnapshot((diff) => {
300
+ * // TypeScript knows this is a SnapshotDiff now
301
+ * if ('added' in diff) {
302
+ * diff.added.forEach(log => console.log('New Log:', log.message));
303
+ * }
304
+ * })
305
+ * .onDiff()
306
+ * .throttle(1000);
307
+ */
48
308
  onSnapshot: (callback: SnapshotCallback<T>) => SnapshotSubscription<T>;
49
309
  };
310
+ /**
311
+ * **Prometheus Exporter Helper**
312
+ *
313
+ * Fetches data from a specific menu path and immediately converts it into
314
+ * the standard Prometheus text format. This is ideal for exposing a `/metrics`
315
+ * endpoint in your Express/Fastify application to monitor router health.
316
+ *
317
+ * @param path The MikroTik menu path to query (e.g., `/system/resource`, `/interface/print`).
318
+ * @param metrics An array of metric definitions mapping MikroTik fields to Prometheus metrics.
319
+ * @param params Optional command parameters (e.g., `{ 'count-only': 'true' }`).
320
+ * @returns A Promise resolving to a string formatted for Prometheus scraping.
321
+ *
322
+ * @example
323
+ * // Example: Exposing CPU and Memory usage
324
+ * const output = await client.getMetrics('/system/resource', [
325
+ * {
326
+ * name: 'mikrotik_cpu_load',
327
+ * help: 'Current CPU usage percentage',
328
+ * type: 'gauge',
329
+ * valueField: 'cpu-load' // Field from MikroTik response
330
+ * },
331
+ * {
332
+ * name: 'mikrotik_free_memory',
333
+ * help: 'Free memory in bytes',
334
+ * type: 'gauge',
335
+ * valueField: 'free-memory'
336
+ * }
337
+ * ]);
338
+ *
339
+ * // Result (String):
340
+ * // # HELP mikrotik_cpu_load Current CPU usage percentage
341
+ * // # TYPE mikrotik_cpu_load gauge
342
+ * // mikrotik_cpu_load{host="192.168.88.1"} 12
343
+ */
50
344
  getMetrics(path: string, metrics: MetricDefinition[], params?: Record<string, any>): Promise<string>;
345
+ /**
346
+ * **Core Execution Method (Low-Level API)**
347
+ *
348
+ * Sends a raw command to the RouterOS API via the active protocol (Socket or REST).
349
+ *
350
+ * **Architecture Layers:**
351
+ * 1. **Circuit Breaker:** Prevents cascading failures.
352
+ * 2. **Rate Limiter:** Implements congestion control.
353
+ * 3. **Protocol Adapter:** Automatically routes traffic to REST (v7) or Socket (v6).
354
+ *
355
+ * @param command The full command path (e.g., `/ip/address/add`).
356
+ * @param parameters Key-value pairs for command arguments.
357
+ * @returns A Promise that resolves with the raw array response from the router.
358
+ */
51
359
  write(command: string, parameters?: Record<string, string | boolean | number>, options?: IWriteOptions): Promise<any[]>;
360
+ /**
361
+ * **Core Streaming Method (Low-Level API)**
362
+ *
363
+ * Initiates a persistent, long-running operation on the router (e.g., `/tool/torch`, `/listen`,
364
+ * or `/interface/monitor-traffic`). Unlike `write()`, this method keeps the channel open
365
+ * and fires the callback continuously as data packets arrive.
366
+ *
367
+ * **Architecture:**
368
+ * 1. **Tagging:** Generates a unique, short-lived tag (e.g., `.t1`) to map response packets to this specific callback.
369
+ * 2. **Rate Limiting:** The start command waits for a slot in the `RateLimiter` to prevent flooding.
370
+ * 3. **Emergency Stop:** The returned `stop()` method bypasses the rate limiter to execute
371
+ * `/cancel` immediately, ensuring stuck streams can be killed instantly.
372
+ *
373
+ * @param commandOrLines The command path (e.g., `/tool/torch`) or a raw array of protocol lines.
374
+ * @param parameters Optional arguments (e.g., `{ interface: 'ether1' }`).
375
+ * @param callback The function to execute for every data packet received.
376
+ * @returns A `Subscription` object containing the `.stop()` method to terminate the stream.
377
+ *
378
+ * @example
379
+ * // Example: Live Traffic Monitoring
380
+ * const trafficStream = client.stream(
381
+ * '/interface/monitor-traffic',
382
+ * { interface: 'ether1', 'traffic': 'true' },
383
+ * (packet) => {
384
+ * console.log(`RX: ${packet['rx-bits-per-second']}, TX: ${packet['tx-bits-per-second']}`);
385
+ * }
386
+ * );
387
+ *
388
+ * // Stop monitoring after 10 seconds
389
+ * setTimeout(() => {
390
+ * trafficStream.stop().then(() => console.log('Monitoring stopped.'));
391
+ * }, 10000);
392
+ */
52
393
  stream(commandOrLines: string | string[], parameters: Record<string, string | boolean | number> | undefined, callback: (data: any) => void): Subscription;
53
394
  private generateTag;
54
395
  private buildPayload;
55
396
  private sendPayload;
56
397
  private login;
398
+ /**
399
+ * Raw write method bypassing protection layers.
400
+ * Used for Login and Emergency Cancel.
401
+ */
57
402
  private writeInternal;
58
403
  private processIncomingWord;
404
+ /**
405
+ * THE CORE ROUTING LOGIC
406
+ */
59
407
  private routeSentence;
60
408
  private rejectAllCommands;
61
409
  }