ccjk 10.3.0 → 11.1.0

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.
@@ -0,0 +1,54 @@
1
+ {
2
+ "description": "Evolution Layer - AI knowledge sharing",
3
+ "connecting": "Connecting to Evolution Layer...",
4
+ "fetching": "Fetching top capabilities...",
5
+ "found": "Found {{count}} capabilities",
6
+ "noResults": "No capabilities found",
7
+ "problem": "Problem",
8
+ "solution": "Solution",
9
+ "used": "Used",
10
+ "times": "times",
11
+ "success": "Success",
12
+ "failed": "Failed",
13
+ "searching": "Searching for: {{query}}",
14
+ "noSolutions": "No solutions found",
15
+ "foundSolutions": "Found {{count}} solutions",
16
+ "context": "Context",
17
+ "geneNotFound": "Gene not found",
18
+ "geneDetails": "Gene Details",
19
+ "type": "Type",
20
+ "signature": "Signature",
21
+ "strategy": "Strategy",
22
+ "code": "Code",
23
+ "steps": "Steps",
24
+ "quality": "Quality",
25
+ "successRate": "Success Rate",
26
+ "usageCount": "Usage Count",
27
+ "avgTime": "Average Time",
28
+ "metadata": "Metadata",
29
+ "author": "Author",
30
+ "createdAt": "Created At",
31
+ "tags": "Tags",
32
+ "fetchingStats": "Fetching statistics...",
33
+ "totalGenes": "Total Genes",
34
+ "avgGDI": "Average GDI",
35
+ "totalUsage": "Total Usage",
36
+ "avgSuccess": "Average Success Rate",
37
+ "byType": "By Type",
38
+ "top": {
39
+ "description": "Show top capabilities by GDI score",
40
+ "limit": "Limit results",
41
+ "minGdi": "Minimum GDI score"
42
+ },
43
+ "search": {
44
+ "description": "Search for solutions",
45
+ "minGdi": "Minimum GDI score",
46
+ "limit": "Limit results"
47
+ },
48
+ "show": {
49
+ "description": "Show gene details"
50
+ },
51
+ "stats": {
52
+ "description": "Show Evolution Layer statistics"
53
+ }
54
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "enable": {
3
+ "title": "🌐 Enable Remote Control",
4
+ "server_url": "Enter CCJK server URL:",
5
+ "already_enabled": "✅ Remote control is already enabled",
6
+ "success": "✅ Remote control enabled successfully!",
7
+ "next_steps": "\nNext steps:\n 1. Run 'ccjk remote qr' to get pairing QR code\n 2. Scan QR code with CCJK mobile app\n 3. Start daemon with 'ccjk daemon start'"
8
+ },
9
+ "disable": {
10
+ "title": "🔌 Disable Remote Control",
11
+ "already_disabled": "Remote control is already disabled",
12
+ "success": "✅ Remote control disabled"
13
+ },
14
+ "status": {
15
+ "title": "📊 Remote Control Status",
16
+ "enabled": "Enabled",
17
+ "server": "Server",
18
+ "machine_id": "Machine ID",
19
+ "daemon": "Daemon"
20
+ },
21
+ "qr": {
22
+ "title": "📱 Mobile Pairing",
23
+ "instructions": "Scan this QR code with CCJK mobile app:",
24
+ "not_enabled": "❌ Remote control is not enabled. Run 'ccjk remote enable' first.",
25
+ "manual_entry": "Or enter manually:"
26
+ },
27
+ "daemon": {
28
+ "starting": "Starting daemon...",
29
+ "started": "✅ Daemon started",
30
+ "start_failed": "❌ Failed to start daemon",
31
+ "start_error": "❌ Error starting daemon",
32
+ "already_running": "Daemon is already running",
33
+ "stopping": "Stopping daemon...",
34
+ "stopped": "✅ Daemon stopped",
35
+ "stop_failed": "❌ Failed to stop daemon",
36
+ "stop_error": "❌ Error stopping daemon",
37
+ "not_running": "Daemon is not running"
38
+ }
39
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "description": "Evolution Layer - AI 知识共享",
3
+ "connecting": "连接到 Evolution Layer...",
4
+ "fetching": "获取顶级能力...",
5
+ "found": "找到 {{count}} 个能力",
6
+ "noResults": "未找到能力",
7
+ "problem": "问题",
8
+ "solution": "解决方案",
9
+ "used": "使用",
10
+ "times": "次",
11
+ "success": "成功率",
12
+ "failed": "失败",
13
+ "searching": "搜索: {{query}}",
14
+ "noSolutions": "未找到解决方案",
15
+ "foundSolutions": "找到 {{count}} 个解决方案",
16
+ "context": "上下文",
17
+ "geneNotFound": "Gene 未找到",
18
+ "geneDetails": "Gene 详情",
19
+ "type": "类型",
20
+ "signature": "特征",
21
+ "strategy": "策略",
22
+ "code": "代码",
23
+ "steps": "步骤",
24
+ "quality": "质量",
25
+ "successRate": "成功率",
26
+ "usageCount": "使用次数",
27
+ "avgTime": "平均时间",
28
+ "metadata": "元数据",
29
+ "author": "作者",
30
+ "createdAt": "创建时间",
31
+ "tags": "标签",
32
+ "fetchingStats": "获取统计信息...",
33
+ "totalGenes": "总 Genes",
34
+ "avgGDI": "平均 GDI",
35
+ "totalUsage": "总使用次数",
36
+ "avgSuccess": "平均成功率",
37
+ "byType": "按类型",
38
+ "top": {
39
+ "description": "显示顶级能力",
40
+ "limit": "限制结果数量",
41
+ "minGdi": "最小 GDI 分数"
42
+ },
43
+ "search": {
44
+ "description": "搜索解决方案",
45
+ "minGdi": "最小 GDI 分数",
46
+ "limit": "限制结果数量"
47
+ },
48
+ "show": {
49
+ "description": "显示 gene 详情"
50
+ },
51
+ "stats": {
52
+ "description": "显示 Evolution Layer 统计信息"
53
+ }
54
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "enable": {
3
+ "title": "🌐 启用远程控制",
4
+ "server_url": "输入 CCJK 服务器地址:",
5
+ "already_enabled": "✅ 远程控制已启用",
6
+ "success": "✅ 远程控制启用成功!",
7
+ "next_steps": "\n下一步:\n 1. 运行 'ccjk remote qr' 获取配对二维码\n 2. 使用 CCJK 移动应用扫描二维码\n 3. 运行 'ccjk daemon start' 启动守护进程"
8
+ },
9
+ "disable": {
10
+ "title": "🔌 禁用远程控制",
11
+ "already_disabled": "远程控制已禁用",
12
+ "success": "✅ 远程控制已禁用"
13
+ },
14
+ "status": {
15
+ "title": "📊 远程控制状态",
16
+ "enabled": "启用状态",
17
+ "server": "服务器",
18
+ "machine_id": "机器 ID",
19
+ "daemon": "守护进程"
20
+ },
21
+ "qr": {
22
+ "title": "📱 移动端配对",
23
+ "instructions": "使用 CCJK 移动应用扫描此二维码:",
24
+ "not_enabled": "❌ 远程控制未启用。请先运行 'ccjk remote enable'。",
25
+ "manual_entry": "或手动输入:"
26
+ },
27
+ "daemon": {
28
+ "starting": "正在启动守护进程...",
29
+ "started": "✅ 守护进程已启动",
30
+ "start_failed": "❌ 启动守护进程失败",
31
+ "start_error": "❌ 启动守护进程出错",
32
+ "already_running": "守护进程已在运行",
33
+ "stopping": "正在停止守护进程...",
34
+ "stopped": "✅ 守护进程已停止",
35
+ "stop_failed": "❌ 停止守护进程失败",
36
+ "stop_error": "❌ 停止守护进程出错",
37
+ "not_running": "守护进程未运行"
38
+ }
39
+ }
package/dist/index.mjs CHANGED
@@ -9,6 +9,7 @@ import { version } from './chunks/package.mjs';
9
9
  import { join as join$1 } from 'pathe';
