claude-all-config 3.7.0 → 3.7.1
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/VERSION +1 -1
- package/gemini-all +72 -0
- package/package.json +4 -2
- package/postinstall.js +41 -38
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.7.
|
|
1
|
+
3.7.1
|
package/gemini-all
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# gemini-all — Gemini CLI launcher with ClaudeAll superpowers loaded.
|
|
4
|
+
#
|
|
5
|
+
# What it does:
|
|
6
|
+
# 1. Source ~/.gemini/.env (and ~/.claude/.env as fallback) so MCP servers
|
|
7
|
+
# see your CONTEXT7_API_KEY / EXA_API_KEY / Z_AI_API_KEY / etc.
|
|
8
|
+
# 2. Default to YOLO mode (--yolo / -y) for autonomous operation.
|
|
9
|
+
# 3. Pass through all args to gemini.
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# gemini-all # interactive YOLO session
|
|
13
|
+
# gemini-all "your prompt" # one-shot with prompt
|
|
14
|
+
# gemini-all --no-yolo # disable auto-approve
|
|
15
|
+
# gemini-all -y -- ... # explicit YOLO with extra args
|
|
16
|
+
#
|
|
17
|
+
# Override with env vars:
|
|
18
|
+
# GEMINI_BIN=/path/to/gemini gemini-all
|
|
19
|
+
# GEMINI_NO_YOLO=1 gemini-all # disable yolo for this run
|
|
20
|
+
|
|
21
|
+
set -u
|
|
22
|
+
|
|
23
|
+
# ─── Source env files (most-specific first) ───────────────────────────────
|
|
24
|
+
load_env() {
|
|
25
|
+
local f="$1"
|
|
26
|
+
if [ -f "$f" ]; then
|
|
27
|
+
set -a
|
|
28
|
+
# shellcheck disable=SC1090
|
|
29
|
+
. "$f" 2>/dev/null || true
|
|
30
|
+
set +a
|
|
31
|
+
fi
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# Gemini-specific overrides take precedence over the shared Claude env.
|
|
35
|
+
load_env "$HOME/.claude/.env"
|
|
36
|
+
load_env "$HOME/.gemini/.env"
|
|
37
|
+
|
|
38
|
+
# ─── Locate gemini binary ─────────────────────────────────────────────────
|
|
39
|
+
GEMINI_CMD="${GEMINI_BIN:-gemini}"
|
|
40
|
+
if ! command -v "$GEMINI_CMD" &>/dev/null; then
|
|
41
|
+
echo "❌ gemini CLI not found in PATH." >&2
|
|
42
|
+
echo " Install: npm install -g @google/gemini-cli" >&2
|
|
43
|
+
echo " Or set GEMINI_BIN=/path/to/gemini" >&2
|
|
44
|
+
exit 127
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# ─── YOLO mode (default ON, opt-out with --no-yolo or GEMINI_NO_YOLO=1) ────
|
|
48
|
+
YOLO_FLAG="--yolo"
|
|
49
|
+
ARGS=()
|
|
50
|
+
for a in "$@"; do
|
|
51
|
+
case "$a" in
|
|
52
|
+
--no-yolo) YOLO_FLAG="" ;;
|
|
53
|
+
-y|--yolo) YOLO_FLAG="--yolo" ;;
|
|
54
|
+
*) ARGS+=("$a") ;;
|
|
55
|
+
esac
|
|
56
|
+
done
|
|
57
|
+
[ -n "${GEMINI_NO_YOLO:-}" ] && YOLO_FLAG=""
|
|
58
|
+
|
|
59
|
+
# ─── Show what we loaded (only when verbose) ──────────────────────────────
|
|
60
|
+
if [ -n "${GEMINI_ALL_VERBOSE:-}" ]; then
|
|
61
|
+
echo "🤖 gemini-all"
|
|
62
|
+
echo " Binary: $(command -v "$GEMINI_CMD")"
|
|
63
|
+
echo " YOLO: ${YOLO_FLAG:-OFF}"
|
|
64
|
+
echo " Env: $(printenv | grep -cE '^(CONTEXT7|EXA|Z_AI|MINIMAX|TELEGRAM)_') vars loaded"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# ─── Exec ─────────────────────────────────────────────────────────────────
|
|
68
|
+
if [ -n "$YOLO_FLAG" ]; then
|
|
69
|
+
exec "$GEMINI_CMD" "$YOLO_FLAG" "${ARGS[@]}"
|
|
70
|
+
else
|
|
71
|
+
exec "$GEMINI_CMD" "${ARGS[@]}"
|
|
72
|
+
fi
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-all-config",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.1",
|
|
4
4
|
"description": "🦾 MONSTER ENGINEER v2 - Ultimate AI CLI with 63 Skills, 12 Superpowers, 14 Agents. Multi-Agent Orchestration, Cost-Aware, Security Scorecard, Parallel-First.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"claude-all": "./claude-all",
|
|
8
8
|
"claude-all-skills": "./bin/skills-cli.js",
|
|
9
9
|
"claude-all-update": "./update.sh",
|
|
10
|
-
"claude-all-mcp": "./bin/mcp-install.js"
|
|
10
|
+
"claude-all-mcp": "./bin/mcp-install.js",
|
|
11
|
+
"gemini-all": "./gemini-all"
|
|
11
12
|
},
|
|
12
13
|
"scripts": {
|
|
13
14
|
"postinstall": "node postinstall.js || bash install.sh",
|
|
@@ -86,6 +87,7 @@
|
|
|
86
87
|
"AGENT.md",
|
|
87
88
|
"CLAUDE.md",
|
|
88
89
|
"claude-all",
|
|
90
|
+
"gemini-all",
|
|
89
91
|
"install.sh",
|
|
90
92
|
"install-termux.sh",
|
|
91
93
|
"install-universal.sh",
|
package/postinstall.js
CHANGED
|
@@ -278,46 +278,48 @@ function installGemini() {
|
|
|
278
278
|
const mcpSrc = path.join(PKG_DIR, 'mcp.json');
|
|
279
279
|
const mcpDest = path.join(GEMINI_DIR, 'mcp.json');
|
|
280
280
|
if (fs.existsSync(mcpSrc)) {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
try {
|
|
282
|
+
fs.copyFileSync(mcpSrc, mcpDest);
|
|
283
|
+
try { fs.chmodSync(mcpDest, 0o600); } catch {}
|
|
284
|
+
console.log(` 🔧 MCP config (11 servers)`);
|
|
285
|
+
} catch (e) {
|
|
286
|
+
console.log(` ⚠️ MCP config skipped (${e.code || 'error'})`);
|
|
287
|
+
}
|
|
284
288
|
}
|
|
285
289
|
|
|
286
|
-
//
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
fs.writeFileSync(path.join(GEMINI_DIR, 'GEMINI.md'), geminiMd);
|
|
320
|
-
console.log(` 📄 GEMINI.md (MONSTER ENGINEER mode)`);
|
|
290
|
+
// .env template for Gemini (same secrets as Claude)
|
|
291
|
+
const envSrc = path.join(PKG_DIR, '.env.example');
|
|
292
|
+
const envDest = path.join(GEMINI_DIR, '.env');
|
|
293
|
+
if (fs.existsSync(envSrc) && !fs.existsSync(envDest)) {
|
|
294
|
+
try {
|
|
295
|
+
fs.copyFileSync(envSrc, envDest);
|
|
296
|
+
try { fs.chmodSync(envDest, 0o600); } catch {}
|
|
297
|
+
console.log(` 🔐 .env template (edit ~/.gemini/.env to set your API keys)`);
|
|
298
|
+
} catch (e) {
|
|
299
|
+
console.log(` ⚠️ .env template skipped (${e.code || 'error'})`);
|
|
300
|
+
}
|
|
301
|
+
} else if (fs.existsSync(envDest)) {
|
|
302
|
+
console.log(` 🔐 .env preserved (already exists)`);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// GEMINI.md - kept in sync with CLAUDE.md (read from package, not hardcoded)
|
|
306
|
+
const claudeMdInPkg = path.join(PKG_DIR, 'CLAUDE.md');
|
|
307
|
+
const geminiMdDest = path.join(GEMINI_DIR, 'GEMINI.md');
|
|
308
|
+
if (fs.existsSync(claudeMdInPkg)) {
|
|
309
|
+
try {
|
|
310
|
+
// Re-title CLAUDE → GEMINI but keep all content (single source of truth)
|
|
311
|
+
let content = fs.readFileSync(claudeMdInPkg, 'utf8');
|
|
312
|
+
content = content
|
|
313
|
+
.replace(/# ClaudeAll Global Instructions/, '# Gemini Superpowers (ClaudeAll Global Instructions)')
|
|
314
|
+
.replace(/Claude Code enhanced with ClaudeAll superpowers\./, 'Gemini CLI enhanced with ClaudeAll superpowers.\n\n**YOLO mode**: run `gemini -y` to auto-approve tool calls (configured in settings.json).')
|
|
315
|
+
.replace(/~\/\.claude\//g, '~/.gemini/')
|
|
316
|
+
.replace(/CLAUDE\.md/g, 'GEMINI.md');
|
|
317
|
+
fs.writeFileSync(geminiMdDest, content);
|
|
318
|
+
console.log(` 📄 GEMINI.md (synced from CLAUDE.md, ${content.split('\n').length} lines)`);
|
|
319
|
+
} catch (e) {
|
|
320
|
+
console.log(` ⚠️ GEMINI.md write skipped (${e.code || 'error'})`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
321
323
|
|
|
322
324
|
// Settings.json with auto-approve tools + persona
|
|
323
325
|
const geminiSettings = {
|
|
@@ -393,6 +395,7 @@ function setupLocalBinSymlinks() {
|
|
|
393
395
|
'claude-all-skills': path.join(PKG_DIR, 'bin', 'skills-cli.js'),
|
|
394
396
|
'claude-all-mcp': path.join(PKG_DIR, 'bin', 'mcp-install.js'),
|
|
395
397
|
'claude-all-update': path.join(PKG_DIR, 'update.sh'),
|
|
398
|
+
'gemini-all': path.join(PKG_DIR, 'gemini-all'),
|
|
396
399
|
};
|
|
397
400
|
|
|
398
401
|
let created = 0;
|