@oflow-ai/core 0.1.0 → 0.1.1
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/conversation.js +21 -2
- package/dist/tools/base.d.ts +7 -0
- package/dist/tools/base.js +28 -2
- package/dist/tools/glob.d.ts +6 -2
- package/dist/tools/glob.js +28 -87
- package/dist/tools/list-directory.d.ts +1 -0
- package/dist/tools/list-directory.js +29 -24
- package/dist/tools/read-file.d.ts +1 -0
- package/dist/tools/read-file.js +7 -6
- package/dist/tools/replace.d.ts +1 -0
- package/dist/tools/replace.js +24 -19
- package/dist/tools/run-shell-command.d.ts +2 -5
- package/dist/tools/run-shell-command.js +61 -37
- package/dist/tools/search-file-content.d.ts +2 -2
- package/dist/tools/search-file-content.js +94 -72
- package/dist/tools/write-file.d.ts +1 -0
- package/dist/tools/write-file.js +7 -6
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +1 -1
- package/package.json +1 -1
package/dist/conversation.js
CHANGED
|
@@ -116,11 +116,30 @@ class Conversation {
|
|
|
116
116
|
break;
|
|
117
117
|
}
|
|
118
118
|
catch (error) {
|
|
119
|
-
|
|
119
|
+
// 提供更详细的错误信息
|
|
120
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
121
|
+
// 检查是否是常见错误
|
|
122
|
+
if (errorMessage.includes('400')) {
|
|
123
|
+
throw new Error(`API请求失败 (400 Bad Request): 可能原因:\n` +
|
|
124
|
+
`1. 模型不支持工具调用,请尝试使用支持工具调用的模型\n` +
|
|
125
|
+
`2. 消息格式不正确\n` +
|
|
126
|
+
`3. API密钥无效或已过期\n` +
|
|
127
|
+
`原始错误: ${errorMessage}`);
|
|
128
|
+
}
|
|
129
|
+
else if (errorMessage.includes('401')) {
|
|
130
|
+
throw new Error(`API认证失败 (401 Unauthorized): 请检查API密钥是否正确`);
|
|
131
|
+
}
|
|
132
|
+
else if (errorMessage.includes('429')) {
|
|
133
|
+
throw new Error(`API请求频率超限 (429 Rate Limit): 请稍后重试`);
|
|
134
|
+
}
|
|
135
|
+
else if (errorMessage.includes('500') || errorMessage.includes('502') || errorMessage.includes('503')) {
|
|
136
|
+
throw new Error(`API服务暂时不可用: 请稍后重试`);
|
|
137
|
+
}
|
|
138
|
+
throw new Error(`对话错误: ${errorMessage}`);
|
|
120
139
|
}
|
|
121
140
|
}
|
|
122
141
|
return finalResponse;
|
|
123
142
|
}
|
|
124
143
|
}
|
|
125
144
|
exports.Conversation = Conversation;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBNEU7QUFjNUUsTUFBYSxZQUFZO0lBQ2YsUUFBUSxHQUFjLEVBQUUsQ0FBQztJQUN6QixRQUFRLENBQWE7SUFDckIsWUFBWSxDQUFlO0lBQzNCLE9BQU8sQ0FBc0I7SUFFckMsWUFBWSxPQUE0QjtRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFBLHVCQUFlLEdBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYztRQUM1Qix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDL0QseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQW1CO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQkFBbUI7UUFDL0IsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7UUFFbkQsT0FBTyxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDbEMsVUFBVSxFQUFFLENBQUM7WUFFYixNQUFNLFdBQVcsR0FBMEI7Z0JBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO2dCQUN6QyxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUk7Z0JBQ3pDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHO2dCQUM1QyxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUM7WUFFRixJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksU0FBUyxHQUFlLEVBQUUsQ0FBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFFbkIsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBa0IsRUFBRSxFQUFFO29CQUNqRSxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFFckIsU0FBUztvQkFDVCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQ3ZELGVBQWUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNuRCxDQUFDO29CQUVELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDeEIsY0FBYyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2hELENBQUM7b0JBRUQsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUMxQixLQUFLLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7NEJBQ3ZDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dDQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDO29DQUNiLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtvQ0FDVCxJQUFJLEVBQUUsVUFBVTtvQ0FDaEIsUUFBUSxFQUFFO3dDQUNSLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUk7d0NBQ3RCLFNBQVMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFO3FDQUN2QztpQ0FDRixDQUFDLENBQUM7NEJBQ0wsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLDRCQUE0QjtnQ0FDNUIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNyRCxJQUFJLFFBQVEsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO29DQUN2QyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQ0FDdkQsQ0FBQzs0QkFDSCxDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCx3QkFBd0I7Z0JBQ3hCLE1BQU0sZ0JBQWdCLEdBQVk7b0JBQ2hDLElBQUksRUFBRSxXQUFXO29CQUNqQixPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUU7aUJBQzlCLENBQUM7Z0JBRUYsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6QixnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUN6QyxDQUFDO2dCQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBRXJDLHFCQUFxQjtnQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6QixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUVwQyxNQUFNLFdBQVcsR0FBdUI7NEJBQ3RDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO3lCQUNoRCxDQUFDO3dCQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUV0RSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFFNUMsMEJBQTBCO3dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDakIsSUFBSSxFQUFFLE1BQU07NEJBQ1osVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFOzRCQUN2QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87eUJBQ3hCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUVELDhDQUE4QztvQkFDOUMsU0FBUztnQkFDWCxDQUFDO2dCQUVELDRDQUE0QztnQkFDNUMsYUFBYSxHQUFHLGNBQWMsQ0FBQztnQkFDL0IsTUFBTTtZQUVSLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkcsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUEvSUQsb0NBK0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZSwgQ2hhdENvbXBsZXRpb25PcHRpb25zLCBUb29sQ2FsbCwgU3RyZWFtQ2h1bmsgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFJUHJvdmlkZXIgfSBmcm9tICcuL2FpL29wZW5haS1wcm92aWRlcic7XG5pbXBvcnQgeyBUb29sUmVnaXN0cnksIGdldFRvb2xSZWdpc3RyeSwgVG9vbEV4ZWN1dGVPcHRpb25zIH0gZnJvbSAnLi90b29scyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uT3B0aW9ucyB7XG4gIHByb3ZpZGVyOiBBSVByb3ZpZGVyO1xuICB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuICBtYXhUb2tlbnM/OiBudW1iZXI7XG4gIHRlbXBlcmF0dXJlPzogbnVtYmVyO1xuICBzaG93VGhpbmtpbmc/OiBib29sZWFuOyAvLyDmmK/lkKbmmL7npLrmgJ3ogIPov4fnqItcbiAgb25Db250ZW50PzogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25UaGlua2luZz86ICh0aGlua2luZzogc3RyaW5nKSA9PiB2b2lkOyAvLyDmgJ3ogIPov4fnqIvlm57osINcbiAgb25Ub29sQ2FsbD86ICh0b29sQ2FsbDogVG9vbENhbGwpID0+IHZvaWQ7XG4gIG9uVG9vbFJlc3VsdD86IChyZXN1bHQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbiB7XG4gIHByaXZhdGUgbWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICBwcml2YXRlIHByb3ZpZGVyOiBBSVByb3ZpZGVyO1xuICBwcml2YXRlIHRvb2xSZWdpc3RyeTogVG9vbFJlZ2lzdHJ5O1xuICBwcml2YXRlIG9wdGlvbnM6IENvbnZlcnNhdGlvbk9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ29udmVyc2F0aW9uT3B0aW9ucykge1xuICAgIHRoaXMucHJvdmlkZXIgPSBvcHRpb25zLnByb3ZpZGVyO1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5ID0gZ2V0VG9vbFJlZ2lzdHJ5KCk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIGFkZE1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgfVxuXG4gIHNldFN5c3RlbVByb21wdChwcm9tcHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBleGlzdGluZyBzeXN0ZW0gcHJvbXB0IGlmIGFueVxuICAgIHRoaXMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzLmZpbHRlcihtID0+IG0ucm9sZSAhPT0gJ3N5c3RlbScpO1xuICAgIC8vIEFkZCBuZXcgc3lzdGVtIHByb21wdCBhdCB0aGUgYmVnaW5uaW5nXG4gICAgdGhpcy5tZXNzYWdlcy51bnNoaWZ0KHsgcm9sZTogJ3N5c3RlbScsIGNvbnRlbnQ6IHByb21wdCB9KTtcbiAgfVxuXG4gIGdldE1lc3NhZ2VzKCk6IE1lc3NhZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXM7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VzID0gW107XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSh1c2VyTWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0aGlzLmFkZE1lc3NhZ2UoeyByb2xlOiAndXNlcicsIGNvbnRlbnQ6IHVzZXJNZXNzYWdlIH0pO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb252ZXJzYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0NvbnZlcnNhdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCBmaW5hbFJlc3BvbnNlID0gJyc7XG4gICAgbGV0IGl0ZXJhdGlvbnMgPSAwO1xuICAgIGNvbnN0IG1heEl0ZXJhdGlvbnMgPSAyMDsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wc1xuXG4gICAgd2hpbGUgKGl0ZXJhdGlvbnMgPCBtYXhJdGVyYXRpb25zKSB7XG4gICAgICBpdGVyYXRpb25zKys7XG5cbiAgICAgIGNvbnN0IGNoYXRPcHRpb25zOiBDaGF0Q29tcGxldGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIG1lc3NhZ2VzOiB0aGlzLm1lc3NhZ2VzLFxuICAgICAgICB0b29sczogdGhpcy50b29sUmVnaXN0cnkuZ2V0RGVmaW5pdGlvbnMoKSxcbiAgICAgICAgdG9vbENob2ljZTogJ2F1dG8nLFxuICAgICAgICBtYXhUb2tlbnM6IHRoaXMub3B0aW9ucy5tYXhUb2tlbnMgfHwgNDA5NixcbiAgICAgICAgdGVtcGVyYXR1cmU6IHRoaXMub3B0aW9ucy50ZW1wZXJhdHVyZSB8fCAwLjcsXG4gICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgfTtcblxuICAgICAgbGV0IGN1cnJlbnRDb250ZW50ID0gJyc7XG4gICAgICBsZXQgY3VycmVudFRoaW5raW5nID0gJyc7XG4gICAgICBsZXQgdG9vbENhbGxzOiBUb29sQ2FsbFtdID0gW107XG4gICAgICBsZXQgY3VycmVudElkID0gJyc7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvdmlkZXIuY2hhdFN0cmVhbShjaGF0T3B0aW9ucywgKGNodW5rOiBTdHJlYW1DaHVuaykgPT4ge1xuICAgICAgICAgIGN1cnJlbnRJZCA9IGNodW5rLmlkO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIOWkhOeQhuaAneiAg+i/h+eoi1xuICAgICAgICAgIGlmIChjaHVuay5kZWx0YS5yZWFzb25pbmcgJiYgdGhpcy5vcHRpb25zLnNob3dUaGlua2luZykge1xuICAgICAgICAgICAgY3VycmVudFRoaW5raW5nICs9IGNodW5rLmRlbHRhLnJlYXNvbmluZztcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblRoaW5raW5nPy4oY2h1bmsuZGVsdGEucmVhc29uaW5nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2h1bmsuZGVsdGEuY29udGVudCkge1xuICAgICAgICAgICAgY3VycmVudENvbnRlbnQgKz0gY2h1bmsuZGVsdGEuY29udGVudDtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkNvbnRlbnQ/LihjaHVuay5kZWx0YS5jb250ZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2h1bmsuZGVsdGEudG9vbENhbGxzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRjIG9mIGNodW5rLmRlbHRhLnRvb2xDYWxscykge1xuICAgICAgICAgICAgICBpZiAodGMuaWQgJiYgdGMuZnVuY3Rpb24/Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0b29sQ2FsbHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICBpZDogdGMuaWQsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb246IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGMuZnVuY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzOiB0Yy5mdW5jdGlvbi5hcmd1bWVudHMgfHwgJydcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZXhpc3RpbmcgdG9vbCBjYWxsXG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0b29sQ2FsbHMuZmluZCh0ID0+IHQuaWQgPT09IHRjLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmcgJiYgdGMuZnVuY3Rpb24/LmFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgICAgZXhpc3RpbmcuZnVuY3Rpb24uYXJndW1lbnRzICs9IHRjLmZ1bmN0aW9uLmFyZ3VtZW50cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCBhc3Npc3RhbnQgbWVzc2FnZVxuICAgICAgICBjb25zdCBhc3Npc3RhbnRNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgICAgIGNvbnRlbnQ6IGN1cnJlbnRDb250ZW50IHx8ICcnXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRvb2xDYWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXNzaXN0YW50TWVzc2FnZS50b29sQ2FsbHMgPSB0b29sQ2FsbHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2goYXNzaXN0YW50TWVzc2FnZSk7XG5cbiAgICAgICAgLy8gUHJvY2VzcyB0b29sIGNhbGxzXG4gICAgICAgIGlmICh0b29sQ2FsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZvciAoY29uc3QgdG9vbENhbGwgb2YgdG9vbENhbGxzKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMub25Ub29sQ2FsbD8uKHRvb2xDYWxsKTtcblxuICAgICAgICAgICAgY29uc3QgdG9vbE9wdGlvbnM6IFRvb2xFeGVjdXRlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnlcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudG9vbFJlZ2lzdHJ5LmV4ZWN1dGUodG9vbENhbGwsIHRvb2xPcHRpb25zKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uVG9vbFJlc3VsdD8uKHJlc3VsdC5jb250ZW50KTtcblxuICAgICAgICAgICAgLy8gQWRkIHRvb2wgcmVzdWx0IG1lc3NhZ2VcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgICAgIHJvbGU6ICd0b29sJyxcbiAgICAgICAgICAgICAgdG9vbENhbGxJZDogdG9vbENhbGwuaWQsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHJlc3VsdC5jb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb250aW51ZSBjb252ZXJzYXRpb24gdG8gZ2V0IGZpbmFsIHJlc3BvbnNlXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyB0b29sIGNhbGxzLCB3ZSBoYXZlIHRoZSBmaW5hbCByZXNwb25zZVxuICAgICAgICBmaW5hbFJlc3BvbnNlID0gY3VycmVudENvbnRlbnQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbnZlcnNhdGlvbiBlcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmFsUmVzcG9uc2U7XG4gIH1cbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBNEU7QUFjNUUsTUFBYSxZQUFZO0lBQ2YsUUFBUSxHQUFjLEVBQUUsQ0FBQztJQUN6QixRQUFRLENBQWE7SUFDckIsWUFBWSxDQUFlO0lBQzNCLE9BQU8sQ0FBc0I7SUFFckMsWUFBWSxPQUE0QjtRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFBLHVCQUFlLEdBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYztRQUM1Qix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDL0QseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQW1CO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFB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YUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQWpLRCxvQ0FpS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlLCBDaGF0Q29tcGxldGlvbk9wdGlvbnMsIFRvb2xDYWxsLCBTdHJlYW1DaHVuayB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQUlQcm92aWRlciB9IGZyb20gJy4vYWkvb3BlbmFpLXByb3ZpZGVyJztcbmltcG9ydCB7IFRvb2xSZWdpc3RyeSwgZ2V0VG9vbFJlZ2lzdHJ5LCBUb29sRXhlY3V0ZU9wdGlvbnMgfSBmcm9tICcuL3Rvb2xzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25PcHRpb25zIHtcbiAgcHJvdmlkZXI6IEFJUHJvdmlkZXI7XG4gIHdvcmtpbmdEaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIG1heFRva2Vucz86IG51bWJlcjtcbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XG4gIHNob3dUaGlua2luZz86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAneiAg+i/h+eoi1xuICBvbkNvbnRlbnQ/OiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblRoaW5raW5nPzogKHRoaW5raW5nOiBzdHJpbmcpID0+IHZvaWQ7IC8vIOaAneiAg+i/h+eoi+Wbnuiwg1xuICBvblRvb2xDYWxsPzogKHRvb2xDYWxsOiBUb29sQ2FsbCkgPT4gdm9pZDtcbiAgb25Ub29sUmVzdWx0PzogKHJlc3VsdDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uIHtcbiAgcHJpdmF0ZSBtZXNzYWdlczogTWVzc2FnZVtdID0gW107XG4gIHByaXZhdGUgcHJvdmlkZXI6IEFJUHJvdmlkZXI7XG4gIHByaXZhdGUgdG9vbFJlZ2lzdHJ5OiBUb29sUmVnaXN0cnk7XG4gIHByaXZhdGUgb3B0aW9uczogQ29udmVyc2F0aW9uT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb252ZXJzYXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5wcm92aWRlciA9IG9wdGlvbnMucHJvdmlkZXI7XG4gICAgdGhpcy50b29sUmVnaXN0cnkgPSBnZXRUb29sUmVnaXN0cnkoKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgYWRkTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICB9XG5cbiAgc2V0U3lzdGVtUHJvbXB0KHByb21wdDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHN5c3RlbSBwcm9tcHQgaWYgYW55XG4gICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMubWVzc2FnZXMuZmlsdGVyKG0gPT4gbS5yb2xlICE9PSAnc3lzdGVtJyk7XG4gICAgLy8gQWRkIG5ldyBzeXN0ZW0gcHJvbXB0IGF0IHRoZSBiZWdpbm5pbmdcbiAgICB0aGlzLm1lc3NhZ2VzLnVuc2hpZnQoeyByb2xlOiAnc3lzdGVtJywgY29udGVudDogcHJvbXB0IH0pO1xuICB9XG5cbiAgZ2V0TWVzc2FnZXMoKTogTWVzc2FnZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcztcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKHVzZXJNZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRoaXMuYWRkTWVzc2FnZSh7IHJvbGU6ICd1c2VyJywgY29udGVudDogdXNlck1lc3NhZ2UgfSk7XG4gICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NvbnZlcnNhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzQ29udmVyc2F0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IGZpbmFsUmVzcG9uc2UgPSAnJztcbiAgICBsZXQgaXRlcmF0aW9ucyA9IDA7XG4gICAgY29uc3QgbWF4SXRlcmF0aW9ucyA9IDIwOyAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3BzXG5cbiAgICB3aGlsZSAoaXRlcmF0aW9ucyA8IG1heEl0ZXJhdGlvbnMpIHtcbiAgICAgIGl0ZXJhdGlvbnMrKztcblxuICAgICAgY29uc3QgY2hhdE9wdGlvbnM6IENoYXRDb21wbGV0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMsXG4gICAgICAgIHRvb2xzOiB0aGlzLnRvb2xSZWdpc3RyeS5nZXREZWZpbml0aW9ucygpLFxuICAgICAgICB0b29sQ2hvaWNlOiAnYXV0bycsXG4gICAgICAgIG1heFRva2VuczogdGhpcy5vcHRpb25zLm1heFRva2VucyB8fCA0MDk2LFxuICAgICAgICB0ZW1wZXJhdHVyZTogdGhpcy5vcHRpb25zLnRlbXBlcmF0dXJlIHx8IDAuNyxcbiAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICB9O1xuXG4gICAgICBsZXQgY3VycmVudENvbnRlbnQgPSAnJztcbiAgICAgIGxldCBjdXJyZW50VGhpbmtpbmcgPSAnJztcbiAgICAgIGxldCB0b29sQ2FsbHM6IFRvb2xDYWxsW10gPSBbXTtcbiAgICAgIGxldCBjdXJyZW50SWQgPSAnJztcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm92aWRlci5jaGF0U3RyZWFtKGNoYXRPcHRpb25zLCAoY2h1bms6IFN0cmVhbUNodW5rKSA9PiB7XG4gICAgICAgICAgY3VycmVudElkID0gY2h1bmsuaWQ7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8g5aSE55CG5oCd6ICD6L+H56iLXG4gICAgICAgICAgaWYgKGNodW5rLmRlbHRhLnJlYXNvbmluZyAmJiB0aGlzLm9wdGlvbnMuc2hvd1RoaW5raW5nKSB7XG4gICAgICAgICAgICBjdXJyZW50VGhpbmtpbmcgKz0gY2h1bmsuZGVsdGEucmVhc29uaW5nO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uVGhpbmtpbmc/LihjaHVuay5kZWx0YS5yZWFzb25pbmcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjaHVuay5kZWx0YS5jb250ZW50KSB7XG4gICAgICAgICAgICBjdXJyZW50Q29udGVudCArPSBjaHVuay5kZWx0YS5jb250ZW50O1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uQ29udGVudD8uKGNodW5rLmRlbHRhLmNvbnRlbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjaHVuay5kZWx0YS50b29sQ2FsbHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdGMgb2YgY2h1bmsuZGVsdGEudG9vbENhbGxzKSB7XG4gICAgICAgICAgICAgIGlmICh0Yy5pZCAmJiB0Yy5mdW5jdGlvbj8ubmFtZSkge1xuICAgICAgICAgICAgICAgIHRvb2xDYWxscy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGlkOiB0Yy5pZCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0Yy5mdW5jdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHM6IHRjLmZ1bmN0aW9uLmFyZ3VtZW50cyB8fCAnJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyB0b29sIGNhbGxcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHRvb2xDYWxscy5maW5kKHQgPT4gdC5pZCA9PT0gdGMuaWQpO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZyAmJiB0Yy5mdW5jdGlvbj8uYXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZy5mdW5jdGlvbi5hcmd1bWVudHMgKz0gdGMuZnVuY3Rpb24uYXJndW1lbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIGFzc2lzdGFudCBtZXNzYWdlXG4gICAgICAgIGNvbnN0IGFzc2lzdGFudE1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgICAgICAgY29udGVudDogY3VycmVudENvbnRlbnQgfHwgJydcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodG9vbENhbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBhc3Npc3RhbnRNZXNzYWdlLnRvb2xDYWxscyA9IHRvb2xDYWxscztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWVzc2FnZXMucHVzaChhc3Npc3RhbnRNZXNzYWdlKTtcblxuICAgICAgICAvLyBQcm9jZXNzIHRvb2wgY2FsbHNcbiAgICAgICAgaWYgKHRvb2xDYWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB0b29sQ2FsbCBvZiB0b29sQ2FsbHMpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblRvb2xDYWxsPy4odG9vbENhbGwpO1xuXG4gICAgICAgICAgICBjb25zdCB0b29sT3B0aW9uczogVG9vbEV4ZWN1dGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy50b29sUmVnaXN0cnkuZXhlY3V0ZSh0b29sQ2FsbCwgdG9vbE9wdGlvbnMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMub25Ub29sUmVzdWx0Py4ocmVzdWx0LmNvbnRlbnQpO1xuXG4gICAgICAgICAgICAvLyBBZGQgdG9vbCByZXN1bHQgbWVzc2FnZVxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgcm9sZTogJ3Rvb2wnLFxuICAgICAgICAgICAgICB0b29sQ2FsbElkOiB0b29sQ2FsbC5pZCxcbiAgICAgICAgICAgICAgY29udGVudDogcmVzdWx0LmNvbnRlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENvbnRpbnVlIGNvbnZlcnNhdGlvbiB0byBnZXQgZmluYWwgcmVzcG9uc2VcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIHRvb2wgY2FsbHMsIHdlIGhhdmUgdGhlIGZpbmFsIHJlc3BvbnNlXG4gICAgICAgIGZpbmFsUmVzcG9uc2UgPSBjdXJyZW50Q29udGVudDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIOaPkOS+m+abtOivpue7hueahOmUmeivr+S/oeaBr1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIFxuICAgICAgICAvLyDmo4Dmn6XmmK/lkKbmmK/luLjop4HplJnor69cbiAgICAgICAgaWYgKGVycm9yTWVzc2FnZS5pbmNsdWRlcygnNDAwJykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFQSeivt+axguWksei0pSAoNDAwIEJhZCBSZXF1ZXN0KTog5Y+v6IO95Y6f5ZugOlxcbmAgK1xuICAgICAgICAgICAgYDEuIOaooeWei+S4jeaUr+aMgeW3peWFt+iwg+eUqO+8jOivt+WwneivleS9v+eUqOaUr+aMgeW3peWFt+iwg+eUqOeahOaooeWei1xcbmAgK1xuICAgICAgICAgICAgYDIuIOa2iOaBr+agvOW8j+S4jeato+ehrlxcbmAgK1xuICAgICAgICAgICAgYDMuIEFQSeWvhumSpeaXoOaViOaIluW3sui/h+acn1xcbmAgK1xuICAgICAgICAgICAgYOWOn+Wni+mUmeivrzogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCc0MDEnKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVBJ6K6k6K+B5aSx6LSlICg0MDEgVW5hdXRob3JpemVkKTog6K+35qOA5p+lQVBJ5a+G6ZKl5piv5ZCm5q2j56GuYCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCc0MjknKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVBJ6K+35rGC6aKR546H6LaF6ZmQICg0MjkgUmF0ZSBMaW1pdCk6IOivt+eojeWQjumHjeivlWApO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yTWVzc2FnZS5pbmNsdWRlcygnNTAwJykgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCc1MDInKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJzUwMycpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUEnmnI3liqHmmoLml7bkuI3lj6/nlKg6IOivt+eojeWQjumHjeivlWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOWvueivnemUmeivrzogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmFsUmVzcG9uc2U7XG4gIH1cbn0iXX0=
|
package/dist/tools/base.d.ts
CHANGED
|
@@ -14,3 +14,10 @@ export declare abstract class BaseTool<TParams = Record<string, unknown>> {
|
|
|
14
14
|
}
|
|
15
15
|
export declare function createToolResult(toolCallId: string, content: string, isError?: boolean): ToolResult;
|
|
16
16
|
export declare function formatToolError(error: unknown): string;
|
|
17
|
+
export declare const BASE_SCHEMAS: {
|
|
18
|
+
stringProperty: (description: string) => Record<string, unknown>;
|
|
19
|
+
numberProperty: (description: string) => Record<string, unknown>;
|
|
20
|
+
booleanProperty: (description: string) => Record<string, unknown>;
|
|
21
|
+
arrayProperty: (description: string, items: Record<string, unknown>) => Record<string, unknown>;
|
|
22
|
+
objectProperty: (description: string, properties: Record<string, unknown>, required?: string[]) => Record<string, unknown>;
|
|
23
|
+
};
|
package/dist/tools/base.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseTool = void 0;
|
|
3
|
+
exports.BASE_SCHEMAS = exports.BaseTool = void 0;
|
|
4
4
|
exports.createToolResult = createToolResult;
|
|
5
5
|
exports.formatToolError = formatToolError;
|
|
6
6
|
class BaseTool {
|
|
@@ -36,4 +36,30 @@ function formatToolError(error) {
|
|
|
36
36
|
}
|
|
37
37
|
return `Error: ${String(error)}`;
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
// 基础工具参数Schema - 符合OpenAI JSON Schema规范
|
|
40
|
+
exports.BASE_SCHEMAS = {
|
|
41
|
+
stringProperty: (description) => ({
|
|
42
|
+
type: 'string',
|
|
43
|
+
description
|
|
44
|
+
}),
|
|
45
|
+
numberProperty: (description) => ({
|
|
46
|
+
type: 'number',
|
|
47
|
+
description
|
|
48
|
+
}),
|
|
49
|
+
booleanProperty: (description) => ({
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
description
|
|
52
|
+
}),
|
|
53
|
+
arrayProperty: (description, items) => ({
|
|
54
|
+
type: 'array',
|
|
55
|
+
description,
|
|
56
|
+
items
|
|
57
|
+
}),
|
|
58
|
+
objectProperty: (description, properties, required) => ({
|
|
59
|
+
type: 'object',
|
|
60
|
+
description,
|
|
61
|
+
properties,
|
|
62
|
+
required: required || Object.keys(properties)
|
|
63
|
+
})
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNDQSw0Q0FVQztBQUVELDBDQUtDO0FBL0NELE1BQXNCLFFBQVE7SUFLNUIsYUFBYTtRQUNYLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzVCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFPUyxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsUUFBa0I7UUFDNUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLE1BQU0sQ0FBQyxHQUFvQixDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE1QkQsNEJBNEJDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFVBQWtCLEVBQ2xCLE9BQWUsRUFDZixPQUFPLEdBQUcsS0FBSztJQUVmLE9BQU87UUFDTCxVQUFVO1FBQ1YsT0FBTztRQUNQLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxLQUFjO0lBQzVDLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQzNCLE9BQU8sVUFBVSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUNELE9BQU8sVUFBVSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsd0NBQXdDO0FBQzNCLFFBQUEsWUFBWSxHQUFHO0lBQzFCLGNBQWMsRUFBRSxDQUFDLFdBQW1CLEVBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVztLQUNaLENBQUM7SUFDRixjQUFjLEVBQUUsQ0FBQyxXQUFtQixFQUEyQixFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVc7S0FDWixDQUFDO0lBQ0YsZUFBZSxFQUFFLENBQUMsV0FBbUIsRUFBMkIsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXO0tBQ1osQ0FBQztJQUNGLGFBQWEsRUFBRSxDQUFDLFdBQW1CLEVBQUUsS0FBOEIsRUFBMkIsRUFBRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXO1FBQ1gsS0FBSztLQUNOLENBQUM7SUFDRixjQUFjLEVBQUUsQ0FBQyxXQUFtQixFQUFFLFVBQW1DLEVBQUUsUUFBbUIsRUFBMkIsRUFBRSxDQUFDLENBQUM7UUFDM0gsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXO1FBQ1gsVUFBVTtRQUNWLFFBQVEsRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDOUMsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sRGVmaW5pdGlvbiwgVG9vbFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUb29sRXhlY3V0ZU9wdGlvbnMge1xuICB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBzYW5kYm94PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUb29sPFRQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlYWRvbmx5IHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGdldERlZmluaXRpb24oKTogVG9vbERlZmluaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgICAgZnVuY3Rpb246IHtcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGFic3RyYWN0IGV4ZWN1dGUoXG4gICAgcGFyYW1zOiBUUGFyYW1zLFxuICAgIG9wdGlvbnM/OiBUb29sRXhlY3V0ZU9wdGlvbnNcbiAgKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZVJlcXVpcmVkKHBhcmFtczogVFBhcmFtcywgcmVxdWlyZWQ6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVxdWlyZWQpIHtcbiAgICAgIGlmIChwYXJhbXNba2V5IGFzIGtleW9mIFRQYXJhbXNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcjogJHtrZXl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sUmVzdWx0KFxuICB0b29sQ2FsbElkOiBzdHJpbmcsXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgaXNFcnJvciA9IGZhbHNlXG4pOiBUb29sUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sQ2FsbElkLFxuICAgIGNvbnRlbnQsXG4gICAgaXNFcnJvclxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VG9vbEVycm9yKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgfVxuICByZXR1cm4gYEVycm9yOiAke1N0cmluZyhlcnJvcil9YDtcbn1cblxuLy8g5Z+656GA5bel5YW35Y+C5pWwU2NoZW1hIC0g56ym5ZCIT3BlbkFJIEpTT04gU2NoZW1h6KeE6IyDXG5leHBvcnQgY29uc3QgQkFTRV9TQ0hFTUFTID0ge1xuICBzdHJpbmdQcm9wZXJ0eTogKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGRlc2NyaXB0aW9uXG4gIH0pLFxuICBudW1iZXJQcm9wZXJ0eTogKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlc2NyaXB0aW9uXG4gIH0pLFxuICBib29sZWFuUHJvcGVydHk6IChkZXNjcmlwdGlvbjogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVzY3JpcHRpb25cbiAgfSksXG4gIGFycmF5UHJvcGVydHk6IChkZXNjcmlwdGlvbjogc3RyaW5nLCBpdGVtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICAgIHR5cGU6ICdhcnJheScsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgaXRlbXNcbiAgfSksXG4gIG9iamVjdFByb3BlcnR5OiAoZGVzY3JpcHRpb246IHN0cmluZywgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHJlcXVpcmVkPzogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIHByb3BlcnRpZXMsXG4gICAgcmVxdWlyZWQ6IHJlcXVpcmVkIHx8IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpXG4gIH0pXG59OyJdfQ==
|
package/dist/tools/glob.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { BaseTool, ToolExecuteOptions } from './base';
|
|
|
2
2
|
interface GlobParams {
|
|
3
3
|
pattern: string;
|
|
4
4
|
path?: string;
|
|
5
|
+
case_sensitive?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare class GlobTool extends BaseTool<GlobParams> {
|
|
7
8
|
name: string;
|
|
@@ -17,11 +18,14 @@ export declare class GlobTool extends BaseTool<GlobParams> {
|
|
|
17
18
|
type: string;
|
|
18
19
|
description: string;
|
|
19
20
|
};
|
|
21
|
+
case_sensitive: {
|
|
22
|
+
type: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
20
25
|
};
|
|
21
26
|
required: string[];
|
|
27
|
+
additionalProperties: boolean;
|
|
22
28
|
};
|
|
23
29
|
execute(params: GlobParams, options?: ToolExecuteOptions): Promise<string>;
|
|
24
|
-
private walkDir;
|
|
25
|
-
private matchPattern;
|
|
26
30
|
}
|
|
27
31
|
export {};
|
package/dist/tools/glob.js
CHANGED
|
@@ -1,125 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.GlobTool = void 0;
|
|
37
4
|
const base_1 = require("./base");
|
|
38
|
-
const
|
|
39
|
-
const path = __importStar(require("path"));
|
|
5
|
+
const glob_1 = require("glob");
|
|
40
6
|
class GlobTool extends base_1.BaseTool {
|
|
41
7
|
name = 'glob';
|
|
42
|
-
description = '
|
|
8
|
+
description = 'Efficiently finds files matching specific glob patterns (e.g., `src/**/*.ts`, `**/*.md`), returning absolute paths sorted by modification time (newest first). Ideal for quickly locating files based on their name or path structure, especially in large codebases.';
|
|
43
9
|
parameters = {
|
|
44
10
|
type: 'object',
|
|
45
11
|
properties: {
|
|
46
12
|
pattern: {
|
|
47
13
|
type: 'string',
|
|
48
|
-
description: 'The glob pattern to match (e.g., **/*.
|
|
14
|
+
description: 'The glob pattern to match against (e.g., \'**/*.py\', \'docs/*.md\').'
|
|
49
15
|
},
|
|
50
16
|
path: {
|
|
51
17
|
type: 'string',
|
|
52
|
-
description: 'Optional: The absolute path to search within'
|
|
18
|
+
description: 'Optional: The absolute path to the directory to search within. If omitted, searches the root directory.'
|
|
19
|
+
},
|
|
20
|
+
case_sensitive: {
|
|
21
|
+
type: 'boolean',
|
|
22
|
+
description: 'Optional: Whether the search should be case-sensitive. Defaults to false.'
|
|
53
23
|
}
|
|
54
24
|
},
|
|
55
|
-
required: ['pattern']
|
|
25
|
+
required: ['pattern'],
|
|
26
|
+
additionalProperties: false
|
|
56
27
|
};
|
|
57
28
|
async execute(params, options) {
|
|
58
29
|
this.validateRequired(params, ['pattern']);
|
|
59
30
|
const workingDir = options?.workingDirectory || process.cwd();
|
|
60
31
|
const searchPath = params.path || workingDir;
|
|
61
32
|
try {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
33
|
+
const files = await (0, glob_1.glob)(params.pattern, {
|
|
34
|
+
cwd: searchPath,
|
|
35
|
+
absolute: true,
|
|
36
|
+
nocase: !params.case_sensitive,
|
|
37
|
+
nodir: false
|
|
38
|
+
});
|
|
39
|
+
if (files.length === 0) {
|
|
40
|
+
return `No files found matching pattern "${params.pattern}" in ${searchPath}`;
|
|
66
41
|
}
|
|
67
42
|
// Sort by modification time (newest first)
|
|
68
|
-
const
|
|
43
|
+
const fs = require('fs');
|
|
44
|
+
const filesWithStats = await Promise.all(files.map(async (file) => {
|
|
69
45
|
try {
|
|
70
|
-
const stat =
|
|
46
|
+
const stat = fs.statSync(file);
|
|
71
47
|
return { file, mtime: stat.mtime.getTime() };
|
|
72
48
|
}
|
|
73
49
|
catch {
|
|
74
50
|
return { file, mtime: 0 };
|
|
75
51
|
}
|
|
76
52
|
}));
|
|
77
|
-
|
|
78
|
-
|
|
53
|
+
filesWithStats.sort((a, b) => b.mtime - a.mtime);
|
|
54
|
+
let result = `Found ${files.length} files matching "${params.pattern}":\n\n`;
|
|
55
|
+
filesWithStats.forEach((f) => {
|
|
56
|
+
result += `${f.file}\n`;
|
|
57
|
+
});
|
|
58
|
+
return result;
|
|
79
59
|
}
|
|
80
60
|
catch (error) {
|
|
81
61
|
return (0, base_1.formatToolError)(error);
|
|
82
62
|
}
|
|
83
63
|
}
|
|
84
|
-
async walkDir(dir, pattern, results) {
|
|
85
|
-
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
86
|
-
for (const entry of entries) {
|
|
87
|
-
const fullPath = path.join(dir, entry.name);
|
|
88
|
-
if (entry.isDirectory()) {
|
|
89
|
-
// Skip common ignored directories
|
|
90
|
-
if (['node_modules', '.git', 'dist', 'build', '.next'].includes(entry.name)) {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
await this.walkDir(fullPath, pattern, results);
|
|
94
|
-
}
|
|
95
|
-
else if (entry.isFile()) {
|
|
96
|
-
if (this.matchPattern(fullPath, pattern)) {
|
|
97
|
-
results.push(fullPath);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
matchPattern(filePath, pattern) {
|
|
103
|
-
// Simple glob matching
|
|
104
|
-
const fileName = path.basename(filePath);
|
|
105
|
-
// Handle **/*.ext pattern
|
|
106
|
-
if (pattern.startsWith('**/*.')) {
|
|
107
|
-
const ext = pattern.slice(4);
|
|
108
|
-
return fileName.endsWith(ext);
|
|
109
|
-
}
|
|
110
|
-
// Handle *.ext pattern
|
|
111
|
-
if (pattern.startsWith('*.')) {
|
|
112
|
-
const ext = pattern.slice(1);
|
|
113
|
-
return fileName.endsWith(ext);
|
|
114
|
-
}
|
|
115
|
-
// Handle **/name pattern
|
|
116
|
-
if (pattern.startsWith('**/')) {
|
|
117
|
-
const name = pattern.slice(3);
|
|
118
|
-
return fileName.includes(name);
|
|
119
|
-
}
|
|
120
|
-
// Direct match
|
|
121
|
-
return fileName.includes(pattern);
|
|
122
|
-
}
|
|
123
64
|
}
|
|
124
65
|
exports.GlobTool = GlobTool;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9nbG9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUF1RTtBQUN2RSwrQkFBc0M7QUFRdEMsTUFBYSxRQUFTLFNBQVEsZUFBb0I7SUFDaEQsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUNkLFdBQVcsR0FBRyx1UUFBdVEsQ0FBQztJQUN0UixVQUFVLEdBQUc7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsdUVBQXVFO2FBQ3JGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSx5R0FBeUc7YUFDdkg7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsV0FBVyxFQUFFLDJFQUEyRTthQUN6RjtTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3JCLG9CQUFvQixFQUFFLEtBQUs7S0FDNUIsQ0FBQztJQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBa0IsRUFBRSxPQUE0QjtRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUUzQyxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDO1FBRTdDLElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxXQUFNLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDekMsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWM7Z0JBQzlCLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1lBRUgsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLG9DQUFvQyxNQUFNLENBQUMsT0FBTyxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ2hGLENBQUM7WUFFRCwyQ0FBMkM7WUFDM0MsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQy9DLENBQUM7Z0JBQUMsTUFBTSxDQUFDO29CQUNQLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM1QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVGLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzRCxJQUFJLE1BQU0sR0FBRyxTQUFTLEtBQUssQ0FBQyxNQUFNLG9CQUFvQixNQUFNLENBQUMsT0FBTyxRQUFRLENBQUM7WUFDN0UsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUNoQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBQSxzQkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFsRUQsNEJBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVRvb2wsIFRvb2xFeGVjdXRlT3B0aW9ucywgZm9ybWF0VG9vbEVycm9yIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGdsb2IgYXMgZ2xvYkZuIH0gZnJvbSAnZ2xvYic7XG5cbmludGVyZmFjZSBHbG9iUGFyYW1zIHtcbiAgcGF0dGVybjogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBjYXNlX3NlbnNpdGl2ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBHbG9iVG9vbCBleHRlbmRzIEJhc2VUb29sPEdsb2JQYXJhbXM+IHtcbiAgbmFtZSA9ICdnbG9iJztcbiAgZGVzY3JpcHRpb24gPSAnRWZmaWNpZW50bHkgZmluZHMgZmlsZXMgbWF0Y2hpbmcgc3BlY2lmaWMgZ2xvYiBwYXR0ZXJucyAoZS5nLiwgYHNyYy8qKi8qLnRzYCwgYCoqLyoubWRgKSwgcmV0dXJuaW5nIGFic29sdXRlIHBhdGhzIHNvcnRlZCBieSBtb2RpZmljYXRpb24gdGltZSAobmV3ZXN0IGZpcnN0KS4gSWRlYWwgZm9yIHF1aWNrbHkgbG9jYXRpbmcgZmlsZXMgYmFzZWQgb24gdGhlaXIgbmFtZSBvciBwYXRoIHN0cnVjdHVyZSwgZXNwZWNpYWxseSBpbiBsYXJnZSBjb2RlYmFzZXMuJztcbiAgcGFyYW1ldGVycyA9IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBwYXR0ZXJuOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBnbG9iIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zdCAoZS5nLiwgXFwnKiovKi5weVxcJywgXFwnZG9jcy8qLm1kXFwnKS4nIFxuICAgICAgfSxcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWw6IFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdG8gc2VhcmNoIHdpdGhpbi4gSWYgb21pdHRlZCwgc2VhcmNoZXMgdGhlIHJvb3QgZGlyZWN0b3J5LidcbiAgICAgIH0sXG4gICAgICBjYXNlX3NlbnNpdGl2ZToge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWw6IFdoZXRoZXIgdGhlIHNlYXJjaCBzaG91bGQgYmUgY2FzZS1zZW5zaXRpdmUuIERlZmF1bHRzIHRvIGZhbHNlLidcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ3BhdHRlcm4nXSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2VcbiAgfTtcblxuICBhc3luYyBleGVjdXRlKHBhcmFtczogR2xvYlBhcmFtcywgb3B0aW9ucz86IFRvb2xFeGVjdXRlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdGhpcy52YWxpZGF0ZVJlcXVpcmVkKHBhcmFtcywgWydwYXR0ZXJuJ10pO1xuXG4gICAgY29uc3Qgd29ya2luZ0RpciA9IG9wdGlvbnM/LndvcmtpbmdEaXJlY3RvcnkgfHwgcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBzZWFyY2hQYXRoID0gcGFyYW1zLnBhdGggfHwgd29ya2luZ0RpcjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGdsb2JGbihwYXJhbXMucGF0dGVybiwge1xuICAgICAgICBjd2Q6IHNlYXJjaFBhdGgsXG4gICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICBub2Nhc2U6ICFwYXJhbXMuY2FzZV9zZW5zaXRpdmUsXG4gICAgICAgIG5vZGlyOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGBObyBmaWxlcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuIFwiJHtwYXJhbXMucGF0dGVybn1cIiBpbiAke3NlYXJjaFBhdGh9YDtcbiAgICAgIH1cblxuICAgICAgLy8gU29ydCBieSBtb2RpZmljYXRpb24gdGltZSAobmV3ZXN0IGZpcnN0KVxuICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuICAgICAgY29uc3QgZmlsZXNXaXRoU3RhdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKGZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZmlsZSwgbXRpbWU6IHN0YXQubXRpbWUuZ2V0VGltZSgpIH07XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4geyBmaWxlLCBtdGltZTogMCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGZpbGVzV2l0aFN0YXRzLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBiLm10aW1lIC0gYS5tdGltZSk7XG5cbiAgICAgIGxldCByZXN1bHQgPSBgRm91bmQgJHtmaWxlcy5sZW5ndGh9IGZpbGVzIG1hdGNoaW5nIFwiJHtwYXJhbXMucGF0dGVybn1cIjpcXG5cXG5gO1xuICAgICAgZmlsZXNXaXRoU3RhdHMuZm9yRWFjaCgoZjogYW55KSA9PiB7XG4gICAgICAgIHJlc3VsdCArPSBgJHtmLmZpbGV9XFxuYDtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZm9ybWF0VG9vbEVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cbn0iXX0=
|
|
@@ -39,13 +39,13 @@ const fs = __importStar(require("fs/promises"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
class ListDirectoryTool extends base_1.BaseTool {
|
|
41
41
|
name = 'list_directory';
|
|
42
|
-
description = 'Lists the names of files and subdirectories directly within a specified directory path.';
|
|
42
|
+
description = 'Lists the names of files and subdirectories directly within a specified directory path. Can optionally ignore entries matching provided glob patterns.';
|
|
43
43
|
parameters = {
|
|
44
44
|
type: 'object',
|
|
45
45
|
properties: {
|
|
46
46
|
path: {
|
|
47
47
|
type: 'string',
|
|
48
|
-
description: 'The absolute path to the directory to list'
|
|
48
|
+
description: 'The absolute path to the directory to list (must be absolute, not relative)'
|
|
49
49
|
},
|
|
50
50
|
ignore: {
|
|
51
51
|
type: 'array',
|
|
@@ -53,7 +53,8 @@ class ListDirectoryTool extends base_1.BaseTool {
|
|
|
53
53
|
description: 'List of glob patterns to ignore'
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
|
-
required: ['path']
|
|
56
|
+
required: ['path'],
|
|
57
|
+
additionalProperties: false
|
|
57
58
|
};
|
|
58
59
|
async execute(params, options) {
|
|
59
60
|
this.validateRequired(params, ['path']);
|
|
@@ -62,28 +63,32 @@ class ListDirectoryTool extends base_1.BaseTool {
|
|
|
62
63
|
const resolvedPath = path.isAbsolute(dirPath) ? dirPath : path.join(workingDir, dirPath);
|
|
63
64
|
try {
|
|
64
65
|
const entries = await fs.readdir(resolvedPath, { withFileTypes: true });
|
|
65
|
-
let
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (pattern.includes('*')) {
|
|
76
|
-
const regex = new RegExp(pattern.replace(/\*/g, '.*'));
|
|
77
|
-
return regex.test(name);
|
|
78
|
-
}
|
|
79
|
-
return name === pattern;
|
|
66
|
+
let result = `Directory: ${resolvedPath}\n\n`;
|
|
67
|
+
const directories = [];
|
|
68
|
+
const files = [];
|
|
69
|
+
for (const entry of entries) {
|
|
70
|
+
// Apply ignore patterns if provided
|
|
71
|
+
if (params.ignore && params.ignore.length > 0) {
|
|
72
|
+
const shouldIgnore = params.ignore.some(pattern => {
|
|
73
|
+
// Simple glob matching
|
|
74
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
|
|
75
|
+
return regex.test(entry.name);
|
|
80
76
|
});
|
|
81
|
-
|
|
77
|
+
if (shouldIgnore)
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (entry.isDirectory()) {
|
|
81
|
+
directories.push(entry.name + '/');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
files.push(entry.name);
|
|
85
|
+
}
|
|
82
86
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
+
// Sort and format
|
|
88
|
+
directories.sort().forEach(d => result += `[DIR] ${d}\n`);
|
|
89
|
+
files.sort().forEach(f => result += `[FILE] ${f}\n`);
|
|
90
|
+
result += `\nTotal: ${directories.length} directories, ${files.length} files`;
|
|
91
|
+
return result;
|
|
87
92
|
}
|
|
88
93
|
catch (error) {
|
|
89
94
|
return (0, base_1.formatToolError)(error);
|
|
@@ -91,4 +96,4 @@ class ListDirectoryTool extends base_1.BaseTool {
|
|
|
91
96
|
}
|
|
92
97
|
}
|
|
93
98
|
exports.ListDirectoryTool = ListDirectoryTool;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kaXJlY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvbGlzdC1kaXJlY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQXVFO0FBQ3ZFLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFPN0IsTUFBYSxpQkFBa0IsU0FBUSxlQUE2QjtJQUNsRSxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7SUFDeEIsV0FBVyxHQUFHLHdKQUF3SixDQUFDO0lBQ3ZLLFVBQVUsR0FBRztRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSw2RUFBNkU7YUFDM0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLE9BQU87Z0JBQ2IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDekIsV0FBVyxFQUFFLGlDQUFpQzthQUMvQztTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2xCLG9CQUFvQixFQUFFLEtBQUs7S0FDNUIsQ0FBQztJQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBMkIsRUFBRSxPQUE0QjtRQUNyRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV4QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RixJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFFeEUsSUFBSSxNQUFNLEdBQUcsY0FBYyxZQUFZLE1BQU0sQ0FBQztZQUU5QyxNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO1lBRTNCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzVCLG9DQUFvQztnQkFDcEMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM5QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDaEQsdUJBQXVCO3dCQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7d0JBQ25FLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksWUFBWTt3QkFBRSxTQUFTO2dCQUM3QixDQUFDO2dCQUVELElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7b0JBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDckMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUVELGtCQUFrQjtZQUNsQixXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVyRCxNQUFNLElBQUksWUFBWSxXQUFXLENBQUMsTUFBTSxpQkFBaUIsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO1lBRTlFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFBLHNCQUFlLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhFRCw4Q0FnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9vbCwgVG9vbEV4ZWN1dGVPcHRpb25zLCBmb3JtYXRUb29sRXJyb3IgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW50ZXJmYWNlIExpc3REaXJlY3RvcnlQYXJhbXMge1xuICBwYXRoOiBzdHJpbmc7XG4gIGlnbm9yZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgTGlzdERpcmVjdG9yeVRvb2wgZXh0ZW5kcyBCYXNlVG9vbDxMaXN0RGlyZWN0b3J5UGFyYW1zPiB7XG4gIG5hbWUgPSAnbGlzdF9kaXJlY3RvcnknO1xuICBkZXNjcmlwdGlvbiA9ICdMaXN0cyB0aGUgbmFtZXMgb2YgZmlsZXMgYW5kIHN1YmRpcmVjdG9yaWVzIGRpcmVjdGx5IHdpdGhpbiBhIHNwZWNpZmllZCBkaXJlY3RvcnkgcGF0aC4gQ2FuIG9wdGlvbmFsbHkgaWdub3JlIGVudHJpZXMgbWF0Y2hpbmcgcHJvdmlkZWQgZ2xvYiBwYXR0ZXJucy4nO1xuICBwYXJhbWV0ZXJzID0ge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byBsaXN0IChtdXN0IGJlIGFic29sdXRlLCBub3QgcmVsYXRpdmUpJ1xuICAgICAgfSxcbiAgICAgIGlnbm9yZToge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBpdGVtczogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0xpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0byBpZ25vcmUnXG4gICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogWydwYXRoJ10sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlXG4gIH07XG5cbiAgYXN5bmMgZXhlY3V0ZShwYXJhbXM6IExpc3REaXJlY3RvcnlQYXJhbXMsIG9wdGlvbnM/OiBUb29sRXhlY3V0ZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRoaXMudmFsaWRhdGVSZXF1aXJlZChwYXJhbXMsIFsncGF0aCddKTtcblxuICAgIGNvbnN0IGRpclBhdGggPSBwYXJhbXMucGF0aDtcbiAgICBjb25zdCB3b3JraW5nRGlyID0gb3B0aW9ucz8ud29ya2luZ0RpcmVjdG9yeSB8fCBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHBhdGguaXNBYnNvbHV0ZShkaXJQYXRoKSA/IGRpclBhdGggOiBwYXRoLmpvaW4od29ya2luZ0RpciwgZGlyUGF0aCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW50cmllcyA9IGF3YWl0IGZzLnJlYWRkaXIocmVzb2x2ZWRQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gICAgICBcbiAgICAgIGxldCByZXN1bHQgPSBgRGlyZWN0b3J5OiAke3Jlc29sdmVkUGF0aH1cXG5cXG5gO1xuICAgICAgXG4gICAgICBjb25zdCBkaXJlY3Rvcmllczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGNvbnN0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgLy8gQXBwbHkgaWdub3JlIHBhdHRlcm5zIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmIChwYXJhbXMuaWdub3JlICYmIHBhcmFtcy5pZ25vcmUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHNob3VsZElnbm9yZSA9IHBhcmFtcy5pZ25vcmUuc29tZShwYXR0ZXJuID0+IHtcbiAgICAgICAgICAgIC8vIFNpbXBsZSBnbG9iIG1hdGNoaW5nXG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ14nICsgcGF0dGVybi5yZXBsYWNlKC9cXCovZywgJy4qJykgKyAnJCcpO1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZW50cnkubmFtZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHNob3VsZElnbm9yZSkgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgZGlyZWN0b3JpZXMucHVzaChlbnRyeS5uYW1lICsgJy8nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWxlcy5wdXNoKGVudHJ5Lm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFNvcnQgYW5kIGZvcm1hdFxuICAgICAgZGlyZWN0b3JpZXMuc29ydCgpLmZvckVhY2goZCA9PiByZXN1bHQgKz0gYFtESVJdICAke2R9XFxuYCk7XG4gICAgICBmaWxlcy5zb3J0KCkuZm9yRWFjaChmID0+IHJlc3VsdCArPSBgW0ZJTEVdICR7Zn1cXG5gKTtcbiAgICAgIFxuICAgICAgcmVzdWx0ICs9IGBcXG5Ub3RhbDogJHtkaXJlY3Rvcmllcy5sZW5ndGh9IGRpcmVjdG9yaWVzLCAke2ZpbGVzLmxlbmd0aH0gZmlsZXNgO1xuICAgICAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZm9ybWF0VG9vbEVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cbn0iXX0=
|
package/dist/tools/read-file.js
CHANGED
|
@@ -39,24 +39,25 @@ const fs = __importStar(require("fs/promises"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
class ReadFileTool extends base_1.BaseTool {
|
|
41
41
|
name = 'read_file';
|
|
42
|
-
description = 'Reads and returns the content of a specified file from the local filesystem. Handles text files, images, PDF files, and
|
|
42
|
+
description = 'Reads and returns the content of a specified file from the local filesystem. Handles text files, images (PNG, JPG, GIF, WEBP, SVG, BMP), PDF files (extracts text content), DOCX files (extracts text content), and Excel files (converts to text table format). For text files, it can read specific line ranges. Note: Text content is limited to 30,000 characters; if exceeded, output will be truncated with continuation instructions.';
|
|
43
43
|
parameters = {
|
|
44
44
|
type: 'object',
|
|
45
45
|
properties: {
|
|
46
46
|
absolute_path: {
|
|
47
47
|
type: 'string',
|
|
48
|
-
description: 'The absolute path to the file to read'
|
|
48
|
+
description: 'The absolute path to the file to read (e.g., \'/home/user/project/file.txt\'). Relative paths are not supported. You must provide an absolute path.'
|
|
49
49
|
},
|
|
50
50
|
offset: {
|
|
51
51
|
type: 'number',
|
|
52
|
-
description: 'Optional: For text files, the 0-based line number to start reading from'
|
|
52
|
+
description: 'Optional: For text files, the 0-based line number to start reading from. Requires \'limit\' to be set. Use for paginating through large files.'
|
|
53
53
|
},
|
|
54
54
|
limit: {
|
|
55
55
|
type: 'number',
|
|
56
|
-
description: 'Optional: For text files, maximum number of lines to read'
|
|
56
|
+
description: 'Optional: For text files, maximum number of lines to read. Use with \'offset\' to paginate through large files. If omitted, reads the entire file (if feasible, up to a default limit).'
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
|
-
required: ['absolute_path']
|
|
59
|
+
required: ['absolute_path'],
|
|
60
|
+
additionalProperties: false
|
|
60
61
|
};
|
|
61
62
|
async execute(params, options) {
|
|
62
63
|
this.validateRequired(params, ['absolute_path']);
|
|
@@ -113,4 +114,4 @@ class ReadFileTool extends base_1.BaseTool {
|
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
exports.ReadFileTool = ReadFileTool;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL3JlYWQtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBcUY7QUFDckYsZ0RBQWtDO0FBQ2xDLDJDQUE2QjtBQVE3QixNQUFhLFlBQWEsU0FBUSxlQUF3QjtJQUN4RCxJQUFJLEdBQUcsV0FBVyxDQUFDO0lBQ25CLFdBQVcsR0FBRyw4YUFBOGEsQ0FBQztJQUM3YixVQUFVLEdBQUc7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUscUpBQXFKO2FBQ25LO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxnSkFBZ0o7YUFDOUo7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLHlMQUF5TDthQUN2TTtTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzNCLG9CQUFvQixFQUFFLEtBQUs7S0FDNUIsQ0FBQztJQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBc0IsRUFBRSxPQUE0QjtRQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUVqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFB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RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9vbCwgVG9vbEV4ZWN1dGVPcHRpb25zLCBmb3JtYXRUb29sRXJyb3IsIEJBU0VfU0NIRU1BUyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbnRlcmZhY2UgUmVhZEZpbGVQYXJhbXMge1xuICBhYnNvbHV0ZV9wYXRoOiBzdHJpbmc7XG4gIG9mZnNldD86IG51bWJlcjtcbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFkRmlsZVRvb2wgZXh0ZW5kcyBCYXNlVG9vbDxSZWFkRmlsZVBhcmFtcz4ge1xuICBuYW1lID0gJ3JlYWRfZmlsZSc7XG4gIGRlc2NyaXB0aW9uID0gJ1JlYWRzIGFuZCByZXR1cm5zIHRoZSBjb250ZW50IG9mIGEgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgbG9jYWwgZmlsZXN5c3RlbS4gSGFuZGxlcyB0ZXh0IGZpbGVzLCBpbWFnZXMgKFBORywgSlBHLCBHSUYsIFdFQlAsIFNWRywgQk1QKSwgUERGIGZpbGVzIChleHRyYWN0cyB0ZXh0IGNvbnRlbnQpLCBET0NYIGZpbGVzIChleHRyYWN0cyB0ZXh0IGNvbnRlbnQpLCBhbmQgRXhjZWwgZmlsZXMgKGNvbnZlcnRzIHRvIHRleHQgdGFibGUgZm9ybWF0KS4gRm9yIHRleHQgZmlsZXMsIGl0IGNhbiByZWFkIHNwZWNpZmljIGxpbmUgcmFuZ2VzLiBOb3RlOiBUZXh0IGNvbnRlbnQgaXMgbGltaXRlZCB0byAzMCwwMDAgY2hhcmFjdGVyczsgaWYgZXhjZWVkZWQsIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB3aXRoIGNvbnRpbnVhdGlvbiBpbnN0cnVjdGlvbnMuJztcbiAgcGFyYW1ldGVycyA9IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBhYnNvbHV0ZV9wYXRoOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBmaWxlIHRvIHJlYWQgKGUuZy4sIFxcJy9ob21lL3VzZXIvcHJvamVjdC9maWxlLnR4dFxcJykuIFJlbGF0aXZlIHBhdGhzIGFyZSBub3Qgc3VwcG9ydGVkLiBZb3UgbXVzdCBwcm92aWRlIGFuIGFic29sdXRlIHBhdGguJ1xuICAgICAgfSxcbiAgICAgIG9mZnNldDoge1xuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpb25hbDogRm9yIHRleHQgZmlsZXMsIHRoZSAwLWJhc2VkIGxpbmUgbnVtYmVyIHRvIHN0YXJ0IHJlYWRpbmcgZnJvbS4gUmVxdWlyZXMgXFwnbGltaXRcXCcgdG8gYmUgc2V0LiBVc2UgZm9yIHBhZ2luYXRpbmcgdGhyb3VnaCBsYXJnZSBmaWxlcy4nXG4gICAgICB9LFxuICAgICAgbGltaXQ6IHtcbiAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWw6IEZvciB0ZXh0IGZpbGVzLCBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byByZWFkLiBVc2Ugd2l0aCBcXCdvZmZzZXRcXCcgdG8gcGFnaW5hdGUgdGhyb3VnaCBsYXJnZSBmaWxlcy4gSWYgb21pdHRlZCwgcmVhZHMgdGhlIGVudGlyZSBmaWxlIChpZiBmZWFzaWJsZSwgdXAgdG8gYSBkZWZhdWx0IGxpbWl0KS4nXG4gICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogWydhYnNvbHV0ZV9wYXRoJ10sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlXG4gIH07XG5cbiAgYXN5bmMgZXhlY3V0ZShwYXJhbXM6IFJlYWRGaWxlUGFyYW1zLCBvcHRpb25zPzogVG9vbEV4ZWN1dGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWlyZWQocGFyYW1zLCBbJ2Fic29sdXRlX3BhdGgnXSk7XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhcmFtcy5hYnNvbHV0ZV9wYXRoO1xuICAgIGNvbnN0IHdvcmtpbmdEaXIgPSBvcHRpb25zPy53b3JraW5nRGlyZWN0b3J5IHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcGF0aC5pc0Fic29sdXRlKGZpbGVQYXRoKSA/IGZpbGVQYXRoIDogcGF0aC5qb2luKHdvcmtpbmdEaXIsIGZpbGVQYXRoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IGZzLnN0YXQocmVzb2x2ZWRQYXRoKTtcbiAgICAgIFxuICAgICAgaWYgKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgcmV0dXJuIGBFcnJvcjogJHtyZXNvbHZlZFBhdGh9IGlzIGEgZGlyZWN0b3J5LCBub3QgYSBmaWxlLiBVc2UgbGlzdF9kaXJlY3RvcnkgaW5zdGVhZC5gO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBmaWxlIHR5cGVcbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShyZXNvbHZlZFBhdGgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBpbWFnZUV4dHMgPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcuZ2lmJywgJy53ZWJwJywgJy5zdmcnLCAnLmJtcCddO1xuICAgICAgXG4gICAgICBpZiAoaW1hZ2VFeHRzLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgICAgLy8gRm9yIGltYWdlcywgcmV0dXJuIGJhc2U2NCBpbmZvXG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGZzLnJlYWRGaWxlKHJlc29sdmVkUGF0aCk7XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICAgIGNvbnN0IG1pbWVUeXBlID0gdGhpcy5nZXRNaW1lVHlwZShleHQpO1xuICAgICAgICByZXR1cm4gYEltYWdlIGZpbGU6ICR7cmVzb2x2ZWRQYXRofVxcbkJhc2U2NCBkYXRhOiBkYXRhOiR7bWltZVR5cGV9O2Jhc2U2NCwke2Jhc2U2NC5zdWJzdHJpbmcoMCwgMTAwKX0uLi5cXG5bQmFzZTY0IGRhdGEgdG9vIGxvbmcgdG8gZGlzcGxheSwgdXNlIGltYWdlX3JlYWQgdG9vbCBmb3IgZnVsbCBjb250ZW50XWA7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlYWQgYXMgdGV4dFxuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHJlc29sdmVkUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuXG4gICAgICBpZiAocGFyYW1zLm9mZnNldCAhPT0gdW5kZWZpbmVkIHx8IHBhcmFtcy5saW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHBhcmFtcy5vZmZzZXQgfHwgMDtcbiAgICAgICAgY29uc3QgbGltaXQgPSBwYXJhbXMubGltaXQgfHwgbGluZXMubGVuZ3RoIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBzZWxlY3RlZExpbmVzID0gbGluZXMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBsaW1pdCk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZExpbmVzLmpvaW4oJ1xcbicpO1xuICAgICAgfVxuXG4gICAgICAvLyBMaW1pdCBvdXRwdXQgZm9yIHZlcnkgbGFyZ2UgZmlsZXNcbiAgICAgIGlmIChjb250ZW50Lmxlbmd0aCA+IDEwMDAwMCkge1xuICAgICAgICBjb25zdCB0cnVuY2F0ZWRMaW5lcyA9IGxpbmVzLnNsaWNlKDAsIDUwMCk7XG4gICAgICAgIHJldHVybiB0cnVuY2F0ZWRMaW5lcy5qb2luKCdcXG4nKSArIFxuICAgICAgICAgIGBcXG5cXG4uLi4gW0ZpbGUgdHJ1bmNhdGVkLCBzaG93aW5nIGZpcnN0IDUwMCBsaW5lcyBvZiAke2xpbmVzLmxlbmd0aH0gdG90YWwgbGluZXNdYDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmb3JtYXRUb29sRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWltZVR5cGUoZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pbWVUeXBlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICcucG5nJzogJ2ltYWdlL3BuZycsXG4gICAgICAnLmpwZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAgICcuanBlZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAgICcuZ2lmJzogJ2ltYWdlL2dpZicsXG4gICAgICAnLndlYnAnOiAnaW1hZ2Uvd2VicCcsXG4gICAgICAnLnN2Zyc6ICdpbWFnZS9zdmcreG1sJyxcbiAgICAgICcuYm1wJzogJ2ltYWdlL2JtcCdcbiAgICB9O1xuICAgIHJldHVybiBtaW1lVHlwZXNbZXh0XSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgfVxufSJdfQ==
|
package/dist/tools/replace.d.ts
CHANGED