Skip to content

Package map

agora ships as thirteen packages under packages/, all published under the @quarry-systems/ npm scope. agora-core is the types-only contract sink; every other package depends on it and nothing else by default.

PackageOne-liner
agora-coreTypes-only contract package. Every other agora package depends on this; nothing depends on anything else by default.
agora-clientCaller-side SDK. AgoraClient is the single entry point integrators construct: registration + dispatch surface, with wired-in providers.
agora-cliThe agora binary. Thin CLI over AgoraClient that resolves agora.config.{ts,js,mjs} and dispatches to subcommands. Canonical privileged entry point.
agora-mcpStdio MCP server exposing the run-time, orchestration-safe tool surface. register / assign are deliberately absent — privileged ops never reach the AI loop.
agora-workerContainer-side runtime. One process per dispatch. Fetches bundles, verifies integrity, overlays the workspace, resolves secrets, hands off to a RuntimeAdapter.
agora-runtime-claude-codeMVP RuntimeAdapter implementation. Prompt rendering, claude --print invocation, Claude-specific merge rules, needs_input sentinel detection.
agora-providers-fargateComputeProvider backed by AWS ECS Fargate (RunTask / DescribeTasks / StopTask). Production target.
agora-providers-local-dockerComputeProvider backed by the local Docker daemon via dockerode. Developer iteration + local smoke suite.
agora-providers-aws-credsCredentialProvider wrapping the AWS SDK default credential chain. Lazy resolution, no extra caching.
agora-storage-s3StorageProvider backed by S3. Content-addressed object layout, integrity-verified on read. Production target.
agora-storage-localStorageProvider backed by the local filesystem. Pairs with agora-providers-local-docker for the local stack.
agora-secret-storeSecretStore seam plus impls — InlineSecretStager (AWS Secrets Manager) and LocalSecretStore (on-disk staging). agora-client also depends on it.
agora-orchestratorOrchestrator engine (codename agora-offload): named queues, depends_on resolution, resource locks, a fire-and-reconcile tick loop, SQLite run-state, and a verifiable audit trail (tamper-detecting by default, tamper-evident at the S3 Object Lock tier), behind pluggable Executor / Trigger seams. Surfaces as agora orch + the client MCP tools.

agora-core is the types-only sink; every arrow flows toward it. The only package that depends on more than agora-core is agora-client (which also depends on agora-secret-store), and the two consumer packages agora-cli / agora-mcp, which depend on agora-client.

graph TD
  core[agora-core<br/><i>types only</i>]
  client[agora-client]
  cli[agora-cli]
  mcp[agora-mcp]
  worker[agora-worker]
  runtime[agora-runtime-claude-code]
  pfargate[agora-providers-fargate]
  plocal[agora-providers-local-docker]
  pawscreds[agora-providers-aws-creds]
  ss3[agora-storage-s3]
  slocal[agora-storage-local]
  secretstore[agora-secret-store]
  orch[agora-orchestrator<br/><i>offload engine</i>]

  client --> core
  client --> secretstore
  cli --> client
  mcp --> client
  worker --> core
  runtime --> core
  pfargate --> core
  plocal --> core
  pawscreds --> core
  ss3 --> core
  slocal --> core
  secretstore --> core
  orch --> core

No agora package depends on another Quarry Systems library (Stoa, Bedrock, RaState, etc.). The constraint is enforced by a CI allowlist check on package.json dependencies.