@mrrlin-dev/external-agents 0.3.6 → 0.3.7

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.
Files changed (3) hide show
  1. package/agents.yaml +18 -2
  2. package/install.sh +33 -0
  3. package/package.json +1 -1
package/agents.yaml CHANGED
@@ -366,6 +366,9 @@ agents:
366
366
  # dispatch that failed. Which of the two is "primary" is decided by the
367
367
  # consumer (mrrlin will make this operator-configurable in a later slice);
368
368
  # both are registered here so either can serve.
369
+ # Codex family — subscription-backed, two tiers so `escalate_to_pro` has a
370
+ # target. `codex` (default weak-strong) works on every Codex plan; `codex-pro`
371
+ # picks the strongest model on your plan via `-m gpt-5.4-codex`.
369
372
  - id: codex
370
373
  provider: openai
371
374
  model: gpt-5.2-codex
@@ -376,7 +379,20 @@ agents:
376
379
  transports:
377
380
  edit_exists: "codex exec"
378
381
 
379
- - id: claude
382
+ - id: codex-pro
383
+ provider: openai
384
+ model: gpt-5.4-codex
385
+ tier: strong
386
+ tags: [reasoning]
387
+ auth: "cli:codex"
388
+ usage_url: "https://platform.openai.com/usage"
389
+ transports:
390
+ edit_exists: "codex exec -m gpt-5.4-codex"
391
+
392
+ # Claude family — subscription-backed, two tiers. `claude-opus` is the
393
+ # strongest, `claude-sonnet` (below) is weak-tier for the atomic-executor
394
+ # pool + `/consensus` terminal picks.
395
+ - id: claude-opus
380
396
  provider: anthropic
381
397
  model: claude-opus-4-7
382
398
  tier: strong
@@ -384,7 +400,7 @@ agents:
384
400
  auth: "cli:claude"
385
401
  usage_url: "https://console.anthropic.com/settings/usage"
386
402
  transports:
387
- edit_exists: "claude --print"
403
+ edit_exists: "claude --print --model claude-opus-4-7"
388
404
 
389
405
  # Weak-tier Sonnet — same Claude subscription, cheaper model. Included in
390
406
  # default `pick_agents` runs (weak filter passes it), so `dispatch` /
package/install.sh CHANGED
@@ -31,6 +31,39 @@ say "Installing @mrrlin-dev/external-agents globally via npm…"
31
31
  npm install -g @mrrlin-dev/external-agents
32
32
  ok "Installed. Binaries: external-agents, external-agents-mcp"
33
33
 
34
+ # 1b) aider (Python) — required for the `edit_exists` transport that gives
35
+ # real agentic file-editing behavior across ~100 providers via LiteLLM. It is
36
+ # a separate Python package because npm cannot install Python code. Best-
37
+ # effort: pipx first (isolated, cleanest), then pip3 --user, then a warning.
38
+ # We do NOT fail the install if none of those work — the operator can still
39
+ # use generate_new transport for free-tier providers, and install aider later.
40
+ say "Installing aider (Python — for agentic file-editing transport)…"
41
+ if command -v aider >/dev/null 2>&1; then
42
+ ok "aider already installed: $(aider --version 2>&1 | head -1)"
43
+ elif command -v pipx >/dev/null 2>&1; then
44
+ pipx install aider-chat >/dev/null 2>&1 && ok "aider installed via pipx." || warn "pipx install aider-chat failed. Install manually: pipx install aider-chat"
45
+ elif command -v pip3 >/dev/null 2>&1; then
46
+ # Some distros gate pip3 with PEP 668 externally-managed marker — try
47
+ # --user first, then --break-system-packages as a last resort.
48
+ if pip3 install --user aider-chat >/dev/null 2>&1; then
49
+ ok "aider installed via pip3 --user (add ~/.local/bin to PATH if 'aider' is not found)."
50
+ elif pip3 install --user --break-system-packages aider-chat >/dev/null 2>&1; then
51
+ ok "aider installed via pip3 --user --break-system-packages."
52
+ else
53
+ warn "pip3 install aider-chat failed. Install manually: pip install aider-chat"
54
+ fi
55
+ elif command -v python3 >/dev/null 2>&1; then
56
+ python3 -m ensurepip --user >/dev/null 2>&1 || true
57
+ if python3 -m pip install --user aider-chat >/dev/null 2>&1; then
58
+ ok "aider installed via python3 -m pip --user (add ~/.local/bin to PATH if 'aider' is not found)."
59
+ else
60
+ warn "python3 -m pip install aider-chat failed. Install manually: pip install aider-chat"
61
+ fi
62
+ else
63
+ warn "python3 not found on PATH — skipping aider. Install Python 3.10+ then run: pip install aider-chat"
64
+ warn " Free-tier providers (Groq / Cerebras / OpenRouter / Gemini / DeepSeek) still work through the 'generate_new' transport (native fetch — no aider required)."
65
+ fi
66
+
34
67
  # 2) Register the MCP server with every host we can find. Errors are non-fatal
35
68
  # because the operator may only use one of them.
36
69
  if command -v claude >/dev/null 2>&1; then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrrlin-dev/external-agents",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "One MCP server for every LLM you talk to \u2014 direct-API dispatcher across Gemini, DeepSeek, Groq, OpenRouter, Cerebras, and more. Part of mrrlin.com.",
5
5
  "type": "module",
6
6
  "main": "server.js",