ccjk 12.0.0 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/chunks/agent-teams.mjs +17 -18
  2. package/dist/chunks/agent.mjs +105 -102
  3. package/dist/chunks/agents.mjs +87 -77
  4. package/dist/chunks/api-cli.mjs +41 -27
  5. package/dist/chunks/api-providers.mjs +2 -4
  6. package/dist/chunks/api.mjs +22 -11
  7. package/dist/chunks/auto-bootstrap.mjs +3 -5
  8. package/dist/chunks/auto-init.mjs +3 -4
  9. package/dist/chunks/auto-updater.mjs +103 -91
  10. package/dist/chunks/banner.mjs +41 -42
  11. package/dist/chunks/boost.mjs +30 -31
  12. package/dist/chunks/ccjk-agents.mjs +6 -9
  13. package/dist/chunks/ccjk-all.mjs +703 -85
  14. package/dist/chunks/ccjk-config.mjs +6 -6
  15. package/dist/chunks/ccjk-hooks.mjs +20 -9
  16. package/dist/chunks/ccjk-mcp.mjs +64 -52
  17. package/dist/chunks/ccjk-setup.mjs +35 -25
  18. package/dist/chunks/ccjk-skills.mjs +51 -41
  19. package/dist/chunks/ccr.mjs +42 -32
  20. package/dist/chunks/ccu.mjs +16 -12
  21. package/dist/chunks/check-updates.mjs +30 -19
  22. package/dist/chunks/claude-code-config-manager.mjs +25 -10
  23. package/dist/chunks/claude-code-incremental-manager.mjs +65 -51
  24. package/dist/chunks/claude-config.mjs +2 -2
  25. package/dist/chunks/claude-wrapper.mjs +9 -6
  26. package/dist/chunks/cleanup-migration.mjs +1 -1
  27. package/dist/chunks/cli-hook.mjs +10 -3
  28. package/dist/chunks/cloud-sync.mjs +1 -1
  29. package/dist/chunks/codex-config-switch.mjs +58 -45
  30. package/dist/chunks/codex-provider-manager.mjs +29 -16
  31. package/dist/chunks/codex-uninstaller.mjs +5 -6
  32. package/dist/chunks/codex.mjs +89 -89
  33. package/dist/chunks/commands.mjs +28 -29
  34. package/dist/chunks/commands2.mjs +4 -3
  35. package/dist/chunks/commit.mjs +42 -23
  36. package/dist/chunks/completion.mjs +46 -47
  37. package/dist/chunks/config-consolidator.mjs +12 -13
  38. package/dist/chunks/config-switch.mjs +66 -53
  39. package/dist/chunks/config.mjs +10 -10
  40. package/dist/chunks/config2.mjs +53 -42
  41. package/dist/chunks/config3.mjs +107 -93
  42. package/dist/chunks/constants.mjs +2 -4
  43. package/dist/chunks/context-loader.mjs +5 -4
  44. package/dist/chunks/context.mjs +77 -76
  45. package/dist/chunks/convoy-manager.mjs +4 -4
  46. package/dist/chunks/dashboard.mjs +28 -29
  47. package/dist/chunks/doctor.mjs +68 -54
  48. package/dist/chunks/evolution.mjs +37 -38
  49. package/dist/chunks/features.mjs +103 -92
  50. package/dist/chunks/fs-operations.mjs +1 -1
  51. package/dist/chunks/health-alerts.mjs +1 -1
  52. package/dist/chunks/health-check.mjs +1 -1
  53. package/dist/chunks/help.mjs +117 -116
  54. package/dist/chunks/hook-installer.mjs +3 -2
  55. package/dist/chunks/index.mjs +20 -6
  56. package/dist/chunks/index10.mjs +1171 -0
  57. package/dist/chunks/index11.mjs +1008 -0
  58. package/dist/chunks/index12.mjs +193 -0
  59. package/dist/chunks/index13.mjs +218 -0
  60. package/dist/chunks/index14.mjs +663 -0
  61. package/dist/chunks/index2.mjs +19 -10
  62. package/dist/chunks/index3.mjs +19079 -164
  63. package/dist/chunks/index4.mjs +8 -1171
  64. package/dist/chunks/index5.mjs +7479 -884
  65. package/dist/chunks/index6.mjs +160 -184
  66. package/dist/chunks/index7.mjs +3573 -653
  67. package/dist/chunks/index8.mjs +19 -0
  68. package/dist/chunks/index9.mjs +616 -0
  69. package/dist/chunks/init.mjs +173 -173
  70. package/dist/chunks/installer.mjs +92 -82
  71. package/dist/chunks/installer2.mjs +3 -2
  72. package/dist/chunks/interview.mjs +118 -107
  73. package/dist/chunks/json-config.mjs +3 -2
  74. package/dist/chunks/linux.mjs +3863 -0
  75. package/dist/chunks/macos.mjs +69 -0
  76. package/dist/chunks/main.mjs +635 -0
  77. package/dist/chunks/marketplace.mjs +69 -66
  78. package/dist/chunks/mcp-cli.mjs +61 -48
  79. package/dist/chunks/mcp.mjs +140 -127
  80. package/dist/chunks/menu.mjs +85 -85
  81. package/dist/chunks/metrics-display.mjs +41 -40
  82. package/dist/chunks/migrator.mjs +4 -5
  83. package/dist/chunks/monitor.mjs +95 -95
  84. package/dist/chunks/notification.mjs +151 -141
  85. package/dist/chunks/onboarding.mjs +26 -15
  86. package/dist/chunks/package.mjs +1 -1
  87. package/dist/chunks/paradigm.mjs +24 -23
  88. package/dist/chunks/permission-manager.mjs +10 -11
  89. package/dist/chunks/permissions.mjs +72 -57
  90. package/dist/chunks/persistence-manager.mjs +97 -84
  91. package/dist/chunks/persistence.mjs +1 -1
  92. package/dist/chunks/platform.mjs +29 -29
  93. package/dist/chunks/plugin.mjs +104 -105
  94. package/dist/chunks/prompts.mjs +36 -25
  95. package/dist/chunks/providers.mjs +68 -69
  96. package/dist/chunks/quick-actions.mjs +71 -72
  97. package/dist/chunks/quick-provider.mjs +56 -40
  98. package/dist/chunks/quick-setup.mjs +71 -60
  99. package/dist/chunks/remote.mjs +21 -12
  100. package/dist/chunks/session.mjs +116 -103
  101. package/dist/chunks/sessions.mjs +29 -28
  102. package/dist/chunks/silent-updater.mjs +8 -10
  103. package/dist/chunks/simple-config.mjs +13 -10
  104. package/dist/chunks/skill.mjs +8560 -103
  105. package/dist/chunks/skills-sync.mjs +5212 -79
  106. package/dist/chunks/skills.mjs +105 -94
  107. package/dist/chunks/slash-commands.mjs +36 -37
  108. package/dist/chunks/smart-defaults.mjs +7 -3
  109. package/dist/chunks/smart-guide.mjs +1 -1
  110. package/dist/chunks/startup.mjs +2 -4
  111. package/dist/chunks/stats.mjs +41 -42
  112. package/dist/chunks/status.mjs +49 -50
  113. package/dist/chunks/team.mjs +24 -12
  114. package/dist/chunks/thinking.mjs +74 -63
  115. package/dist/chunks/trace.mjs +20 -19
  116. package/dist/chunks/uninstall.mjs +69 -56
  117. package/dist/chunks/update.mjs +39 -28
  118. package/dist/chunks/upgrade-manager.mjs +24 -18
  119. package/dist/chunks/version-checker.mjs +45 -41
  120. package/dist/chunks/vim.mjs +81 -69
  121. package/dist/chunks/windows.mjs +14 -0
  122. package/dist/chunks/workflows.mjs +15 -15
  123. package/dist/chunks/wsl.mjs +129 -0
  124. package/dist/chunks/zero-config.mjs +45 -34
  125. package/dist/cli.mjs +20 -20
  126. package/dist/index.mjs +41 -31
  127. package/dist/shared/ccjk.BAGoDD49.mjs +36 -0
  128. package/dist/shared/ccjk.BBtCGd_g.mjs +899 -0
  129. package/dist/shared/{ccjk.CGcy7cNM.mjs → ccjk.BDKUdmLk.mjs} +1 -1
  130. package/dist/shared/{ccjk.DtMBiwVG.mjs → ccjk.BFxsJM0k.mjs} +1 -1
  131. package/dist/shared/{ccjk.j4uut26D.mjs → ccjk.BIxuVL3_.mjs} +5 -5
  132. package/dist/shared/ccjk.BRZ9ww8S.mjs +142 -0
  133. package/dist/shared/{ccjk.CN0edl87.mjs → ccjk.BSYWk9ML.mjs} +1 -1
  134. package/dist/shared/{ccjk.Dk1HDseQ.mjs → ccjk.BnpWvs9V.mjs} +75 -75
  135. package/dist/shared/ccjk.BoApaI4j.mjs +28 -0
  136. package/dist/shared/{ccjk.DKojSRzw.mjs → ccjk.BrPUmTqm.mjs} +1 -1
  137. package/dist/shared/{ccjk.C10pepYx.mjs → ccjk.BxSmJ8B7.mjs} +1 -1
  138. package/dist/shared/ccjk.Bx_rmYfN.mjs +69 -0
  139. package/dist/shared/ccjk.COweQ1RR.mjs +5 -0
  140. package/dist/shared/{ccjk.BN90X6oc.mjs → ccjk.CePkJq2S.mjs} +17 -17
  141. package/dist/shared/{ccjk.Bvoex4TZ.mjs → ccjk.CfKKcvWy.mjs} +1 -1
  142. package/dist/shared/ccjk.Cjgrln_h.mjs +297 -0
  143. package/dist/shared/ccjk.CxpGa6MC.mjs +2724 -0
  144. package/dist/shared/{ccjk.DfwJOEok.mjs → ccjk.D5MFQT7w.mjs} +1 -1
  145. package/dist/shared/{ccjk.cChAaGgT.mjs → ccjk.DG_o24cZ.mjs} +6 -6
  146. package/dist/shared/{ccjk.bhFAMRyc.mjs → ccjk.DLLw-h4Y.mjs} +32 -32
  147. package/dist/shared/ccjk.DOwtZMk8.mjs +4019 -0
  148. package/dist/shared/{ccjk.BsXQugfY.mjs → ccjk.DTdjs-qK.mjs} +13 -13
  149. package/dist/shared/{ccjk.Bdhyg3X-.mjs → ccjk.DsYaCCx4.mjs} +1 -1
  150. package/dist/shared/ccjk.KfSWcGlE.mjs +38 -0
  151. package/dist/shared/ccjk.RyizuzOI.mjs +21 -0
  152. package/dist/shared/{ccjk.h7_W-wTs.mjs → ccjk.SPoXMvZD.mjs} +1 -1
  153. package/dist/shared/ccjk.T_cX87dY.mjs +15 -0
  154. package/dist/shared/{ccjk.CrB6OYHv.mjs → ccjk._dESH4Rk.mjs} +2 -2
  155. package/dist/shared/ccjk.bQ7Dh1g4.mjs +249 -0
  156. package/dist/shared/{ccjk.CBhIZiPz.mjs → ccjk.hoqrwWdN.mjs} +1 -1
  157. package/dist/shared/{ccjk.BNwRnWYx.mjs → ccjk.s7OCVzdd.mjs} +1230 -33
  158. package/dist/shared/{ccjk.BOIUTf5z.mjs → ccjk.waa2ikKJ.mjs} +8 -9
  159. package/package.json +31 -30
  160. package/dist/shared/ccjk.DHbrGcgg.mjs +0 -13
  161. package/dist/shared/ccjk.DntgA8fQ.mjs +0 -42