10
10
  export { j as config } from './chunks/config.mjs';
11
11
  export { e as extractDisplayName, a as extractString, i as i18nHelpers, n as normalizeRecommendation, b as normalizeRecommendations } from './shared/ccjk.AqnXPAzw.mjs';
12
+ export { a as loggerUtils } from './shared/ccjk.Cu_R2MbQ.mjs';
12
13
  export { p as platform } from './chunks/platform.mjs';
13
14
  import { Transform } from 'node:stream';
14
15
  import { pipeline } from 'node:stream/promises';
@@ -2557,78 +2558,6 @@ const index$2 = {
2557
2558
  writeJSON: writeJSON
2558
2559
  };
2559
2560
 
2560
- let Logger$1 = class Logger {
2561
- level;
2562
- silent;
2563
- levels = {
2564
- debug: 0,
2565
- info: 1,
2566
- warn: 2,
2567
- error: 3
2568
- };
2569
- constructor(options = {}) {
2570
- this.level = options.level || "info";
2571
- this.silent = options.silent || false;
2572
- }
2573
- shouldLog(level) {
2574
- return !this.silent && this.levels[level] >= this.levels[this.level];
2575
- }
2576
- format(level, message, data) {
2577
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
2578
- const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
2579
- const coloredPrefix = this.colorize(level, prefix);
2580
- const dataStr = data ? ` ${JSON.stringify(data)}` : "";
2581
- return `${coloredPrefix} ${message}${dataStr}`;
2582
- }
2583
- /** MUD-style color scheme for log levels */
2584
- colorize(level, text) {
2585
- switch (level) {
2586
- case "debug":
2587
- return ansis.gray(text);
2588
- case "info":
2589
- return ansis.green(text);
2590
- // MUD green for info
2591
- case "warn":
2592
- return ansis.yellow(text);
2593
- case "error":
2594
- return ansis.red(text);
2595
- }
2596
- }
2597
- debug(message, data) {
2598
- if (this.shouldLog("debug")) {
2599
- console.log(this.format("debug", message, data));
2600
- }
2601
- }
2602
- info(message, data) {
2603
- if (this.shouldLog("info")) {
2604
- console.log(this.format("info", message, data));
2605
- }
2606
- }
2607
- warn(message, data) {
2608
- if (this.shouldLog("warn")) {
2609
- console.warn(this.format("warn", message, data));
2610
- }
2611
- }
2612
- error(message, data) {
2613
- if (this.shouldLog("error")) {
2614
- console.error(this.format("error", message, data));
2615
- }
2616
- }
2617
- setLevel(level) {
2618
- this.level = level;
2619
- }
2620
- setSilent(silent) {
2621
- this.silent = silent;
2622
- }
2623
- };
2624
- const logger$1 = new Logger$1();
2625
-
2626
- const logger$2 = {
2627
- __proto__: null,
2628
- Logger: Logger$1,
2629
- logger: logger$1
2630
- };
2631
-
2632
2561
  const LOG_LEVELS = {
2633
2562
  debug: 0,
2634
2563
  info: 1,
@@ -3666,4 +3595,4 @@ function assert(condition, message) {
3666
3595
  }
3667
3596
  }
