# refactor\(acp\): keep protocol implementation exports private · PR \#10165 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/10165)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: cleanup-packages/acp-internals

Target branch: main

Head commit: 913f03875dda49579b78d72ec85471b5c3ad2b7f

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/10165)

[Commits](https://git.cafe/pingdotgg/t3code/pull/10165/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/10165/diffs?format=markdown)

## Description

---

The private ACP package exports individual RPC definitions and implementation helpers that no repository consumer imports.

Keep those definitions local and remove the unused client `layer` wrapper. The live client factory, child-process layer, agent constructor/layers, and RPC groups remain exported. The agent constructor has a local `@public` explanation because the repository's Effect service convention requires public construction APIs. Generated upstream protocol definitions are untouched.

Verification on the integrated stack:

- ACP Knip export scan passes.
- All 40 existing ACP tests pass.
- ACP typecheck, targeted lint, and formatting pass.

No tests or runtime protocol behavior changed. This is the first cleanup layer; [#10171](https://github.com/pingdotgg/t3code/pull/10171) enforces exports across all seven internal packages.

<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope's pull request summary ends here -->

Model: gpt-6 astra. Harness: Codex in T3 Code.

