@yu_robotics/remote-cli-router 1.6.49 → 1.6.53

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.
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CARD_TABLE_LIMIT = void 0;
4
+ exports.countCardTables = countCardTables;
5
+ exports.limitCardTables = limitCardTables;
6
+ exports.prepareTableElements = prepareTableElements;
7
+ exports.plainTextCard = plainTextCard;
8
+ exports.isCardTableLimitError = isCardTableLimitError;
9
+ // Conservative budget used by Feishu's official plugin after observed 11310 errors:
10
+ // https://github.com/larksuite/openclaw-lark/blob/main/src/card/card-error.ts
11
+ exports.CARD_TABLE_LIMIT = 3;
12
+ /** Locate pipe tables while leaving fenced code, indented code, and raw text alone. */
13
+ function tableRanges(text) {
14
+ const lines = text.split('\n');
15
+ const offsets = [];
16
+ const visible = [];
17
+ let offset = 0;
18
+ let fence;
19
+ let raw = false;
20
+ const unquote = (line) => line.replace(/^(?: {0,3}> ?)+/, '');
21
+ const hasPipe = (line) => line.replace(/\\./g, '').includes('|');
22
+ for (const line of lines) {
23
+ offsets.push(offset);
24
+ offset += line.length + 1;
25
+ const body = unquote(line);
26
+ const marker = /^ {0,3}(`{3,}|~{3,})(.*)$/.exec(body);
27
+ if (fence) {
28
+ visible.push(false);
29
+ if (marker && marker[1][0] === fence[0] && marker[1].length >= fence.length && !marker[2].trim())
30
+ fence = undefined;
31
+ }
32
+ else if (raw) {
33
+ visible.push(false);
34
+ if (/<\/raw>/i.test(body))
35
+ raw = false;
36
+ }
37
+ else if (marker) {
38
+ fence = marker[1];
39
+ visible.push(false);
40
+ }
41
+ else if (/<raw>/i.test(body)) {
42
+ raw = !/<\/raw>/i.test(body);
43
+ visible.push(false);
44
+ }
45
+ else {
46
+ visible.push(!/^(?: {4}|\t)/.test(body));
47
+ }
48
+ }
49
+ const ranges = [];
50
+ for (let index = 1; index < lines.length; index++) {
51
+ if (!visible[index] || !visible[index - 1])
52
+ continue;
53
+ const header = unquote(lines[index - 1]).trim();
54
+ const separator = unquote(lines[index]).trim();
55
+ const cells = separator.replace(/^\|/, '').replace(/\|$/, '').split('|');
56
+ if (!hasPipe(header) || !separator.includes('|') || !cells.every(cell => /^\s*:?-{1,}:?\s*$/.test(cell)))
57
+ continue;
58
+ let end = index + 1;
59
+ while (end < lines.length && visible[end] && lines[end].trim() && hasPipe(lines[end]))
60
+ end++;
61
+ ranges.push({ start: offsets[index - 1], end: end < lines.length ? offsets[end] : text.length });
62
+ index = end;
63
+ }
64
+ return ranges;
65
+ }
66
+ function textBlock(text) {
67
+ let longest = 2;
68
+ for (const match of text.matchAll(/`+/g))
69
+ longest = Math.max(longest, match[0].length);
70
+ const fence = '`'.repeat(longest + 1);
71
+ return `${fence}text\n${text.trimEnd()}\n${fence}`;
72
+ }
73
+ function isMarkdown(value) {
74
+ return (value?.tag === 'markdown' || value?.tag === 'lark_md') && typeof value.content === 'string';
75
+ }
76
+ function countCardTables(value) {
77
+ if (!value || typeof value !== 'object')
78
+ return 0;
79
+ if (value.tag === 'table')
80
+ return 1;
81
+ if (isMarkdown(value))
82
+ return tableRanges(value.content).length;
83
+ return Object.values(value).reduce((total, child) => total + countCardTables(child), 0);
84
+ }
85
+ /** Keep oversized indivisible containers readable without dropping table rows. */
86
+ function limitCardTables(value, limit = exports.CARD_TABLE_LIMIT) {
87
+ let remaining = limit;
88
+ const visit = (node) => {
89
+ if (!node || typeof node !== 'object')
90
+ return node;
91
+ if (node.tag === 'table') {
92
+ if (remaining-- > 0)
93
+ return node;
94
+ return { tag: 'markdown', content: textBlock(JSON.stringify(node, null, 2)) };
95
+ }
96
+ if (isMarkdown(node)) {
97
+ const ranges = tableRanges(node.content);
98
+ const keep = Math.max(0, remaining);
99
+ remaining -= ranges.length;
100
+ if (ranges.length <= keep)
101
+ return node;
102
+ let content = node.content;
103
+ for (const range of ranges.slice(keep).reverse()) {
104
+ content = content.slice(0, range.start) + '\n' + textBlock(content.slice(range.start, range.end)) + '\n\n' + content.slice(range.end);
105
+ }
106
+ return { ...node, content };
107
+ }
108
+ if (Array.isArray(node))
109
+ return node.map(visit);
110
+ return Object.fromEntries(Object.entries(node).map(([key, child]) => [key, visit(child)]));
111
+ };
112
+ return visit(value);
113
+ }
114
+ /** Split large top-level Markdown blocks at table boundaries before packing cards. */
115
+ function prepareTableElements(elements) {
116
+ return elements.flatMap(element => {
117
+ if (countCardTables(element) <= exports.CARD_TABLE_LIMIT)
118
+ return [element];
119
+ if (!isMarkdown(element))
120
+ return [limitCardTables(element)];
121
+ const ranges = tableRanges(element.content);
122
+ const parts = [];
123
+ let start = 0;
124
+ for (let index = exports.CARD_TABLE_LIMIT; index < ranges.length; index += exports.CARD_TABLE_LIMIT) {
125
+ parts.push({ ...element, content: element.content.slice(start, ranges[index].start) });
126
+ start = ranges[index].start;
127
+ }
128
+ parts.push({ ...element, content: element.content.slice(start) });
129
+ return parts;
130
+ });
131
+ }
132
+ /** API fallback also covers Markdown forms the conservative preflight scanner missed. */
133
+ function plainTextCard(value) {
134
+ if (!value || typeof value !== 'object')
135
+ return value;
136
+ if (value.tag === 'table')
137
+ return { tag: 'markdown', content: textBlock(JSON.stringify(value, null, 2)) };
138
+ if (isMarkdown(value))
139
+ return { ...value, content: textBlock(value.content) };
140
+ if (Array.isArray(value))
141
+ return value.map(plainTextCard);
142
+ return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, plainTextCard(child)]));
143
+ }
144
+ function isCardTableLimitError(error) {
145
+ const detail = error?.response?.data ?? error;
146
+ return Number(detail?.code) === 230099 && typeof detail?.msg === 'string'
147
+ && /ErrCode:\s*11310\b/.test(detail.msg) && /table number over limit/i.test(detail.msg);
148
+ }
149
+ //# sourceMappingURL=CardTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardTables.js","sourceRoot":"","sources":["../../src/utils/CardTables.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@ export declare class ConnectionHub {
22
22
  * Unregister device connection