3668
3597
 
3669
- export { AiderTool, BaseCodeTool, BaseError, ClaudeCodeTool, ClineTool, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, InternalError, Logger, Mutex, NotFoundError, Semaphore, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, index$6 as array, assert, assertDefined, index$5 as async, batchProcessFiles, camelCase, capitalize, chunk, index$4 as command, commandExists, copyFile, countLines, createConfigManager, createLogger, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, flatten, flatten$1 as flattenArray, formatError, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getRegistry, getTempDir, has, intersection, isArray, isBoolean, isDefined, isDirectory, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isString, isURL, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, logger$2 as loggerUtils, moveFile, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, processLargeFile, processLineByLine, readFile, readJSON, retry, scanCapabilities, sequence, set, shuffle, sleep, slugify, snakeCase, streamJSON, streamWriteJSON, index as string, template, throttle, timeout, truncate, tryCatch, tryCatchAsync, unflatten, union, unique, validation, validators, waitFor, wrapError, writeFile, writeJSON };
3598
+ export { AiderTool, BaseCodeTool, BaseError, ClaudeCodeTool, ClineTool, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, InternalError, Logger, Mutex, NotFoundError, Semaphore, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, index$6 as array, assert, assertDefined, index$5 as async, batchProcessFiles, camelCase, capitalize, chunk, index$4 as command, commandExists, copyFile, countLines, createConfigManager, createLogger, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, flatten, flatten$1 as flattenArray, formatError, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getRegistry, getTempDir, has, intersection, isArray, isBoolean, isDefined, isDirectory, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isString, isURL, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, moveFile, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, processLargeFile, processLineByLine, readFile, readJSON, retry, scanCapabilities, sequence, set, shuffle, sleep, slugify, snakeCase, streamJSON, streamWriteJSON, index as string, template, throttle, timeout, truncate, tryCatch, tryCatchAsync, unflatten, union, unique, validation, validators, waitFor, wrapError, writeFile, writeJSON };
@@ -0,0 +1,75 @@
1
+ import ansis from 'ansis';
2
+
3
+ class Logger {
4
+ level;
5
+ silent;
6
+ levels = {
7
+ debug: 0,
8
+ info: 1,
9
+ warn: 2,
10
+ error: 3
11
+ };
12
+ constructor(options = {}) {
13
+ this.level = options.level || "info";
14
+ this.silent = options.silent || false;
15
+ }
16
+ shouldLog(level) {
17
+ return !this.silent && this.levels[level] >= this.levels[this.level];
18
+ }
19
+ format(level, message, data) {
20
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
21
+ const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
22
+ const coloredPrefix = this.colorize(level, prefix);
23
+ const dataStr = data ? ` ${JSON.stringify(data)}` : "";
24
+ return `${coloredPrefix} ${message}${dataStr}`;
25
+ }
26
+ /** MUD-style color scheme for log levels */
27
+ colorize(level, text) {
28
+ switch (level) {
29
+ case "debug":
30
+ return ansis.gray(text);
31
+ case "info":
32
+ return ansis.green(text);
33
+ // MUD green for info
34
+ case "warn":
35
+ return ansis.yellow(text);
36
+ case "error":
37
+ return ansis.red(text);
38
+ }
39
+ }
40
+ debug(message, data) {
41
+ if (this.shouldLog("debug")) {
42
+ console.log(this.format("debug", message, data));
43
+ }
44
+ }
45
+ info(message, data) {
46
+ if (this.shouldLog("info")) {
47
+ console.log(this.format("info", message, data));
48
+ }
49
+ }
50
+ warn(message, data) {
51
+ if (this.shouldLog("warn")) {
52
+ console.warn(this.format("warn", message, data));
53
+ }
54
+ }
55
+ error(message, data) {
56
+ if (this.shouldLog("error")) {
57
+ console.error(this.format("error", message, data));
58
+ }
59
+ }
60
+ setLevel(level) {
61
+ this.level = level;
62
+ }
63
+ setSilent(silent) {
64
+ this.silent = silent;
65
+ }
66
+ }
67
+ const logger = new Logger();
68
+
69
+ const logger$1 = {
70
+ __proto__: null,
71
+ Logger: Logger,
72
+ logger: logger
73
+ };
74
+
75
+ export { logger$1 as a, logger as l };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ccjk",
3
3
  "type": "module",
