Skip to content

Packages

ARC is structured as a pnpm monorepo with focused packages. Each package has a single responsibility and communicates through typed interfaces.

Package Map

packages/
├── core/               # Zero adapter dependencies
├── cli/                # Commander.js commands + TUI (Ink)
├── mcp/                # MCP server + host manager
├── adapter-claude/     # Claude Code adapter
├── adapter-openclaw/   # OpenClaw adapter
└── dashboard/          # Web dashboard

@axiom-labs/arc-core

The foundational package. Zero adapter dependencies — it provides the hook bus, risk classifier, config loader, type system, and all feature stores.

Key modules:

ModuleResponsibility
hook-bus.tsHook registry + pipeline runner
risk-classifier.ts5-tier keyword-based risk classification
source-classifier.tsMessage source detection (human/agent/system/cron)
circuit-breaker.tsFailure tracking + enforcement degradation
retry-loop.tsConfigurable retry with attempt tracking
context-manager.tsTurn tracking, token budget, auto-compaction
config-loader.tsProfile + config file loading and validation
types.tsShared TypeScript types for the entire system
health.tsHealth check types + report builder
lifecycle.tsSignal forwarding, cleanup, exit normalization
process.tsProcess spawning and management
workspace.tsarc.json loading + workspace overrides
adapters.tsAdapter registry and capability types
secrets.tsEncrypted secret store (Argon2id + AES-256-GCM)
permissions.tsThree-tier permission model evaluation
telemetry.tsOpenTelemetry provider + span helpers + exporters
memory.tsSession + persistent memory, decay scoring, extraction
skills.tsSkill registry, directory loader, MCP-to-skill adapter
tasks.tsTask store, cron scheduling, message bus
sessions.tsSession store with lifecycle management
plugins.tsPlugin registry with semver compatibility
remote-agents.tsRemote agent registry with health checks
factory.tsDark Factory state machine controller
sync.tsSync provider interface + filesystem provider
logging.tsStructured JSONL logging

@axiom-labs/arc-cli

The CLI and TUI package. Depends on core for all business logic.

CLI commands — Commander.js command tree covering all ARC operations (profiles, launch, exec, shell, shared, doctor, status, setup, mcp, tasks, sessions, memory, skills, factory, sync, plugins, remote, secrets, telemetry, logs).

TUI — Ink + React interactive terminal UI:

ComponentDescription
DashViewMain dashboard with profile overview and update banner
ProfilesViewProfile list with shared layer toggle
WorkViewWorkspace shell with / commands
DoctorViewDiagnostics with repair action hints
SettingsViewConfiguration and sync status
GuideViewIn-app documentation
SwapOverlayCredential hot-swap interface
CommandPaletteQuick-access command overlay
OnboardingScreenFirst-run wizard with tool import

@axiom-labs/arc-mcp

MCP server and host manager package.

  • MCP Server — exposes 5 supervision tools via stdio or HTTP transport
  • McpHostManager — connect/disconnect/list/getTools + callTool() with risk classification
  • HTTP transport — per-session auth, JSON-RPC, CORS support

@axiom-labs/arc-adapter-claude

Claude Code-specific adapter with the deepest integration:

  • SDK bridge — bidirectional JSON over stdio control protocol
  • Auth — OAuth, API key, Bedrock, Vertex, Foundry credential management
  • Detect — auto-detect Claude Code installation
  • Import — import existing ~/.claude configuration
  • Shared — shared layer sync for Claude-specific files

@axiom-labs/arc-adapter-openclaw

OpenClaw-specific adapter:

  • Plugin manifestopenclaw.plugin.json generation
  • RuntimeAdapter implementation with 3 lifecycle hooks
  • Chat middleware — request/response interception
  • Session bridge — state synchronization between ARC and OpenClaw

@axiom-labs/arc-dashboard

Web dashboard package:

  • HTTP server — raw node:http, no Express dependency
  • REST API — 14 resource endpoints with full CRUD (30 total routes)
  • WebSocket — RFC 6455 real-time event push with mutation broadcasts
  • Frontend — Nothing-designed SPA with 14 view components and management actions

Dependency Graph

dashboard ──→ core
cli ──────→ core
mcp ──────→ core
adapter-claude ──→ core
adapter-openclaw ──→ core

All packages depend on core. No package depends on another non-core package. This keeps the dependency graph flat and allows independent development.

Development

bash
# Build a specific package
pnpm --filter @axiom-labs/arc-core build

# Test a specific package
pnpm --filter @axiom-labs/arc-mcp test

# Run dashboard in dev mode
pnpm --filter @axiom-labs/arc-dashboard dev

# Full build
pnpm build

# Full typecheck
pnpm typecheck