mumucc 0.3.1 → 0.4.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.
- package/bin/mumuclaw +111 -0
- package/package.json +3 -2
package/bin/mumuclaw
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ────────────────────────────────────────────────────────────────
|
|
3
|
+
# mumuclaw — AI Agent 守护平台(OpenClaw 替代品)
|
|
4
|
+
#
|
|
5
|
+
# 基于 mumucc,默认启用:
|
|
6
|
+
# - Channels(微信/心跳/自定义通道)
|
|
7
|
+
# - 所有 MCP 工具权限
|
|
8
|
+
# - 心跳 channel(GLM-5-turbo 预筛选)
|
|
9
|
+
# - 微信 wechat_reply 自动批准
|
|
10
|
+
#
|
|
11
|
+
# 用法:
|
|
12
|
+
# mumuclaw # 交互模式
|
|
13
|
+
# mumuclaw --daemon # 守护进程模式(无 TTY)
|
|
14
|
+
# mumuclaw --model glm # 指定模型预设
|
|
15
|
+
# mumuclaw --model minimax # MiniMax 预设
|
|
16
|
+
# mumuclaw --model claude # Claude Sonnet(默认)
|
|
17
|
+
# ────────────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
set -euo pipefail
|
|
20
|
+
|
|
21
|
+
SCRIPT_PATH="$(cd "$(dirname "$(readlink -f "$0" 2>/dev/null || python3 -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0")")" && pwd)"
|
|
22
|
+
PROJECT_ROOT="$(dirname "$SCRIPT_PATH")"
|
|
23
|
+
|
|
24
|
+
# ── 模型预设 ──
|
|
25
|
+
MODEL_PRESET="claude"
|
|
26
|
+
EXTRA_ARGS=()
|
|
27
|
+
|
|
28
|
+
# 解析 mumuclaw 专属参数
|
|
29
|
+
while [[ $# -gt 0 ]]; do
|
|
30
|
+
case "$1" in
|
|
31
|
+
--model)
|
|
32
|
+
MODEL_PRESET="$2"
|
|
33
|
+
shift 2
|
|
34
|
+
;;
|
|
35
|
+
--daemon)
|
|
36
|
+
DAEMON_MODE=1
|
|
37
|
+
shift
|
|
38
|
+
;;
|
|
39
|
+
*)
|
|
40
|
+
EXTRA_ARGS+=("$1")
|
|
41
|
+
shift
|
|
42
|
+
;;
|
|
43
|
+
esac
|
|
44
|
+
done
|
|
45
|
+
|
|
46
|
+
case "$MODEL_PRESET" in
|
|
47
|
+
glm|glm-5-turbo)
|
|
48
|
+
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
|
|
49
|
+
export ANTHROPIC_AUTH_TOKEN="fb1c93822c2947d3b84019d1f6c525ee.fnpWi89jlC6IxPLQ"
|
|
50
|
+
export ANTHROPIC_API_KEY=""
|
|
51
|
+
export ANTHROPIC_DEFAULT_SONNET_MODEL="${GLM_MODEL:-glm-5-turbo}"
|
|
52
|
+
export ANTHROPIC_DEFAULT_OPUS_MODEL="${GLM_MODEL:-glm-5-turbo}"
|
|
53
|
+
export ANTHROPIC_DEFAULT_HAIKU_MODEL="${GLM_MODEL:-glm-5-turbo}"
|
|
54
|
+
;;
|
|
55
|
+
glm-5.1)
|
|
56
|
+
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
|
|
57
|
+
export ANTHROPIC_AUTH_TOKEN="fb1c93822c2947d3b84019d1f6c525ee.fnpWi89jlC6IxPLQ"
|
|
58
|
+
export ANTHROPIC_API_KEY=""
|
|
59
|
+
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.1"
|
|
60
|
+
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.1"
|
|
61
|
+
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.1"
|
|
62
|
+
;;
|
|
63
|
+
minimax|m2.7)
|
|
64
|
+
export ANTHROPIC_BASE_URL="https://api.minimaxi.com/anthropic"
|
|
65
|
+
export ANTHROPIC_AUTH_TOKEN="sk-cp-rWK5pwrquDncnYIfVknvMNEBDvMR7-xPOtg5SBX9erW3_hkPUJhU6qYoZRzStCTqBppfvK4AVj4OPCpCICtScSm-_5obP48cEl8MwchmA0A5eo8kE3Vt4Dw"
|
|
66
|
+
export ANTHROPIC_API_KEY=""
|
|
67
|
+
export ANTHROPIC_DEFAULT_SONNET_MODEL="${MINIMAX_MODEL:-MiniMax-M2.7-highspeed}"
|
|
68
|
+
export ANTHROPIC_DEFAULT_OPUS_MODEL="${MINIMAX_MODEL:-MiniMax-M2.7-highspeed}"
|
|
69
|
+
export ANTHROPIC_DEFAULT_HAIKU_MODEL="${MINIMAX_MODEL:-MiniMax-M2.7-highspeed}"
|
|
70
|
+
;;
|
|
71
|
+
claude|sonnet)
|
|
72
|
+
# 使用 claude.ai 默认配置,不覆盖任何环境变量
|
|
73
|
+
;;
|
|
74
|
+
*)
|
|
75
|
+
echo "mumuclaw: 未知模型预设 '$MODEL_PRESET'"
|
|
76
|
+
echo "可用: glm, glm-5.1, minimax, claude"
|
|
77
|
+
exit 1
|
|
78
|
+
;;
|
|
79
|
+
esac
|
|
80
|
+
|
|
81
|
+
export API_TIMEOUT_MS=${API_TIMEOUT_MS:-300000}
|
|
82
|
+
|
|
83
|
+
# ── mumuclaw 默认启用的 channel servers ──
|
|
84
|
+
# 从 .mcp.json 中读取可用的 channel servers
|
|
85
|
+
CHANNEL_SERVERS=""
|
|
86
|
+
MCP_JSON="$(pwd)/.mcp.json"
|
|
87
|
+
if [[ -f "$MCP_JSON" ]]; then
|
|
88
|
+
# 自动检测 .mcp.json 中声明的 channel servers
|
|
89
|
+
for server in wechat heartbeat; do
|
|
90
|
+
if python3 -c "import json; d=json.load(open('$MCP_JSON')); exit(0 if '$server' in d.get('mcpServers',{}) else 1)" 2>/dev/null; then
|
|
91
|
+
CHANNEL_SERVERS="$CHANNEL_SERVERS server:$server"
|
|
92
|
+
fi
|
|
93
|
+
done
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# ── 启动 ──
|
|
97
|
+
if [[ "${DAEMON_MODE:-}" = "1" ]] || [[ ! -t 0 ]]; then
|
|
98
|
+
# 守护模式:用 script 模拟 PTY
|
|
99
|
+
exec script -q /dev/null "$SCRIPT_PATH/mumucc" \
|
|
100
|
+
--dangerously-load-development-channels $CHANNEL_SERVERS \
|
|
101
|
+
--allowedTools "mcp__wechat__wechat_reply" \
|
|
102
|
+
--dangerously-skip-permissions \
|
|
103
|
+
"${EXTRA_ARGS[@]}"
|
|
104
|
+
else
|
|
105
|
+
# 交互模式
|
|
106
|
+
exec "$SCRIPT_PATH/mumucc" \
|
|
107
|
+
--dangerously-load-development-channels $CHANNEL_SERVERS \
|
|
108
|
+
--allowedTools "mcp__wechat__wechat_reply" \
|
|
109
|
+
--dangerously-skip-permissions \
|
|
110
|
+
"${EXTRA_ARGS[@]}"
|
|
111
|
+
fi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mumucc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Open-source AI coding assistant CLI with multi-model support (Anthropic, OpenAI/GPT, DeepSeek, GLM, Ollama, etc.), MCP integration, agent swarms, and out-of-the-box developer experience.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"src/*": "./src/*"
|
|
28
28
|
},
|
|
29
29
|
"bin": {
|
|
30
|
-
"mumucc": "./bin/mumucc"
|
|
30
|
+
"mumucc": "./bin/mumucc",
|
|
31
|
+
"mumuclaw": "./bin/mumuclaw"
|
|
31
32
|
},
|
|
32
33
|
"scripts": {
|
|
33
34
|
"start": "bun run --preload ./shims/globals.ts src/main.tsx",
|