arsenal-agent 0.2.1 → 0.2.3
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/dist/setup.js +62 -7
- package/package.json +1 -1
- package/src/setup.ts +63 -7
package/dist/setup.js
CHANGED
|
@@ -32,9 +32,60 @@ export function setupBrain() {
|
|
|
32
32
|
run(`cp ${BRAIN_DIR}/agents/*.md ${CLAUDE_DIR}/agents/ 2>/dev/null || true`);
|
|
33
33
|
run(`cp ${BRAIN_DIR}/agents/*.py ${ARSENAL_DIR}/agents/ 2>/dev/null || true`);
|
|
34
34
|
run(`mkdir -p ${ARSENAL_DIR}/scripts && cp ${BRAIN_DIR}/scripts/claude-picker.sh ${ARSENAL_DIR}/scripts/ 2>/dev/null || true`);
|
|
35
|
-
step("
|
|
35
|
+
step("Clonando arsenal-figma-mcp...");
|
|
36
|
+
const figmaDir = join(HOME, "projetos", "arsenal", "git", "projects", "arsenal-figma-mcp");
|
|
37
|
+
if (existsSync(figmaDir)) {
|
|
38
|
+
run(`git -C ${figmaDir} pull --quiet`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
run(`git clone https://github.com/dbezerra95/arsenal-figma-mcp.git ${figmaDir}`);
|
|
42
|
+
}
|
|
43
|
+
step("Copiando CLAUDE.md...");
|
|
36
44
|
run(`cp ${BRAIN_DIR}/CLAUDE.md ${CLAUDE_DIR}/CLAUDE.md`);
|
|
37
|
-
|
|
45
|
+
step("Gerando settings.json com MCPs...");
|
|
46
|
+
const settings = {
|
|
47
|
+
permissions: {
|
|
48
|
+
allow: [],
|
|
49
|
+
deny: [],
|
|
50
|
+
},
|
|
51
|
+
mcpServers: {
|
|
52
|
+
arsenal: {
|
|
53
|
+
type: "stdio",
|
|
54
|
+
command: join(HOME, "venv", "bin", "python3"),
|
|
55
|
+
args: [join(BRAIN_DIR, "arsenal-mcp", "server.py")],
|
|
56
|
+
description: "Arsenal de tools do Claude Code — busca, lista e instala skills, agents, commands, hooks e MCPs",
|
|
57
|
+
},
|
|
58
|
+
"opencode-delegate": {
|
|
59
|
+
type: "stdio",
|
|
60
|
+
command: join(HOME, "projetos", "arsenal", "venv", "bin", "python3"),
|
|
61
|
+
args: [join(HOME, "projetos", "arsenal", "agents", "opencode_delegate_mcp.py")],
|
|
62
|
+
description: "Delega tasks leves ao OpenCode com modelos free — economiza tokens do Claude para refactor, boilerplate, explicacoes simples",
|
|
63
|
+
},
|
|
64
|
+
figma: {
|
|
65
|
+
type: "stdio",
|
|
66
|
+
command: "python3",
|
|
67
|
+
args: [join(figmaDir, "server.py")],
|
|
68
|
+
description: "Figma MCP leve — acessa design com 60-75% menos tokens que o MCP oficial",
|
|
69
|
+
disabled: true,
|
|
70
|
+
},
|
|
71
|
+
"design-tool": {
|
|
72
|
+
type: "stdio",
|
|
73
|
+
command: "python3",
|
|
74
|
+
args: [join(HOME, "projetos", "arsenal", "projects", "design-tool", "backend", "mcp_server.py")],
|
|
75
|
+
description: "AI-native design tool local — requer backend: cd ~/projetos/arsenal/projects/design-tool && ./start.sh",
|
|
76
|
+
disabled: true,
|
|
77
|
+
},
|
|
78
|
+
docs: {
|
|
79
|
+
type: "stdio",
|
|
80
|
+
command: join(HOME, "venv", "bin", "python3"),
|
|
81
|
+
args: [join(HOME, "projetos", "arsenal", "docs-mcp", "server.py")],
|
|
82
|
+
env: { DOCS_DB_PATH: join(HOME, "projetos", "arsenal", "docs-mcp", "db", "docs.db") },
|
|
83
|
+
description: "Documentação técnica local — Python, Go, Rust, TypeScript, PostgreSQL e mais",
|
|
84
|
+
disabled: true,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
writeFileSync(join(CLAUDE_DIR, "settings.json"), JSON.stringify(settings, null, 2));
|
|
38
89
|
ok("claude-brain sincronizado");
|
|
39
90
|
}
|
|
40
91
|
// ── 2. opencode ──────────────────────────────────────────────────────────────
|
|
@@ -51,7 +102,7 @@ function setupOpencode() {
|
|
|
51
102
|
step("Configurando ~/.opencode.json...");
|
|
52
103
|
const config = {
|
|
53
104
|
$schema: "https://opencode.ai/config.json",
|
|
54
|
-
model: "
|
|
105
|
+
model: "openrouter/qwen/qwen3-coder-480b-a35b-instruct:free",
|
|
55
106
|
providers: {
|
|
56
107
|
anthropic: { name: "Anthropic", apiKey: { env: "ANTHROPIC_API_KEY" } },
|
|
57
108
|
openrouter: { name: "OpenRouter", apiKey: { env: "OPENROUTER_API_KEY" } },
|
|
@@ -72,10 +123,14 @@ function setupOpencode() {
|
|
|
72
123
|
},
|
|
73
124
|
},
|
|
74
125
|
models: {
|
|
75
|
-
"openrouter/nvidia/nemotron-
|
|
76
|
-
"openrouter/
|
|
77
|
-
"
|
|
78
|
-
"
|
|
126
|
+
"openrouter/nvidia/nemotron-nano-12b-v2-vl:free": { name: "Nemotron Nano 12B (Free) — tasks simples", temperature: 0.3 },
|
|
127
|
+
"openrouter/meta-llama/llama-4-scout:free": { name: "Llama 4 Scout (Free) — tasks medias, baixa latencia", temperature: 0.3 },
|
|
128
|
+
"openrouter/nvidia/nemotron-3-super-120b-a12b:free": { name: "Nemotron 120B (Free) — refactor, explicacoes", temperature: 0.3 },
|
|
129
|
+
"openrouter/google/gemma-4-27b-it:free": { name: "Gemma 4 27B (Free) — raciocinio, multimodal", temperature: 0.3 },
|
|
130
|
+
"openrouter/qwen/qwq-32b:free": { name: "QwQ 32B (Free) — raciocinio forte, debugging", temperature: 0.3 },
|
|
131
|
+
"openrouter/qwen/qwen3-coder-480b-a35b-instruct:free": { name: "Qwen3 Coder 480B (Free) — codigo, agentes", temperature: 0.2 },
|
|
132
|
+
"openrouter/deepseek/deepseek-r1:free": { name: "DeepSeek R1 (Free) — chain-of-thought, arquitetura", temperature: 0.3 },
|
|
133
|
+
"openrouter/meta-llama/llama-4-maverick:free": { name: "Llama 4 Maverick (Free) — geral, instrucoes complexas", temperature: 0.3 },
|
|
79
134
|
},
|
|
80
135
|
};
|
|
81
136
|
writeFileSync(join(HOME, ".opencode.json"), JSON.stringify(config, null, 2));
|
package/package.json
CHANGED
package/src/setup.ts
CHANGED
|
@@ -37,9 +37,61 @@ export function setupBrain() {
|
|
|
37
37
|
run(`cp ${BRAIN_DIR}/agents/*.py ${ARSENAL_DIR}/agents/ 2>/dev/null || true`)
|
|
38
38
|
run(`mkdir -p ${ARSENAL_DIR}/scripts && cp ${BRAIN_DIR}/scripts/claude-picker.sh ${ARSENAL_DIR}/scripts/ 2>/dev/null || true`)
|
|
39
39
|
|
|
40
|
-
step("
|
|
40
|
+
step("Clonando arsenal-figma-mcp...")
|
|
41
|
+
const figmaDir = join(HOME, "projetos", "arsenal", "git", "projects", "arsenal-figma-mcp")
|
|
42
|
+
if (existsSync(figmaDir)) {
|
|
43
|
+
run(`git -C ${figmaDir} pull --quiet`)
|
|
44
|
+
} else {
|
|
45
|
+
run(`git clone https://github.com/dbezerra95/arsenal-figma-mcp.git ${figmaDir}`)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
step("Copiando CLAUDE.md...")
|
|
41
49
|
run(`cp ${BRAIN_DIR}/CLAUDE.md ${CLAUDE_DIR}/CLAUDE.md`)
|
|
42
|
-
|
|
50
|
+
|
|
51
|
+
step("Gerando settings.json com MCPs...")
|
|
52
|
+
const settings = {
|
|
53
|
+
permissions: {
|
|
54
|
+
allow: [],
|
|
55
|
+
deny: [],
|
|
56
|
+
},
|
|
57
|
+
mcpServers: {
|
|
58
|
+
arsenal: {
|
|
59
|
+
type: "stdio",
|
|
60
|
+
command: join(HOME, "venv", "bin", "python3"),
|
|
61
|
+
args: [join(BRAIN_DIR, "arsenal-mcp", "server.py")],
|
|
62
|
+
description: "Arsenal de tools do Claude Code — busca, lista e instala skills, agents, commands, hooks e MCPs",
|
|
63
|
+
},
|
|
64
|
+
"opencode-delegate": {
|
|
65
|
+
type: "stdio",
|
|
66
|
+
command: join(HOME, "projetos", "arsenal", "venv", "bin", "python3"),
|
|
67
|
+
args: [join(HOME, "projetos", "arsenal", "agents", "opencode_delegate_mcp.py")],
|
|
68
|
+
description: "Delega tasks leves ao OpenCode com modelos free — economiza tokens do Claude para refactor, boilerplate, explicacoes simples",
|
|
69
|
+
},
|
|
70
|
+
figma: {
|
|
71
|
+
type: "stdio",
|
|
72
|
+
command: "python3",
|
|
73
|
+
args: [join(figmaDir, "server.py")],
|
|
74
|
+
description: "Figma MCP leve — acessa design com 60-75% menos tokens que o MCP oficial",
|
|
75
|
+
disabled: true,
|
|
76
|
+
},
|
|
77
|
+
"design-tool": {
|
|
78
|
+
type: "stdio",
|
|
79
|
+
command: "python3",
|
|
80
|
+
args: [join(HOME, "projetos", "arsenal", "projects", "design-tool", "backend", "mcp_server.py")],
|
|
81
|
+
description: "AI-native design tool local — requer backend: cd ~/projetos/arsenal/projects/design-tool && ./start.sh",
|
|
82
|
+
disabled: true,
|
|
83
|
+
},
|
|
84
|
+
docs: {
|
|
85
|
+
type: "stdio",
|
|
86
|
+
command: join(HOME, "venv", "bin", "python3"),
|
|
87
|
+
args: [join(HOME, "projetos", "arsenal", "docs-mcp", "server.py")],
|
|
88
|
+
env: { DOCS_DB_PATH: join(HOME, "projetos", "arsenal", "docs-mcp", "db", "docs.db") },
|
|
89
|
+
description: "Documentação técnica local — Python, Go, Rust, TypeScript, PostgreSQL e mais",
|
|
90
|
+
disabled: true,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
writeFileSync(join(CLAUDE_DIR, "settings.json"), JSON.stringify(settings, null, 2))
|
|
43
95
|
ok("claude-brain sincronizado")
|
|
44
96
|
}
|
|
45
97
|
|
|
@@ -57,7 +109,7 @@ function setupOpencode() {
|
|
|
57
109
|
step("Configurando ~/.opencode.json...")
|
|
58
110
|
const config = {
|
|
59
111
|
$schema: "https://opencode.ai/config.json",
|
|
60
|
-
model: "
|
|
112
|
+
model: "openrouter/qwen/qwen3-coder-480b-a35b-instruct:free",
|
|
61
113
|
providers: {
|
|
62
114
|
anthropic: { name: "Anthropic", apiKey: { env: "ANTHROPIC_API_KEY" } },
|
|
63
115
|
openrouter: { name: "OpenRouter", apiKey: { env: "OPENROUTER_API_KEY" } },
|
|
@@ -78,10 +130,14 @@ function setupOpencode() {
|
|
|
78
130
|
},
|
|
79
131
|
},
|
|
80
132
|
models: {
|
|
81
|
-
"openrouter/nvidia/nemotron-
|
|
82
|
-
"openrouter/
|
|
83
|
-
"
|
|
84
|
-
"
|
|
133
|
+
"openrouter/nvidia/nemotron-nano-12b-v2-vl:free": { name: "Nemotron Nano 12B (Free) — tasks simples", temperature: 0.3 },
|
|
134
|
+
"openrouter/meta-llama/llama-4-scout:free": { name: "Llama 4 Scout (Free) — tasks medias, baixa latencia", temperature: 0.3 },
|
|
135
|
+
"openrouter/nvidia/nemotron-3-super-120b-a12b:free": { name: "Nemotron 120B (Free) — refactor, explicacoes", temperature: 0.3 },
|
|
136
|
+
"openrouter/google/gemma-4-27b-it:free": { name: "Gemma 4 27B (Free) — raciocinio, multimodal", temperature: 0.3 },
|
|
137
|
+
"openrouter/qwen/qwq-32b:free": { name: "QwQ 32B (Free) — raciocinio forte, debugging", temperature: 0.3 },
|
|
138
|
+
"openrouter/qwen/qwen3-coder-480b-a35b-instruct:free": { name: "Qwen3 Coder 480B (Free) — codigo, agentes", temperature: 0.2 },
|
|
139
|
+
"openrouter/deepseek/deepseek-r1:free": { name: "DeepSeek R1 (Free) — chain-of-thought, arquitetura", temperature: 0.3 },
|
|
140
|
+
"openrouter/meta-llama/llama-4-maverick:free": { name: "Llama 4 Maverick (Free) — geral, instrucoes complexas", temperature: 0.3 },
|
|
85
141
|
},
|
|
86
142
|
}
|
|
87
143
|
writeFileSync(join(HOME, ".opencode.json"), JSON.stringify(config, null, 2))
|