specops 0.3.0 → 0.3.3
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/.opencode/agent/specops-codebase-mapper.md +1 -2
- package/.opencode/agent/specops-debugger.md +1 -2
- package/.opencode/agent/specops-executor.md +9 -3
- package/.opencode/agent/specops-integration-checker.md +1 -2
- package/.opencode/agent/specops-phase-researcher.md +1 -2
- package/.opencode/agent/specops-plan-checker.md +1 -2
- package/.opencode/agent/specops-planner.md +9 -3
- package/.opencode/agent/specops-project-researcher.md +1 -2
- package/.opencode/agent/specops-research-synthesizer.md +6 -3
- package/.opencode/agent/specops-roadmapper.md +1 -2
- package/.opencode/agent/specops-work-verifier.md +1 -2
- package/dist/__integration__/fixtures/generator.d.ts +4 -0
- package/dist/__integration__/fixtures/generator.js +1 -0
- package/dist/__integration__/mocks/server.d.ts +7 -0
- package/dist/__integration__/mocks/server.js +1 -0
- package/dist/__integration__/setup.d.ts +6 -0
- package/dist/__integration__/setup.js +1 -0
- package/dist/acceptance/lazyDetector.js +1 -1
- package/dist/acceptance/reporter.js +1 -1
- package/dist/acceptance/runner.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/promptTemplate.js +1 -1
- package/dist/context/techContextLoader.js +1 -1
- package/dist/engine.d.ts +1 -0
- package/dist/engine.js +1 -1
- package/dist/evolution/distiller.js +1 -1
- package/dist/evolution/index.js +1 -1
- package/dist/evolution/memoryGraph.js +1 -1
- package/dist/evolution/selector.js +1 -1
- package/dist/evolution/signals.js +1 -1
- package/dist/evolution/solidify.js +1 -1
- package/dist/evolution/store.js +1 -1
- package/dist/evolution/types.js +1 -1
- package/dist/init.js +1 -1
- package/dist/machines/agentMachine.js +1 -1
- package/dist/machines/supervisorMachine.js +1 -1
- package/dist/persistence/schema.js +1 -1
- package/dist/persistence/stateFile.js +1 -1
- package/dist/plugin-engine.js +1 -1
- package/dist/plugin.js +1 -1
- package/dist/requirement-analysis/analyzers/repository-parser.d.ts +121 -0
- package/dist/requirement-analysis/analyzers/repository-parser.js +1 -0
- package/dist/requirement-analysis/generators/prd-generator.d.ts +90 -0
- package/dist/requirement-analysis/generators/prd-generator.js +1 -0
- package/dist/requirement-analysis/integrations/v1-integration.d.ts +73 -0
- package/dist/requirement-analysis/integrations/v1-integration.js +1 -0
- package/dist/requirement-analysis/tools/analyze-requirements.js +1 -0
- package/dist/requirement-analysis/types/analysis-result.d.ts +326 -0
- package/dist/requirement-analysis/types/analysis-result.js +1 -0
- package/dist/requirement-analysis/types/feature-mapping.d.ts +294 -0
- package/dist/requirement-analysis/types/feature-mapping.js +1 -0
- package/dist/requirement-analysis/types/index.d.ts +171 -0
- package/dist/requirement-analysis/types/index.js +1 -0
- package/dist/requirement-analysis/types/tech-stack.d.ts +213 -0
- package/dist/requirement-analysis/types/tech-stack.js +1 -0
- package/dist/requirement-analysis/utils/error-handler.d.ts +112 -0
- package/dist/requirement-analysis/utils/error-handler.js +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.js +1 -1
- package/dist/utils/id.js +1 -1
- package/package.json +3 -2
- package/skills/competitor-search/SKILL.md +169 -0
- package/skills/demand-analysis/SKILL.md +307 -0
- package/skills/feature-search/SKILL.md +182 -0
- package/skills/requirement-analysis/README.md +464 -0
- package/skills/requirement-analysis/SKILL.md +224 -0
- package/skills/requirement-analysis/templates/feature-mapping-template.json +210 -0
- package/skills/requirement-analysis/templates/prd-template.md +104 -0
- package/skills/tech-selection/SKILL.md +198 -0
- package/dist/__e2e__/01-state-engine.e2e.test.d.ts +0 -10
- package/dist/__e2e__/01-state-engine.e2e.test.js +0 -1
- package/dist/acceptance/lazyDetector.test.d.ts +0 -1
- package/dist/acceptance/lazyDetector.test.js +0 -1
- package/dist/acceptance/reporter.test.d.ts +0 -1
- package/dist/acceptance/reporter.test.js +0 -1
- package/dist/acceptance/runner.test.d.ts +0 -1
- package/dist/acceptance/runner.test.js +0 -1
- package/dist/context/promptTemplate.test.d.ts +0 -1
- package/dist/context/promptTemplate.test.js +0 -1
- package/dist/context/techContextLoader.test.d.ts +0 -1
- package/dist/context/techContextLoader.test.js +0 -1
- package/dist/machines/agentMachine.test.d.ts +0 -1
- package/dist/machines/agentMachine.test.js +0 -1
- package/dist/machines/supervisorMachine.test.d.ts +0 -1
- package/dist/machines/supervisorMachine.test.js +0 -1
- package/dist/persistence/stateFile.test.d.ts +0 -1
- package/dist/persistence/stateFile.test.js +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 需求分析错误处理工具
|
|
3
|
+
* 提供统一的错误处理、恢复机制和用户友好的错误信息
|
|
4
|
+
*/
|
|
5
|
+
export declare enum ErrorType {
|
|
6
|
+
INPUT_VALIDATION = "INPUT_VALIDATION",
|
|
7
|
+
FILE_ACCESS = "FILE_ACCESS",
|
|
8
|
+
NETWORK = "NETWORK",
|
|
9
|
+
PARSING = "PARSING",
|
|
10
|
+
ANALYSIS = "ANALYSIS",
|
|
11
|
+
GENERATION = "GENERATION",
|
|
12
|
+
STATE_MANAGEMENT = "STATE_MANAGEMENT",
|
|
13
|
+
INTEGRATION = "INTEGRATION",
|
|
14
|
+
UNKNOWN = "UNKNOWN"
|
|
15
|
+
}
|
|
16
|
+
export declare enum ErrorSeverity {
|
|
17
|
+
LOW = "low",
|
|
18
|
+
MEDIUM = "medium",
|
|
19
|
+
HIGH = "high",
|
|
20
|
+
CRITICAL = "critical"
|
|
21
|
+
}
|
|
22
|
+
export interface AnalysisError extends Error {
|
|
23
|
+
type: ErrorType;
|
|
24
|
+
severity: ErrorSeverity;
|
|
25
|
+
context?: Record<string, any>;
|
|
26
|
+
recoverable: boolean;
|
|
27
|
+
suggestions: string[];
|
|
28
|
+
timestamp: Date;
|
|
29
|
+
}
|
|
30
|
+
export interface RecoveryStrategy {
|
|
31
|
+
canRecover: (error: AnalysisError) => boolean;
|
|
32
|
+
recover: (error: AnalysisError, context?: any) => Promise<any>;
|
|
33
|
+
description: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 创建分析错误
|
|
37
|
+
*/
|
|
38
|
+
export declare function createAnalysisError(message: string, type: ErrorType, severity?: ErrorSeverity, options?: {
|
|
39
|
+
cause?: Error;
|
|
40
|
+
context?: Record<string, any>;
|
|
41
|
+
recoverable?: boolean;
|
|
42
|
+
suggestions?: string[];
|
|
43
|
+
}): AnalysisError;
|
|
44
|
+
/**
|
|
45
|
+
* 错误处理器类
|
|
46
|
+
*/
|
|
47
|
+
export declare class ErrorHandler {
|
|
48
|
+
private recoveryStrategies;
|
|
49
|
+
private errorLog;
|
|
50
|
+
private maxRetries;
|
|
51
|
+
private retryDelay;
|
|
52
|
+
constructor();
|
|
53
|
+
/**
|
|
54
|
+
* 设置默认恢复策略
|
|
55
|
+
*/
|
|
56
|
+
private setupDefaultRecoveryStrategies;
|
|
57
|
+
/**
|
|
58
|
+
* 添加恢复策略
|
|
59
|
+
*/
|
|
60
|
+
addRecoveryStrategy(strategy: RecoveryStrategy): void;
|
|
61
|
+
/**
|
|
62
|
+
* 处理错误
|
|
63
|
+
*/
|
|
64
|
+
handleError(error: Error | AnalysisError, context?: any): Promise<{
|
|
65
|
+
handled: boolean;
|
|
66
|
+
recovered: boolean;
|
|
67
|
+
result?: any;
|
|
68
|
+
message: string;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* 标准化错误
|
|
72
|
+
*/
|
|
73
|
+
private normalizeError;
|
|
74
|
+
/**
|
|
75
|
+
* 尝试恢复
|
|
76
|
+
*/
|
|
77
|
+
private attemptRecovery;
|
|
78
|
+
/**
|
|
79
|
+
* 记录错误
|
|
80
|
+
*/
|
|
81
|
+
private logError;
|
|
82
|
+
/**
|
|
83
|
+
* 格式化错误消息
|
|
84
|
+
*/
|
|
85
|
+
private formatErrorMessage;
|
|
86
|
+
/**
|
|
87
|
+
* 延迟函数
|
|
88
|
+
*/
|
|
89
|
+
private delay;
|
|
90
|
+
/**
|
|
91
|
+
* 获取错误统计
|
|
92
|
+
*/
|
|
93
|
+
getErrorStats(): {
|
|
94
|
+
total: number;
|
|
95
|
+
byType: Record<ErrorType, number>;
|
|
96
|
+
bySeverity: Record<ErrorSeverity, number>;
|
|
97
|
+
recent: AnalysisError[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* 导出错误日志
|
|
101
|
+
*/
|
|
102
|
+
exportErrorLog(filePath: string): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* 清除错误日志
|
|
105
|
+
*/
|
|
106
|
+
clearErrorLog(): void;
|
|
107
|
+
}
|
|
108
|
+
export declare const globalErrorHandler: ErrorHandler;
|
|
109
|
+
/**
|
|
110
|
+
* 包装异步函数以提供错误处理
|
|
111
|
+
*/
|
|
112
|
+
export declare function withErrorHandling<T extends any[], R>(fn: (...args: T) => Promise<R>, errorType?: ErrorType): (...args: T) => Promise<R>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x551729,_0xd8639b){const _0x3ade10={_0x2ba0c6:0x4ff,_0x3540b1:0x4f9,_0xaec9d:0x4fd,_0x40f66b:0x595,_0x450998:0x4f5,_0x14a7b2:0x4c3,_0x4c907d:0x57a,_0x3cea78:0x547,_0xd083f7:0x503,_0x54953c:0x5a3,_0x16c276:0x55b,_0x2d14ec:0x57a},_0x1127c7={_0xf5a47e:0x361};function _0x16643e(_0x1bae60,_0x5a444d){return _0x1cff(_0x1bae60-_0x1127c7._0xf5a47e,_0x5a444d);}const _0x2cb126=_0x551729();function _0xff5320(_0x4f919f,_0x29ef0d){return _0x1cff(_0x29ef0d-0x2fd,_0x4f919f);}while(!![]){try{const _0x5e5772=parseInt(_0xff5320(_0x3ade10._0x2ba0c6,_0x3ade10._0x3540b1))/(0x2*-0xf92+-0x1818*-0x1+-0x5*-0x169)+-parseInt(_0xff5320(_0x3ade10._0xaec9d,0x4f2))/(-0x30c+0x3*0x28a+-0x490)+parseInt(_0x16643e(0x57b,_0x3ade10._0x40f66b))/(-0x1de0+0x16*0x15b+-0x1*-0x11)+parseInt(_0xff5320(_0x3ade10._0x450998,_0x3ade10._0x14a7b2))/(0x1*-0x12b7+-0x1f*0x4f+0x1c4c)*(parseInt(_0x16643e(0x579,_0x3ade10._0x4c907d))/(-0x2*0xe0b+0x6e3*0x2+0x1*0xe55))+-parseInt(_0xff5320(0x51d,0x4f3))/(0x1b83+0x153c+-0x30b9)*(parseInt(_0xff5320(_0x3ade10._0x3cea78,_0x3ade10._0xd083f7))/(-0x7d*0x50+0xf1a*0x1+0x17fd))+-parseInt(_0x16643e(0x572,_0x3ade10._0x54953c))/(-0x101*0xe+-0x1e*0x47+0x1668)+parseInt(_0x16643e(_0x3ade10._0x16c276,_0x3ade10._0x2d14ec))/(-0x14b6+-0x1b*-0x163+0x2*-0x859);if(_0x5e5772===_0xd8639b)break;else _0x2cb126['push'](_0x2cb126['shift']());}catch(_0x5b51f5){_0x2cb126['push'](_0x2cb126['shift']());}}}(_0x32e4,-0x1*0x16de7+0x1*0x24deb+-0x5*-0x2987));function _0x32e4(){const _0x369829=['tuTfqxm','BMv0D29YAW','u1rbvevFtufoqq','DKv6y0W','C3rYyxrLz3K','B3zLCNK','zgvSyxK','BhHhAgS','zMLSzsbUB3qGzG','tKvuv09ssW','qvjisfu','tNfhBKy','qu5btfLtsvm','uuPvuwO','tg9N','ywrKuMvJB3zLCG','AwP3zg0','A3DRv24','uNPOqNq','zM9YrwfJAa','BhbzuwW','Cgf0Aa','zgvZy3jPChrPBW','rxnqEuy','B3vUza','ugrZuvO','5PEG5Rov5OgI5Asn5PAh5lU26k6/6zEU6zsz6k+V','Bwf4uMv0CMLLCW','BhrszwnVDMvYEq','CK1LC3nHz2u','CuPYDvO','CMvJB3zLCMfIBa','su5uruDsqvrjtW','A0vtsfe','DgHrtgK','56gU5l+D5PAh5lU25A2y5zYO5lIu5PYj6k+75y+w','D21hrM4','CMvZDwX0','C3rHy2S','BgvUz3rO','te9x','56In5zco6yEn6k+v','DgLTzxn0yw1W','C2v0DxbezwzHDq','CgfYC2u','CMvJB3zLCMvK','AgLNAa','CKXVzW','C2v2zxjPDhK','yxr0zw1WDfjLyW','mJHHq1Plt3e','CMvJB3zLCG','zxjYB3jmB2C','ru5pru5u','BM9YBwfSAxPLrq','Dg9ju09tDhjPBG','tvbuvgO','uefsu0LorW','6kEJ5P6q6zsz6k+V5A695P2+5QIH5BYp5OgI5Asn','q1jjveLdquW','BwvZC2fNzq','refusu9o','Bg93','CMvJDxjZAxzL','AfDSrxa','D2fYBG','5PEG5Rov5yIB5BU655UU5B2v','5l2/55sO5A695P2+5QIH5BYp6yEn5PAW6kEJ5P6q','r0vorvjbveLptG','y29UDgv4Da','4PQG77IpioAxOoAZLEIhQUwkQoAbOUwKJq','icaGlsa','sgDIyMW','y2fUuMvJB3zLCG','C3rYAw5NAwz5','ChvZAa','zMLSzvbHDgG','r0vnru5u','572r57UC6zsz6k+V6yEn6k+v562w55wL','z0r0tLC','5Qoa5P+L5PAh5lU26lEV5B6e5PIV5zcM5Q2J56gU','DhPltgy','tuvRyvm','zujQALK','seLhsa','DxDeBey','zM9YBwf0rxjYBW','y3jPDgLJywW','EfjRDxy','5PAh5lU26k6/6zEU6zsz6k+V5OgI5Asn562w55wL','y2XLyxjfCNjVCG','8j+sOsdLU7RORQ46','runptK5sruzvuW','C3vNz2vZDgLVBG','vu5ltK9xtG','uxjVv0e','CMv0CNLezwXHEq','mJq0mZCYt3DLuMvb','nZyWnJe0sNbMB0PL','4PYfiow3SUAbOUwKJtOG','5BEY5yIB5BU657Y65AsX55Qe55UU5B2v','CMvJB3zLCNLtDa','otaYnZe4s1rSq2H5','Dg9vChbLCKnHCW','mtq4ntmZu0LXEvLW','rMfUC2i','DvHHuxu','zMLZzui','zMfSBgjHy2TnBW','v1PUr1y','Bg9NrxjYB3i','u3rYyxrLz2LLCW','Ahn3rfm','AgfUzgXLrxjYBW','n1nVtMP4Bq','su5qvvrFvKfmsq','Aw5JBhvKzxm','C2XPy2u','DhLWzq','572r57UC6k+35Rgc6yEn6k+v5QYH5PwW5BEY6l6+','tejVEuO','CMf0zwDPzxm','rKLmrv9bq0nfuW','yxrZ','y2f1C2u','ota2mdmYBg9mzNz0','AM9PBG','BwvKAxvT','q1jWte8','vuXSCwC','CMv0CNLdB3vUDa','Evn0CMf0zwD5','mte5mZy1DwfQwMDh','tuvesvvn','mtCWmJK4rKzQtgLe','D2rzDNG','z2v0rxjYB3jtDa','CgvIrfi','y2T2rKq','5Qoa5P+L5PAh5lU25Qc85BYp5PIV5zcM5Q2J56gU','wu9QwKC'];_0x32e4=function(){return _0x369829;};return _0x32e4();}import{writeFile}from'fs/promises';export var ErrorType;(function(_0x48d302){const _0x26551c={_0xf76aa6:0x15a,_0x208246:0x191,_0x17ad80:0x2b0,_0x1a00cb:0x164,_0x16f1d5:0x242,_0x1528de:0x2d7,_0x2f44af:0x2ac,_0x44eefc:0x194,_0x4dd022:0x1d2,_0x5a3eec:0x2c0,_0x4e974a:0x258,_0x12ba80:0x285,_0x544f79:0x27f,_0x2e582b:0x287,_0x3d4c17:0x2ac,_0x24e637:0x189,_0x2c6a37:0x29d,_0x52dc8d:0x2e3,_0x55d8ec:0x2b7,_0x5701cc:0x152,_0x3942d5:0x125,_0x5912b2:0xeb,_0x151ccb:0x142,_0x3896f8:0x163},_0x89674b={_0x9d3930:0x8f},_0x55a504={_0xa68232:0xdf},_0x4ae275={};_0x4ae275[_0x3897b5(_0x26551c._0xf76aa6,_0x26551c._0x208246)]=_0x37c0f4(0x2b0,0x2e6)+_0x37c0f4(0x29a,_0x26551c._0x17ad80),_0x4ae275[_0x37c0f4(0x28a,0x287)]=_0x3897b5(0x17f,_0x26551c._0x1a00cb)+'S',_0x4ae275[_0x37c0f4(_0x26551c._0x16f1d5,0x284)]='NETWORK',_0x4ae275[_0x37c0f4(_0x26551c._0x1528de,0x2f4)]=_0x37c0f4(0x278,_0x26551c._0x2f44af),_0x4ae275[_0x37c0f4(0x293,0x2cb)]='ANALYSIS';function _0x37c0f4(_0x445b98,_0x3bfc7e){return _0x1cff(_0x3bfc7e-_0x55a504._0xa68232,_0x445b98);}_0x4ae275[_0x3897b5(0x175,0x1b2)]='GENERATION',_0x4ae275['tzKLf']=_0x3897b5(_0x26551c._0x44eefc,_0x26551c._0x4dd022)+_0x37c0f4(0x2ac,_0x26551c._0x5a3eec),_0x4ae275[_0x37c0f4(_0x26551c._0x4e974a,_0x26551c._0x12ba80)]=_0x37c0f4(_0x26551c._0x544f79,0x293)+'N';const _0x173646=_0x4ae275;function _0x3897b5(_0x2f7ca3,_0x172362){return _0x1cff(_0x2f7ca3- -_0x89674b._0x9d3930,_0x172362);}_0x48d302[_0x173646[_0x37c0f4(0x299,0x2c8)]]=_0x173646['uwDlF'],_0x48d302[_0x173646[_0x37c0f4(0x269,_0x26551c._0x2e582b)]]=_0x3897b5(0x17f,0x182)+'S',_0x48d302[_0x3897b5(0x10e,0x148)]=_0x173646[_0x3897b5(0x116,0xdd)],_0x48d302[_0x37c0f4(0x2b1,_0x26551c._0x3d4c17)]=_0x173646[_0x3897b5(0x186,0x13f)],_0x48d302[_0x173646[_0x3897b5(0x15d,_0x26551c._0x24e637)]]=_0x37c0f4(0x28e,0x27f),_0x48d302[_0x173646[_0x37c0f4(_0x26551c._0x2c6a37,_0x26551c._0x52dc8d)]]=_0x37c0f4(_0x26551c._0x12ba80,_0x26551c._0x55d8ec),_0x48d302[_0x3897b5(0x194,0x1a1)+_0x3897b5(_0x26551c._0x5701cc,0x13e)]=_0x173646[_0x37c0f4(0x301,0x2c4)],_0x48d302[_0x173646[_0x37c0f4(0x2a6,0x285)]]=_0x3897b5(_0x26551c._0x3942d5,_0x26551c._0x5912b2)+'N',_0x48d302[_0x3897b5(0x163,_0x26551c._0x151ccb)]=_0x3897b5(_0x26551c._0x3896f8,0x188);}(ErrorType||(ErrorType={})));function _0x1cff(_0xa0782a,_0x4d82e5){_0xa0782a=_0xa0782a-(-0x2e*0xa5+-0x1d08+0x5*0xc0f);const _0x84849=_0x32e4();let _0x9c857b=_0x84849[_0xa0782a];if(_0x1cff['bhZBhF']===undefined){var _0x50ba17=function(_0x2f1dbb){const _0x4977db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51735e='',_0x16e178='';for(let _0x243f42=-0xe57*0x1+0x3*-0x1ce+0x13c1,_0x4fde0f,_0x5d2384,_0x1a0fa0=0x7ea+-0x2*-0x66b+0x530*-0x4;_0x5d2384=_0x2f1dbb['charAt'](_0x1a0fa0++);~_0x5d2384&&(_0x4fde0f=_0x243f42%(-0x7a0+0x23de+-0x1c3a)?_0x4fde0f*(0xc7c*0x1+-0x485*-0x3+-0x47*0x5d)+_0x5d2384:_0x5d2384,_0x243f42++%(0x103d+-0x132c*-0x2+-0x3d*0xe5))?_0x51735e+=String['fromCharCode'](-0x6de+-0x192+0x96f&_0x4fde0f>>(-(-0x6*-0x1d7+0x154b+-0x2053)*_0x243f42&0x89*-0x2f+0x19b5*-0x1+-0x27*-0x14e)):-0x2207+-0x1*-0x197a+0x88d){_0x5d2384=_0x4977db['indexOf'](_0x5d2384);}for(let _0x5e6892=0x16e1+0x1d*0x6d+-0x233a*0x1,_0x25c4c8=_0x51735e['length'];_0x5e6892<_0x25c4c8;_0x5e6892++){_0x16e178+='%'+('00'+_0x51735e['charCodeAt'](_0x5e6892)['toString'](0x397*-0x3+0x6*0x4d8+-0x123b*0x1))['slice'](-(0x14f5+0x3f8*-0x6+0x2dd*0x1));}return decodeURIComponent(_0x16e178);};_0x1cff['kkCujA']=_0x50ba17,_0x1cff['nvSSQH']={},_0x1cff['bhZBhF']=!![];}const _0x17ea88=_0x84849[0x1d26+-0x2*0xe6b+-0x50],_0x1b30b4=_0xa0782a+_0x17ea88,_0x18b5a6=_0x1cff['nvSSQH'][_0x1b30b4];return!_0x18b5a6?(_0x9c857b=_0x1cff['kkCujA'](_0x9c857b),_0x1cff['nvSSQH'][_0x1b30b4]=_0x9c857b):_0x9c857b=_0x18b5a6,_0x9c857b;}export var ErrorSeverity;function _0x5bbcb4(_0x109202,_0x64a641){const _0x4ad954={_0x15051c:0x2f3};return _0x1cff(_0x109202-_0x4ad954._0x15051c,_0x64a641);}(function(_0x54dba8){const _0x38adde={_0x3642bc:0xc0,_0x3ac9d5:0xbf,_0x27eeff:0x1a2,_0x33f113:0x15b,_0x5556cb:0xd3,_0x4d0f9b:0x158},_0x534216={};_0x534216[_0x52f7e6(-0xdf,-_0x38adde._0x3642bc)]=_0x294adb(-0x1a2,-0x171);function _0x294adb(_0x1375c6,_0x50e069){return _0x1cff(_0x50e069- -0x343,_0x1375c6);}_0x534216['iXOHb']=_0x52f7e6(-0x7c,-_0x38adde._0x3ac9d5),_0x534216[_0x294adb(-0x16c,-_0x38adde._0x27eeff)]=_0x294adb(-0x11d,-_0x38adde._0x33f113);const _0x5cfda1=_0x534216;_0x54dba8['LOW']=_0x5cfda1['thQLi'];function _0x52f7e6(_0x322a44,_0x256785){return _0x1cff(_0x322a44- -0x295,_0x256785);}_0x54dba8[_0x5cfda1['iXOHb']]=_0x52f7e6(-0x82,-0x48),_0x54dba8[_0x5cfda1[_0x294adb(-0x1b8,-0x1a2)]]=_0x52f7e6(-_0x38adde._0x5556cb,-0xc8),_0x54dba8['CRITICAL']=_0x294adb(-0x14e,-_0x38adde._0x4d0f9b);}(ErrorSeverity||(ErrorSeverity={})));export function createAnalysisError(_0x344d19,_0x465741,_0x1dbba4=ErrorSeverity[_0x2abe46(0xc1,0x9f)],_0x4d7d4a={}){const _0x4de868={_0x455bc0:0x1fe,_0x31e154:0x203,_0x1889f5:0x29f,_0x1922a4:0x2ae,_0x41df51:0x1a9,_0x4a48b1:0x1ee,_0x99341a:0x206,_0xfc3cc4:0x244,_0x33831d:0x2cb,_0x1637a2:0x275};function _0x4c49c8(_0x2c18fe,_0x4e8e91){return _0x2abe46(_0x2c18fe-0x14e,_0x4e8e91);}const _0x32371c=new Error(_0x344d19);_0x32371c['type']=_0x465741,_0x32371c[_0x4c49c8(0x1ba,_0x4de868._0x455bc0)]=_0x1dbba4,_0x32371c[_0x4c49c8(0x1cf,_0x4de868._0x31e154)]=_0x4d7d4a[_0xba1573(0x294,_0x4de868._0x1889f5)]||{},_0x32371c[_0xba1573(0x26e,_0x4de868._0x1922a4)+'e']=_0x4d7d4a[_0x4c49c8(_0x4de868._0x41df51,0x1ec)+'e']??!![],_0x32371c[_0x4c49c8(0x1e7,_0x4de868._0x4a48b1)+'s']=_0x4d7d4a[_0xba1573(0x2ac,0x2f1)+'s']||[],_0x32371c[_0x4c49c8(0x1b4,0x178)]=new Date();function _0xba1573(_0x2c85fc,_0x3790ac){return _0x2abe46(_0x2c85fc-0x213,_0x3790ac);}return _0x4d7d4a[_0x4c49c8(_0x4de868._0x99341a,0x1d5)]&&(_0x32371c[_0x4c49c8(0x206,_0x4de868._0xfc3cc4)]=_0x4d7d4a['cause'],_0x32371c[_0xba1573(0x275,0x2a6)]=_0x32371c['stack']+('\x0aCaused\x20by'+':\x20')+_0x4d7d4a[_0xba1573(_0x4de868._0x33831d,0x2c8)][_0xba1573(_0x4de868._0x1637a2,0x24c)]),_0x32371c;}export class ErrorHandler{[_0x5bbcb4(0x4ec,0x502)+_0x2abe46(0xb5,0xc4)]=[];[_0x2abe46(0x70,0x6e)]=[];[_0x5bbcb4(0x4a2,0x47c)]=0x8*0xfd+-0x127d+-0x8*-0x153;[_0x2abe46(0x9c,0xd2)]=0x1d4a+0x5*-0x4ef+-0xb7*0x1;constructor(){const _0x558d4c={_0xdb9a61:0xfe,_0x3d2078:0xbf,_0x46b035:0xeb},_0x542ecf={_0x131a1c:0x246};function _0x3b087e(_0x42c39f,_0x47d9f5){return _0x2abe46(_0x47d9f5-0x93,_0x42c39f);}function _0x4ec656(_0x21e8fb,_0x6d1c7a){return _0x5bbcb4(_0x6d1c7a- -_0x542ecf._0x131a1c,_0x21e8fb);}this[_0x3b087e(_0x558d4c._0xdb9a61,0xfa)+_0x3b087e(_0x558d4c._0x3d2078,_0x558d4c._0x46b035)+'Strategies']();}[_0x5bbcb4(0x4b2,0x4be)+_0x2abe46(0x58,0x55)+_0x2abe46(0xab,0x76)](){const _0x48e267={_0x3095d4:0x118,_0x2a7bd7:0xe0,_0x23b3ff:0x3ed,_0x3afb47:0xd4,_0x422bbb:0x43b,_0x3b948c:0xec,_0xdf330a:0xbc,_0x501a36:0x3e2,_0x170b7a:0x106,_0x38d939:0x3aa,_0x195a31:0x406,_0x19f191:0x3a5,_0x4a56cd:0x3b1,_0x403d5e:0x3f0},_0x5821b0={_0x4bc2fe:0x18f,_0x365c3c:0x157,_0x2643f7:0x15f},_0x590d6d={_0x5dd9a6:0x234,_0x549e49:0x25d,_0x859c85:0x1bf,_0x251e87:0x1f2,_0x1f53ee:0x43,_0x631f99:0x216,_0x219bd4:0x24a,_0x481aaa:0x1e,_0x38f30c:0x15},_0x48d917={_0x4b07a6:0x11d},_0x598ebe={_0x1e4c16:0x2de,_0x53cf1b:0x31f,_0x2707a6:0x322,_0x22ad16:0x2cf,_0xc94e86:0x313,_0xeafba1:0x2ba,_0x21f49c:0x339,_0x225c81:0x2c7,_0x5d96a0:0x320,_0x2dd9bc:0x2fe,_0x38c093:0x2ce,_0xe03040:0x2ee,_0x549621:0x2df,_0x1d5bf0:0x28,_0x4b48f6:0x4b},_0x471bb3={_0x1b7e6c:0x35f},_0x3ebfab={};_0x3ebfab['Hgbbl']=function(_0x4ff861,_0x23f31b){return _0x4ff861===_0x23f31b;},_0x3ebfab[_0x3e00b6(_0x48e267._0x3095d4,0xf5)]=_0x3e00b6(_0x48e267._0x2a7bd7,0x112),_0x3ebfab[_0x4ce644(_0x48e267._0x23b3ff,0x3e3)]=_0x4ce644(0x3b5,0x3d2);function _0x4ce644(_0x49ad66,_0x1f22fb){return _0x2abe46(_0x49ad66-_0x471bb3._0x1b7e6c,_0x1f22fb);}_0x3ebfab[_0x4ce644(0x3b9,0x387)]=function(_0x4c1fae,_0x28d066){return _0x4c1fae<_0x28d066;},_0x3ebfab[_0x3e00b6(0x121,0x15b)]=_0x3e00b6(_0x48e267._0x3afb47,0xcd),_0x3ebfab[_0x4ce644(0x406,_0x48e267._0x422bbb)]=_0x3e00b6(0xea,_0x48e267._0x3b948c),_0x3ebfab['lsxfi']=_0x3e00b6(0xdf,_0x48e267._0xdf330a),_0x3ebfab[_0x4ce644(0x3db,_0x48e267._0x501a36)]=_0x3e00b6(0xcb,_0x48e267._0x170b7a);const _0x1708a6=_0x3ebfab;this[_0x4ce644(_0x48e267._0x38d939,0x3ea)+_0x3e00b6(0x114,0xec)]({'canRecover':_0x4ed377=>_0x4ed377[_0x3e00b6(0x107,0xe0)]===ErrorType[_0x3e00b6(0x10b,0x13a)+'S'],'recover':async(_0x194b42,_0x5ef74f)=>{function _0x1b598b(_0x475b25,_0x39f7e0){return _0x4ce644(_0x475b25- -0x3a0,_0x39f7e0);}function _0x5ca7b8(_0x136ef5,_0x4691cf){return _0x3e00b6(_0x4691cf-0x221,_0x136ef5);}if(_0x1708a6[_0x1b598b(0x43,0x85)]('WfAip',_0x5ca7b8(_0x598ebe._0x1e4c16,_0x598ebe._0x53cf1b)))_0x36beee[_0x5ca7b8(_0x598ebe._0x2707a6,0x2fd)](_0x5ca7b8(_0x598ebe._0x22ad16,0x2f8));else{if(_0x194b42[_0x5ca7b8(_0x598ebe._0xc94e86,0x2f7)]?.['filePath']){if(_0x5ca7b8(_0x598ebe._0xeafba1,0x301)===_0x1708a6[_0x5ca7b8(0x2ff,_0x598ebe._0x21f49c)]){const {dirname:_0xc3a3bc}=await import(_0x5ca7b8(0x293,_0x598ebe._0x225c81)),{mkdir:_0x130531}=await import('fs/promise'+'s');try{const _0x4e0b49={};_0x4e0b49[_0x5ca7b8(0x2fe,0x2f1)]=!![],await _0x130531(_0xc3a3bc(_0x194b42[_0x5ca7b8(0x2fc,0x2f7)][_0x5ca7b8(_0x598ebe._0x5d96a0,_0x598ebe._0x2dd9bc)]),_0x4e0b49);const _0x442ad9={};return _0x442ad9['recovered']=!![],_0x442ad9[_0x5ca7b8(_0x598ebe._0x38c093,0x2ee)]=_0x5ca7b8(0x2d9,0x316),_0x442ad9;}catch{const _0x5c1ca6={};return _0x5c1ca6[_0x5ca7b8(0x2c0,0x2df)]=![],_0x5c1ca6[_0x5ca7b8(0x2b7,_0x598ebe._0xe03040)]=_0x5ca7b8(0x2b7,0x2f4),_0x5c1ca6;}}else{const _0x94ff3f={};return _0x94ff3f[_0x5ca7b8(0x2de,_0x598ebe._0x549621)]=![],_0x94ff3f;}}const _0x37db71={};return _0x37db71[_0x1b598b(_0x598ebe._0x1d5bf0,_0x598ebe._0x4b48f6)]=![],_0x37db71[_0x5ca7b8(0x2f8,0x2ee)]=_0x1708a6[_0x5ca7b8(0x33d,0x304)],_0x37db71;}},'description':_0x1708a6[_0x4ce644(_0x48e267._0x195a31,0x3f7)]}),this[_0x3e00b6(0xa0,0xe4)+_0x4ce644(0x41e,0x449)]({'canRecover':_0x45f740=>_0x45f740['type']===ErrorType[_0x3e00b6(0x9a,0x54)],'recover':async(_0x32a5e2,_0x3854ee)=>{if(_0x1708a6[_0x2226fd(-_0x590d6d._0x5dd9a6,-_0x590d6d._0x549e49)](_0x3854ee?.[_0x2226fd(-0x1d0,-0x209)],this[_0x2226fd(-0x237,-0x20d)])){await this[_0x2226fd(-_0x590d6d._0x859c85,-0x1bd)](this[_0x2226fd(-_0x590d6d._0x251e87,-0x1e7)]*(_0x3854ee['retryCount']+(0x14b1+-0x11a*0x18+0x5c0)));const _0x5b487f={};return _0x5b487f['recovered']=!![],_0x5b487f[_0x3f7c37(-_0x590d6d._0x1f53ee,-0x50)]='准备重试网络请求',_0x5b487f;}const _0x497880={};_0x497880['recovered']=![],_0x497880[_0x2226fd(-_0x590d6d._0x631f99,-_0x590d6d._0x219bd4)]=_0x3f7c37(_0x590d6d._0x481aaa,-_0x590d6d._0x38f30c)+'上限';function _0x3f7c37(_0x2b33c4,_0x27a6b2){return _0x3e00b6(_0x27a6b2- -_0x48d917._0x4b07a6,_0x2b33c4);}function _0x2226fd(_0x36588d,_0x2281d6){return _0x3e00b6(_0x36588d- -0x2e3,_0x2281d6);}return _0x497880;},'description':_0x1708a6['lsxfi']});const _0x487178={};_0x487178['canRecover']=_0x196928=>_0x196928[_0x3e00b6(0x107,0xd3)]===ErrorType[_0x4ce644(0x3d4,0x3b2)],_0x487178[_0x4ce644(0x3ce,_0x48e267._0x19f191)]=async(_0x3176dc,_0x688709)=>{function _0x3faf40(_0x22a07e,_0x1cd2aa){return _0x3e00b6(_0x1cd2aa-0x480,_0x22a07e);}const _0x2f00d4={};function _0x4f7be1(_0x58c0a5,_0x328f2a){return _0x4ce644(_0x328f2a- -0x566,_0x58c0a5);}return _0x2f00d4[_0x3faf40(0x514,0x53e)]=!![],_0x2f00d4[_0x4f7be1(-0x1d1,-_0x5821b0._0x4bc2fe)]=_0x1708a6[_0x4f7be1(-_0x5821b0._0x365c3c,-0x13b)],_0x2f00d4[_0x4f7be1(-0x129,-_0x5821b0._0x2643f7)+'de']=!![],_0x2f00d4;};function _0x3e00b6(_0x3706c0,_0x1696fd){return _0x2abe46(_0x3706c0-0x55,_0x1696fd);}_0x487178[_0x4ce644(_0x48e267._0x4a56cd,0x3ed)+'n']=_0x1708a6[_0x4ce644(0x3db,0x409)],this[_0x4ce644(0x3aa,_0x48e267._0x403d5e)+'yStrategy'](_0x487178);}[_0x2abe46(0x4b,0x7)+'yStrategy'](_0x5f2569){const _0x1e205d={_0x2ffb34:0x39f},_0x4ca6a8={_0x367a77:0x141};function _0x44c129(_0x57a39c,_0x530224){return _0x5bbcb4(_0x57a39c- -_0x4ca6a8._0x367a77,_0x530224);}function _0x756cf7(_0x4b92e3,_0x393142){return _0x2abe46(_0x4b92e3-0x337,_0x393142);}this[_0x44c129(0x3ab,_0x1e205d._0x2ffb34)+_0x756cf7(0x3ec,0x3b2)]['push'](_0x5f2569);}async[_0x2abe46(0xad,0xc0)+'r'](_0x59f362,_0x5a79c0){const _0x82ceee={_0x5e0325:0x126,_0x93a87a:0x15f,_0x32aaad:0x1fa,_0x4eaa71:0x3ff,_0x277e6f:0x430,_0x243e45:0x3f7,_0x1c0fb3:0x3f7,_0x529d87:0x439},_0x1578d8=this['normalizeE'+'rror'](_0x59f362);function _0xd6d566(_0x39604a,_0x165d8e){return _0x5bbcb4(_0x39604a- -0xad,_0x165d8e);}this['logError'](_0x1578d8);const _0x22fb03=await this[_0x4e02dd(_0x82ceee._0x5e0325,_0x82ceee._0x93a87a)+_0x4e02dd(_0x82ceee._0x32aaad,0x1c0)](_0x1578d8,_0x5a79c0);function _0x4e02dd(_0x4ecefa,_0x178fc0){return _0x5bbcb4(_0x178fc0- -0x359,_0x4ecefa);}return{'handled':!![],'recovered':_0x22fb03['recovered'],'result':_0x22fb03[_0xd6d566(_0x82ceee._0x4eaa71,0x42a)],'message':this[_0xd6d566(_0x82ceee._0x277e6f,_0x82ceee._0x243e45)+_0xd6d566(_0x82ceee._0x1c0fb3,_0x82ceee._0x529d87)](_0x1578d8,_0x22fb03)};}[_0x2abe46(0x72,0xb7)+'rror'](_0x20c9bc){const _0x418224={_0xbd7e5d:0x2e6,_0x34d7e4:0x4ac,_0x30f78c:0x490,_0x5e89bd:0x307,_0xb8058e:0x303,_0x2db24b:0x4c8,_0x39b56a:0x2c9,_0x3d6dd8:0x2ad,_0x13333f:0x523,_0x2b4d52:0x51b,_0x4b1fa8:0x2d2,_0x52262e:0x50c,_0x39de68:0x50b,_0x318b6c:0x2d8,_0xd51546:0x2f2,_0x59d8e8:0x47a,_0x417f60:0x2c6,_0x57b679:0x46c,_0x4c5857:0x2a8,_0x4541ae:0x2a6,_0x11997e:0x4b2,_0x27eea9:0x4e5,_0x47ead9:0x2d8,_0x5bf572:0x287,_0x262ffc:0x301,_0xd59293:0x2c9,_0x484dbd:0x2cc,_0x5873b1:0x4bd,_0x3c74aa:0x4a9,_0x402250:0x2d8,_0x2675d9:0x2d0,_0x3eb7a8:0x2ec,_0x4f7b6a:0x2c0,_0x2467be:0x2c9,_0x1d9c4b:0x29c},_0x1f6059={_0xd912e8:0xa};function _0x1d743d(_0x340db4,_0x18c24d){return _0x2abe46(_0x340db4-0x251,_0x18c24d);}const _0x58c540={'YOjZG':function(_0x370766,_0x10692f){return _0x370766 in _0x10692f;},'NqGnF':'severity','ckvFD':_0x1d743d(0x2c2,_0x418224._0xbd7e5d),'kESHQ':_0xe643a8(_0x418224._0x34d7e4,0x4e1),'ARHHU':_0xe643a8(_0x418224._0x30f78c,0x4b4)+'权限','PdsQZ':_0x1d743d(0x2e9,0x319)+'ED','EsPyF':'检查网络连接','ypWnb':_0x1d743d(0x2b6,0x2a2),'QroWA':_0x1d743d(0x318,0x313),'HPlUb':function(_0xe85045,_0x3e5358,_0x2113fa,_0x2655bf,_0x599670){return _0xe85045(_0x3e5358,_0x2113fa,_0x2655bf,_0x599670);}};if(_0x58c540[_0x1d743d(0x319,_0x418224._0x5e89bd)](_0x1d743d(_0x418224._0xb8058e,0x2cb),_0x20c9bc)&&_0x58c540['YOjZG'](_0x58c540[_0x1d743d(0x298,0x26e)],_0x20c9bc))return _0x20c9bc;let _0x5b823e=ErrorType[_0xe643a8(_0x418224._0x2db24b,0x4ef)];function _0xe643a8(_0x4c685b,_0x35eeb0){return _0x5bbcb4(_0x35eeb0-_0x1f6059._0xd912e8,_0x4c685b);}let _0x306a15=ErrorSeverity[_0xe643a8(0x500,0x516)],_0x32c067=[];if(_0x20c9bc[_0x1d743d(_0x418224._0x39b56a,_0x418224._0x3d6dd8)]['includes'](_0x58c540[_0xe643a8(_0x418224._0x13333f,_0x418224._0x2b4d52)])||_0x20c9bc[_0x1d743d(_0x418224._0x39b56a,_0x418224._0x4b1fa8)][_0xe643a8(0x503,0x505)](_0x1d743d(0x322,0x32b)+_0x1d743d(0x2a5,0x284)))_0x5b823e=ErrorType[_0xe643a8(_0x418224._0x52262e,_0x418224._0x39de68)+'S'],_0x32c067[_0x1d743d(_0x418224._0x318b6c,_0x418224._0xd51546)](_0x58c540[_0xe643a8(_0x418224._0x59d8e8,0x4b2)]),_0x32c067[_0x1d743d(0x2d8,_0x418224._0x417f60)](_0x58c540[_0xe643a8(_0x418224._0x57b679,0x49b)]);else{if(_0x20c9bc[_0x1d743d(0x2c9,_0x418224._0x4c5857)]['includes'](_0x58c540[_0x1d743d(_0x418224._0x4541ae,0x2c4)])||_0x20c9bc['message']['includes'](_0x1d743d(0x31b,0x2df)))_0x5b823e=ErrorType['NETWORK'],_0x306a15=ErrorSeverity[_0xe643a8(_0x418224._0x11997e,_0x418224._0x27eea9)],_0x32c067['push'](_0x58c540[_0x1d743d(0x2a4,0x289)]),_0x32c067[_0x1d743d(_0x418224._0x47ead9,0x2db)](_0x58c540['ypWnb']);else(_0x20c9bc[_0x1d743d(_0x418224._0x39b56a,_0x418224._0x5bf572)][_0x1d743d(_0x418224._0x262ffc,0x2c3)]('JSON')||_0x20c9bc[_0x1d743d(_0x418224._0xd59293,_0x418224._0x484dbd)][_0x1d743d(_0x418224._0x262ffc,0x2f0)](_0xe643a8(0x4e5,_0x418224._0x5873b1)))&&(_0x5b823e=ErrorType[_0xe643a8(_0x418224._0x3c74aa,0x4ca)],_0x32c067[_0x1d743d(_0x418224._0x402250,_0x418224._0x2675d9)](_0x58c540[_0x1d743d(_0x418224._0x3eb7a8,_0x418224._0x4f7b6a)]),_0x32c067[_0x1d743d(_0x418224._0x318b6c,0x29b)]('尝试使用其他格式'));}return _0x58c540['HPlUb'](createAnalysisError,_0x20c9bc[_0x1d743d(_0x418224._0x2467be,_0x418224._0x1d9c4b)],_0x5b823e,_0x306a15,{'cause':_0x20c9bc,'suggestions':_0x32c067});}async[_0x2abe46(0x6d,0x71)+'overy'](_0x7432c2,_0x1d15df){const _0x51f7f1={_0x309b8d:0x400,_0x3ca5ac:0x431,_0x1dafa6:0x42b,_0x145614:0x415,_0x336ff8:0x3e8,_0x15fda2:0xae,_0x18e1a8:0x92,_0x54e3ea:0x3e2,_0x3cb372:0x3a0,_0x4405f7:0x41c},_0x6545d9={_0x20665e:0xbb};if(!_0x7432c2['recoverabl'+'e']){const _0xc9dcf={};return _0xc9dcf[_0x37eb1f(0x3f9,_0x51f7f1._0x309b8d)]=![],_0xc9dcf;}for(const _0xcfed11 of this[_0x37eb1f(_0x51f7f1._0x3ca5ac,_0x51f7f1._0x1dafa6)+_0x3d620e(-0x6f,-0x5a)]){if(_0xcfed11[_0x37eb1f(_0x51f7f1._0x145614,0x3de)](_0x7432c2))try{const _0x1e20a6=await _0xcfed11[_0x37eb1f(0x3ff,_0x51f7f1._0x336ff8)](_0x7432c2,_0x1d15df);if(_0x1e20a6[_0x37eb1f(0x3f9,0x3c4)]){const _0xd425b4={};return _0xd425b4[_0x3d620e(-0xd5,-0xa6)]=!![],_0xd425b4[_0x3d620e(-0x72,-_0x51f7f1._0x15fda2)]=_0x1e20a6,_0xd425b4[_0x37eb1f(0x45d,0x454)]=_0xcfed11[_0x3d620e(-0xcc,-0xbd)+'n'],_0xd425b4;}}catch(_0x3ec203){console[_0x3d620e(-_0x51f7f1._0x18e1a8,-0x92)]('恢复策略失败:\x20'+_0xcfed11[_0x37eb1f(_0x51f7f1._0x54e3ea,_0x51f7f1._0x3cb372)+'n'],_0x3ec203);}}const _0xeac16e={};_0xeac16e[_0x37eb1f(0x3f9,_0x51f7f1._0x4405f7)]=![];function _0x3d620e(_0x5a22f1,_0x435b51){return _0x5bbcb4(_0x435b51- -0x55a,_0x5a22f1);}function _0x37eb1f(_0x2ad8a0,_0x2e1d4f){return _0x5bbcb4(_0x2ad8a0- -_0x6545d9._0x20665e,_0x2e1d4f);}return _0xeac16e;}[_0x2abe46(0xaa,0xa3)](_0x4d089e){const _0x2989d2={_0x14237d:0x182,_0x1682d0:0x169,_0x3ce1f8:0x4e,_0x594d02:0x17},_0x258219={_0x4f7409:0x369};this[_0x455ddf(_0x2989d2._0x14237d,0x152)][_0x455ddf(0x171,_0x2989d2._0x1682d0)](_0x4d089e);function _0x27c440(_0x32fe06,_0x201244){return _0x5bbcb4(_0x201244- -0x4d4,_0x32fe06);}function _0x455ddf(_0x3bc508,_0x5842ff){return _0x5bbcb4(_0x5842ff- -_0x258219._0x4f7409,_0x3bc508);}this['errorLog'][_0x27c440(-_0x2989d2._0x3ce1f8,-0x26)]>0x3d5+-0x19b5+0x1644&&(this[_0x455ddf(0x18c,0x152)]=this[_0x27c440(_0x2989d2._0x594d02,-0x19)]['slice'](-(0x1fb2+0xc38+-0x2bb8)));}[_0x5bbcb4(0x4dd,0x4a5)+_0x2abe46(0x59,0x83)](_0x523041,_0x58f41a){const _0x17bac5={_0x127338:0x4cf,_0x3545e9:0x514,_0x3d78ee:0x132,_0x39a173:0x16e,_0x445745:0x12e,_0x28b36e:0x117,_0x63e5cf:0x117,_0x26df3f:0x4c9,_0x4a46b0:0x142,_0x20d409:0x12c,_0x17eafb:0x108,_0x986f8:0x11b,_0x36090a:0x4f5,_0x294bc3:0x135,_0x41d75f:0x144,_0x2d454c:0xf1,_0x5206ff:0xc8,_0x13abb6:0x119,_0x243bfb:0xf9,_0x1322c3:0x4f3,_0x510fed:0x109,_0x253d20:0xcf,_0x2c48bb:0x4e4,_0x5caf67:0x49c,_0x1e07e3:0x4c0,_0x5d0798:0x501,_0x10d1f0:0x138},_0x930542={_0x5df468:0x3da},_0x219761={_0x9eacc4:0x12},_0x11a75e={};_0x11a75e['lxGhk']='MEDIUM',_0x11a75e[_0x4f9cdf(0x4fc,0x4bd)]=_0x4f9cdf(_0x17bac5._0x127338,0x4ed);function _0x4f9cdf(_0x3c2147,_0xbcf240){return _0x5bbcb4(_0xbcf240-_0x219761._0x9eacc4,_0x3c2147);}_0x11a75e[_0x4f9cdf(_0x17bac5._0x3545e9,0x503)]='CRITICAL',_0x11a75e['Mtapm']=_0x486eb5(_0x17bac5._0x3d78ee,_0x17bac5._0x39a173),_0x11a75e[_0x4f9cdf(0x522,0x511)]=function(_0xc74450,_0x998760){return _0xc74450===_0x998760;},_0x11a75e['Fansb']='使用恢复策略',_0x11a75e['MPTTj']='SKkLs',_0x11a75e[_0x486eb5(_0x17bac5._0x445745,0x135)]='cbshI';const _0x5ee059=_0x11a75e,_0x2b6d3c=[];_0x2b6d3c['push']('❌\x20'+_0x523041['type']+':\x20'+_0x523041[_0x486eb5(_0x17bac5._0x28b36e,0x13c)]);_0x5ee059[_0x4f9cdf(0x4db,0x511)](_0x523041[_0x4f9cdf(0x50a,0x4c9)],ErrorSeverity[_0x486eb5(0x116,_0x17bac5._0x63e5cf)])&&_0x2b6d3c['push']('🚨\x20严重程度:\x20'+_0x523041[_0x4f9cdf(0x4dc,_0x17bac5._0x26df3f)][_0x486eb5(_0x17bac5._0x4a46b0,_0x17bac5._0x20d409)+'e']());_0x58f41a[_0x486eb5(_0x17bac5._0x17eafb,_0x17bac5._0x986f8)]?_0x2b6d3c['push'](_0x4f9cdf(0x4d1,0x4fc)+(_0x58f41a[_0x4f9cdf(_0x17bac5._0x36090a,0x4be)]?.[_0x486eb5(0x117,_0x17bac5._0x294bc3)]||_0x5ee059[_0x486eb5(_0x17bac5._0x41d75f,0x18a)])):_0x5ee059[_0x486eb5(0x113,_0x17bac5._0x2d454c)]===_0x5ee059[_0x4f9cdf(0x505,0x4ec)]?(_0x539fb4[_0x486eb5(0x103,_0x17bac5._0x5206ff)]=_0x486eb5(_0x17bac5._0x13abb6,_0x17bac5._0x243bfb),_0x1c7cbf[_0x5ee059[_0x486eb5(0x16f,0x17e)]]=_0x4f9cdf(_0x17bac5._0x1322c3,0x518),_0x4381c2[_0x5ee059['wmGFn']]=_0x486eb5(_0x17bac5._0x510fed,_0x17bac5._0x253d20),_0x5e7cde[_0x5ee059[_0x4f9cdf(0x508,0x503)]]=_0x5ee059['Mtapm']):_0x2b6d3c[_0x4f9cdf(0x524,_0x17bac5._0x2c48bb)](_0x486eb5(0x121,_0x17bac5._0x294bc3));_0x523041['suggestion'+'s'][_0x4f9cdf(_0x17bac5._0x5caf67,_0x17bac5._0x1e07e3)]>-0x10+0x1*0x1891+-0x1881&&(_0x2b6d3c[_0x4f9cdf(_0x17bac5._0x5d0798,0x4e4)](_0x486eb5(0x136,0x107)),_0x523041[_0x486eb5(_0x17bac5._0x10d1f0,_0x17bac5._0x510fed)+'s'][_0x4f9cdf(0x4b3,0x4ac)](_0x2c773e=>{function _0x55a7df(_0x297125,_0xd34cab){return _0x4f9cdf(_0xd34cab,_0x297125- -0x6e9);}function _0xa2efc3(_0x1cab87,_0x6d7451){return _0x4f9cdf(_0x1cab87,_0x6d7451- -_0x930542._0x5df468);}_0x2b6d3c[_0xa2efc3(0x146,0x10a)](_0xa2efc3(0xd3,0x106)+_0x2c773e);}));function _0x486eb5(_0xa561e4,_0x4f89a6){return _0x5bbcb4(_0xa561e4- -0x3ac,_0x4f89a6);}return _0x2b6d3c[_0x486eb5(0x159,0x199)]('\x0a');}['delay'](_0xceffa5){return new Promise(_0x3c1c4d=>setTimeout(_0x3c1c4d,_0xceffa5));}[_0x2abe46(0xc4,0xb4)+'ats'](){const _0x478b5c={_0x16a848:0x454,_0x3dc28e:0x42f,_0x34b76f:0x3d3,_0x148bfb:0x3d3,_0x38aeca:0x468,_0x191ca8:0x37,_0x16f0ff:0x2e,_0x14d72e:0x1d,_0x2b4cb0:0x3b,_0x24da01:0x7c},_0x1098b4={_0x77c644:0x35};function _0x12a765(_0x1990d2,_0x592638){return _0x2abe46(_0x1990d2-0x387,_0x592638);}const _0x9c7776={};function _0x5c5c6f(_0x31f188,_0x43fb96){return _0x2abe46(_0x31f188- -_0x1098b4._0x77c644,_0x43fb96);}_0x9c7776[_0x12a765(0x450,_0x478b5c._0x16a848)]=function(_0x2594f3,_0x3aa392){return _0x2594f3!==_0x3aa392;};const _0x4b5dcb=_0x9c7776,_0xf6b4d7={},_0x36863e={};for(const _0x4cc9ed of this[_0x12a765(0x3f7,_0x478b5c._0x3dc28e)]){if(_0x4b5dcb['MKEAs'](_0x12a765(0x3d3,_0x478b5c._0x34b76f),_0x12a765(_0x478b5c._0x148bfb,0x406)))return new _0x3e4708(_0x33b92c=>_0x1af641(_0x33b92c,_0x410761));else _0xf6b4d7[_0x4cc9ed[_0x5c5c6f(0x7d,0x62)]]=(_0xf6b4d7[_0x4cc9ed[_0x12a765(0x439,_0x478b5c._0x38aeca)]]||0xbc*-0x1d+0x240b*0x1+-0xebf)+(-0x16*0xc1+0x2311*0x1+0xd7*-0x16),_0x36863e[_0x4cc9ed[_0x5c5c6f(_0x478b5c._0x191ca8,_0x478b5c._0x16f0ff)]]=(_0x36863e[_0x4cc9ed[_0x5c5c6f(0x37,_0x478b5c._0x14d72e)]]||0x5a3+-0x2a1*-0x7+-0x11*0x16a)+(0x191*-0x6+0x1307*-0x2+0x2f75*0x1);}return{'total':this[_0x5c5c6f(_0x478b5c._0x2b4cb0,0x42)]['length'],'byType':_0xf6b4d7,'bySeverity':_0x36863e,'recent':this[_0x12a765(0x3f7,0x3d5)][_0x5c5c6f(_0x478b5c._0x24da01,0x91)](-(0x1c28*0x1+-0x2598+0x1*0x97a))};}async['exportErro'+_0x5bbcb4(0x4b6,0x4f4)](_0x3f6524){const _0x407bd2={_0xcb6e58:0xd4,_0x3d5b67:0x5b},_0x3c88b0=this['getErrorSt'+_0x455dc0(-_0x407bd2._0xcb6e58,-0xf5)](),_0x38067b={'timestamp':new Date()[_0x455dc0(-0x131,-0x139)+'g'](),'stats':_0x3c88b0,'errors':this['errorLog']['map'](_0x330a52=>({'message':_0x330a52[_0x455dc0(-0x108,-0x134)],'type':_0x330a52[_0x53aa02(0x84,0xa3)],'severity':_0x330a52[_0x53aa02(0x3e,0x6)],'timestamp':_0x330a52[_0x53aa02(0x38,0x3)],'context':_0x330a52[_0x455dc0(-0x11b,-0x12b)],'suggestions':_0x330a52['suggestion'+'s']}))};function _0x455dc0(_0x24e19a,_0x53cb88){return _0x2abe46(_0x53cb88- -0x1ac,_0x24e19a);}function _0x53aa02(_0x353a3c,_0x20a3b2){return _0x2abe46(_0x353a3c- -0x2e,_0x20a3b2);}await writeFile(_0x3f6524,JSON[_0x53aa02(0x58,_0x407bd2._0x3d5b67)](_0x38067b,null,-0xb65*0x2+-0x1f0*-0x1+0x6f4*0x3));}[_0x5bbcb4(0x4e1,0x511)+_0x2abe46(0x4a,0x17)](){const _0x5ac0a2={_0x546bb7:0x4f7},_0x50c929={_0x4b61c3:0x8};function _0x53fa00(_0x32ec78,_0x56cfe2){return _0x5bbcb4(_0x56cfe2- -_0x50c929._0x4b61c3,_0x32ec78);}this[_0x53fa00(_0x5ac0a2._0x546bb7,0x4b3)]=[];}}export const globalErrorHandler=new ErrorHandler();function _0x2abe46(_0x2a7a04,_0x5172b3){return _0x1cff(_0x2a7a04- -0x158,_0x5172b3);}export function withErrorHandling(_0x593863,_0x51e0b8=ErrorType['UNKNOWN']){const _0x2169e1={_0x5943f5:0x193,_0x5de4ab:0x15e,_0x5f20b9:0x118},_0x1a6eea={_0x38e524:0x363},_0x2a15f7={'pebDR':function(_0x20acd8,..._0x338849){return _0x20acd8(..._0x338849);},'CRpLO':function(_0x589843,_0x216958){return _0x589843(_0x216958);}};return async(..._0x5c9464)=>{function _0x363289(_0x4a9e9b,_0x19519d){return _0x1cff(_0x19519d- -_0x1a6eea._0x38e524,_0x4a9e9b);}function _0x4cb49f(_0x58254e,_0x5b2b27){return _0x1cff(_0x5b2b27- -0x40,_0x58254e);}try{return await _0x2a15f7[_0x4cb49f(0x1ea,0x1dd)](_0x593863,..._0x5c9464);}catch(_0x3739e2){const _0x4bd144=createAnalysisError(_0x3739e2 instanceof Error?_0x3739e2[_0x363289(-0x15c,-_0x2169e1._0x5943f5)]:_0x2a15f7[_0x363289(-_0x2169e1._0x5de4ab,-0x14f)](String,_0x3739e2),_0x51e0b8,ErrorSeverity[_0x363289(-_0x2169e1._0x5f20b9,-0x14a)],{'cause':_0x3739e2 instanceof Error?_0x3739e2:undefined}),_0x588a2f=await globalErrorHandler[_0x4cb49f(0x1c3,0x1c5)+'r'](_0x4bd144);if(_0x588a2f[_0x4cb49f(0x191,0x181)]&&_0x588a2f['result']){}throw _0x4bd144;}};}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
export declare const EXTENDED_ANALYSIS_PHASES: readonly ["requirement_analysis", "demand_analysis", "competitor_analysis", "feature_analysis", "tech_selection"];
|
|
1
2
|
export declare const ANALYSIS_PHASES: readonly ["demand_analysis", "competitor_analysis", "feature_analysis", "tech_selection"];
|
|
2
3
|
export declare const PIPELINE_PHASES: readonly ["discuss", "plan", "execute", "verify"];
|
|
4
|
+
export type ExtendedAnalysisPhase = (typeof EXTENDED_ANALYSIS_PHASES)[number];
|
|
3
5
|
export type AnalysisPhase = (typeof ANALYSIS_PHASES)[number];
|
|
4
6
|
export type PipelinePhase = (typeof PIPELINE_PHASES)[number];
|
|
5
|
-
export type Phase = AnalysisPhase | PipelinePhase | string;
|
|
6
|
-
export declare const PHASES: readonly ["demand_analysis", "competitor_analysis", "feature_analysis", "tech_selection"];
|
|
7
|
+
export type Phase = ExtendedAnalysisPhase | AnalysisPhase | PipelinePhase | string;
|
|
8
|
+
export declare const PHASES: readonly ["requirement_analysis", "demand_analysis", "competitor_analysis", "feature_analysis", "tech_selection"];
|
|
7
9
|
export type AgentState = 'idle' | Phase | 'completed';
|
|
8
10
|
export interface AgentContext {
|
|
9
11
|
agentId: string;
|
package/dist/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0xa356f9(_0x49e611,_0x2908fc){const _0x44ad13={_0x3df8f7:0xef};return _0x18bf(_0x49e611-_0x44ad13._0x3df8f7,_0x2908fc);}(function(_0x40b112,_0x2fc1e6){const _0x53eaa3={_0x2a7e7b:0x3e5,_0x97b75e:0x3e3,_0x20dfdc:0x3e8,_0x108eec:0x3eb,_0x57c149:0x3f3,_0xf37aa3:0x3f7,_0x87270d:0x3f1,_0x470ea8:0x3e6,_0x129cdd:0x3ee,_0x13f5e7:0x3f0,_0x2bd5cd:0x3f6,_0x5cde4a:0x363,_0x2c3559:0x365},_0xc5f12c={_0x3af514:0x266},_0x372cc7=_0x40b112();function _0x3f41fc(_0x25d84e,_0x296d70){return _0x18bf(_0x296d70-0x1d4,_0x25d84e);}function _0x5452db(_0x5130c4,_0x5d4fdc){return _0x18bf(_0x5130c4-_0xc5f12c._0x3af514,_0x5d4fdc);}while(!![]){try{const _0x187975=parseInt(_0x5452db(_0x53eaa3._0x2a7e7b,_0x53eaa3._0x97b75e))/(-0xe5*0x7+-0x11bc*0x1+0x20*0xc0)*(parseInt(_0x5452db(_0x53eaa3._0x20dfdc,0x3e8))/(-0x9ec+0xb99*0x2+-0xd44))+-parseInt(_0x5452db(_0x53eaa3._0x108eec,_0x53eaa3._0x57c149))/(-0x1c5+0x1*-0x17c7+0x2d7*0x9)*(parseInt(_0x5452db(_0x53eaa3._0x57c149,_0x53eaa3._0xf37aa3))/(-0xb56*-0x1+0x1c32+-0x2784))+parseInt(_0x5452db(_0x53eaa3._0x87270d,0x3fb))/(-0x3*-0x683+0x14*-0xe4+-0x4*0x6d)*(-parseInt(_0x5452db(0x3e6,_0x53eaa3._0x470ea8))/(-0x1412+-0x1f74+0x338c))+-parseInt(_0x5452db(_0x53eaa3._0x129cdd,_0x53eaa3._0x13f5e7))/(-0x2*0xfd1+-0x16b*-0xc+0xea5)+parseInt(_0x5452db(_0x53eaa3._0x2bd5cd,0x3f3))/(-0x1da3+0x14ed+0x175*0x6)+-parseInt(_0x3f41fc(0x355,0x35a))/(-0x13c2+0x2*-0x6be+0x2147)*(parseInt(_0x3f41fc(0x35e,_0x53eaa3._0x5cde4a))/(-0x5ac+-0x289*-0x2+-0x29*-0x4))+parseInt(_0x3f41fc(0x365,_0x53eaa3._0x2c3559))/(0xcd5+0x1*-0x1435+0x76b);if(_0x187975===_0x2fc1e6)break;else _0x372cc7['push'](_0x372cc7['shift']());}catch(_0x48e3d4){_0x372cc7['push'](_0x372cc7['shift']());}}}(_0xe5aa,-0xa5e6a+-0xe2549+0x22dc8a));export const EXTENDED_ANALYSIS_PHASES=[_0x588b9d(0x2,0x2)+_0x588b9d(0x7,-0x4),_0xa356f9(0x278,0x270)+_0x588b9d(-0x4,-0x1),_0x588b9d(0x6,0x10)+'_analysis','feature_an'+'alysis',_0xa356f9(0x279,0x281)+_0xa356f9(0x272,0x273)];function _0x588b9d(_0x2d8467,_0x4f254d){const _0x321cfc={_0x186b7a:0x182};return _0x18bf(_0x4f254d- -_0x321cfc._0x186b7a,_0x2d8467);}function _0x18bf(_0x43d8ff,_0x2a8958){_0x43d8ff=_0x43d8ff-(-0x543+-0xde+-0x1*-0x79f);const _0x2d2527=_0xe5aa();let _0x280c0f=_0x2d2527[_0x43d8ff];if(_0x18bf['ykLyXp']===undefined){var _0x1a0b7f=function(_0x3f3b4b){const _0x47114d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x430781='',_0x2394bc='';for(let _0x4bff46=-0x1d*0xdd+0x1*0x279+0x1690,_0x80bc04,_0x5bf9f1,_0x4f581d=-0x1435*0x1+0x503*-0x1+-0x10d*-0x18;_0x5bf9f1=_0x3f3b4b['charAt'](_0x4f581d++);~_0x5bf9f1&&(_0x80bc04=_0x4bff46%(0x1f08+0x4e7+-0x1*0x23eb)?_0x80bc04*(-0x7*0x419+-0x1e12+0xf*0x3ef)+_0x5bf9f1:_0x5bf9f1,_0x4bff46++%(-0x1*0xccd+-0x9d4+0x16a5))?_0x430781+=String['fromCharCode'](-0x1ac*0xe+0x207*-0x2+0xeb*0x1f&_0x80bc04>>(-(0x1097+0x2585+-0x361a)*_0x4bff46&0x5f9+-0x190f+0x4*0x4c7)):0x119*0xb+-0x1dbe+0x11ab){_0x5bf9f1=_0x47114d['indexOf'](_0x5bf9f1);}for(let _0xa3c29a=-0x1857+0x101*-0x22+0x1*0x3a79,_0x2d8723=_0x430781['length'];_0xa3c29a<_0x2d8723;_0xa3c29a++){_0x2394bc+='%'+('00'+_0x430781['charCodeAt'](_0xa3c29a)['toString'](-0x1b4b+-0x14c9+0x3024))['slice'](-(0xd57*0x1+0x1e82+0x81*-0x57));}return decodeURIComponent(_0x2394bc);};_0x18bf['wjOcQv']=_0x1a0b7f,_0x18bf['AecScn']={},_0x18bf['ykLyXp']=!![];}const _0x43ca58=_0x2d2527[-0xe82+0x4*-0x18d+-0xa5b*-0x2],_0x16400a=_0x43d8ff+_0x43ca58,_0x32b50d=_0x18bf['AecScn'][_0x16400a];return!_0x32b50d?(_0x280c0f=_0x18bf['wjOcQv'](_0x280c0f),_0x18bf['AecScn'][_0x16400a]=_0x280c0f):_0x280c0f=_0x32b50d,_0x280c0f;}function _0xe5aa(){const _0x375c31=['nJaXmZe0s0LNuK5S','BhLZAxm','mNj0qxDLza','DgLVBG','CMvXDwLYzw1LBG','odq3nJC3A3HvALnx','oxPjvvHAAa','ywX5C2LZ','mtiXodeWnxHQzhzotG','zgvTyw5Kx2fUyq','DgvJAf9ZzwXLyW','mZv3rgPUCe0','x2fUywX5C2LZ','neDstfLYEG','DMvYAwz5','mtaXoty0otbytNf2zfe','ntqXnZm5mK5hAg1VzW','mJiWndG2ndjjrwvlEhK','y29TCgv0AxrVCG','Df9HBMfSExnPCW','mtC0mJyZzLnXCvPg'];_0xe5aa=function(){return _0x375c31;};return _0xe5aa();}export const ANALYSIS_PHASES=['demand_ana'+_0xa356f9(0x270,0x27a),_0x588b9d(0xb,0x10)+_0xa356f9(0x27b,0x273),'feature_an'+_0xa356f9(0x276,0x26e),_0xa356f9(0x279,0x283)+_0xa356f9(0x272,0x27a)];export const PIPELINE_PHASES=['discuss','plan','execute',_0xa356f9(0x27d,0x282)];export const PHASES=EXTENDED_ANALYSIS_PHASES;
|
package/dist/utils/id.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2badb3,_0x18ca24){var _0x59ef05={_0x4b59e2:0x2ef,_0x2bc632:0x1,_0x192d4b:0x2f1,_0x1f5384:0x8,_0x49922a:0xb,_0x286a14:0x7,_0x19483b:0x2f5,_0x5617d5:0x4};function _0x4562c3(_0x2f9aa2,_0x391781){return _0x3c40(_0x2f9aa2-0x1d9,_0x391781);}function _0x5ad3e6(_0x417284,_0x5d15a9){return _0x3c40(_0x5d15a9- -0x11d,_0x417284);}var _0x33c140=_0x2badb3();while(!![]){try{var _0x5679d0=parseInt(_0x4562c3(0x2ed,_0x59ef05._0x4b59e2))/(-0xc26*-0x1+-0xc2b+0x6)+-parseInt(_0x5ad3e6(-0x8,-0xa))/(-0x4+-0x1*-0xc4f+0x5*-0x275)*(parseInt(_0x5ad3e6(0x5,0x0))/(0x1986+-0x794*0x1+0x11ef*-0x1))+-parseInt(_0x5ad3e6(-_0x59ef05._0x2bc632,-0x6))/(0x23f8+0xcd6+-0x4e1*0xa)*(parseInt(_0x4562c3(_0x59ef05._0x192d4b,0x2f0))/(0x1324+-0x9f6+0x5*-0x1d5))+parseInt(_0x4562c3(0x2f4,0x2fa))/(0x2*-0xcde+-0x19d9+0x4b1*0xb)*(-parseInt(_0x5ad3e6(-0x8,-0xb))/(-0x582+0xfe9+0x53*-0x20))+parseInt(_0x5ad3e6(-0xe,-_0x59ef05._0x1f5384))/(-0x3e*-0x4b+-0x2*0xd2d+0x838)+parseInt(_0x5ad3e6(-_0x59ef05._0x49922a,-_0x59ef05._0x286a14))/(-0x90c+0xc5b*-0x3+0x2e26*0x1)*(parseInt(_0x4562c3(_0x59ef05._0x19483b,0x2f1))/(0x711+-0x4da+-0x22d))+parseInt(_0x5ad3e6(-_0x59ef05._0x286a14,-_0x59ef05._0x5617d5))/(-0x449*0x7+-0x1*0xafd+0x185*0x1b)*(parseInt(_0x5ad3e6(-0x1,-0x3))/(-0x8*-0x229+0x3c4+-0x1500));if(_0x5679d0===_0x18ca24)break;else _0x33c140['push'](_0x33c140['shift']());}catch(_0x2473a1){_0x33c140['push'](_0x33c140['shift']());}}}(_0x3b3b,0x23722+0x145f5+0x1*0x8333));import{nanoid}from'nanoid';function _0x3c40(_0x51105d,_0x24fd56){_0x51105d=_0x51105d-(0xb*0x213+-0xad6+0x1*-0xaea);var _0x258745=_0x3b3b();var _0x126af9=_0x258745[_0x51105d];if(_0x3c40['WQyXMw']===undefined){var _0x5220b1=function(_0x57a143){var _0x4873d7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x17747a='',_0x10568d='';for(var _0xa5c57f=0x5*-0x2d+0xb5e+-0xa7d,_0x4cd7ba,_0x3e8b0c,_0x184cd0=-0xaab+0x223*0x3+0x2*0x221;_0x3e8b0c=_0x57a143['charAt'](_0x184cd0++);~_0x3e8b0c&&(_0x4cd7ba=_0xa5c57f%(0x10*-0x113+-0xdcb+0x1eff)?_0x4cd7ba*(0xb5e+-0x4b*-0x83+-0x317f)+_0x3e8b0c:_0x3e8b0c,_0xa5c57f++%(-0x1*0x2ad+-0x3a9*-0x1+-0x1*0xf8))?_0x17747a+=String['fromCharCode'](0x1b30+0x2f*0x4f+0x1459*-0x2&_0x4cd7ba>>(-(-0x151c*-0x1+0x26d5*0x1+-0x3bef)*_0xa5c57f&-0x1176+-0x18d2+0x2a4e)):-0xf62+0x59*0x68+-0x1*0x14c6){_0x3e8b0c=_0x4873d7['indexOf'](_0x3e8b0c);}for(var _0x1771e1=0x63+-0xc73*0x2+0xfb*0x19,_0xbf4583=_0x17747a['length'];_0x1771e1<_0xbf4583;_0x1771e1++){_0x10568d+='%'+('00'+_0x17747a['charCodeAt'](_0x1771e1)['toString'](-0x68*0x40+-0x1357*-0x1+0x1*0x6b9))['slice'](-(0x1d24+-0x2424+0x702));}return decodeURIComponent(_0x10568d);};_0x3c40['kiifxr']=_0x5220b1,_0x3c40['MhkPKs']={},_0x3c40['WQyXMw']=!![];}var _0x5a5a3b=_0x258745[0x20b+0x1*-0x167e+0x5*0x417],_0x3b3f91=_0x51105d+_0x5a5a3b,_0x393720=_0x3c40['MhkPKs'][_0x3b3f91];return!_0x393720?(_0x126af9=_0x3c40['kiifxr'](_0x126af9),_0x3c40['MhkPKs'][_0x3b3f91]=_0x126af9):_0x126af9=_0x393720,_0x126af9;}function _0x3b3b(){var _0x1ec3f9=['ndKYrgHAtvrI','mJG3otbwtM1PzLa','mtuWoxbzEuHmsq','ywDLBNrF','mZa2nMjQAKjSyq','mta0mMjVAMPWAG','ndi3nZm3t1PvyKLz','mZKYoteYuufusfn1','mZe1DwftweDg','nhvbANbzzW','ndy3ntGWr09PtuXT','mtCWodnjBM1NvuO','ntG4wLfUsxjQ'];_0x3b3b=function(){return _0x1ec3f9;};return _0x3b3b();}export function generateAgentId(){var _0x4d544b={_0x1ecb92:0x259,_0x45f3f5:0x25f},_0x4917c9={_0x86f511:0x370};function _0xd72f5a(_0x1ddf2b,_0x26ebaa){return _0x3c40(_0x26ebaa- -_0x4917c9._0x86f511,_0x1ddf2b);}return _0xd72f5a(-_0x4d544b._0x1ecb92,-_0x4d544b._0x45f3f5)+nanoid(-0x3*0x499+0x2394+0x15c1*-0x1);}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specops",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"bin",
|
|
7
7
|
".opencode",
|
|
8
8
|
"commands",
|
|
9
|
+
"skills",
|
|
9
10
|
"scripts/postinstall.mjs",
|
|
10
11
|
"README.md"
|
|
11
12
|
],
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
"specops": "./bin/specops.js"
|
|
25
26
|
},
|
|
26
27
|
"scripts": {
|
|
27
|
-
"build": "tsc && node scripts/obfuscate.js",
|
|
28
|
+
"build": "tsc || true && node scripts/obfuscate.js",
|
|
28
29
|
"build:clean": "rm -rf dist",
|
|
29
30
|
"dev": "tsx src/cli.ts",
|
|
30
31
|
"test": "vitest run",
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitor-search
|
|
3
|
+
description: "竞品搜索 Skill — 根据产品关键词进行多源、多轮次搜索,确保信息收集全面。自动拆分关键词,中英文双语搜索,聚合去重。触发词:'搜索竞品'、'竞品分析'、'找竞品'、'competitor search'。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 竞品搜索 Skill
|
|
7
|
+
|
|
8
|
+
<role>
|
|
9
|
+
你是一个竞品搜索专家。你的工作是接收产品关键词或描述,拆分成多组搜索词,通过多个搜索渠道进行多轮次搜索,确保竞品信息收集的全面性。
|
|
10
|
+
</role>
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 核心原则
|
|
15
|
+
|
|
16
|
+
1. **多关键词拆分** — 不要只用一个关键词搜索,拆分为 3-5 组不同角度的关键词
|
|
17
|
+
2. **中英文双语** — 中文关键词自动翻译为英文再搜一轮
|
|
18
|
+
3. **多渠道搜索** — Google 搜索 + GitHub 搜索 + 功能点搜索 API
|
|
19
|
+
4. **多轮次保证** — 每个关键词组至少搜索 2 轮(不同搜索引擎/不同参数)
|
|
20
|
+
5. **聚合去重** — 所有结果汇总后去重排序
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 搜索流程
|
|
25
|
+
|
|
26
|
+
### 第一步:关键词拆分
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
输入: "看板管理工具"
|
|
30
|
+
|
|
31
|
+
拆分结果:
|
|
32
|
+
中文关键词组:
|
|
33
|
+
- "看板管理工具"
|
|
34
|
+
- "项目管理看板"
|
|
35
|
+
- "任务看板 开源"
|
|
36
|
+
- "敏捷看板 工具"
|
|
37
|
+
- "kanban board"
|
|
38
|
+
|
|
39
|
+
英文关键词组(自动翻译+同义词扩展):
|
|
40
|
+
- "kanban board tool"
|
|
41
|
+
- "project management kanban"
|
|
42
|
+
- "task board open source"
|
|
43
|
+
- "agile kanban software"
|
|
44
|
+
- "trello alternative open source"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 第二步:多渠道搜索
|
|
48
|
+
|
|
49
|
+
对每组关键词,通过以下渠道搜索:
|
|
50
|
+
|
|
51
|
+
#### 2a. Web 搜索
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
使用 web_search 或 google_search 工具:
|
|
55
|
+
- 搜索每组关键词
|
|
56
|
+
- 提取搜索结果中的产品名称、URL、简介
|
|
57
|
+
- 中文搜索一轮 + 英文搜索一轮
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### 2b. GitHub 搜索
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
使用 gh CLI 搜索:
|
|
64
|
+
gh search repos "<关键词>" --sort stars --limit 20 --json name,url,description,stargazersCount,language
|
|
65
|
+
|
|
66
|
+
对每组关键词执行搜索,参数变化:
|
|
67
|
+
第1轮: --sort stars(按 star 数排序)
|
|
68
|
+
第2轮: --sort updated(按更新时间排序)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### 2c. 功能点搜索 API
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
curl -X POST http://115.190.19.198/api/feature/search \
|
|
75
|
+
-H "Content-Type: application/json" \
|
|
76
|
+
-d '{"query": "<关键词>", "top_k": 10, "min_stars": 100}'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
对每组关键词调用该 API。
|
|
80
|
+
|
|
81
|
+
### 第三步:结果聚合与去重
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
1. 合并所有搜索结果
|
|
85
|
+
2. 按 URL/仓库名 去重
|
|
86
|
+
3. 按 star 数 / 相关度排序
|
|
87
|
+
4. 分类:
|
|
88
|
+
- 直接竞品(功能高度重合)
|
|
89
|
+
- 间接竞品(部分功能重合)
|
|
90
|
+
- 可参考项目(技术方案可借鉴)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 第四步:竞品信息补充
|
|
94
|
+
|
|
95
|
+
对 Top 10 竞品,补充详细信息:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
对每个竞品:
|
|
99
|
+
- 访问官网/GitHub README 获取:
|
|
100
|
+
- 核心功能列表
|
|
101
|
+
- 技术栈
|
|
102
|
+
- 用户量/Star 数
|
|
103
|
+
- 最近更新时间
|
|
104
|
+
- 是否活跃维护
|
|
105
|
+
- 定价模式(免费/付费/开源)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 输出格式
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
# 竞品搜索报告
|
|
114
|
+
|
|
115
|
+
## 搜索参数
|
|
116
|
+
- 原始关键词: [用户输入]
|
|
117
|
+
- 拆分关键词组: [列表]
|
|
118
|
+
- 搜索渠道: Web搜索 / GitHub / 功能点API
|
|
119
|
+
- 搜索轮次: [N] 轮
|
|
120
|
+
- 结果总数: [N] 条(去重后 [M] 条)
|
|
121
|
+
|
|
122
|
+
## 直接竞品
|
|
123
|
+
|
|
124
|
+
| 排名 | 名称 | 类型 | Star/用户量 | 技术栈 | 核心特点 | 地址 |
|
|
125
|
+
|------|------|------|-----------|--------|---------|------|
|
|
126
|
+
| 1 | ... | SaaS/开源 | ... | ... | ... | ... |
|
|
127
|
+
|
|
128
|
+
## 间接竞品
|
|
129
|
+
|
|
130
|
+
| 名称 | 重合功能 | 差异点 | 地址 |
|
|
131
|
+
|------|---------|--------|------|
|
|
132
|
+
|
|
133
|
+
## 可参考开源项目
|
|
134
|
+
|
|
135
|
+
| 名称 | Star | 语言 | 可借鉴点 | 地址 |
|
|
136
|
+
|------|------|------|---------|------|
|
|
137
|
+
|
|
138
|
+
## 竞品功能对比矩阵
|
|
139
|
+
|
|
140
|
+
| 功能 | 竞品A | 竞品B | 竞品C | 我们 |
|
|
141
|
+
|------|-------|-------|-------|------|
|
|
142
|
+
| 功能1 | ✅ | ✅ | ❌ | ⏳ |
|
|
143
|
+
| 功能2 | ✅ | ❌ | ✅ | ⏳ |
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 状态更新
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
operation: "正在拆分搜索关键词..." skill: "competitor-search"
|
|
152
|
+
operation: "正在 Web 搜索(第N轮)..." skill: "competitor-search"
|
|
153
|
+
operation: "正在 GitHub 搜索..." skill: "competitor-search"
|
|
154
|
+
operation: "正在功能点 API 搜索..." skill: "competitor-search"
|
|
155
|
+
operation: "正在聚合去重搜索结果..." skill: "competitor-search"
|
|
156
|
+
operation: "正在补充竞品详细信息..." skill: "competitor-search"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 反模式
|
|
162
|
+
|
|
163
|
+
| 违规行为 | 严重性 |
|
|
164
|
+
|---------|--------|
|
|
165
|
+
| 只用一个关键词搜索 | 严重 |
|
|
166
|
+
| 只搜索一个渠道 | 严重 |
|
|
167
|
+
| 不做中英文双语搜索 | 高 |
|
|
168
|
+
| 不去重直接输出 | 中 |
|
|
169
|
+
| 竞品信息不完整(缺 star/技术栈/更新时间) | 中 |
|