ccjk 12.0.6 → 12.0.7
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/README.md +14 -0
- package/README.zh-CN.md +13 -0
- package/dist/chunks/api-cli.mjs +1 -1
- package/dist/chunks/ccjk-agents.mjs +3 -2
- package/dist/chunks/ccjk-all.mjs +129 -1764
- package/dist/chunks/ccjk-hooks.mjs +5 -4
- package/dist/chunks/ccjk-mcp.mjs +7 -6
- package/dist/chunks/ccjk-setup.mjs +3 -2
- package/dist/chunks/ccjk-skills.mjs +6 -5
- package/dist/chunks/ccr.mjs +6 -5
- package/dist/chunks/check-updates.mjs +8 -8
- package/dist/chunks/claude-code-config-manager.mjs +1 -1
- package/dist/chunks/claude-code-incremental-manager.mjs +2 -2
- package/dist/chunks/codex-config-switch.mjs +1 -1
- package/dist/chunks/codex-provider-manager.mjs +1 -1
- package/dist/chunks/config-switch.mjs +1 -1
- package/dist/chunks/config.mjs +1 -1
- package/dist/chunks/config2.mjs +1 -1
- package/dist/chunks/config3.mjs +1 -1
- package/dist/chunks/constants.mjs +33 -2
- package/dist/chunks/dashboard.mjs +115 -3
- package/dist/chunks/features.mjs +3 -3
- package/dist/chunks/init.mjs +108 -4
- package/dist/chunks/installer2.mjs +7 -7
- package/dist/chunks/manager.mjs +1048 -0
- package/dist/chunks/mcp-cli.mjs +1 -1
- package/dist/chunks/mcp.mjs +1 -1
- package/dist/chunks/menu.mjs +22 -1
- package/dist/chunks/notification.mjs +5 -2
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/quick-provider.mjs +1 -269
- package/dist/chunks/quick-setup.mjs +10 -10
- package/dist/chunks/remote.mjs +4 -1
- package/dist/chunks/simple-config.mjs +1 -1
- package/dist/chunks/skill.mjs +117 -9003
- package/dist/chunks/skill2.mjs +9003 -0
- package/dist/chunks/skills-sync.mjs +536 -55
- package/dist/chunks/skills.mjs +7 -1156
- package/dist/chunks/smart-defaults.mjs +87 -9
- package/dist/chunks/status.mjs +1 -1
- package/dist/chunks/uninstall.mjs +1 -1
- package/dist/chunks/update.mjs +2 -2
- package/dist/chunks/zero-config.mjs +6 -2
- package/dist/cli.mjs +3 -1
- package/dist/i18n/locales/en/cloud.json +40 -0
- package/dist/i18n/locales/zh-CN/cloud.json +40 -0
- package/dist/index.d.mts +2586 -2
- package/dist/index.d.ts +2586 -2
- package/dist/index.mjs +1340 -7
- package/dist/shared/ccjk.B364Fu0N.mjs +1819 -0
- package/dist/shared/ccjk.BtB1e5jm.mjs +171 -0
- package/dist/shared/{ccjk.BnpWvs9V.mjs → ccjk.BwfbSKN2.mjs} +1 -1
- package/dist/shared/{ccjk.AqnXPAzw.mjs → ccjk.C2jHOZVP.mjs} +1 -1
- package/dist/shared/{ccjk.BSYWk9ML.mjs → ccjk.Cjj8SVrn.mjs} +1 -1
- package/dist/shared/ccjk.D6ycHbak.mjs +270 -0
- package/dist/shared/ccjk.D8ZLYSZZ.mjs +299 -0
- package/dist/shared/{ccjk.s7OCVzdd.mjs → ccjk.DS7UESmF.mjs} +2 -1483
- package/dist/shared/{ccjk.BiCrMV5O.mjs → ccjk.DXRAZcix.mjs} +0 -28
- package/dist/shared/ccjk.UIvifqNE.mjs +1486 -0
- package/dist/shared/{ccjk.BDKUdmLk.mjs → ccjk.c-ETfBZ_.mjs} +208 -86
- package/package.json +5 -1
- package/templates/claude-code/common/settings.json +3 -1
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { i18n } from '../chunks/index5.mjs';
|
|
2
|
+
|
|
3
|
+
var CloudErrorCode = /* @__PURE__ */ ((CloudErrorCode2) => {
|
|
4
|
+
CloudErrorCode2["AUTH_ERROR"] = "AUTH_ERROR";
|
|
5
|
+
CloudErrorCode2["RATE_LIMIT"] = "RATE_LIMIT";
|
|
6
|
+
CloudErrorCode2["SCHEMA_MISMATCH"] = "SCHEMA_MISMATCH";
|
|
7
|
+
CloudErrorCode2["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
8
|
+
CloudErrorCode2["TIMEOUT"] = "TIMEOUT";
|
|
9
|
+
CloudErrorCode2["SERVER_ERROR"] = "SERVER_ERROR";
|
|
10
|
+
CloudErrorCode2["NOT_FOUND"] = "NOT_FOUND";
|
|
11
|
+
CloudErrorCode2["API_ERROR"] = "API_ERROR";
|
|
12
|
+
CloudErrorCode2["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
13
|
+
CloudErrorCode2["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
14
|
+
return CloudErrorCode2;
|
|
15
|
+
})(CloudErrorCode || {});
|
|
16
|
+
class CloudError extends Error {
|
|
17
|
+
/** Error code */
|
|
18
|
+
code;
|
|
19
|
+
/** HTTP status code if applicable */
|
|
20
|
+
statusCode;
|
|
21
|
+
/** Original error */
|
|
22
|
+
originalError;
|
|
23
|
+
/** Additional context */
|
|
24
|
+
context;
|
|
25
|
+
/** Retry attempt number */
|
|
26
|
+
retryAttempt;
|
|
27
|
+
/** Request ID */
|
|
28
|
+
requestId;
|
|
29
|
+
/** Whether this error is retryable */
|
|
30
|
+
isRetryable;
|
|
31
|
+
constructor(code, message, metadata) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = "CloudError";
|
|
34
|
+
this.code = code;
|
|
35
|
+
this.statusCode = metadata?.statusCode;
|
|
36
|
+
this.originalError = metadata?.originalError;
|
|
37
|
+
this.context = metadata?.context;
|
|
38
|
+
this.retryAttempt = metadata?.retryAttempt;
|
|
39
|
+
this.requestId = metadata?.requestId;
|
|
40
|
+
this.isRetryable = isRetryableErrorCode(code);
|
|
41
|
+
if (Error.captureStackTrace) {
|
|
42
|
+
Error.captureStackTrace(this, CloudError);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get localized error message
|
|
47
|
+
*/
|
|
48
|
+
getLocalizedMessage(language) {
|
|
49
|
+
const lang = language || i18n.language;
|
|
50
|
+
return i18n.t(`cloud:errors.${this.code}`, { lng: lang }) || this.message;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get user-friendly error message with context
|
|
54
|
+
*/
|
|
55
|
+
getUserMessage(language) {
|
|
56
|
+
const localizedMsg = this.getLocalizedMessage(language);
|
|
57
|
+
if (this.statusCode) {
|
|
58
|
+
return `${localizedMsg} (HTTP ${this.statusCode})`;
|
|
59
|
+
}
|
|
60
|
+
return localizedMsg;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Convert to JSON for logging
|
|
64
|
+
*/
|
|
65
|
+
toJSON() {
|
|
66
|
+
return {
|
|
67
|
+
name: this.name,
|
|
68
|
+
code: this.code,
|
|
69
|
+
message: this.message,
|
|
70
|
+
statusCode: this.statusCode,
|
|
71
|
+
isRetryable: this.isRetryable,
|
|
72
|
+
retryAttempt: this.retryAttempt,
|
|
73
|
+
requestId: this.requestId,
|
|
74
|
+
context: this.context,
|
|
75
|
+
stack: this.stack
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const CloudErrorFactory = {
|
|
80
|
+
/**
|
|
81
|
+
* Create error from HTTP response
|
|
82
|
+
*/
|
|
83
|
+
fromHttpStatus(statusCode, message, metadata) {
|
|
84
|
+
let code;
|
|
85
|
+
if (statusCode === 401 || statusCode === 403) {
|
|
86
|
+
code = "AUTH_ERROR" /* AUTH_ERROR */;
|
|
87
|
+
} else if (statusCode === 404) {
|
|
88
|
+
code = "NOT_FOUND" /* NOT_FOUND */;
|
|
89
|
+
} else if (statusCode === 429) {
|
|
90
|
+
code = "RATE_LIMIT" /* RATE_LIMIT */;
|
|
91
|
+
} else if (statusCode >= 500) {
|
|
92
|
+
code = "SERVER_ERROR" /* SERVER_ERROR */;
|
|
93
|
+
} else if (statusCode >= 400) {
|
|
94
|
+
code = "API_ERROR" /* API_ERROR */;
|
|
95
|
+
} else {
|
|
96
|
+
code = "UNKNOWN_ERROR" /* UNKNOWN_ERROR */;
|
|
97
|
+
}
|
|
98
|
+
return new CloudError(code, message, { ...metadata, statusCode });
|
|
99
|
+
},
|
|
100
|
+
/**
|
|
101
|
+
* Create authentication error
|
|
102
|
+
*/
|
|
103
|
+
auth(message, metadata) {
|
|
104
|
+
return new CloudError(
|
|
105
|
+
"AUTH_ERROR" /* AUTH_ERROR */,
|
|
106
|
+
message || "Authentication failed",
|
|
107
|
+
{ ...metadata, statusCode: metadata?.statusCode || 401 }
|
|
108
|
+
);
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Create rate limit error
|
|
112
|
+
*/
|
|
113
|
+
rateLimit(message, metadata) {
|
|
114
|
+
return new CloudError(
|
|
115
|
+
"RATE_LIMIT" /* RATE_LIMIT */,
|
|
116
|
+
message || "Rate limit exceeded",
|
|
117
|
+
{ ...metadata, statusCode: metadata?.statusCode || 429 }
|
|
118
|
+
);
|
|
119
|
+
},
|
|
120
|
+
/**
|
|
121
|
+
* Create schema mismatch error
|
|
122
|
+
*/
|
|
123
|
+
schemaMismatch(message, metadata) {
|
|
124
|
+
return new CloudError(
|
|
125
|
+
"SCHEMA_MISMATCH" /* SCHEMA_MISMATCH */,
|
|
126
|
+
message || "Response schema validation failed",
|
|
127
|
+
metadata
|
|
128
|
+
);
|
|
129
|
+
},
|
|
130
|
+
/**
|
|
131
|
+
* Create network error
|
|
132
|
+
*/
|
|
133
|
+
network(error, metadata) {
|
|
134
|
+
const message = error instanceof Error ? error.message : "Network connection failed";
|
|
135
|
+
return new CloudError(
|
|
136
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
137
|
+
message,
|
|
138
|
+
{ ...metadata, originalError: error }
|
|
139
|
+
);
|
|
140
|
+
},
|
|
141
|
+
/**
|
|
142
|
+
* Create timeout error
|
|
143
|
+
*/
|
|
144
|
+
timeout(timeoutMs, metadata) {
|
|
145
|
+
return new CloudError(
|
|
146
|
+
"TIMEOUT" /* TIMEOUT */,
|
|
147
|
+
`Request timeout after ${timeoutMs}ms`,
|
|
148
|
+
metadata
|
|
149
|
+
);
|
|
150
|
+
},
|
|
151
|
+
/**
|
|
152
|
+
* Create server error
|
|
153
|
+
*/
|
|
154
|
+
server(message, metadata) {
|
|
155
|
+
return new CloudError(
|
|
156
|
+
"SERVER_ERROR" /* SERVER_ERROR */,
|
|
157
|
+
message || "Server error occurred",
|
|
158
|
+
{ ...metadata, statusCode: metadata?.statusCode || 500 }
|
|
159
|
+
);
|
|
160
|
+
},
|
|
161
|
+
/**
|
|
162
|
+
* Create not found error
|
|
163
|
+
*/
|
|
164
|
+
notFound(resource, metadata) {
|
|
165
|
+
const message = resource ? `Resource not found: ${resource}` : "Resource not found";
|
|
166
|
+
return new CloudError(
|
|
167
|
+
"NOT_FOUND" /* NOT_FOUND */,
|
|
168
|
+
message,
|
|
169
|
+
{ ...metadata, statusCode: metadata?.statusCode || 404 }
|
|
170
|
+
);
|
|
171
|
+
},
|
|
172
|
+
/**
|
|
173
|
+
* Create validation error
|
|
174
|
+
*/
|
|
175
|
+
validation(message, metadata) {
|
|
176
|
+
return new CloudError(
|
|
177
|
+
"VALIDATION_ERROR" /* VALIDATION_ERROR */,
|
|
178
|
+
message,
|
|
179
|
+
{ ...metadata, statusCode: metadata?.statusCode || 400 }
|
|
180
|
+
);
|
|
181
|
+
},
|
|
182
|
+
/**
|
|
183
|
+
* Create unknown error
|
|
184
|
+
*/
|
|
185
|
+
unknown(error, metadata) {
|
|
186
|
+
const message = error instanceof Error ? error.message : "An unknown error occurred";
|
|
187
|
+
return new CloudError(
|
|
188
|
+
"UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
|
|
189
|
+
message,
|
|
190
|
+
{ ...metadata, originalError: error }
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
function isRetryableErrorCode(code) {
|
|
195
|
+
return [
|
|
196
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
197
|
+
"TIMEOUT" /* TIMEOUT */,
|
|
198
|
+
"SERVER_ERROR" /* SERVER_ERROR */,
|
|
199
|
+
"RATE_LIMIT" /* RATE_LIMIT */
|
|
200
|
+
].includes(code);
|
|
201
|
+
}
|
|
202
|
+
function isRetryableError(error) {
|
|
203
|
+
if (error instanceof CloudError) {
|
|
204
|
+
return error.isRetryable;
|
|
205
|
+
}
|
|
206
|
+
if (error instanceof Error) {
|
|
207
|
+
const message = error.message.toLowerCase();
|
|
208
|
+
return message.includes("network") || message.includes("connection") || message.includes("timeout") || message.includes("econnrefused") || message.includes("enotfound") || message.includes("etimedout");
|
|
209
|
+
}
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
function isAuthError(error) {
|
|
213
|
+
if (error instanceof CloudError) {
|
|
214
|
+
return error.code === "AUTH_ERROR" /* AUTH_ERROR */;
|
|
215
|
+
}
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
function isRateLimitError(error) {
|
|
219
|
+
if (error instanceof CloudError) {
|
|
220
|
+
return error.code === "RATE_LIMIT" /* RATE_LIMIT */;
|
|
221
|
+
}
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
function handleCloudError(error, context, language) {
|
|
225
|
+
if (error instanceof CloudError) {
|
|
226
|
+
return error;
|
|
227
|
+
}
|
|
228
|
+
let cloudError;
|
|
229
|
+
if (error instanceof Error) {
|
|
230
|
+
const message = error.message.toLowerCase();
|
|
231
|
+
if (message.includes("timeout") || message.includes("timed out")) {
|
|
232
|
+
cloudError = CloudErrorFactory.timeout(1e4, { originalError: error });
|
|
233
|
+
} else if (message.includes("econnrefused") || message.includes("enotfound") || message.includes("network")) {
|
|
234
|
+
cloudError = CloudErrorFactory.network(error);
|
|
235
|
+
} else if (message.includes("401") || message.includes("unauthorized")) {
|
|
236
|
+
cloudError = CloudErrorFactory.auth(error.message, { originalError: error });
|
|
237
|
+
} else if (message.includes("429") || message.includes("rate limit")) {
|
|
238
|
+
cloudError = CloudErrorFactory.rateLimit(error.message, { originalError: error });
|
|
239
|
+
} else if (message.includes("404") || message.includes("not found")) {
|
|
240
|
+
cloudError = CloudErrorFactory.notFound(void 0, { originalError: error });
|
|
241
|
+
} else {
|
|
242
|
+
cloudError = CloudErrorFactory.unknown(error);
|
|
243
|
+
}
|
|
244
|
+
} else {
|
|
245
|
+
cloudError = CloudErrorFactory.unknown(error);
|
|
246
|
+
}
|
|
247
|
+
if (context && !cloudError.context) {
|
|
248
|
+
return new CloudError(
|
|
249
|
+
cloudError.code,
|
|
250
|
+
cloudError.message,
|
|
251
|
+
{
|
|
252
|
+
statusCode: cloudError.statusCode,
|
|
253
|
+
originalError: cloudError.originalError,
|
|
254
|
+
context: { operation: context },
|
|
255
|
+
retryAttempt: cloudError.retryAttempt,
|
|
256
|
+
requestId: cloudError.requestId
|
|
257
|
+
}
|
|
258
|
+
);
|
|
259
|
+
} else if (context && cloudError.context) {
|
|
260
|
+
return new CloudError(
|
|
261
|
+
cloudError.code,
|
|
262
|
+
cloudError.message,
|
|
263
|
+
{
|
|
264
|
+
statusCode: cloudError.statusCode,
|
|
265
|
+
originalError: cloudError.originalError,
|
|
266
|
+
context: { ...cloudError.context, operation: context },
|
|
267
|
+
retryAttempt: cloudError.retryAttempt,
|
|
268
|
+
requestId: cloudError.requestId
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
return cloudError;
|
|
273
|
+
}
|
|
274
|
+
function getRetryDelay(error, attempt, config) {
|
|
275
|
+
const initialDelay = config?.initialDelay || 100;
|
|
276
|
+
const multiplier = config?.multiplier || 2;
|
|
277
|
+
const maxDelay = config?.maxDelay || 1e4;
|
|
278
|
+
if (error.code === "RATE_LIMIT" /* RATE_LIMIT */) {
|
|
279
|
+
return Math.min(initialDelay * 10 * multiplier ** attempt, maxDelay);
|
|
280
|
+
}
|
|
281
|
+
return Math.min(initialDelay * multiplier ** attempt, maxDelay);
|
|
282
|
+
}
|
|
283
|
+
function formatErrorForLogging(error) {
|
|
284
|
+
if (error instanceof CloudError) {
|
|
285
|
+
return error.toJSON();
|
|
286
|
+
}
|
|
287
|
+
if (error instanceof Error) {
|
|
288
|
+
return {
|
|
289
|
+
name: error.name,
|
|
290
|
+
message: error.message,
|
|
291
|
+
stack: error.stack
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
error: String(error)
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export { CloudError as C, CloudErrorCode as a, CloudErrorFactory as b, isRateLimitError as c, isRetryableError as d, isRetryableErrorCode as e, formatErrorForLogging as f, getRetryDelay as g, handleCloudError as h, isAuthError as i };
|