{"_id":"@arcanea/orchestrator","_rev":"4-2aa4df7345905b3bc72ce41e189110d2","name":"@arcanea/orchestrator","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@arcanea/orchestrator","version":"1.0.0","keywords":["arcanea","orchestrator","agent","cli","multi-agent","claude-code","opencode","codex","gemini","routing"],"_id":"@arcanea/orchestrator@1.0.0","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"bin":{"arco":"dist/cli.js","arcanea-orchestrator":"dist/cli.js"},"dist":{"shasum":"f28fb3ea61cc66996c9f3a280e5bad74826eef9b","tarball":"https://registry.npmjs.org/@arcanea/orchestrator/-/orchestrator-1.0.0.tgz","fileCount":29,"integrity":"sha512-1hGjJfcvWfTx2HvPu6O3r7wPmP4V1zSWrPoMJrQZP7D/QlzmMDyF/8iCMBaVvdufygI1rhftVLtsBeqULSucYQ==","signatures":[{"sig":"MEYCIQCRZ7hDcmbln1l6sgULFqpBJU+kB0C7uXE5Azc+GQltZAIhAM9wcwxMPP1n05J09eYTLcE4RLfvZkELg8+Hz1mFAkbc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50534},"main":"./dist/cli.js","type":"module","_from":"file:arcanea-orchestrator-1.0.0.tgz","types":"./dist/cli.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"_resolved":"C:\\Users\\frank\\AppData\\Local\\Temp\\d02c386385d275964d0cf797c3a6606d\\arcanea-orchestrator-1.0.0.tgz","_integrity":"sha512-1hGjJfcvWfTx2HvPu6O3r7wPmP4V1zSWrPoMJrQZP7D/QlzmMDyF/8iCMBaVvdufygI1rhftVLtsBeqULSucYQ==","_npmVersion":"11.6.1","description":"The Arcanea Orchestrator — headless brain that routes, plans, swarms, and learns across claude / opencode / codex / gemini. Consumes @arcanea/router-spec.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"yaml":"^2.6.0","execa":"^9.5.0","kleur":"^4.1.5","commander":"^12.1.0","@arcanea/router-spec":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestrator_1.0.0_1776465542980_0.30442228188165","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@arcanea/orchestrator","version":"1.1.0","keywords":["arcanea","orchestrator","agent","cli","multi-agent","claude-code","opencode","codex","gemini","routing"],"_id":"@arcanea/orchestrator@1.1.0","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"bin":{"arco":"dist/cli.js","arcanea-orchestrator":"dist/cli.js"},"dist":{"shasum":"6eee299041fd62e7979ae5ee9989bc620ab4f714","tarball":"https://registry.npmjs.org/@arcanea/orchestrator/-/orchestrator-1.1.0.tgz","fileCount":37,"integrity":"sha512-A4IKKC641N63xb+iczfWl3F3K7MwRdAYK0IQjuO26VgNwH7q7cbpF1usbfG8HuqX7v/xHzpcboLKAInBpGeUGQ==","signatures":[{"sig":"MEUCIB5tJp1BlujJ1MWuQfdIKKa+snGLJcvN8CMxS2u61h1wAiEAquDAaAr4xwvj1+uRhceQB77WdB808j0p8N2WYqb04r4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64363},"main":"./dist/cli.js","type":"module","_from":"file:arcanea-orchestrator-1.1.0.tgz","types":"./dist/cli.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","test":"pnpm build && tsx --test tests/config.test.ts tests/runtimes.test.ts tests/cli-smoke.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"_resolved":"C:\\Users\\frank\\AppData\\Local\\Temp\\1a15ba1415d3ff71e975f5d5cc072f4c\\arcanea-orchestrator-1.1.0.tgz","_integrity":"sha512-A4IKKC641N63xb+iczfWl3F3K7MwRdAYK0IQjuO26VgNwH7q7cbpF1usbfG8HuqX7v/xHzpcboLKAInBpGeUGQ==","_npmVersion":"11.6.1","description":"The Arcanea Orchestrator — headless brain that routes, plans, swarms, and learns across claude / opencode / codex / gemini. Consumes @arcanea/router-spec.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"yaml":"^2.6.0","execa":"^9.5.0","kleur":"^4.1.5","commander":"^12.1.0","@arcanea/router-spec":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestrator_1.1.0_1776466741248_0.030812152492234235","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arcanea/orchestrator","version":"1.2.0","keywords":["arcanea","orchestrator","agent","cli","multi-agent","claude-code","opencode","codex","gemini","routing"],"_id":"@arcanea/orchestrator@1.2.0","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"bin":{"arco":"dist/cli.js","arcanea-orchestrator":"dist/cli.js"},"dist":{"shasum":"1036e9e33faa7a5f630a59920e41cc25db1302df","tarball":"https://registry.npmjs.org/@arcanea/orchestrator/-/orchestrator-1.2.0.tgz","fileCount":47,"integrity":"sha512-kRRq3UiUBzZklbamSWf6spDi9aw5GB0bm23Kk1MAARSWJu8hUNlwbp+zblk1X1hWBxOUqywki5xPdxTxgvJWHg==","signatures":[{"sig":"MEQCIE3HhQ399TcUwllRn1L9BJcvr9oMCSeBknUarriUcu5QAiB64gVlzizGTBs57WE8GrhhmO5oxygRzS1dVXxoo3dWDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87177},"main":"./dist/cli.js","type":"module","_from":"file:arcanea-orchestrator-1.2.0.tgz","types":"./dist/cli.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","test":"pnpm build && tsx --test tests/config.test.ts tests/runtimes.test.ts tests/cli-smoke.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"_resolved":"C:\\Users\\frank\\AppData\\Local\\Temp\\24919db53380e8e530256b1fe740fdd0\\arcanea-orchestrator-1.2.0.tgz","_integrity":"sha512-kRRq3UiUBzZklbamSWf6spDi9aw5GB0bm23Kk1MAARSWJu8hUNlwbp+zblk1X1hWBxOUqywki5xPdxTxgvJWHg==","_npmVersion":"11.6.1","description":"The Arcanea Orchestrator — headless brain that routes, plans, swarms, and learns across claude / opencode / codex / gemini. Consumes @arcanea/router-spec.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"yaml":"^2.6.0","execa":"^9.5.0","kleur":"^4.1.5","commander":"^12.1.0","@arcanea/router-spec":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestrator_1.2.0_1776469050604_0.39628285329077206","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@arcanea/orchestrator","version":"1.2.1","description":"The Arcanea Orchestrator — headless brain that routes, plans, swarms, and learns across claude / opencode / codex / gemini. Consumes @arcanea/router-spec.","repository":{"type":"git","url":"git+https://github.com/frankxai/arcanea-ai-app.git","directory":"packages/orchestrator"},"homepage":"https://arcanea.ai/orchestrator","bugs":{"url":"https://github.com/frankxai/arcanea-ai-app/issues"},"author":{"name":"Arcanea","url":"frankxai"},"license":"MIT","keywords":["arcanea","orchestrator","agent","cli","multi-agent","claude-code","opencode","codex","gemini","routing"],"type":"module","main":"./dist/cli.js","bin":{"arcanea-orchestrator":"dist/cli.js","arco":"dist/cli.js"},"dependencies":{"commander":"^12.1.0","execa":"^9.5.0","kleur":"^4.1.5","yaml":"^2.6.0","@arcanea/router-spec":"1.0.2"},"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsx src/cli.ts","test":"pnpm build && tsx --test tests/config.test.ts tests/runtimes.test.ts tests/cli-smoke.test.ts"},"types":"./dist/cli.d.ts","_id":"@arcanea/orchestrator@1.2.1","_integrity":"sha512-FV9xy3deN5XOXkOOyI9N8xH+JjJRQ5jyvUkslCD07Y3XBO3wBOTcaHC1jJOhyC4VBCw41OmvQQJc3UmQzqqsZA==","_resolved":"C:\\Users\\frank\\AppData\\Local\\Temp\\2799db2ad6f0c3bd8ef64a33e252f6db\\arcanea-orchestrator-1.2.1.tgz","_from":"file:arcanea-orchestrator-1.2.1.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-FV9xy3deN5XOXkOOyI9N8xH+JjJRQ5jyvUkslCD07Y3XBO3wBOTcaHC1jJOhyC4VBCw41OmvQQJc3UmQzqqsZA==","shasum":"213552ced53d91ad71038d12721ac7de15744000","tarball":"https://registry.npmjs.org/@arcanea/orchestrator/-/orchestrator-1.2.1.tgz","fileCount":48,"unpackedSize":92524,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+wlwfT1Lm+XKqicrLGbSe1IL6TTc+1tpzuHodhuyUhgIhAOf5NdOmZ9ZhVM8GJLeKVm4saeZ4tzoA16oNX4gbun9L"}]},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"directories":{},"maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/orchestrator_1.2.1_1776503662733_0.933186847892717"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-17T22:39:02.866Z","modified":"2026-04-18T09:14:23.001Z","1.0.0":"2026-04-17T22:39:03.141Z","1.1.0":"2026-04-17T22:59:01.403Z","1.2.0":"2026-04-17T23:37:30.750Z","1.2.1":"2026-04-18T09:14:22.883Z"},"keywords":["arcanea","orchestrator","agent","cli","multi-agent","claude-code","opencode","codex","gemini","routing"],"description":"The Arcanea Orchestrator — headless brain that routes, plans, swarms, and learns across claude / opencode / codex / gemini. Consumes @arcanea/router-spec.","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"readme":"# @arcanea/orchestrator\r\n\r\n[![npm version](https://img.shields.io/npm/v/@arcanea/orchestrator.svg?color=7fffd4)](https://www.npmjs.com/package/@arcanea/orchestrator)\r\n[![npm downloads](https://img.shields.io/npm/dm/@arcanea/orchestrator.svg)](https://www.npmjs.com/package/@arcanea/orchestrator)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Node ≥20](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/)\r\n\r\n**The Arcanea Orchestrator.** A headless brain that routes, plans, swarms, and learns across `claude`, `opencode`, `codex`, and `gemini`. Reads the canonical `@arcanea/router-spec` to pick the right model for each task, respects your subscription economics, and dispatches to the right sub-CLI without you thinking about it.\r\n\r\nUse this when you want intelligence. Use [`arcanea-code`](https://github.com/frankxai/arcanea-code) (the forthcoming OpenCode fork) when you want a rich TUI on top of it.\r\n\r\n## Why\r\n\r\nYou have Claude Max (unlimited inside Claude Code via `claude -p`), OpenCode Zen (free tier), plus optional BYOK keys for OpenAI Codex and Gemini. Picking the right one for each task by hand is noise. This does it for you — preference-aware, auth-aware, sub-economics-preserving.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm i -g @arcanea/orchestrator\r\n# or\r\npnpm add -g @arcanea/orchestrator\r\n```\r\n\r\nAfter install, two bin names are available:\r\n- `arcanea-orchestrator` — canonical\r\n- `arco` — short alias\r\n\r\n## Use\r\n\r\n```bash\r\n# Detect which CLIs are installed + infer auth tier (sub/byok/free)\r\narcanea-orchestrator doctor\r\n\r\n# Set your tier preference once\r\narcanea-orchestrator config preference sub-first      # Max first (default)\r\narcanea-orchestrator config preference free-first     # free tier first\r\narcanea-orchestrator config preference byok-first     # BYOK first\r\narcanea-orchestrator config preference cheapest       # minimize cost\r\n\r\n# Situational awareness (router spec + config + auth + AO + worktrees)\r\narcanea-orchestrator status\r\n\r\n# What models does the router know?\r\narcanea-orchestrator list-models [--tier sub|free|byok]\r\narcanea-orchestrator list-tasks\r\n\r\n# For a task, show which model+runtime gets picked, and why\r\narcanea-orchestrator explain world.canon --surface claude-arcanea\r\n\r\n# Dispatch a prompt to the routed runtime\r\narcanea-orchestrator run --task code.debug \"find the null-deref in api/auth/route.ts\"\r\narcanea-orchestrator run --task world.canon --surface claude-arcanea \"write Forge of Ruin ch5\"\r\n\r\n# Decompose a high-level goal into sub-tasks (v1.1+)\r\narcanea-orchestrator plan \"add a /pricing page with 3 tiers\"\r\narcanea-orchestrator plan --out plan.json \"refactor auth to use Supabase\"\r\n\r\n# Swarm — plan N workers from a backlog file\r\narcanea-orchestrator swarm --from backlog.md --tasks 5 --dry-run\r\narcanea-orchestrator swarm --from backlog.md --tasks 5    # live (requires Composio `ao` running)\r\n\r\n# History + stats (v1.1+) — every run is logged to ~/.arcanea/history.jsonl\r\narcanea-orchestrator history --limit 20\r\narcanea-orchestrator stats\r\n\r\n# Short alias:\r\narco doctor\r\narco run --task code.implement \"add tests for auth middleware\"\r\narco plan \"build a landing page\"\r\n```\r\n\r\n## How routing works\r\n\r\n1. You declare a task class (e.g. `code.debug`, `world.canon`, `research.deep`).\r\n2. Orchestrator reads `@arcanea/router-spec/models.yaml`.\r\n3. Looks up the surface (defaults to `claude-arcanea` — Claude Code with Max sub).\r\n4. Re-ranks candidates by your tier preference from `~/.arcanea/config.yaml`.\r\n5. Filters out runtimes not installed on your machine.\r\n6. Picks the first valid model. Maps to runtime (`claude -p`, `opencode run -p`, `codex exec`, `gemini -p`).\r\n7. Execs it, streams stdout back to you.\r\n\r\n## What it is / is not\r\n\r\n| Is | Is not |\r\n|---|---|\r\n| Routing brain (headless) | A TUI or chat app |\r\n| Preference + auth aware | A replacement for any CLI |\r\n| Sub-economics optimizer | A model host or proxy |\r\n| Composable in pipelines | A SaaS product |\r\n| Spec-driven (editable YAML) | Hard-coded decisions |\r\n\r\nIf you want a rich TUI daily driver, see **[arcanea-code](https://github.com/frankxai/arcanea-code)** (OpenCode fork, separate product).\r\n\r\n## Roadmap (incremental, all additive)\r\n\r\n| Phase | Capability | Status |\r\n|---|---|---|\r\n| 0 | Router Spec | ✅ shipped (`@arcanea/router-spec`) |\r\n| 1 | Dispatcher CLI (doctor/config/run/explain/list) | ✅ shipped |\r\n| 2 | Overlay manifests across 4 overlay repos | ✅ shipped |\r\n| 3 | Real swarm via Composio `ao batch-spawn` | ✅ wired |\r\n| 4 | `/ops/agents` live web dashboard | ✅ shipped (`apps/web/app/ops/agents`) |\r\n| 5 | **Planner** — `orchestrator plan \"build a site\"` decomposes to N tasks | ✅ v1.1.0 |\r\n| 6 | **Reasoning bank** — logs every run, aggregates stats per task→model | ✅ v1.1.0 |\r\n| 7 | **Agent inventory** — orchestrator picks not just model but specific overlay agent | next |\r\n| 8 | **Adaptive routing** — history-weighted candidate re-ranking | next |\r\n\r\n## Legal / disclaimer\r\n\r\n**This package is a thin wrapper.** It does not process model requests itself — it shells out to CLIs you install and authenticate yourself (`claude`, `opencode`, `codex`, `gemini`). Everything that flows through those sub-CLIs is governed by the vendor's terms.\r\n\r\n- **MIT licensed, provided \"AS IS\"**, without warranty of any kind. See `LICENSE`.\r\n- **Not affiliated with** Anthropic, OpenAI, Google, Alibaba, MiniMax, Zhipu, Moonshot, NVIDIA, Xiaomi, or any other model provider. All trademarks belong to their respective owners.\r\n- **You are responsible** for your own provider authentication, API key safety, token consumption, billing, and compliance with each provider's Terms of Service and Acceptable Use Policy.\r\n- **No usage data is collected** by this package. Your prompts never touch Arcanea infrastructure — they go directly from your shell to the CLI you invoked.\r\n- **Model metadata** (SWE-Bench scores, context windows, tier classifications) is aggregated from public benchmarks and vendor announcements. Accuracy is best-effort and not guaranteed. Verify claims independently before making business decisions.\r\n- **The routing heuristics are opinionated**, not optimal. Override with `--model` at any time. The Router Spec is a suggestion, not authority.\r\n- **Rate limits, quota exhaustion, content filtering, and any other runtime behavior** are the sole responsibility of the underlying provider CLI. This package surfaces their errors but does not modify their behavior.\r\n\r\nIf a vendor discontinues or renames a model, this package will not automatically adapt — edit `@arcanea/router-spec` or override with `--model`.\r\n\r\n## Migration from `@arcanea/arcanea-code`\r\n\r\nIf you installed `@arcanea/arcanea-code` (the pre-rename name, v0.1.0 / 0.1.1), migrate to `@arcanea/orchestrator@1.0.0`:\r\n\r\n```bash\r\nnpm uninstall -g @arcanea/arcanea-code\r\nnpm install -g @arcanea/orchestrator\r\n```\r\n\r\nThe CLI is compatible — all commands work identically. Only the package name and bin name changed (`arcanea-code` → `arcanea-orchestrator` / `arco`). The old package is deprecated on npm and will stop receiving updates.\r\n","readmeFilename":"README.md","homepage":"https://arcanea.ai/orchestrator","repository":{"type":"git","url":"git+https://github.com/frankxai/arcanea-ai-app.git","directory":"packages/orchestrator"},"author":{"name":"Arcanea","url":"frankxai"},"bugs":{"url":"https://github.com/frankxai/arcanea-ai-app/issues"},"license":"MIT"}