4
- "version": "10.3.0",
4
+ "version": "11.1.0",
5
5
  "packageManager": "pnpm@10.17.1",
6
6
  "description": "CLI toolkit for Claude Code and Codex setup. Simplifies MCP service installation, API configuration, workflow management, and multi-provider support with guided interactive setup.",
7
7
  "author": {
@@ -15,6 +15,9 @@
15
15
  "url": "git+https://github.com/miounet11/ccjk.git"
16
16
  },
17
17
  "bugs": "https://github.com/miounet11/ccjk/issues",
18
+ "workspaces": [
19
+ "packages/*"
20
+ ],
18
21
  "keywords": [
19
22
  "claude-code",
20
23
  "claude",
@@ -166,6 +169,7 @@
166
169
  "tinyexec": "^1.0.2",
167
170
  "tinyglobby": "^0.2.15",
168
171
  "trash": "^10.1.0",
172
+ "tweetnacl": "^1.0.3",
169
173
  "uuid": "^11.1.0",
170
174
  "web-tree-sitter": "^0.26.5"
171
175
  },
@@ -186,7 +190,9 @@
186
190
  "eslint-plugin-format": "^1.4.0",
187
191
  "husky": "^9.1.7",
188
192
  "lint-staged": "^16.2.7",
193
+ "pkgroll": "^2.26.3",
189
194
  "prettier": "^3.8.1",
195
+ "shx": "^0.4.0",
190
196
  "tsx": "^4.21.0",
191
197
  "typescript": "^5.9.3",
192
198
  "unbuild": "^3.6.1",