authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-05 10:18:34-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-05 10:18:34-07:00
logcb9a6942363ed7f097c7d1fb075bf3a265fbf5d2
tree57aee2c3bb613ab548071fd344129ec5cc04a279
parent62ed748ac94a73dca1b3eb99b1da52d71ebed247
signature Signed by PGP key B5690EEEBB952194

refactor(acp): keep protocol implementation exports private (#10165)


4 files changed, 27 insertions(+), 31 deletions(-)

packages/effect-acp/src/agent.ts+1
......@@ -254,6 +254,7 @@ interface AcpCoreAgentRequestHandlers {
254254
255255const decodeCancelNotification = Schema.decodeUnknownEffect(AcpSchema.CancelNotification);
256256
257/** @public Service construction is part of the canonical Effect module API. */
257258export const make = Effect.fn("effect-acp/AcpAgent.make")(function* (
258259 stdio: Stdio.Stdio,
259260 options: AcpAgentOptions = {},
packages/effect-acp/src/client.ts-5
......@@ -585,11 +585,6 @@ export const make = Effect.fn("effect-acp/AcpClient.make")(function* (
585585 });
586586});
587587
588export const layer = (
589 stdio: AcpProtocol.AcpStdio,
590 options: AcpClientOptions = {},
591): Layer.Layer<AcpClient> => Layer.effect(AcpClient, make(stdio, options));
592
593588export const layerChildProcess = (
594589 handle: ChildProcessSpawner.ChildProcessHandle,
595590 options: AcpClientOptions = {},
packages/effect-acp/src/errors.ts+5-5
......@@ -3,7 +3,7 @@ import type * as SchemaIssue from "effect/SchemaIssue";
33
44import * as AcpSchema from "./_generated/schema.gen.ts";
55
6export const AcpRequestOperation = Schema.Literals([
6const AcpRequestOperation = Schema.Literals([
77 "decode-extension-request-payload",
88 "encode-extension-response",
99 "handle-request",
......@@ -11,12 +11,12 @@ export const AcpRequestOperation = Schema.Literals([
1111 "receive-response",
1212 "receive-streaming-response",
1313]);
14export type AcpRequestOperation = typeof AcpRequestOperation.Type;
14type AcpRequestOperation = typeof AcpRequestOperation.Type;
1515
1616export const AcpRequestId = Schema.Union([Schema.String, Schema.Number]);
1717export type AcpRequestId = typeof AcpRequestId.Type;
1818
19export const AcpSchemaIssueKind = Schema.Literals([
19const AcpSchemaIssueKind = Schema.Literals([
2020 "Filter",
2121 "Encoding",
2222 "Pointer",
......@@ -29,9 +29,9 @@ export const AcpSchemaIssueKind = Schema.Literals([
2929 "Forbidden",
3030 "OneOf",
3131]);
32export type AcpSchemaIssueKind = typeof AcpSchemaIssueKind.Type;
32type AcpSchemaIssueKind = typeof AcpSchemaIssueKind.Type;
3333
34export interface AcpSchemaIssueDiagnostics {
34interface AcpSchemaIssueDiagnostics {
3535 readonly issueCount: number;
3636 readonly issueKinds: ReadonlyArray<AcpSchemaIssueKind>;
3737 readonly maximumPathDepth: number;
packages/effect-acp/src/rpc.ts+21-21
......@@ -4,127 +4,127 @@ import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
44import * as AcpSchema from "./_generated/schema.gen.ts";
55import { AGENT_METHODS, CLIENT_METHODS } from "./_generated/meta.gen.ts";
66
7export const InitializeRpc = Rpc.make(AGENT_METHODS.initialize, {
7const InitializeRpc = Rpc.make(AGENT_METHODS.initialize, {
88 payload: AcpSchema.InitializeRequest,
99 success: AcpSchema.InitializeResponse,
1010 error: AcpSchema.Error,
1111});
1212
13export const AuthenticateRpc = Rpc.make(AGENT_METHODS.authenticate, {
13const AuthenticateRpc = Rpc.make(AGENT_METHODS.authenticate, {
1414 payload: AcpSchema.AuthenticateRequest,
1515 success: AcpSchema.AuthenticateResponse,
1616 error: AcpSchema.Error,
1717});
1818
19export const LogoutRpc = Rpc.make(AGENT_METHODS.logout, {
19const LogoutRpc = Rpc.make(AGENT_METHODS.logout, {
2020 payload: AcpSchema.LogoutRequest,
2121 success: AcpSchema.LogoutResponse,
2222 error: AcpSchema.Error,
2323});
2424
25export const NewSessionRpc = Rpc.make(AGENT_METHODS.session_new, {
25const NewSessionRpc = Rpc.make(AGENT_METHODS.session_new, {
2626 payload: AcpSchema.NewSessionRequest,
2727 success: AcpSchema.NewSessionResponse,
2828 error: AcpSchema.Error,
2929});
3030
31export const LoadSessionRpc = Rpc.make(AGENT_METHODS.session_load, {
31const LoadSessionRpc = Rpc.make(AGENT_METHODS.session_load, {
3232 payload: AcpSchema.LoadSessionRequest,
3333 success: AcpSchema.LoadSessionResponse,
3434 error: AcpSchema.Error,
3535});
3636
37export const ListSessionsRpc = Rpc.make(AGENT_METHODS.session_list, {
37const ListSessionsRpc = Rpc.make(AGENT_METHODS.session_list, {
3838 payload: AcpSchema.ListSessionsRequest,
3939 success: AcpSchema.ListSessionsResponse,
4040 error: AcpSchema.Error,
4141});
4242
43export const ForkSessionRpc = Rpc.make(AGENT_METHODS.session_fork, {
43const ForkSessionRpc = Rpc.make(AGENT_METHODS.session_fork, {
4444 payload: AcpSchema.ForkSessionRequest,
4545 success: AcpSchema.ForkSessionResponse,
4646 error: AcpSchema.Error,
4747});
4848
49export const ResumeSessionRpc = Rpc.make(AGENT_METHODS.session_resume, {
49const ResumeSessionRpc = Rpc.make(AGENT_METHODS.session_resume, {
5050 payload: AcpSchema.ResumeSessionRequest,
5151 success: AcpSchema.ResumeSessionResponse,
5252 error: AcpSchema.Error,
5353});
5454
55export const CloseSessionRpc = Rpc.make(AGENT_METHODS.session_close, {
55const CloseSessionRpc = Rpc.make(AGENT_METHODS.session_close, {
5656 payload: AcpSchema.CloseSessionRequest,
5757 success: AcpSchema.CloseSessionResponse,
5858 error: AcpSchema.Error,
5959});
6060
61export const PromptRpc = Rpc.make(AGENT_METHODS.session_prompt, {
61const PromptRpc = Rpc.make(AGENT_METHODS.session_prompt, {
6262 payload: AcpSchema.PromptRequest,
6363 success: AcpSchema.PromptResponse,
6464 error: AcpSchema.Error,
6565});
6666
67export const SetSessionModelRpc = Rpc.make(AGENT_METHODS.session_set_model, {
67const SetSessionModelRpc = Rpc.make(AGENT_METHODS.session_set_model, {
6868 payload: AcpSchema.SetSessionModelRequest,
6969 success: AcpSchema.SetSessionModelResponse,
7070 error: AcpSchema.Error,
7171});
7272
73export const SetSessionConfigOptionRpc = Rpc.make(AGENT_METHODS.session_set_config_option, {
73const SetSessionConfigOptionRpc = Rpc.make(AGENT_METHODS.session_set_config_option, {
7474 payload: AcpSchema.SetSessionConfigOptionRequest,
7575 success: AcpSchema.SetSessionConfigOptionResponse,
7676 error: AcpSchema.Error,
7777});
7878
79export const ReadTextFileRpc = Rpc.make(CLIENT_METHODS.fs_read_text_file, {
79const ReadTextFileRpc = Rpc.make(CLIENT_METHODS.fs_read_text_file, {
8080 payload: AcpSchema.ReadTextFileRequest,
8181 success: AcpSchema.ReadTextFileResponse,
8282 error: AcpSchema.Error,
8383});
8484
85export const WriteTextFileRpc = Rpc.make(CLIENT_METHODS.fs_write_text_file, {
85const WriteTextFileRpc = Rpc.make(CLIENT_METHODS.fs_write_text_file, {
8686 payload: AcpSchema.WriteTextFileRequest,
8787 success: AcpSchema.WriteTextFileResponse,
8888 error: AcpSchema.Error,
8989});
9090
91export const RequestPermissionRpc = Rpc.make(CLIENT_METHODS.session_request_permission, {
91const RequestPermissionRpc = Rpc.make(CLIENT_METHODS.session_request_permission, {
9292 payload: AcpSchema.RequestPermissionRequest,
9393 success: AcpSchema.RequestPermissionResponse,
9494 error: AcpSchema.Error,
9595});
9696
97export const ElicitationRpc = Rpc.make(CLIENT_METHODS.session_elicitation, {
97const ElicitationRpc = Rpc.make(CLIENT_METHODS.session_elicitation, {
9898 payload: AcpSchema.ElicitationRequest,
9999 success: AcpSchema.ElicitationResponse,
100100 error: AcpSchema.Error,
101101});
102102
103export const CreateTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_create, {
103const CreateTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_create, {
104104 payload: AcpSchema.CreateTerminalRequest,
105105 success: AcpSchema.CreateTerminalResponse,
106106 error: AcpSchema.Error,
107107});
108108
109export const TerminalOutputRpc = Rpc.make(CLIENT_METHODS.terminal_output, {
109const TerminalOutputRpc = Rpc.make(CLIENT_METHODS.terminal_output, {
110110 payload: AcpSchema.TerminalOutputRequest,
111111 success: AcpSchema.TerminalOutputResponse,
112112 error: AcpSchema.Error,
113113});
114114
115export const ReleaseTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_release, {
115const ReleaseTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_release, {
116116 payload: AcpSchema.ReleaseTerminalRequest,
117117 success: AcpSchema.ReleaseTerminalResponse,
118118 error: AcpSchema.Error,
119119});
120120
121export const WaitForTerminalExitRpc = Rpc.make(CLIENT_METHODS.terminal_wait_for_exit, {
121const WaitForTerminalExitRpc = Rpc.make(CLIENT_METHODS.terminal_wait_for_exit, {
122122 payload: AcpSchema.WaitForTerminalExitRequest,
123123 success: AcpSchema.WaitForTerminalExitResponse,
124124 error: AcpSchema.Error,
125125});
126126
127export const KillTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_kill, {
127const KillTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_kill, {
128128 payload: AcpSchema.KillTerminalRequest,
129129 success: AcpSchema.KillTerminalResponse,
130130 error: AcpSchema.Error,