@@ -1,39 +1,657 @@
1
- import ansis from 'ansis';
2
- import consola from 'consola';
3
- import nodeFs__default, { readFileSync, promises } from 'node:fs';
1
+ import a from './index2.mjs';
2
+ import { c as consola, o as ofetch, a as analyzeProject } from '../shared/ccjk.s7OCVzdd.mjs';
3
+ import fs__default, { readFileSync, promises } from 'node:fs';
4
4
  import path__default, { dirname, join } from 'node:path';
5
- import { hash } from 'ohash';
6
5
  import { fileURLToPath } from 'node:url';
7
- import { ofetch } from 'ofetch';
8
6
  import { randomUUID, createHash } from 'node:crypto';
9
- import { i18n, ensureI18nInitialized } from './index3.mjs';
10
- import { a as analyzeProject } from '../shared/ccjk.BNwRnWYx.mjs';
7
+ import { i18n, ensureI18nInitialized } from './index5.mjs';
11
8
  import { ccjkAgents } from './ccjk-agents.mjs';
12
9
  import { ccjkHooks } from './ccjk-hooks.mjs';
13
10
  import { ccjkMcp } from './ccjk-mcp.mjs';
14
11
  import { ccjkSkills } from './ccjk-skills.mjs';
15
12
  import { a as extractString } from '../shared/ccjk.AqnXPAzw.mjs';
16
- import 'node:process';
17
- import 'i18next';
18
- import 'i18next-fs-backend';
19
- import 'pathe';
13
+ import '../shared/ccjk.BAGoDD49.mjs';
14
+ import './index8.mjs';
15
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
20
16
  import 'tinyglobby';
21
- import 'smol-toml';
17
+ import '../shared/ccjk.BBtCGd_g.mjs';
18
+ import 'node:process';
22
19
  import './constants.mjs';
23
20
  import 'node:os';
24
- import '../shared/ccjk.Bvoex4TZ.mjs';
21
+ import '../shared/ccjk.CfKKcvWy.mjs';
25
22
  import 'node:perf_hooks';
26
- import 'inquirer';
27
- import 'node:child_process';
23
+ import './index3.mjs';
24
+ import 'node:readline';
25
+ import 'stream';
26
+ import 'node:tty';
27
+ import 'node:async_hooks';
28
+ import '../shared/ccjk.Cjgrln_h.mjs';
28
29
  import 'node:util';
30
+ import 'tty';
31
+ import 'fs';
32
+ import 'child_process';
33
+ import 'buffer';
34
+ import 'string_decoder';
35
+ import 'node:child_process';
29
36
  import './claude-config.mjs';
30
37
  import './json-config.mjs';
31
- import 'dayjs';
38
+ import '../shared/ccjk.RyizuzOI.mjs';
32
39
  import './fs-operations.mjs';
33
40
  import 'node:fs/promises';
34
41
  import './platform.mjs';
