@yu_robotics/remote-cli-router 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/binding/BindingManager.d.ts +28 -16
- package/dist/binding/BindingManager.d.ts.map +1 -1
- package/dist/binding/BindingManager.js +117 -26
- package/dist/binding/BindingManager.js.map +1 -1
- package/dist/feishu/FeishuLongConnHandler.d.ts +30 -0
- package/dist/feishu/FeishuLongConnHandler.d.ts.map +1 -1
- package/dist/feishu/FeishuLongConnHandler.js +250 -17
- package/dist/feishu/FeishuLongConnHandler.js.map +1 -1
- package/dist/storage/JsonStore.d.ts +18 -18
- package/dist/storage/JsonStore.d.ts.map +1 -1
- package/dist/storage/JsonStore.js +82 -29
- package/dist/storage/JsonStore.js.map +1 -1
- package/dist/storage/MemoryStore.d.ts +6 -6
- package/dist/storage/MemoryStore.d.ts.map +1 -1
- package/dist/storage/MemoryStore.js +24 -14
- package/dist/storage/MemoryStore.js.map +1 -1
- package/dist/types/index.d.ts +15 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/ToolFormatter.d.ts +2 -2
- package/dist/utils/ToolFormatter.d.ts.map +1 -1
- package/dist/utils/ToolFormatter.js +67 -17
- package/dist/utils/ToolFormatter.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,12 +16,14 @@ class JsonStore {
|
|
|
16
16
|
data;
|
|
17
17
|
saveTimer = null;
|
|
18
18
|
SAVE_DELAY = 1000; // Debounce saves by 1 second
|
|
19
|
+
static CURRENT_VERSION = 1;
|
|
19
20
|
constructor(storePath) {
|
|
20
21
|
this.storePath = storePath || path_1.default.join(os_1.default.homedir(), '.remote-cli-router', 'bindings.json');
|
|
21
22
|
this.data = {
|
|
23
|
+
version: JsonStore.CURRENT_VERSION,
|
|
22
24
|
bindingCodes: {},
|
|
23
25
|
userBindings: {},
|
|
24
|
-
|
|
26
|
+
deviceToUserMap: {},
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
@@ -34,7 +36,14 @@ class JsonStore {
|
|
|
34
36
|
// Try to load existing data
|
|
35
37
|
try {
|
|
36
38
|
const content = await promises_1.default.readFile(this.storePath, 'utf-8');
|
|
37
|
-
|
|
39
|
+
const rawData = JSON.parse(content);
|
|
40
|
+
// Check if migration is needed
|
|
41
|
+
if (!rawData.version) {
|
|
42
|
+
await this.migrateFromLegacy(rawData);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.data = rawData;
|
|
46
|
+
}
|
|
38
47
|
// Clean up expired binding codes on startup
|
|
39
48
|
this.cleanupExpiredBindingCodes();
|
|
40
49
|
}
|
|
@@ -51,10 +60,42 @@ class JsonStore {
|
|
|
51
60
|
throw error;
|
|
52
61
|
}
|
|
53
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Migrate from legacy single-device schema to multi-device schema
|
|
65
|
+
*/
|
|
66
|
+
async migrateFromLegacy(rawData) {
|
|
67
|
+
console.log('[JsonStore] Migrating legacy binding data to multi-device schema...');
|
|
68
|
+
const legacyUserBindings = (rawData.userBindings || {});
|
|
69
|
+
const newUserBindings = {};
|
|
70
|
+
const deviceToUserMap = {};
|
|
71
|
+
const now = Date.now();
|
|
72
|
+
for (const [openId, legacy] of Object.entries(legacyUserBindings)) {
|
|
73
|
+
newUserBindings[openId] = {
|
|
74
|
+
openId,
|
|
75
|
+
devices: [{
|
|
76
|
+
deviceId: legacy.deviceId,
|
|
77
|
+
deviceName: legacy.deviceName,
|
|
78
|
+
boundAt: legacy.boundAt,
|
|
79
|
+
lastActiveAt: legacy.lastActiveAt,
|
|
80
|
+
isActive: true,
|
|
81
|
+
}],
|
|
82
|
+
activeDeviceId: legacy.deviceId,
|
|
83
|
+
createdAt: legacy.boundAt,
|
|
84
|
+
updatedAt: now,
|
|
85
|
+
};
|
|
86
|
+
deviceToUserMap[legacy.deviceId] = openId;
|
|
87
|
+
}
|
|
88
|
+
this.data = {
|
|
89
|
+
version: JsonStore.CURRENT_VERSION,
|
|
90
|
+
bindingCodes: rawData.bindingCodes || {},
|
|
91
|
+
userBindings: newUserBindings,
|
|
92
|
+
deviceToUserMap,
|
|
93
|
+
};
|
|
94
|
+
await this.save();
|
|
95
|
+
console.log(`[JsonStore] Migration complete. Migrated ${Object.keys(newUserBindings).length} user(s).`);
|
|
96
|
+
}
|
|
54
97
|
/**
|
|
55
98
|
* Store binding code with expiration
|
|
56
|
-
* @param code Binding code
|
|
57
|
-
* @param bindingCode Binding code object
|
|
58
99
|
*/
|
|
59
100
|
async setBindingCode(code, bindingCode) {
|
|
60
101
|
this.data.bindingCodes[code] = bindingCode;
|
|
@@ -62,8 +103,6 @@ class JsonStore {
|
|
|
62
103
|
}
|
|
63
104
|
/**
|
|
64
105
|
* Get binding code
|
|
65
|
-
* @param code Binding code
|
|
66
|
-
* @returns Binding code object or null if not found/expired
|
|
67
106
|
*/
|
|
68
107
|
getBindingCode(code) {
|
|
69
108
|
const bindingCode = this.data.bindingCodes[code];
|
|
@@ -80,7 +119,6 @@ class JsonStore {
|
|
|
80
119
|
}
|
|
81
120
|
/**
|
|
82
121
|
* Delete binding code
|
|
83
|
-
* @param code Binding code
|
|
84
122
|
*/
|
|
85
123
|
async deleteBindingCode(code) {
|
|
86
124
|
delete this.data.bindingCodes[code];
|
|
@@ -88,53 +126,67 @@ class JsonStore {
|
|
|
88
126
|
}
|
|
89
127
|
/**
|
|
90
128
|
* Set user binding
|
|
91
|
-
* @param openId Feishu user open_id
|
|
92
|
-
* @param binding User binding object
|
|
93
129
|
*/
|
|
94
130
|
async setUserBinding(openId, binding) {
|
|
95
131
|
this.data.userBindings[openId] = binding;
|
|
96
|
-
this
|
|
132
|
+
// Rebuild deviceToUserMap entries for this user
|
|
133
|
+
for (const device of binding.devices) {
|
|
134
|
+
this.data.deviceToUserMap[device.deviceId] = openId;
|
|
135
|
+
}
|
|
97
136
|
await this.scheduleSave();
|
|
98
137
|
}
|
|
99
138
|
/**
|
|
100
139
|
* Get user binding
|
|
101
|
-
* @param openId Feishu user open_id
|
|
102
|
-
* @returns User binding or null if not found
|
|
103
140
|
*/
|
|
104
141
|
getUserBinding(openId) {
|
|
105
142
|
return this.data.userBindings[openId] || null;
|
|
106
143
|
}
|
|
107
144
|
/**
|
|
108
|
-
* Get device
|
|
109
|
-
* @param deviceId Device unique identifier
|
|
110
|
-
* @returns User binding or null if not found
|
|
145
|
+
* Get user openId by device ID (reverse lookup)
|
|
111
146
|
*/
|
|
112
|
-
|
|
113
|
-
return this.data.
|
|
147
|
+
getUserByDeviceId(deviceId) {
|
|
148
|
+
return this.data.deviceToUserMap[deviceId] || null;
|
|
114
149
|
}
|
|
115
150
|
/**
|
|
116
|
-
*
|
|
117
|
-
|
|
151
|
+
* Set device-to-user mapping
|
|
152
|
+
*/
|
|
153
|
+
async setDeviceToUserMap(deviceId, openId) {
|
|
154
|
+
this.data.deviceToUserMap[deviceId] = openId;
|
|
155
|
+
await this.scheduleSave();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Remove device-to-user mapping
|
|
159
|
+
*/
|
|
160
|
+
async removeDeviceToUserMap(deviceId) {
|
|
161
|
+
delete this.data.deviceToUserMap[deviceId];
|
|
162
|
+
await this.scheduleSave();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Delete user binding and all associated device mappings
|
|
118
166
|
*/
|
|
119
167
|
async deleteUserBinding(openId) {
|
|
120
168
|
const binding = this.data.userBindings[openId];
|
|
121
169
|
if (binding) {
|
|
170
|
+
// Remove all device-to-user mappings
|
|
171
|
+
for (const device of binding.devices) {
|
|
172
|
+
delete this.data.deviceToUserMap[device.deviceId];
|
|
173
|
+
}
|
|
122
174
|
delete this.data.userBindings[openId];
|
|
123
|
-
delete this.data.deviceBindings[binding.deviceId];
|
|
124
175
|
await this.scheduleSave();
|
|
125
176
|
}
|
|
126
177
|
}
|
|
127
178
|
/**
|
|
128
|
-
* Update
|
|
129
|
-
* @param openId Feishu user open_id
|
|
179
|
+
* Update last active time for the active device of a user
|
|
130
180
|
*/
|
|
131
181
|
async updateLastActive(openId) {
|
|
132
182
|
const binding = this.data.userBindings[openId];
|
|
133
|
-
if (binding) {
|
|
134
|
-
binding.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
183
|
+
if (binding && binding.activeDeviceId) {
|
|
184
|
+
const device = binding.devices.find(d => d.deviceId === binding.activeDeviceId);
|
|
185
|
+
if (device) {
|
|
186
|
+
device.lastActiveAt = Date.now();
|
|
187
|
+
binding.updatedAt = Date.now();
|
|
188
|
+
await this.scheduleSave();
|
|
189
|
+
}
|
|
138
190
|
}
|
|
139
191
|
}
|
|
140
192
|
/**
|
|
@@ -194,9 +246,10 @@ class JsonStore {
|
|
|
194
246
|
*/
|
|
195
247
|
async clear() {
|
|
196
248
|
this.data = {
|
|
249
|
+
version: JsonStore.CURRENT_VERSION,
|
|
197
250
|
bindingCodes: {},
|
|
198
251
|
userBindings: {},
|
|
199
|
-
|
|
252
|
+
deviceToUserMap: {},
|
|
200
253
|
};
|
|
201
254
|
await this.save();
|
|
202
255
|
}
|
|
@@ -207,7 +260,7 @@ class JsonStore {
|
|
|
207
260
|
return {
|
|
208
261
|
bindingCodes: Object.keys(this.data.bindingCodes).length,
|
|
209
262
|
userBindings: Object.keys(this.data.userBindings).length,
|
|
210
|
-
|
|
263
|
+
devices: Object.keys(this.data.deviceToUserMap).length,
|
|
211
264
|
};
|
|
212
265
|
}
|
|
213
266
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonStore.js","sourceRoot":"","sources":["../../src/storage/JsonStore.ts"],"names":[],"mappings":";;;;;;AACA,2DAA6B;AAC7B,gDAAwB;AACxB,4CAAoB;
|
|
1
|
+
{"version":3,"file":"JsonStore.js","sourceRoot":"","sources":["../../src/storage/JsonStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { BindingCode, UserBinding } from '../types';
|
|
|
6
6
|
export declare class MemoryStore {
|
|
7
7
|
private bindingCodes;
|
|
8
8
|
private userBindings;
|
|
9
|
-
private
|
|
9
|
+
private deviceToUserMap;
|
|
10
10
|
/**
|
|
11
11
|
* Store binding code with expiration
|
|
12
12
|
* @param code Binding code
|
|
@@ -38,18 +38,18 @@ export declare class MemoryStore {
|
|
|
38
38
|
*/
|
|
39
39
|
getUserBinding(openId: string): UserBinding | null;
|
|
40
40
|
/**
|
|
41
|
-
* Get device
|
|
41
|
+
* Get user by device ID (reverse lookup)
|
|
42
42
|
* @param deviceId Device unique identifier
|
|
43
|
-
* @returns
|
|
43
|
+
* @returns openId or null if not found
|
|
44
44
|
*/
|
|
45
|
-
|
|
45
|
+
getUserByDeviceId(deviceId: string): string | null;
|
|
46
46
|
/**
|
|
47
47
|
* Delete user binding
|
|
48
48
|
* @param openId Feishu user open_id
|
|
49
49
|
*/
|
|
50
50
|
deleteUserBinding(openId: string): void;
|
|
51
51
|
/**
|
|
52
|
-
* Update user last active time
|
|
52
|
+
* Update user last active time (updates the active device)
|
|
53
53
|
* @param openId Feishu user open_id
|
|
54
54
|
*/
|
|
55
55
|
updateLastActive(openId: string): void;
|
|
@@ -63,7 +63,7 @@ export declare class MemoryStore {
|
|
|
63
63
|
getStats(): {
|
|
64
64
|
bindingCodes: number;
|
|
65
65
|
userBindings: number;
|
|
66
|
-
|
|
66
|
+
devices: number;
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
//# sourceMappingURL=MemoryStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryStore.d.ts","sourceRoot":"","sources":["../../src/storage/MemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,YAAY,CAAuC;
|
|
1
|
+
{"version":3,"file":"MemoryStore.d.ts","sourceRoot":"","sources":["../../src/storage/MemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,YAAY,CAAuC;IAE3D,OAAO,CAAC,eAAe,CAAkC;IAEzD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAShF;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAgBhD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAS1D;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIlD;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYvC;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYtC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB;CAOF"}
|
|
@@ -8,7 +8,8 @@ exports.MemoryStore = void 0;
|
|
|
8
8
|
class MemoryStore {
|
|
9
9
|
bindingCodes = new Map();
|
|
10
10
|
userBindings = new Map();
|
|
11
|
-
|
|
11
|
+
// Reverse lookup: deviceId -> openId
|
|
12
|
+
deviceToUserMap = new Map();
|
|
12
13
|
/**
|
|
13
14
|
* Store binding code with expiration
|
|
14
15
|
* @param code Binding code
|
|
@@ -53,7 +54,10 @@ class MemoryStore {
|
|
|
53
54
|
*/
|
|
54
55
|
setUserBinding(openId, binding) {
|
|
55
56
|
this.userBindings.set(openId, binding);
|
|
56
|
-
|
|
57
|
+
// Update reverse lookup for all devices
|
|
58
|
+
for (const device of binding.devices) {
|
|
59
|
+
this.deviceToUserMap.set(device.deviceId, openId);
|
|
60
|
+
}
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Get user binding
|
|
@@ -64,12 +68,12 @@ class MemoryStore {
|
|
|
64
68
|
return this.userBindings.get(openId) || null;
|
|
65
69
|
}
|
|
66
70
|
/**
|
|
67
|
-
* Get device
|
|
71
|
+
* Get user by device ID (reverse lookup)
|
|
68
72
|
* @param deviceId Device unique identifier
|
|
69
|
-
* @returns
|
|
73
|
+
* @returns openId or null if not found
|
|
70
74
|
*/
|
|
71
|
-
|
|
72
|
-
return this.
|
|
75
|
+
getUserByDeviceId(deviceId) {
|
|
76
|
+
return this.deviceToUserMap.get(deviceId) || null;
|
|
73
77
|
}
|
|
74
78
|
/**
|
|
75
79
|
* Delete user binding
|
|
@@ -79,19 +83,25 @@ class MemoryStore {
|
|
|
79
83
|
const binding = this.userBindings.get(openId);
|
|
80
84
|
if (binding) {
|
|
81
85
|
this.userBindings.delete(openId);
|
|
82
|
-
|
|
86
|
+
// Remove all device mappings
|
|
87
|
+
for (const device of binding.devices) {
|
|
88
|
+
this.deviceToUserMap.delete(device.deviceId);
|
|
89
|
+
}
|
|
83
90
|
}
|
|
84
91
|
}
|
|
85
92
|
/**
|
|
86
|
-
* Update user last active time
|
|
93
|
+
* Update user last active time (updates the active device)
|
|
87
94
|
* @param openId Feishu user open_id
|
|
88
95
|
*/
|
|
89
96
|
updateLastActive(openId) {
|
|
90
97
|
const binding = this.userBindings.get(openId);
|
|
91
|
-
if (binding) {
|
|
92
|
-
binding.
|
|
93
|
-
|
|
94
|
-
|
|
98
|
+
if (binding && binding.activeDeviceId) {
|
|
99
|
+
const activeDevice = binding.devices.find(d => d.deviceId === binding.activeDeviceId);
|
|
100
|
+
if (activeDevice) {
|
|
101
|
+
activeDevice.lastActiveAt = Date.now();
|
|
102
|
+
binding.updatedAt = Date.now();
|
|
103
|
+
this.userBindings.set(openId, binding);
|
|
104
|
+
}
|
|
95
105
|
}
|
|
96
106
|
}
|
|
97
107
|
/**
|
|
@@ -100,7 +110,7 @@ class MemoryStore {
|
|
|
100
110
|
clear() {
|
|
101
111
|
this.bindingCodes.clear();
|
|
102
112
|
this.userBindings.clear();
|
|
103
|
-
this.
|
|
113
|
+
this.deviceToUserMap.clear();
|
|
104
114
|
}
|
|
105
115
|
/**
|
|
106
116
|
* Get statistics
|
|
@@ -109,7 +119,7 @@ class MemoryStore {
|
|
|
109
119
|
return {
|
|
110
120
|
bindingCodes: this.bindingCodes.size,
|
|
111
121
|
userBindings: this.userBindings.size,
|
|
112
|
-
|
|
122
|
+
devices: this.deviceToUserMap.size,
|
|
113
123
|
};
|
|
114
124
|
}
|
|
115
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/storage/MemoryStore.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,WAAW;IACd,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;IACnD,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/storage/MemoryStore.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,13 +7,27 @@ export interface BindingCode {
|
|
|
7
7
|
createdAt: number;
|
|
8
8
|
expiresAt: number;
|
|
9
9
|
}
|
|
10
|
-
export interface
|
|
10
|
+
export interface LegacyUserBinding {
|
|
11
11
|
openId: string;
|
|
12
12
|
deviceId: string;
|
|
13
13
|
deviceName: string;
|
|
14
14
|
boundAt: number;
|
|
15
15
|
lastActiveAt: number;
|
|
16
16
|
}
|
|
17
|
+
export interface DeviceBinding {
|
|
18
|
+
deviceId: string;
|
|
19
|
+
deviceName: string;
|
|
20
|
+
boundAt: number;
|
|
21
|
+
lastActiveAt: number;
|
|
22
|
+
isActive: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface UserBinding {
|
|
25
|
+
openId: string;
|
|
26
|
+
devices: DeviceBinding[];
|
|
27
|
+
activeDeviceId: string | null;
|
|
28
|
+
createdAt: number;
|
|
29
|
+
updatedAt: number;
|
|
30
|
+
}
|
|
17
31
|
export declare enum MessageType {
|
|
18
32
|
COMMAND = "command",// Command message
|
|
19
33
|
RESPONSE = "response",// Response message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqCH,yBAAyB;AACzB,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,kDAAmC,CAAA;IACnC,kDAAmC,CAAA;IACnC,sCAAuB,CAAA;IACvB,8BAAe,CAAA;IACf,4CAA6B,CAAA,CAAI,iCAAiC;AACpE,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB"}
|
|
@@ -31,11 +31,11 @@ export declare function createDividerElement(): FeishuCardElement;
|
|
|
31
31
|
*/
|
|
32
32
|
export declare function createMarkdownElement(content: string): FeishuCardElement;
|
|
33
33
|
/**
|
|
34
|
-
* Create a Feishu Card 2.0 tool use element
|
|
34
|
+
* Create a Feishu Card 2.0 tool use element with collapsible panel
|
|
35
35
|
*/
|
|
36
36
|
export declare function createToolUseElement(toolInfo: ToolUseInfo): FeishuCardElement[];
|
|
37
37
|
/**
|
|
38
|
-
* Create a Feishu Card 2.0 tool result element
|
|
38
|
+
* Create a Feishu Card 2.0 tool result element with collapsible panel
|
|
39
39
|
*/
|
|
40
40
|
export declare function createToolResultElement(resultInfo: ToolResultInfo): FeishuCardElement[];
|
|
41
41
|
//# sourceMappingURL=ToolFormatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/ToolFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA2B3F;AA2KD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAKxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/ToolFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA2B3F;AA2KD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAKxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAwC/E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,EAAE,CAsDvF"}
|
|
@@ -226,48 +226,98 @@ function createMarkdownElement(content) {
|
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
228
|
/**
|
|
229
|
-
* Create a Feishu Card 2.0 tool use element
|
|
229
|
+
* Create a Feishu Card 2.0 tool use element with collapsible panel
|
|
230
230
|
*/
|
|
231
231
|
function createToolUseElement(toolInfo) {
|
|
232
232
|
const { name, input, id } = toolInfo;
|
|
233
233
|
const emoji = getToolEmoji(name);
|
|
234
234
|
const context = extractToolContext(name, input);
|
|
235
|
-
// Build
|
|
236
|
-
let
|
|
237
|
-
if (id) {
|
|
238
|
-
|
|
235
|
+
// Build header title
|
|
236
|
+
let headerTitle = `<text_tag color='blue'>${emoji} TOOL USE</text_tag> · **${name}**`;
|
|
237
|
+
if (id && id !== 'unknown') {
|
|
238
|
+
headerTitle += ` · \`${id.slice(0, 8)}\``;
|
|
239
239
|
}
|
|
240
|
-
|
|
240
|
+
// Create collapsible panel with tool details inside
|
|
241
|
+
const collapsiblePanel = {
|
|
242
|
+
tag: 'collapsible_panel',
|
|
243
|
+
expanded: false,
|
|
244
|
+
header: {
|
|
245
|
+
title: {
|
|
246
|
+
tag: 'markdown',
|
|
247
|
+
content: headerTitle,
|
|
248
|
+
},
|
|
249
|
+
vertical_align: 'center',
|
|
250
|
+
icon: {
|
|
251
|
+
tag: 'standard_icon',
|
|
252
|
+
token: 'down-small-ccm_outlined',
|
|
253
|
+
size: '14px 14px',
|
|
254
|
+
},
|
|
255
|
+
icon_position: 'right',
|
|
256
|
+
icon_expanded_angle: -180,
|
|
257
|
+
},
|
|
258
|
+
vertical_spacing: '8px',
|
|
259
|
+
padding: '4px 8px',
|
|
260
|
+
elements: [
|
|
261
|
+
createMarkdownElement(context),
|
|
262
|
+
],
|
|
263
|
+
};
|
|
241
264
|
return [
|
|
242
265
|
createDividerElement(),
|
|
243
|
-
|
|
266
|
+
collapsiblePanel,
|
|
244
267
|
];
|
|
245
268
|
}
|
|
246
269
|
/**
|
|
247
|
-
* Create a Feishu Card 2.0 tool result element
|
|
270
|
+
* Create a Feishu Card 2.0 tool result element with collapsible panel
|
|
248
271
|
*/
|
|
249
272
|
function createToolResultElement(resultInfo) {
|
|
250
273
|
const { tool_use_id, content, is_error } = resultInfo;
|
|
251
274
|
// Determine status
|
|
252
275
|
const statusColor = is_error ? 'red' : 'green';
|
|
253
276
|
const statusText = is_error ? 'ERROR' : 'SUCCESS';
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
277
|
+
const statusEmoji = is_error ? '❌' : '✅';
|
|
278
|
+
// Build header title with status, emoji, and tool_use_id
|
|
279
|
+
let headerTitle = `<text_tag color='${statusColor}'>${statusEmoji} ${statusText}</text_tag>`;
|
|
280
|
+
if (tool_use_id && tool_use_id !== 'unknown') {
|
|
281
|
+
headerTitle += ` · \`${tool_use_id.slice(0, 8)}\``;
|
|
258
282
|
}
|
|
259
|
-
//
|
|
260
|
-
const
|
|
283
|
+
// Prepare content elements inside the collapsible panel
|
|
284
|
+
const panelElements = [];
|
|
261
285
|
if (content && !is_error) {
|
|
262
286
|
// For successful results, show the content in a code block
|
|
263
287
|
const truncated = truncate(content, 500);
|
|
264
|
-
|
|
288
|
+
panelElements.push(createMarkdownElement(`\`\`\`\n${truncated}\n\`\`\``));
|
|
265
289
|
}
|
|
266
290
|
else if (content && is_error) {
|
|
267
291
|
// For errors, show the error message
|
|
268
292
|
const truncated = truncate(content, 500);
|
|
269
|
-
|
|
293
|
+
panelElements.push(createMarkdownElement(truncated));
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
// No content
|
|
297
|
+
panelElements.push(createMarkdownElement('_(no output)_'));
|
|
270
298
|
}
|
|
271
|
-
|
|
299
|
+
// Create collapsible panel with result details inside
|
|
300
|
+
const collapsiblePanel = {
|
|
301
|
+
tag: 'collapsible_panel',
|
|
302
|
+
expanded: false,
|
|
303
|
+
header: {
|
|
304
|
+
title: {
|
|
305
|
+
tag: 'markdown',
|
|
306
|
+
content: headerTitle,
|
|
307
|
+
},
|
|
308
|
+
vertical_align: 'center',
|
|
309
|
+
icon: {
|
|
310
|
+
tag: 'standard_icon',
|
|
311
|
+
token: 'down-small-ccm_outlined',
|
|
312
|
+
size: '14px 14px',
|
|
313
|
+
},
|
|
314
|
+
icon_position: 'right',
|
|
315
|
+
icon_expanded_angle: -180,
|
|
316
|
+
},
|
|
317
|
+
vertical_spacing: '8px',
|
|
318
|
+
padding: '4px 8px',
|
|
319
|
+
elements: panelElements,
|
|
320
|
+
};
|
|
321
|
+
return [collapsiblePanel];
|
|
272
322
|
}
|
|
273
323
|
//# sourceMappingURL=ToolFormatter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFormatter.js","sourceRoot":"","sources":["../../src/utils/ToolFormatter.ts"],"names":[],"mappings":";;AAkCA,oCAEC;AAKD,gDA2BC;AA8KD,wCAMC;AAKD,4BAKC;AAKD,oDAEC;AAKD,sDAKC;AAKD,
|
|
1
|
+
{"version":3,"file":"ToolFormatter.js","sourceRoot":"","sources":["../../src/utils/ToolFormatter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED