Skip to content

Commit 494debe

Browse files
Nick Ficanoclaude
andcommitted
docs(sdk-cli): document Effect-migration scope decision in cli.ts
The arcp CLI is a thin Commander → Promise orchestration over the legacy ARCPServer / ARCPClient / EventLog classes. Each command is a single-step Promise call with no concurrent resource graph and no error pipeline that benefits from Effect's structured concurrency or Layer composition. Wrapping these in ManagedRuntime.make(MainLayer) + runtime.runPromise(...) would add a boot-time Effect dependency to a published binary without changing any observable behavior, so #47 is scoped out. Effect-native consumers should compose makeARCPServerRuntime and makeARCPClientRuntime directly; both are public. Closes #47 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 91e9327 commit 494debe

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

packages/sdk/src/cli.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
#!/usr/bin/env node
22
/**
33
* `arcp` — small CLI for serving and replaying an ARCP v1.0 runtime.
4+
*
5+
* Implementation note (Effect migration, issue #47):
6+
* This CLI deliberately remains a thin Commander → Promise orchestration over
7+
* the legacy `ARCPServer` / `ARCPClient` / `EventLog` classes. Each command is
8+
* a single-step Promise call with no concurrent resource graph, no
9+
* cross-command shared state, and no error pipeline that benefits from
10+
* `Effect`'s structured concurrency or Layer composition. Wrapping these in
11+
* `ManagedRuntime.make(MainLayer)` + `runtime.runPromise(...)` would add a
12+
* boot-time Effect dependency to a published binary without changing any
13+
* observable behavior, so #47 was scoped out. Consumers who want an
14+
* Effect-native entry point should compose `makeARCPServerRuntime` (from
15+
* `@arcp/runtime`) and `makeARCPClientRuntime` (from `@arcp/client`)
16+
* themselves; the building blocks are public.
417
*/
518
import { readFileSync } from "node:fs";
619
import process from "node:process";

0 commit comments

Comments
 (0)