35
- import 'tinyexec';
36
- import '../shared/ccjk.Bdhyg3X-.mjs';
42
+ import './main.mjs';
43
+ import 'module';
44
+ import 'node:stream';
45
+ import '../shared/ccjk.DsYaCCx4.mjs';
46
+
47
+ const defaults = Object.freeze({
48
+ ignoreUnknown: false,
49
+ respectType: false,
50
+ respectFunctionNames: false,
51
+ respectFunctionProperties: false,
52
+ unorderedObjects: true,
53
+ unorderedArrays: false,
54
+ unorderedSets: false,
55
+ excludeKeys: void 0,
56
+ excludeValues: void 0,
57
+ replacer: void 0
58
+ });
59
+ function objectHash(object, options) {
60
+ if (options) {
61
+ options = { ...defaults, ...options };
62
+ } else {
63
+ options = defaults;
64
+ }
65
+ const hasher = createHasher(options);
66
+ hasher.dispatch(object);
67
+ return hasher.toString();
68
+ }
69
+ const defaultPrototypesKeys = Object.freeze([
70
+ "prototype",
71
+ "__proto__",
72
+ "constructor"
73
+ ]);
74
+ function createHasher(options) {
75
+ let buff = "";
76
+ let context = /* @__PURE__ */ new Map();
77
+ const write = (str) => {
78
+ buff += str;
79
+ };
80
+ return {
81
+ toString() {
82
+ return buff;
83
+ },
84
+ getContext() {
85
+ return context;
86
+ },
87
+ dispatch(value) {
88
+ if (options.replacer) {
89
+ value = options.replacer(value);
90
+ }
91
+ const type = value === null ? "null" : typeof value;
92
+ return this[type](value);
93
+ },
94
+ object(object) {
95
+ if (object && typeof object.toJSON === "function") {
96
+ return this.object(object.toJSON());
97
+ }
98
+ const objString = Object.prototype.toString.call(object);
99
+ let objType = "";
100
+ const objectLength = objString.length;
101
+ if (objectLength < 10) {
102
+ objType = "unknown:[" + objString + "]";
103
+ } else {
104
+ objType = objString.slice(8, objectLength - 1);
105
+ }
106
+ objType = objType.toLowerCase();
107
+ let objectNumber = null;
108
+ if ((objectNumber = context.get(object)) === void 0) {
109
+ context.set(object, context.size);
110
+ } else {
111
+ return this.dispatch("[CIRCULAR:" + objectNumber + "]");
112
+ }
113
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(object)) {
114
+ write("buffer:");
115
+ return write(object.toString("utf8"));
116
+ }
117
+ if (objType !== "object" && objType !== "function" && objType !== "asyncfunction") {
118
+ if (this[objType]) {
119
+ this[objType](object);
120
+ } else if (!options.ignoreUnknown) {
121
+ this.unkown(object, objType);
122
+ }
123
+ } else {
124
+ let keys = Object.keys(object);
125
+ if (options.unorderedObjects) {
126
+ keys = keys.sort();
127
+ }
128
+ let extraKeys = [];
129
+ if (options.respectType !== false && !isNativeFunction(object)) {
130
+ extraKeys = defaultPrototypesKeys;
131
+ }
132
+ if (options.excludeKeys) {
133
+ keys = keys.filter((key) => {
134
+ return !options.excludeKeys(key);
135
+ });
136
+ extraKeys = extraKeys.filter((key) => {
137
+ return !options.excludeKeys(key);
138
+ });
139
+ }
140
+ write("object:" + (keys.length + extraKeys.length) + ":");
141
+ const dispatchForKey = (key) => {
142
+ this.dispatch(key);
143
+ write(":");
144
+ if (!options.excludeValues) {
145
+ this.dispatch(object[key]);
146
+ }
147
+ write(",");
148
+ };
149
+ for (const key of keys) {
150
+ dispatchForKey(key);
151
+ }
152
+ for (const key of extraKeys) {
153
+ dispatchForKey(key);
154
+ }
155
+ }
156
+ },
157
+ array(arr, unordered) {
158
+ unordered = unordered === void 0 ? options.unorderedArrays !== false : unordered;
159
+ write("array:" + arr.length + ":");
160
+ if (!unordered || arr.length <= 1) {
161
+ for (const entry of arr) {
162
+ this.dispatch(entry);
163
+ }
164
+ return;
165
+ }
166
+ const contextAdditions = /* @__PURE__ */ new Map();
167
+ const entries = arr.map((entry) => {
168
+ const hasher = createHasher(options);
169
+ hasher.dispatch(entry);
170
+ for (const [key, value] of hasher.getContext()) {
171
+ contextAdditions.set(key, value);
172
+ }
173
+ return hasher.toString();
174
+ });
175
+ context = contextAdditions;
176
+ entries.sort();
177
+ return this.array(entries, false);
178
+ },
179
+ date(date) {
180
+ return write("date:" + date.toJSON());
181
+ },
182
+ symbol(sym) {
183
+ return write("symbol:" + sym.toString());
184
+ },
185
+ unkown(value, type) {
186
+ write(type);
187
+ if (!value) {
188
+ return;
189
+ }
190
+ write(":");
191
+ if (value && typeof value.entries === "function") {
192
+ return this.array(
193
+ Array.from(value.entries()),
194
+ true
195
+ /* ordered */
196
+ );
197
+ }
198
+ },
199
+ error(err) {
200
+ return write("error:" + err.toString());
201
+ },
202
+ boolean(bool) {
203
+ return write("bool:" + bool);
204
+ },
205
+ string(string) {
206
+ write("string:" + string.length + ":");
207
+ write(string);
208
+ },
209
+ function(fn) {
210
+ write("fn:");
211
+ if (isNativeFunction(fn)) {
212
+ this.dispatch("[native]");
213
+ } else {
214
+ this.dispatch(fn.toString());
215
+ }
216
+ if (options.respectFunctionNames !== false) {
217
+ this.dispatch("function-name:" + String(fn.name));
218
+ }
219
+ if (options.respectFunctionProperties) {
220
+ this.object(fn);
221
+ }
222
+ },
223
+ number(number) {
224
+ return write("number:" + number);
225
+ },
226
+ xml(xml) {
227
+ return write("xml:" + xml.toString());
228
+ },
229
+ null() {
230
+ return write("Null");
231
+ },
232
+ undefined() {
233
+ return write("Undefined");
234
+ },
235
+ regexp(regex) {
236
+ return write("regex:" + regex.toString());
237
+ },
238
+ uint8array(arr) {
239
+ write("uint8array:");
240
+ return this.dispatch(Array.prototype.slice.call(arr));
241
+ },
242
+ uint8clampedarray(arr) {
243
+ write("uint8clampedarray:");
244
+ return this.dispatch(Array.prototype.slice.call(arr));
245
+ },
246
+ int8array(arr) {
247
+ write("int8array:");
248
+ return this.dispatch(Array.prototype.slice.call(arr));
249
+ },
250
+ uint16array(arr) {
251
+ write("uint16array:");
252
+ return this.dispatch(Array.prototype.slice.call(arr));
253
+ },
254
+ int16array(arr) {
255
+ write("int16array:");
256
+ return this.dispatch(Array.prototype.slice.call(arr));
257
+ },
258
+ uint32array(arr) {
259
+ write("uint32array:");
260
+ return this.dispatch(Array.prototype.slice.call(arr));
261
+ },
262
+ int32array(arr) {
263
+ write("int32array:");
264
+ return this.dispatch(Array.prototype.slice.call(arr));
265
+ },
266
+ float32array(arr) {
267
+ write("float32array:");
268
+ return this.dispatch(Array.prototype.slice.call(arr));
269
+ },
270
+ float64array(arr) {
271
+ write("float64array:");
272
+ return this.dispatch(Array.prototype.slice.call(arr));
273
+ },
274
+ arraybuffer(arr) {
275
+ write("arraybuffer:");
276
+ return this.dispatch(new Uint8Array(arr));
277
+ },
278
+ url(url) {
279
+ return write("url:" + url.toString());
280
+ },
281
+ map(map) {
282
+ write("map:");
283
+ const arr = [...map];
284
+ return this.array(arr, options.unorderedSets !== false);
285
+ },
286
+ set(set) {
287
+ write("set:");
288
+ const arr = [...set];
289
+ return this.array(arr, options.unorderedSets !== false);
290
+ },
291
+ file(file) {
292
+ write("file:");
293
+ return this.dispatch([file.name, file.size, file.type, file.lastModfied]);
294
+ },
295
+ blob() {
296
+ if (options.ignoreUnknown) {
297
+ return write("[blob]");
298
+ }
299
+ throw new Error(
300
+ 'Hashing Blob objects is currently not supported\nUse "options.replacer" or "options.ignoreUnknown"\n'
301
+ );
302
+ },
303
+ domwindow() {
304
+ return write("domwindow");
305
+ },
306
+ bigint(number) {
307
+ return write("bigint:" + number.toString());
308
+ },
309
+ /* Node.js standard native objects */
310
+ process() {
311
+ return write("process");
312
+ },
313
+ timer() {
314
+ return write("timer");
315
+ },
316
+ pipe() {
317
+ return write("pipe");
318
+ },
319
+ tcp() {
320
+ return write("tcp");
321
+ },
322
+ udp() {
323
+ return write("udp");
324
+ },
325
+ tty() {
326
+ return write("tty");
327
+ },
328
+ statwatcher() {
329
+ return write("statwatcher");
330
+ },
331
+ securecontext() {
332
+ return write("securecontext");
333
+ },
334
+ connection() {
335
+ return write("connection");
336
+ },
337
+ zlib() {
338
+ return write("zlib");
339
+ },
340
+ context() {
341
+ return write("context");
342
+ },
343
+ nodescript() {
344
+ return write("nodescript");
345
+ },
346
+ httpparser() {
347
+ return write("httpparser");
348
+ },
349
+ dataview() {
350
+ return write("dataview");
351
+ },
352
+ signal() {
353
+ return write("signal");
354
+ },
355
+ fsevent() {
356
+ return write("fsevent");
357
+ },
358
+ tlswrap() {
359
+ return write("tlswrap");
360
+ }
361
+ };
362
+ }
363
+ const nativeFunc = "[native code] }";
364
+ const nativeFuncLength = nativeFunc.length;
365
+ function isNativeFunction(f) {
366
+ if (typeof f !== "function") {
367
+ return false;
368
+ }
369
+ return Function.prototype.toString.call(f).slice(-nativeFuncLength) === nativeFunc;
370
+ }
371
+
372
+ class WordArray {
373
+ words;
374
+ sigBytes;
375
+ constructor(words, sigBytes) {
376
+ words = this.words = words || [];
377
+ this.sigBytes = sigBytes === void 0 ? words.length * 4 : sigBytes;
378
+ }
379
+ toString(encoder) {
380
+ return (encoder || Hex).stringify(this);
381
+ }
382
+ concat(wordArray) {
383
+ this.clamp();
384
+ if (this.sigBytes % 4) {
385
+ for (let i = 0; i < wordArray.sigBytes; i++) {
386
+ const thatByte = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
387
+ this.words[this.sigBytes + i >>> 2] |= thatByte << 24 - (this.sigBytes + i) % 4 * 8;
388
+ }
389
+ } else {
390
+ for (let j = 0; j < wordArray.sigBytes; j += 4) {
391
+ this.words[this.sigBytes + j >>> 2] = wordArray.words[j >>> 2];
392
+ }
393
+ }
394
+ this.sigBytes += wordArray.sigBytes;
395
+ return this;
396
+ }
397
+ clamp() {
398
+ this.words[this.sigBytes >>> 2] &= 4294967295 << 32 - this.sigBytes % 4 * 8;
399
+ this.words.length = Math.ceil(this.sigBytes / 4);
400
+ }
401
+ clone() {
402
+ return new WordArray([...this.words]);
403
+ }
404
+ }
405
+ const Hex = {
406
+ stringify(wordArray) {
407
+ const hexChars = [];
408
+ for (let i = 0; i < wordArray.sigBytes; i++) {
409
+ const bite = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
410
+ hexChars.push((bite >>> 4).toString(16), (bite & 15).toString(16));
411
+ }
412
+ return hexChars.join("");
413
+ }
414
+ };
415
+ const Base64 = {
416
+ stringify(wordArray) {
417
+ const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
418
+ const base64Chars = [];
419
+ for (let i = 0; i < wordArray.sigBytes; i += 3) {
420
+ const byte1 = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
421
+ const byte2 = wordArray.words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
422
+ const byte3 = wordArray.words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
423
+ const triplet = byte1 << 16 | byte2 << 8 | byte3;
424
+ for (let j = 0; j < 4 && i * 8 + j * 6 < wordArray.sigBytes * 8; j++) {
425
+ base64Chars.push(keyStr.charAt(triplet >>> 6 * (3 - j) & 63));
426
+ }
427
+ }
428
+ return base64Chars.join("");
429
+ }
430
+ };
431
+ const Latin1 = {
432
+ parse(latin1Str) {
433
+ const latin1StrLength = latin1Str.length;
434
+ const words = [];
435
+ for (let i = 0; i < latin1StrLength; i++) {
436
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8;
437
+ }
438
+ return new WordArray(words, latin1StrLength);
439
+ }
440
+ };
441
+ const Utf8 = {
442
+ parse(utf8Str) {
443
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
444
+ }
445
+ };
446
+ class BufferedBlockAlgorithm {
447
+ _data = new WordArray();
448
+ _nDataBytes = 0;
449
+ _minBufferSize = 0;
450
+ blockSize = 512 / 32;
451
+ reset() {
452
+ this._data = new WordArray();
453
+ this._nDataBytes = 0;
454
+ }
455
+ _append(data) {
456
+ if (typeof data === "string") {
457
+ data = Utf8.parse(data);
458
+ }
459
+ this._data.concat(data);
460
+ this._nDataBytes += data.sigBytes;
461
+ }
462
+ _doProcessBlock(_dataWords, _offset) {
463
+ }
464
+ _process(doFlush) {
465
+ let processedWords;
466
+ let nBlocksReady = this._data.sigBytes / (this.blockSize * 4);
467
+ if (doFlush) {
468
+ nBlocksReady = Math.ceil(nBlocksReady);
469
+ } else {
470
+ nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
471
+ }
472
+ const nWordsReady = nBlocksReady * this.blockSize;
473
+ const nBytesReady = Math.min(nWordsReady * 4, this._data.sigBytes);
474
+ if (nWordsReady) {
475
+ for (let offset = 0; offset < nWordsReady; offset += this.blockSize) {
476
+ this._doProcessBlock(this._data.words, offset);
477
+ }
478
+ processedWords = this._data.words.splice(0, nWordsReady);
479
+ this._data.sigBytes -= nBytesReady;
480
+ }
481
+ return new WordArray(processedWords, nBytesReady);
482
+ }
483
+ }
484
+ class Hasher extends BufferedBlockAlgorithm {
485
+ update(messageUpdate) {
486
+ this._append(messageUpdate);
487
+ this._process();
488
+ return this;
489
+ }
490
+ finalize(messageUpdate) {
491
+ if (messageUpdate) {
492
+ this._append(messageUpdate);
493
+ }
494
+ }
495
+ }
496
+
497
+ const H = [
498
+ 1779033703,
499
+ -1150833019,
500
+ 1013904242,
501
+ -1521486534,
502
+ 1359893119,
503
+ -1694144372,
504
+ 528734635,
505
+ 1541459225
506
+ ];
507
+ const K = [
508
+ 1116352408,
509
+ 1899447441,
510
+ -1245643825,
511
+ -373957723,
512
+ 961987163,
513
+ 1508970993,
514
+ -1841331548,
515
+ -1424204075,
516
+ -670586216,
517
+ 310598401,
518
+ 607225278,
519
+ 1426881987,
520
+ 1925078388,
521
+ -2132889090,
522
+ -1680079193,
523
+ -1046744716,
524
+ -459576895,
525
+ -272742522,
526
+ 264347078,
527
+ 604807628,
528
+ 770255983,
529
+ 1249150122,
530
+ 1555081692,
531
+ 1996064986,
532
+ -1740746414,
533
+ -1473132947,
534
+ -1341970488,
535
+ -1084653625,
536
+ -958395405,
537
+ -710438585,
538
+ 113926993,
539
+ 338241895,
540
+ 666307205,
541
+ 773529912,
542
+ 1294757372,
543
+ 1396182291,
544
+ 1695183700,
545
+ 1986661051,
546
+ -2117940946,
547
+ -1838011259,
548
+ -1564481375,
549
+ -1474664885,
550
+ -1035236496,
551
+ -949202525,
552
+ -778901479,
553
+ -694614492,
554
+ -200395387,
555
+ 275423344,
556
+ 430227734,
557
+ 506948616,
558
+ 659060556,
559
+ 883997877,
560
+ 958139571,
561
+ 1322822218,
562
+ 1537002063,
563
+ 1747873779,
564
+ 1955562222,
565
+ 2024104815,
566
+ -2067236844,
567
+ -1933114872,
568
+ -1866530822,
569
+ -1538233109,
570
+ -1090935817,
571
+ -965641998
572
+ ];
573
+ const W = [];
574
+ class SHA256 extends Hasher {
575
+ _hash = new WordArray([...H]);
576
+ /**
577
+ * Resets the internal state of the hash object to initial values.
578
+ */
579
+ reset() {
580
+ super.reset();
581
+ this._hash = new WordArray([...H]);
582
+ }
583
+ _doProcessBlock(M, offset) {
584
+ const H2 = this._hash.words;
585
+ let a = H2[0];
586
+ let b = H2[1];
587
+ let c = H2[2];
588
+ let d = H2[3];
589
+ let e = H2[4];
590
+ let f = H2[5];
591
+ let g = H2[6];
592
+ let h = H2[7];
593
+ for (let i = 0; i < 64; i++) {
594
+ if (i < 16) {
595
+ W[i] = M[offset + i] | 0;
596
+ } else {
597
+ const gamma0x = W[i - 15];
598
+ const gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
599
+ const gamma1x = W[i - 2];
600
+ const gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
601
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
602
+ }
603
+ const ch = e & f ^ ~e & g;
604
+ const maj = a & b ^ a & c ^ b & c;
605
+ const sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);
606
+ const sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);
607
+ const t1 = h + sigma1 + ch + K[i] + W[i];
608
+ const t2 = sigma0 + maj;
609
+ h = g;
610
+ g = f;
611
+ f = e;
612
+ e = d + t1 | 0;
613
+ d = c;
614
+ c = b;
615
+ b = a;
616
+ a = t1 + t2 | 0;
617
+ }
618
+ H2[0] = H2[0] + a | 0;
619
+ H2[1] = H2[1] + b | 0;
620
+ H2[2] = H2[2] + c | 0;
621
+ H2[3] = H2[3] + d | 0;
622
+ H2[4] = H2[4] + e | 0;
623
+ H2[5] = H2[5] + f | 0;
624
+ H2[6] = H2[6] + g | 0;
625
+ H2[7] = H2[7] + h | 0;
626
+ }
627
+ /**
628
+ * Finishes the hash calculation and returns the hash as a WordArray.
629
+ *
630
+ * @param {string} messageUpdate - Additional message content to include in the hash.
631
+ * @returns {WordArray} The finalised hash as a WordArray.
632
+ */
633
+ finalize(messageUpdate) {
634
+ super.finalize(messageUpdate);
635
+ const nBitsTotal = this._nDataBytes * 8;
636
+ const nBitsLeft = this._data.sigBytes * 8;
637
+ this._data.words[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
638
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(
639
+ nBitsTotal / 4294967296
640
+ );
641
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
642
+ this._data.sigBytes = this._data.words.length * 4;
643
+ this._process();
644
+ return this._hash;
645
+ }
646
+ }
647
+ function sha256base64(message) {
648
+ return new SHA256().finalize(message).toString(Base64);
649
+ }
650
+
651
+ function hash(object, options = {}) {
652
+ const hashed = typeof object === "string" ? object : objectHash(object, options);
653
+ return sha256base64(hashed).slice(0, 10);
654
+ }
37
655
 
38
656
  class CloudCache {
39
657
  memoryCache;
@@ -53,8 +671,8 @@ class CloudCache {
53
671
  */
54
672
  ensureCacheDir() {
55
673
  try {
56
- if (!nodeFs__default.existsSync(this.cacheDir)) {
57
- nodeFs__default.mkdirSync(this.cacheDir, { recursive: true });
674
+ if (!fs__default.existsSync(this.cacheDir)) {
675
+ fs__default.mkdirSync(this.cacheDir, { recursive: true });
58
676
  consola.debug("Created cache directory:", this.cacheDir);
59
677
  }
60
678
  } catch (error) {
@@ -68,8 +686,8 @@ class CloudCache {
68
686
  loadCacheFromDisk() {
69
687
  try {
70
688
  const cacheFile = path__default.join(this.cacheDir, "cache.json");
71
- if (nodeFs__default.existsSync(cacheFile)) {
72
- const data = nodeFs__default.readFileSync(cacheFile, "utf-8");
689
+ if (fs__default.existsSync(cacheFile)) {
690
+ const data = fs__default.readFileSync(cacheFile, "utf-8");
73
691
  const entries = JSON.parse(data);
74
692
  const now = Date.now();
75
693
  for (const [key, entry] of Object.entries(entries)) {
@@ -90,7 +708,7 @@ class CloudCache {
90
708
  try {
91
709
  const cacheFile = path__default.join(this.cacheDir, "cache.json");
92
710
  const entries = Object.fromEntries(this.memoryCache);
93
- nodeFs__default.writeFileSync(cacheFile, JSON.stringify(entries, null, 2));
711
+ fs__default.writeFileSync(cacheFile, JSON.stringify(entries, null, 2));
94
712
  } catch (error) {
95
713
  consola.warn("Failed to save cache to disk:", error);
96
714
  }
@@ -1177,7 +1795,7 @@ class CloudSetupOrchestrator {
1177
1795
  */
1178
1796
  async analyzeProject(options) {
1179
1797
  if (options.interactive !== false) {
1180
- console.log(ansis.bold(`
1798
+ console.log(a.bold(`
1181
1799
  ${i18n.t("cloud-setup:analyzingProject")}`));
1182
1800
  }
1183
1801
  const analysis = await analyzeProject(options.targetDir || process.cwd(), {
@@ -1211,12 +1829,12 @@ class CloudSetupOrchestrator {
1211
1829
  * Display project information
1212
1830
  */
1213
1831
  displayProjectInfo(analysis) {
1214
- console.log(` ${ansis.dim(i18n.t("cloud-setup:projectType"))}: ${analysis.projectType}`);
1832
+ console.log(` ${a.dim(i18n.t("cloud-setup:projectType"))}: ${analysis.projectType}`);
1215
1833
  if (analysis.frameworks.length > 0) {
1216
- console.log(` ${ansis.dim(i18n.t("cloud-setup:frameworks"))}: ${analysis.frameworks.map((f) => f.name).join(", ")}`);
1834
+ console.log(` ${a.dim(i18n.t("cloud-setup:frameworks"))}: ${analysis.frameworks.map((f) => f.name).join(", ")}`);
1217
1835
  }
1218
1836
  if (analysis.languages.length > 0) {
1219
- console.log(` ${ansis.dim(i18n.t("cloud-setup:languages"))}: ${analysis.languages.map((l) => l.language).join(", ")}`);
1837
+ console.log(` ${a.dim(i18n.t("cloud-setup:languages"))}: ${analysis.languages.map((l) => l.language).join(", ")}`);
1220
1838
  }
1221
1839
  }
1222
1840
  /**
@@ -1228,7 +1846,7 @@ class CloudSetupOrchestrator {
1228
1846
  }
1229
1847
  if (options.interactive !== false) {
1230
1848
  console.log(`
1231
- ${ansis.bold(i18n.t("cloud-setup:gettingRecommendations"))}`);
1849
+ ${a.bold(i18n.t("cloud-setup:gettingRecommendations"))}`);
1232
1850
  }
1233
1851
  const request = {
1234
1852
  projectRoot: options.targetDir || process.cwd(),
@@ -1441,63 +2059,63 @@ class CloudSetupOrchestrator {
1441
2059
  if (options.interactive === false)
1442
2060
  return;
1443
2061
  console.log(`
1444
- ${ansis.bold(i18n.t("cloud-setup:cloudRecommendations"))} ${ansis.dim(`(${i18n.t("cloud-setup:confidence")} ${recommendations.confidence}%)`)}`);
2062
+ ${a.bold(i18n.t("cloud-setup:cloudRecommendations"))} ${a.dim(`(${i18n.t("cloud-setup:confidence")} ${recommendations.confidence}%)`)}`);
1445
2063
  console.log("");
1446
2064
  if (recommendations.skills.length > 0) {
1447
- console.log(` ${ansis.bold(i18n.t("cloud-setup:skills"))} (${recommendations.skills.length}):`);
2065
+ console.log(` ${a.bold(i18n.t("cloud-setup:skills"))} (${recommendations.skills.length}):`);
1448
2066
  for (const skill of recommendations.skills) {
1449
2067
  const confidence = options.showConfidence ? ` [${Math.round(skill.relevanceScore * 100)}%]` : "";
1450
2068
  const skillName = extractString(skill.name, skill.id, i18n.language);
1451
2069
  const skillDesc = extractString(skill.description, "", i18n.language);
1452
2070
  const reason = options.showRecommendationReason && skillDesc ? ` - ${skillDesc}` : "";
1453
- console.log(` ${ansis.green("\u2713")} ${skillName}${ansis.dim(confidence)}${ansis.dim(reason)}`);
2071
+ console.log(` ${a.green("\u2713")} ${skillName}${a.dim(confidence)}${a.dim(reason)}`);
1454
2072
  }
1455
2073
  }
1456
2074
  if (recommendations.mcpServices.length > 0) {
1457
2075
  console.log(`
1458
- ${ansis.bold(i18n.t("cloud-setup:mcpServices"))} (${recommendations.mcpServices.length}):`);
2076
+ ${a.bold(i18n.t("cloud-setup:mcpServices"))} (${recommendations.mcpServices.length}):`);
1459
2077
  for (const service of recommendations.mcpServices) {
1460
2078
  const confidence = options.showConfidence ? ` [${Math.round(service.relevanceScore * 100)}%]` : "";
1461
2079
  const serviceName = extractString(service.name, service.id, i18n.language);
1462
2080
  const serviceDesc = extractString(service.description, "", i18n.language);
1463
2081
  const reason = options.showRecommendationReason && serviceDesc ? ` - ${serviceDesc}` : "";
1464
- console.log(` ${ansis.green("\u2713")} ${serviceName}${ansis.dim(confidence)}${ansis.dim(reason)}`);
2082
+ console.log(` ${a.green("\u2713")} ${serviceName}${a.dim(confidence)}${a.dim(reason)}`);
1465
2083
  }
1466
2084
  }
1467
2085
  if (recommendations.agents.length > 0) {
1468
2086
  console.log(`
1469
- ${ansis.bold(i18n.t("cloud-setup:agents"))} (${recommendations.agents.length}):`);
2087
+ ${a.bold(i18n.t("cloud-setup:agents"))} (${recommendations.agents.length}):`);
1470
2088
  for (const agent of recommendations.agents) {
1471
2089
  const confidence = options.showConfidence ? ` [${Math.round(agent.relevanceScore * 100)}%]` : "";
1472
2090
  const agentName = extractString(agent.name, agent.id, i18n.language);
1473
2091
  const agentDesc = extractString(agent.description, "", i18n.language);
1474
2092
  const reason = options.showRecommendationReason && agentDesc ? ` - ${agentDesc}` : "";
1475
- console.log(` ${ansis.green("\u2713")} ${agentName}${ansis.dim(confidence)}${ansis.dim(reason)}`);
2093
+ console.log(` ${a.green("\u2713")} ${agentName}${a.dim(confidence)}${a.dim(reason)}`);
1476
2094
  }
1477
2095
  }
1478
2096
  if (recommendations.hooks.length > 0) {
1479
2097
  console.log(`
1480
- ${ansis.bold(i18n.t("cloud-setup:hooks"))} (${recommendations.hooks.length}):`);
2098
+ ${a.bold(i18n.t("cloud-setup:hooks"))} (${recommendations.hooks.length}):`);
1481
2099
  for (const hook of recommendations.hooks) {
1482
2100
  const confidence = options.showConfidence ? ` [${Math.round(hook.relevanceScore * 100)}%]` : "";
1483
2101
  const hookName = extractString(hook.name, hook.id, i18n.language);
1484
2102
  const hookDesc = extractString(hook.description, "", i18n.language);
1485
2103
  const reason = options.showRecommendationReason && hookDesc ? ` - ${hookDesc}` : "";
1486
- console.log(` ${ansis.green("\u2713")} ${hookName}${ansis.dim(confidence)}${ansis.dim(reason)}`);
2104
+ console.log(` ${a.green("\u2713")} ${hookName}${a.dim(confidence)}${a.dim(reason)}`);
1487
2105
  }
1488
2106
  }
1489
2107
  if (recommendations.insights?.insights && recommendations.insights.insights.length > 0) {
1490
2108
  console.log(`
1491
- ${ansis.bold(i18n.t("cloud-setup:insights"))}:`);
2109
+ ${a.bold(i18n.t("cloud-setup:insights"))}:`);
1492
2110
  for (const insight of recommendations.insights.insights) {
1493
- console.log(` ${ansis.cyan("\u{1F4A1}")} ${insight}`);
2111
+ console.log(` ${a.cyan("\u{1F4A1}")} ${insight}`);
1494
2112
  }
1495
2113
  }
1496
2114
  if (recommendations.insights?.productivityImprovements && recommendations.insights.productivityImprovements.length > 0) {
1497
2115
  console.log(`
1498
- ${ansis.bold(i18n.t("cloud-setup:productivityImprovements"))}:`);
2116
+ ${a.bold(i18n.t("cloud-setup:productivityImprovements"))}:`);
1499
2117
  for (const improvement of recommendations.insights.productivityImprovements) {
1500
- console.log(` ${ansis.green("\u2191")} ${improvement.resource}: +${improvement.improvement}% ${improvement.reason}`);
2118
+ console.log(` ${a.green("\u2191")} ${improvement.resource}: +${improvement.improvement}% ${improvement.reason}`);
1501
2119
  }
1502
2120
  }
1503
2121
  }
@@ -1510,11 +2128,11 @@ class CloudSetupOrchestrator {
1510
2128
  const totalResources = recommendations.skills.length + recommendations.mcpServices.length + recommendations.agents.length + recommendations.hooks.length;
1511
2129
  if (totalResources === 0) {
1512
2130
  console.log(`
1513
- ${ansis.yellow(i18n.t("cloud-setup:noRecommendations"))}`);
2131
+ ${a.yellow(i18n.t("cloud-setup:noRecommendations"))}`);
1514
2132
  return false;
1515
2133
  }
1516
2134
  try {
1517
- const inquirerModule = await import('inquirer');
2135
+ const inquirerModule = await import('./index3.mjs').then(function (n) { return n.c; });
1518
2136
  const inquirer = inquirerModule.default || inquirerModule;
1519
2137
  const { confirm } = await inquirer.prompt([
1520
2138
  {
@@ -1536,7 +2154,7 @@ class CloudSetupOrchestrator {
1536
2154
  async downloadTemplates(recommendations, options) {
1537
2155
  if (options.interactive !== false) {
1538
2156
  console.log(`
1539
- ${ansis.bold(i18n.t("cloud-setup:downloadingTemplates"))}`);
2157
+ ${a.bold(i18n.t("cloud-setup:downloadingTemplates"))}`);
1540
2158
  }
1541
2159
  const allRecommendations = [
1542
2160
  ...recommendations.skills,
@@ -1551,7 +2169,7 @@ class CloudSetupOrchestrator {
1551
2169
  language: options.lang
1552
2170
  });
1553
2171
  if (options.interactive !== false) {
1554
- console.log(` ${ansis.green("\u2713")} ${i18n.t("cloud-setup:templatesDownloaded", { count: Object.keys(response.templates).length })}`);
2172
+ console.log(` ${a.green("\u2713")} ${i18n.t("cloud-setup:templatesDownloaded", { count: Object.keys(response.templates).length })}`);
1555
2173
  }
1556
2174
  return response;
1557
2175
  } catch (error) {
@@ -1565,7 +2183,7 @@ class CloudSetupOrchestrator {
1565
2183
  async executeInstallation(recommendations, templates, options) {
1566
2184
  if (options.interactive !== false) {
1567
2185
  console.log(`
1568
- ${ansis.bold(i18n.t("cloud-setup:installingResources"))}`);
2186
+ ${a.bold(i18n.t("cloud-setup:installingResources"))}`);
1569
2187
  }
1570
2188
  const result = {
1571
2189
  success: true,
@@ -1616,7 +2234,7 @@ class CloudSetupOrchestrator {
1616
2234
  await ccjkSkills(skillsOptions);
1617
2235
  result.installed.skills = skillIds;
1618
2236
  if (options.interactive !== false) {
1619
- console.log(` ${ansis.green("\u2713")} ${skills.length}/${skills.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
2237
+ console.log(` ${a.green("\u2713")} ${skills.length}/${skills.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
1620
2238
  }
1621
2239
  } catch (error) {
1622
2240
  this.logger.error("Skills installation failed:", error);
@@ -1642,7 +2260,7 @@ class CloudSetupOrchestrator {
1642
2260
  await ccjkMcp(mcpOptions);
1643
2261
  result.installed.mcpServices = services.map((s) => s.id);
1644
2262
  if (options.interactive !== false) {
1645
- console.log(` ${ansis.green("\u2713")} ${services.length}/${services.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
2263
+ console.log(` ${a.green("\u2713")} ${services.length}/${services.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
1646
2264
  }
1647
2265
  } catch (error) {
1648
2266
  this.logger.error("MCP services installation failed:", error);
@@ -1667,7 +2285,7 @@ class CloudSetupOrchestrator {
1667
2285
  await ccjkAgents(agentOptions);
1668
2286
  result.installed.agents = agents.map((a) => a.id);
1669
2287
  if (options.interactive !== false) {
1670
- console.log(` ${ansis.green("\u2713")} ${agents.length}/${agents.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
2288
+ console.log(` ${a.green("\u2713")} ${agents.length}/${agents.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
1671
2289
  }
1672
2290
  } catch (error) {
1673
2291
  this.logger.error("Agents installation failed:", error);
@@ -1691,7 +2309,7 @@ class CloudSetupOrchestrator {
1691
2309
  await ccjkHooks(hookOptions);
1692
2310
  result.installed.hooks = hooks.map((h) => h.id);
1693
2311
  if (options.interactive !== false) {
1694
- console.log(` ${ansis.green("\u2713")} ${hooks.length}/${hooks.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
2312
+ console.log(` ${a.green("\u2713")} ${hooks.length}/${hooks.length} (${((Date.now() - this.startTime) / 1e3).toFixed(1)}s)`);
1695
2313
  }
1696
2314
  } catch (error) {
1697
2315
  this.logger.error("Hooks installation failed:", error);
@@ -1703,26 +2321,26 @@ class CloudSetupOrchestrator {
1703
2321
  */
1704
2322
  displaySummary(result, options) {
1705
2323
  console.log("");
1706
- console.log(ansis.green(` ${i18n.t("cloud-setup:setupComplete")}`));
2324
+ console.log(a.green(` ${i18n.t("cloud-setup:setupComplete")}`));
1707
2325
  const totalInstalled = result.installed.skills.length + result.installed.mcpServices.length + result.installed.agents.length + result.installed.hooks.length;
1708
2326
  console.log(` ${i18n.t("cloud-setup:installedResources", { count: totalInstalled, duration: (result.duration / 1e3).toFixed(1) })}`);
1709
2327
  if (result.insights) {
1710
2328
  console.log(`
1711
- ${ansis.bold(i18n.t("cloud-setup:cloudFeedback"))}`);
2329
+ ${a.bold(i18n.t("cloud-setup:cloudFeedback"))}`);
1712
2330
  for (const insight of result.insights.insights) {
1713
- console.log(` ${ansis.cyan("\u2022")} ${insight}`);
2331
+ console.log(` ${a.cyan("\u2022")} ${insight}`);
1714
2332
  }
1715
2333
  }
1716
2334
  console.log(`
1717
- ${ansis.bold(i18n.t("cloud-setup:nextSteps"))}`);
1718
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("cloud-setup:startCoding")}`);
2335
+ ${a.bold(i18n.t("cloud-setup:nextSteps"))}`);
2336
+ console.log(` ${a.dim("\u2022")} ${i18n.t("cloud-setup:startCoding")}`);
1719
2337
  if (options.showRecommendationReason) {
1720
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("cloud-setup:viewRecommendations")}`);
2338
+ console.log(` ${a.dim("\u2022")} ${i18n.t("cloud-setup:viewRecommendations")}`);
1721
2339
  }
1722
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("cloud-setup:customizeSetup")}`);
2340
+ console.log(` ${a.dim("\u2022")} ${i18n.t("cloud-setup:customizeSetup")}`);
1723
2341
  if (result.reportPath) {
1724
2342
  console.log(`
1725
- ${ansis.dim(i18n.t("cloud-setup:reportGenerated", { path: result.reportPath }))}`);
2343
+ ${a.dim(i18n.t("cloud-setup:reportGenerated", { path: result.reportPath }))}`);
1726
2344
  }
1727
2345
  }
1728
2346
  /**
@@ -1860,7 +2478,7 @@ class CloudSetupOrchestrator {
1860
2478
  return await this.executeCloudSetup(options);
1861
2479
  } catch (error) {
1862
2480
  if (error.code === "ENOTFOUND" || error.code === "ECONNREFUSED") {
1863
- console.warn(ansis.yellow(`
2481
+ console.warn(a.yellow(`
1864
2482
  ${i18n.t("cloud-setup:cloudUnavailable")}`));
1865
2483
  console.warn(` ${i18n.t("cloud-setup:fallingBackToLocal")}`);
1866
2484
  options.useCloud = false;
@@ -1929,11 +2547,11 @@ async function ccjkAll(options = {}) {
1929
2547
  }));
1930
2548
  } else if (!options.quiet) {
1931
2549
  console.error(`
1932
- ${ansis.red("\u2717")} ${isZh ? "\u8BBE\u7F6E\u5931\u8D25" : "Setup failed"}`);
1933
- console.error(` ${ansis.red(error.message)}`);
2550
+ ${a.red("\u2717")} ${isZh ? "\u8BBE\u7F6E\u5931\u8D25" : "Setup failed"}`);
2551
+ console.error(` ${a.red(error.message)}`);
1934
2552
  if (error.code === "ENOTFOUND") {
1935
2553
  console.error(`
1936
- ${ansis.yellow("\u2139")} ${isZh ? "\u4E91\u670D\u52A1\u548C\u672C\u5730\u670D\u52A1\u90FD\u4E0D\u53EF\u7528" : "Both cloud and local services are unavailable"}`);
2554
+ ${a.yellow("\u2139")} ${isZh ? "\u4E91\u670D\u52A1\u548C\u672C\u5730\u670D\u52A1\u90FD\u4E0D\u53EF\u7528" : "Both cloud and local services are unavailable"}`);
1937
2555
  console.error(` ${isZh ? "\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u6216\u7A0D\u540E\u518D\u8BD5" : "Please check your network connection or try again later"}`);
1938
2556
  }
1939
2557
  }
@@ -1942,15 +2560,15 @@ async function ccjkAll(options = {}) {
1942
2560
  }
1943
2561
  function displayHeader() {
1944
2562
  console.log("");
1945
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
1946
- console.log(ansis.bold.cyan(` ${i18n.t("ccjk-all:title")}`));
1947
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
2563
+ console.log(a.bold.cyan("\u2501".repeat(60)));
2564
+ console.log(a.bold.cyan(` ${i18n.t("ccjk-all:title")}`));
2565
+ console.log(a.bold.cyan("\u2501".repeat(60)));
1948
2566
  console.log("");
1949
2567
  }
1950
2568
  async function checkCloudAvailability(options) {
1951
2569
  const logger = consola.withTag("cloud-check");
1952
2570
  i18n.language === "zh-CN";
1953
- console.log(` ${ansis.bold(i18n.t("ccjk-all:connectingToCloud"))}`);
2571
+ console.log(` ${a.bold(i18n.t("ccjk-all:connectingToCloud"))}`);
1954
2572
  try {
1955
2573
  const client = createCompleteCloudClient({
1956
2574
  baseURL: options.cloudEndpoint || "https://api.ccjk.cloud"
@@ -1958,49 +2576,49 @@ async function checkCloudAvailability(options) {
1958
2576
  const startTime = Date.now();
1959
2577
  const health = await client.healthCheck();
1960
2578
  const latency = Date.now() - startTime;
1961
- console.log(` ${ansis.green("\u2713")} ${i18n.t("ccjk-all:connected")} ${ansis.dim(`(${i18n.t("ccjk-all:latency")} ${latency}ms)`)}`);
1962
- console.log(` ${ansis.green("\u2713")} ${i18n.t("ccjk-all:cloudVersion")} ${ansis.dim(health.version || "unknown")}`);
2579
+ console.log(` ${a.green("\u2713")} ${i18n.t("ccjk-all:connected")} ${a.dim(`(${i18n.t("ccjk-all:latency")} ${latency}ms)`)}`);
2580
+ console.log(` ${a.green("\u2713")} ${i18n.t("ccjk-all:cloudVersion")} ${a.dim(health.version || "unknown")}`);
1963
2581
  } catch (error) {
1964
2582
  logger.warn("Cloud service unavailable:", error);
1965
- console.log(` ${ansis.yellow("\u26A0")} ${i18n.t("ccjk-all:cloudUnavailable")}`);
1966
- console.log(` ${ansis.dim(i18n.t("ccjk-all:usingLocalMode"))}`);
2583
+ console.log(` ${a.yellow("\u26A0")} ${i18n.t("ccjk-all:cloudUnavailable")}`);
2584
+ console.log(` ${a.dim(i18n.t("ccjk-all:usingLocalMode"))}`);
1967
2585
  options.useCloud = false;
1968
2586
  }
1969
2587
  }
1970
2588
  function displayCompletion(result) {
1971
2589
  console.log("");
1972
- console.log(ansis.green(` ${i18n.t("ccjk-all:setupComplete")}`));
2590
+ console.log(a.green(` ${i18n.t("ccjk-all:setupComplete")}`));
1973
2591
  const totalInstalled = result.installed.skills.length + result.installed.mcpServices.length + result.installed.agents.length + result.installed.hooks.length;
1974
2592
  console.log(` ${i18n.t("ccjk-all:installedCount", { count: totalInstalled, duration: (result.duration / 1e3).toFixed(1) })}`);
1975
2593
  if (result.insights?.insights && result.insights.insights.length > 0) {
1976
2594
  console.log(`
1977
- ${ansis.bold(i18n.t("ccjk-all:cloudFeedback"))}`);
2595
+ ${a.bold(i18n.t("ccjk-all:cloudFeedback"))}`);
1978
2596
  for (const insight of result.insights.insights) {
1979
- console.log(` ${ansis.cyan("\u2022")} ${insight}`);
2597
+ console.log(` ${a.cyan("\u2022")} ${insight}`);
1980
2598
  }
1981
2599
  }
1982
2600
  console.log(`
1983
- ${ansis.bold(i18n.t("ccjk-all:nextSteps"))}`);
1984
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("ccjk-all:startCoding")}`);
1985
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("ccjk-all:viewRecommendations")}`);
1986
- console.log(` ${ansis.dim("\u2022")} ${i18n.t("ccjk-all:customizeSetup")}`);
2601
+ ${a.bold(i18n.t("ccjk-all:nextSteps"))}`);
2602
+ console.log(` ${a.dim("\u2022")} ${i18n.t("ccjk-all:startCoding")}`);
2603
+ console.log(` ${a.dim("\u2022")} ${i18n.t("ccjk-all:viewRecommendations")}`);
2604
+ console.log(` ${a.dim("\u2022")} ${i18n.t("ccjk-all:customizeSetup")}`);
1987
2605
  if (result.reportPath) {
1988
2606
  console.log(`
1989
- ${ansis.dim(i18n.t("ccjk-all:reportGenerated", { path: result.reportPath }))}`);
2607
+ ${a.dim(i18n.t("ccjk-all:reportGenerated", { path: result.reportPath }))}`);
1990
2608
  }
1991
2609
  console.log("");
1992
2610
  }
1993
2611
  function displayHelp() {
1994
2612
  i18n.language === "zh-CN";
1995
2613
  console.log("");
1996
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
1997
- console.log(ansis.bold.cyan(` ${i18n.t("ccjk-all:helpTitle")}`));
1998
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
2614
+ console.log(a.bold.cyan("\u2501".repeat(60)));
2615
+ console.log(a.bold.cyan(` ${i18n.t("ccjk-all:helpTitle")}`));
2616
+ console.log(a.bold.cyan("\u2501".repeat(60)));
1999
2617
  console.log("");
2000
- console.log(ansis.bold(i18n.t("ccjk-all:usage")));
2618
+ console.log(a.bold(i18n.t("ccjk-all:usage")));
2001
2619
  console.log(" ccjk ccjk:all [options]");
2002
2620
  console.log("");
2003
- console.log(ansis.bold(i18n.t("ccjk-all:options")));
2621
+ console.log(a.bold(i18n.t("ccjk-all:options")));
2004
2622
  console.log(" --strategy <type> Cloud strategy (cloud-smart, cloud-conservative, local-fallback)");
2005
2623
  console.log(" --use-cloud <bool> Use cloud recommendations (default: true)");
2006
2624
  console.log(" --cloud-endpoint <url> Cloud API endpoint");
@@ -2023,7 +2641,7 @@ function displayHelp() {
2023
2641
  console.log(" --help Show help");
2024
2642
  console.log(" --version Show version");
2025
2643
  console.log("");
2026
- console.log(ansis.bold(i18n.t("ccjk-all:examples")));
2644
+ console.log(a.bold(i18n.t("ccjk-all:examples")));
2027
2645
  console.log(" ccjk ccjk:all # Interactive cloud-powered setup");
2028
2646
  console.log(" ccjk ccjk:all --strategy cloud-smart # Use cloud-smart strategy");
2029
2647
  console.log(" ccjk ccjk:all --use-cloud false # Local mode only");
@@ -2031,7 +2649,7 @@ function displayHelp() {
2031
2649
  console.log(" ccjk ccjk:all --generate-report # Generate detailed report");
2032
2650
  console.log(" ccjk ccjk:all --dry-run # Preview without installing");
2033
2651
  console.log("");
2034
- console.log(ansis.bold(i18n.t("ccjk-all:strategies")));
2652
+ console.log(a.bold(i18n.t("ccjk-all:strategies")));
2035
2653
  console.log(" cloud-smart Use cloud with intelligent fallback");
2036
2654
  console.log(" cloud-conservative Prefer cloud but strict about errors");
2037
2655
  console.log(" local-fallback Use local recommendations only");