@hileeon/mcc 0.1.8 → 0.1.9
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 +226 -127
- package/dist/accounts/store.d.ts +1 -0
- package/dist/accounts/store.d.ts.map +1 -1
- package/dist/accounts/store.js.map +1 -1
- package/dist/commands/launch.d.ts +9 -0
- package/dist/commands/launch.d.ts.map +1 -0
- package/dist/commands/launch.js +158 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +112 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/profile.d.ts +8 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +125 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/core/model-router.d.ts.map +1 -1
- package/dist/core/model-router.js +5 -2
- package/dist/core/model-router.js.map +1 -1
- package/dist/{dashboard-server.d.ts → dashboard/server.d.ts} +1 -1
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/{dashboard-server.js → dashboard/server.js} +169 -51
- package/dist/dashboard/server.js.map +1 -0
- package/dist/mcc.d.ts +4 -2
- package/dist/mcc.d.ts.map +1 -1
- package/dist/mcc.js +121 -408
- package/dist/mcc.js.map +1 -1
- package/dist/mcp/mcp-config.d.ts +17 -1
- package/dist/mcp/mcp-config.d.ts.map +1 -1
- package/dist/mcp/mcp-config.js +50 -17
- package/dist/mcp/mcp-config.js.map +1 -1
- package/dist/proxy/proxy-daemon.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon.js +17 -2
- package/dist/proxy/proxy-daemon.js.map +1 -1
- package/dist/proxy/proxy-entry.js +5 -3
- package/dist/proxy/proxy-entry.js.map +1 -1
- package/dist/proxy/proxy-server.d.ts.map +1 -1
- package/dist/proxy/proxy-server.js +32 -6
- package/dist/proxy/proxy-server.js.map +1 -1
- package/dist/shared/config.d.ts +15 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +79 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/logger.d.ts +23 -18
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/logger.js +17 -178
- package/dist/shared/logger.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +6 -2
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +47 -26
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/ui/assets/index-ClqmrjNk.js +40 -0
- package/dist/ui/assets/index-CwMwQ-Z4.css +1 -0
- package/dist/ui/index.html +21 -13
- package/dist/update.d.ts +31 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +196 -0
- package/dist/update.js.map +1 -0
- package/lib/mcp/mcc-image-analysis-server.cjs +454 -454
- package/lib/mcp/mcc-websearch-server.cjs +339 -339
- package/lib/mcp-hooks/image-analysis-runtime.cjs +510 -510
- package/lib/mcp-hooks/image-analyzer-transformer.cjs +526 -526
- package/lib/mcp-hooks/websearch-transformer.cjs +1597 -1421
- package/lib/proxy/config/config-loader-facade.js +24 -24
- package/lib/proxy/glmt/delta-accumulator.js +362 -362
- package/lib/proxy/glmt/glmt-transformer.js +203 -203
- package/lib/proxy/glmt/index.js +40 -40
- package/lib/proxy/glmt/locale-enforcer.js +68 -68
- package/lib/proxy/glmt/pipeline/content-transformer.js +161 -161
- package/lib/proxy/glmt/pipeline/index.js +19 -19
- package/lib/proxy/glmt/pipeline/request-transformer.js +115 -115
- package/lib/proxy/glmt/pipeline/response-builder.js +204 -204
- package/lib/proxy/glmt/pipeline/stream-parser.js +233 -233
- package/lib/proxy/glmt/pipeline/tool-call-handler.js +77 -77
- package/lib/proxy/glmt/pipeline/types.js +5 -5
- package/lib/proxy/glmt/reasoning-enforcer.js +150 -150
- package/lib/proxy/glmt/sse-parser.js +101 -101
- package/lib/proxy/services/logging.js +13 -13
- package/lib/proxy/transformers/request-transformer.js +471 -471
- package/lib/proxy/transformers/sse-stream-transformer.js +198 -198
- package/lib/shared/logger.cjs +156 -138
- package/package.json +58 -41
- package/dist/dashboard-server.d.ts.map +0 -1
- package/dist/dashboard-server.js.map +0 -1
- package/dist/ui/assets/index-B16lhKZ6.js +0 -40
- package/dist/ui/assets/index-jEfiB6-h.css +0 -1
package/lib/shared/logger.cjs
CHANGED
|
@@ -1,138 +1,156 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCC Logger — 单文件,零依赖
|
|
3
|
-
*
|
|
4
|
-
* 设计原则:
|
|
5
|
-
* - session 隔离:每次 mcc <profile> 生成独立 session,所有子进程写同一文件
|
|
6
|
-
* - 确定性路径:MCC_LOG_DIR / MCC_LOG_SESSION_ID 两个 env 确定路径
|
|
7
|
-
* - 最小 API:init(sessionId, logDir) + logger(component).error/info/debug(msg)
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
const fs = require('fs');
|
|
11
|
-
const path = require('path');
|
|
12
|
-
const os = require('os');
|
|
13
|
-
|
|
14
|
-
const LEVELS = { error: 0, warn: 1, info: 2, debug: 3 };
|
|
15
|
-
|
|
16
|
-
function env(key, fallback) {
|
|
17
|
-
return process.env[key] ?? fallback;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function levelValue(level) {
|
|
21
|
-
return LEVELS[level?.toLowerCase()] ?? LEVELS.info;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let _sessionId = '';
|
|
25
|
-
let _logDir = '';
|
|
26
|
-
let _currentFile = '';
|
|
27
|
-
let _currentSize = 0;
|
|
28
|
-
let _maxSize = 5 * 1024 * 1024;
|
|
29
|
-
let _maxFiles = 3;
|
|
30
|
-
let _minLevel = LEVELS.info;
|
|
31
|
-
|
|
32
|
-
function getLogDir() {
|
|
33
|
-
if (_logDir) return _logDir;
|
|
34
|
-
const logDirEnv = env('MCC_LOG_DIR', '');
|
|
35
|
-
if (logDirEnv) return logDirEnv;
|
|
36
|
-
const mccHome = env('MCC_HOME', path.join(os.homedir(), '.mcc'));
|
|
37
|
-
const profile = env('MCC_CURRENT_PROFILE', 'default');
|
|
38
|
-
return path.join(mccHome, 'logs', profile, _sessionId || 'nosession');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function getLogPath() {
|
|
42
|
-
return path.join(getLogDir(), 'mcc.log');
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function rotate() {
|
|
46
|
-
const logPath = getLogPath();
|
|
47
|
-
if (!fs.existsSync(logPath)) return;
|
|
48
|
-
try { fs.unlinkSync(`${logPath}.${_maxFiles}`); } catch {}
|
|
49
|
-
for (let i = _maxFiles - 1; i >= 1; i--) {
|
|
50
|
-
const from = `${logPath}.${i}`;
|
|
51
|
-
const to = `${logPath}.${i + 1}`;
|
|
52
|
-
try { if (fs.existsSync(from)) fs.renameSync(from, to); } catch {}
|
|
53
|
-
}
|
|
54
|
-
try { fs.renameSync(logPath, `${logPath}.1`); } catch {}
|
|
55
|
-
_currentSize = 0;
|
|
56
|
-
_currentFile = '';
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function ensureDir() {
|
|
60
|
-
const dir = getLogDir();
|
|
61
|
-
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 0o755 });
|
|
62
|
-
return dir;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function writeFile(line) {
|
|
66
|
-
if (!_sessionId) return;
|
|
67
|
-
ensureDir();
|
|
68
|
-
const logPath = getLogPath();
|
|
69
|
-
const lineBytes = Buffer.byteLength(line, 'utf8') + 1;
|
|
70
|
-
if (_currentFile !== logPath || _currentSize + lineBytes > _maxSize) {
|
|
71
|
-
rotate();
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
fs.appendFileSync(logPath, line + '\n', { mode: 0o644 });
|
|
75
|
-
_currentFile = logPath;
|
|
76
|
-
_currentSize += lineBytes;
|
|
77
|
-
} catch (err) {
|
|
78
|
-
process.stderr.write(`[logger] write failed: ${err.message}\n`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function timestamp() {
|
|
83
|
-
const now = new Date();
|
|
84
|
-
const p = (n, l = 2) => String(n).padStart(l, '0');
|
|
85
|
-
return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())} ` +
|
|
86
|
-
`${p(now.getHours())}:${p(now.getMinutes())}:${p(now.getSeconds())}.${p(now.getMilliseconds(), 3)}`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function format(level, message, component) {
|
|
90
|
-
const sid = _sessionId ? `[${_sessionId}]` : '';
|
|
91
|
-
const comp = component ? `[${component}]` : '';
|
|
92
|
-
return `${timestamp()} ${(level || 'info').toUpperCase().padEnd(5)} ${sid}${comp} ${message}`;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function write(level, message, component) {
|
|
96
|
-
if (levelValue(level) > _minLevel) return;
|
|
97
|
-
const line = format(level, message, component);
|
|
98
|
-
process.stderr.write(line + '\n');
|
|
99
|
-
writeFile(line);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// --- 导出---
|
|
103
|
-
|
|
104
|
-
function init(sessionId, logDir) {
|
|
105
|
-
_sessionId = sessionId || '';
|
|
106
|
-
_logDir = logDir || '';
|
|
107
|
-
_currentFile = '';
|
|
108
|
-
_currentSize = 0;
|
|
109
|
-
_minLevel = levelValue(env('MCC_LOG_LEVEL', 'info'));
|
|
110
|
-
_maxSize = parseInt(env('MCC_LOG_MAX_SIZE', ''), 10) || 5 * 1024 * 1024;
|
|
111
|
-
_maxFiles = parseInt(env('MCC_LOG_MAX_FILES', ''), 10) || 3;
|
|
112
|
-
const dir = ensureDir();
|
|
113
|
-
try { fs.writeFileSync(path.join(dir, '.session'), `${sessionId}\n${Date.now()}\n`, { mode: 0o644 }); } catch {}
|
|
114
|
-
return dir;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function initFromEnv() {
|
|
118
|
-
const sid = env('MCC_LOG_SESSION_ID', '');
|
|
119
|
-
const dir = env('MCC_LOG_DIR', '');
|
|
120
|
-
if (sid) init(sid, dir);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MCC Logger — 单文件,零依赖
|
|
3
|
+
*
|
|
4
|
+
* 设计原则:
|
|
5
|
+
* - session 隔离:每次 mcc <profile> 生成独立 session,所有子进程写同一文件
|
|
6
|
+
* - 确定性路径:MCC_LOG_DIR / MCC_LOG_SESSION_ID 两个 env 确定路径
|
|
7
|
+
* - 最小 API:init(sessionId, logDir) + logger(component).error/info/debug(msg)
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
const os = require('os');
|
|
13
|
+
|
|
14
|
+
const LEVELS = { error: 0, warn: 1, info: 2, debug: 3 };
|
|
15
|
+
|
|
16
|
+
function env(key, fallback) {
|
|
17
|
+
return process.env[key] ?? fallback;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function levelValue(level) {
|
|
21
|
+
return LEVELS[level?.toLowerCase()] ?? LEVELS.info;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let _sessionId = '';
|
|
25
|
+
let _logDir = '';
|
|
26
|
+
let _currentFile = '';
|
|
27
|
+
let _currentSize = 0;
|
|
28
|
+
let _maxSize = 5 * 1024 * 1024;
|
|
29
|
+
let _maxFiles = 3;
|
|
30
|
+
let _minLevel = LEVELS.info;
|
|
31
|
+
|
|
32
|
+
function getLogDir() {
|
|
33
|
+
if (_logDir) return _logDir;
|
|
34
|
+
const logDirEnv = env('MCC_LOG_DIR', '');
|
|
35
|
+
if (logDirEnv) return logDirEnv;
|
|
36
|
+
const mccHome = env('MCC_HOME', path.join(os.homedir(), '.mcc'));
|
|
37
|
+
const profile = env('MCC_CURRENT_PROFILE', 'default');
|
|
38
|
+
return path.join(mccHome, 'logs', profile, _sessionId || 'nosession');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getLogPath() {
|
|
42
|
+
return path.join(getLogDir(), 'mcc.log');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function rotate() {
|
|
46
|
+
const logPath = getLogPath();
|
|
47
|
+
if (!fs.existsSync(logPath)) return;
|
|
48
|
+
try { fs.unlinkSync(`${logPath}.${_maxFiles}`); } catch {}
|
|
49
|
+
for (let i = _maxFiles - 1; i >= 1; i--) {
|
|
50
|
+
const from = `${logPath}.${i}`;
|
|
51
|
+
const to = `${logPath}.${i + 1}`;
|
|
52
|
+
try { if (fs.existsSync(from)) fs.renameSync(from, to); } catch {}
|
|
53
|
+
}
|
|
54
|
+
try { fs.renameSync(logPath, `${logPath}.1`); } catch {}
|
|
55
|
+
_currentSize = 0;
|
|
56
|
+
_currentFile = '';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function ensureDir() {
|
|
60
|
+
const dir = getLogDir();
|
|
61
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 0o755 });
|
|
62
|
+
return dir;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function writeFile(line) {
|
|
66
|
+
if (!_sessionId) return;
|
|
67
|
+
ensureDir();
|
|
68
|
+
const logPath = getLogPath();
|
|
69
|
+
const lineBytes = Buffer.byteLength(line, 'utf8') + 1;
|
|
70
|
+
if (_currentFile !== logPath || _currentSize + lineBytes > _maxSize) {
|
|
71
|
+
rotate();
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
fs.appendFileSync(logPath, line + '\n', { mode: 0o644 });
|
|
75
|
+
_currentFile = logPath;
|
|
76
|
+
_currentSize += lineBytes;
|
|
77
|
+
} catch (err) {
|
|
78
|
+
process.stderr.write(`[logger] write failed: ${err.message}\n`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function timestamp() {
|
|
83
|
+
const now = new Date();
|
|
84
|
+
const p = (n, l = 2) => String(n).padStart(l, '0');
|
|
85
|
+
return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())} ` +
|
|
86
|
+
`${p(now.getHours())}:${p(now.getMinutes())}:${p(now.getSeconds())}.${p(now.getMilliseconds(), 3)}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function format(level, message, component) {
|
|
90
|
+
const sid = _sessionId ? `[${_sessionId}]` : '';
|
|
91
|
+
const comp = component ? `[${component}]` : '';
|
|
92
|
+
return `${timestamp()} ${(level || 'info').toUpperCase().padEnd(5)} ${sid}${comp} ${message}`;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function write(level, message, component) {
|
|
96
|
+
if (levelValue(level) > _minLevel) return;
|
|
97
|
+
const line = format(level, message, component);
|
|
98
|
+
process.stderr.write(line + '\n');
|
|
99
|
+
writeFile(line);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// --- 导出---
|
|
103
|
+
|
|
104
|
+
function init(sessionId, logDir) {
|
|
105
|
+
_sessionId = sessionId || '';
|
|
106
|
+
_logDir = logDir || '';
|
|
107
|
+
_currentFile = '';
|
|
108
|
+
_currentSize = 0;
|
|
109
|
+
_minLevel = levelValue(env('MCC_LOG_LEVEL', 'info'));
|
|
110
|
+
_maxSize = parseInt(env('MCC_LOG_MAX_SIZE', ''), 10) || 5 * 1024 * 1024;
|
|
111
|
+
_maxFiles = parseInt(env('MCC_LOG_MAX_FILES', ''), 10) || 3;
|
|
112
|
+
const dir = ensureDir();
|
|
113
|
+
try { fs.writeFileSync(path.join(dir, '.session'), `${sessionId}\n${Date.now()}\n`, { mode: 0o644 }); } catch {}
|
|
114
|
+
return dir;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function initFromEnv() {
|
|
118
|
+
const sid = env('MCC_LOG_SESSION_ID', '');
|
|
119
|
+
const dir = env('MCC_LOG_DIR', '');
|
|
120
|
+
if (sid) init(sid, dir);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function isDebugEnabled() {
|
|
124
|
+
return _minLevel >= LEVELS.debug;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function makeSessionId() {
|
|
128
|
+
const now = new Date();
|
|
129
|
+
const p = (n, l = 2) => String(n).padStart(l, '0');
|
|
130
|
+
return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}_` +
|
|
131
|
+
`${p(now.getHours())}-${p(now.getMinutes())}-${p(now.getSeconds())}`;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// 统一 API:log.info(component, message) — 两参数风格
|
|
135
|
+
const log = {
|
|
136
|
+
error: (c, m) => write('error', m, c),
|
|
137
|
+
warn: (c, m) => write('warn', m, c),
|
|
138
|
+
info: (c, m) => write('info', m, c),
|
|
139
|
+
debug: (c, m) => write('debug', m, c),
|
|
140
|
+
init,
|
|
141
|
+
initFromEnv,
|
|
142
|
+
getSessionId: () => _sessionId,
|
|
143
|
+
getLogDir,
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// --- 自动从 env 初始化 ---
|
|
147
|
+
initFromEnv();
|
|
148
|
+
|
|
149
|
+
// log 是默认导出(MCP runtime hooks 直接 require 拿这个对象)。
|
|
150
|
+
// 顶层属性额外暴露 init / initFromEnv / isDebugEnabled / makeSessionId,
|
|
151
|
+
// 让 src/shared/logger.ts 的 named import 可以拿到。
|
|
152
|
+
module.exports = log;
|
|
153
|
+
module.exports.init = init;
|
|
154
|
+
module.exports.initFromEnv = initFromEnv;
|
|
155
|
+
module.exports.isDebugEnabled = isDebugEnabled;
|
|
156
|
+
module.exports.makeSessionId = makeSessionId;
|
package/package.json
CHANGED
|
@@ -1,41 +1,58 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@hileeon/mcc",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "My
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"author": "
|
|
7
|
-
"repository": "https://github.com/leeon917/mcc",
|
|
8
|
-
"main": "dist/mcc.js",
|
|
9
|
-
"types": "dist/mcc.d.ts",
|
|
10
|
-
"bin": {
|
|
11
|
-
"mcc": "dist/mcc.js"
|
|
12
|
-
},
|
|
13
|
-
"engines": {
|
|
14
|
-
"node": ">=18.0.0"
|
|
15
|
-
},
|
|
16
|
-
"files": [
|
|
17
|
-
"dist",
|
|
18
|
-
"lib"
|
|
19
|
-
],
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"build
|
|
26
|
-
"build:
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@hileeon/mcc",
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"description": "My Claude Code - Multi-provider account and model switching for Claude Code",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Leeon",
|
|
7
|
+
"repository": "https://github.com/leeon917/mcc",
|
|
8
|
+
"main": "dist/mcc.js",
|
|
9
|
+
"types": "dist/mcc.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"mcc": "dist/mcc.js"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=18.0.0"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"lib"
|
|
19
|
+
],
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"provenance": true
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc && node -e \"const fs=require('fs');const p='dist/mcc.js';const c=fs.readFileSync(p,'utf8');if(!c.startsWith('#!')){fs.writeFileSync(p,'#!/usr/bin/env node\\n'+c);}\"",
|
|
26
|
+
"build:watch": "tsc --watch",
|
|
27
|
+
"typecheck": "tsc --noEmit",
|
|
28
|
+
"build:ui": "pnpm -C ui install && pnpm -C ui build",
|
|
29
|
+
"build:all": "pnpm build && pnpm build:ui",
|
|
30
|
+
"prepublishOnly": "pnpm build:all",
|
|
31
|
+
"postversion": "git push --follow-tags",
|
|
32
|
+
"mcc": "pnpm build && tsx src/mcc.ts",
|
|
33
|
+
"dash": "tsx watch src/dashboard/server.ts",
|
|
34
|
+
"ui": "pnpm -C ui dev",
|
|
35
|
+
"dev": "concurrently -k -n be,fe -c blue,magenta \"pnpm dash\" \"pnpm ui\"",
|
|
36
|
+
"dashboard": "pnpm build && pnpm build:ui && node dist/dashboard/server.js"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"cors": "^2.8.5",
|
|
40
|
+
"express": "^4.18.2",
|
|
41
|
+
"picocolors": "^1.1.1",
|
|
42
|
+
"update-notifier": "^5.1.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/cors": "^2.8.17",
|
|
46
|
+
"@types/express": "^4.17.21",
|
|
47
|
+
"@types/node": "^20.0.0",
|
|
48
|
+
"@types/update-notifier": "^6.0.8",
|
|
49
|
+
"concurrently": "^10.0.3",
|
|
50
|
+
"tsx": "^4.22.4",
|
|
51
|
+
"typescript": "^5.3.0"
|
|
52
|
+
},
|
|
53
|
+
"pnpm": {
|
|
54
|
+
"onlyBuiltDependencies": [
|
|
55
|
+
"esbuild"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-server.d.ts","sourceRoot":"","sources":["../src/dashboard-server.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-server.js","sourceRoot":"","sources":["../src/dashboard-server.ts"],"names":[],"mappings":"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"}
|