23
23
  * @param deviceId Device unique identifier
24
24
  */
25
- unregisterConnection(deviceId: string): void;
25
+ isCurrentConnection(deviceId: string, ws: WebSocket): boolean;
26
+ unregisterConnection(deviceId: string, ws?: WebSocket): boolean;
26
27
  /**
27
28
  * Send message to specified device
28
29
  * @param deviceId Device unique identifier
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionHub.d.ts","sourceRoot":"","sources":["../../src/websocket/ConnectionHub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B;;;GAGG;AACH,qBAAa,aAAa;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;;IAOhD;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAkBpG,0EAA0E;IAC1E,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI/C;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpE;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;OAGG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC;;;OAGG;IACH,kBAAkB,IAAI;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAQD;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C;;;OAGG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuBhD;;OAEG;IACH,mBAAmB,IAAI,IAAI;CAgB5B"}
1
+ {"version":3,"file":"ConnectionHub.d.ts","sourceRoot":"","sources":["../../src/websocket/ConnectionHub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B;;;GAGG;AACH,qBAAa,aAAa;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;;IAOhD;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAiBpG,0EAA0E;IAC1E,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI/C;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO;IAI7D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO;IAQ/D;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpE;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;OAGG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC;;;OAGG;IACH,kBAAkB,IAAI;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAQD;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C;;;OAGG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuBhD;;OAEG;IACH,mBAAmB,IAAI,IAAI;CAgB5B"}
@@ -21,9 +21,10 @@ class ConnectionHub {
21
21
  * @param ws WebSocket connection
22
22
  */
23
23
  registerConnection(deviceId, ws, capabilities) {
24
- // If device already has a connection, close the old connection first
25
- if (this.connections.has(deviceId)) {
26
- const oldWs = this.connections.get(deviceId);
24
+ const oldWs = this.connections.get(deviceId);
25
+ // Replace the mapping first so the old socket cannot unregister its replacement.
26
+ this.connections.set(deviceId, ws);
27
+ if (oldWs && oldWs !== ws) {
27
28
  try {
28
29
  oldWs.close();
29
30
  }
@@ -31,8 +32,6 @@ class ConnectionHub {
31
32
  // Ignore close errors
32
33
  }
33
34
  }
34
- // Register new connection
35
- this.connections.set(deviceId, ws);
36
35
  this.lastActiveMap.set(deviceId, Date.now());
37
36
  if (capabilities?.queueStarted === true)
38
37
  this.queueStartedDevices.add(deviceId);
@@ -47,10 +46,16 @@ class ConnectionHub {
47
46
  * Unregister device connection
48
47
  * @param deviceId Device unique identifier
49
48
  */
50
- unregisterConnection(deviceId) {
49
+ isCurrentConnection(deviceId, ws) {
50
+ return this.connections.get(deviceId) === ws;
51
+ }
52
+ unregisterConnection(deviceId, ws) {
53
+ if (ws && !this.isCurrentConnection(deviceId, ws))
54
+ return false;
51
55
  this.connections.delete(deviceId);
52
56
  this.lastActiveMap.delete(deviceId);
53
57
  this.queueStartedDevices.delete(deviceId);
58
+ return true;
54
59
  }
55
60
  /**
56
61
  * Send message to specified device
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionHub.js","sourceRoot":"","sources":["../../src/websocket/ConnectionHub.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,aAAa;IACxB,sCAAsC;IAC9B,WAAW,CAAyB;IAC5C,6CAA6C;IACrC,aAAa,CAAsB;IACnC,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhD;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAgB,EAAE,EAAa,EAAE,YAAyC;QAC3F,qEAAqE;QACrE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,YAAY,EAAE,YAAY,KAAK,IAAI;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;YAC3E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,0EAA0E;IAC1E,oBAAoB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,QAAgB;QACnC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpB,0BAA0B;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iDAAiD;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAIhB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,OAAO;YACL,gBAAgB,EAAE,SAAS,CAAC,MAAM;YAClC,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,OAAY;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5C,IAAI,CAAC;oBACH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,qCAAqC;gBACvC,CAAC;wBAAS,CAAC;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,IAAI,GAAG,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC;oBACH,EAAE,CAAC,KAAK,EAAE,CAAC;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,sBAAsB;gBACxB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,uEAAuE;gBACvE,6EAA6E;gBAC7E,gEAAgE;gBAChE,EAAE,CAAC,SAAS,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACF;AAvMD,sCAuMC"}
1
+ {"version":3,"file":"ConnectionHub.js","sourceRoot":"","sources":["../../src/websocket/ConnectionHub.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yu_robotics/remote-cli-router",
3
- "version": "1.6.49",
3
+ "version": "1.6.53",
4
4
  "description": "Router server for remote CLI - message forwarding between Feishu and local clients",
5
5
  "main": "dist/cli.js",
6
6
  "types": "dist/cli.d.ts",