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 {...@@ -254,6 +254,7 @@ interface AcpCoreAgentRequestHandlers {
254254
255const decodeCancelNotification = Schema.decodeUnknownEffect(AcpSchema.CancelNotification);255const decodeCancelNotification = Schema.decodeUnknownEffect(AcpSchema.CancelNotification);
256256
257/** @public Service construction is part of the canonical Effect module API. */
257export const make = Effect.fn("effect-acp/AcpAgent.make")(function* (258export const make = Effect.fn("effect-acp/AcpAgent.make")(function* (
258 stdio: Stdio.Stdio,259 stdio: Stdio.Stdio,
259 options: AcpAgentOptions = {},260 options: AcpAgentOptions = {},
packages/effect-acp/src/client.ts-5
...@@ -585,11 +585,6 @@ export const make = Effect.fn("effect-acp/AcpClient.make")(function* (...@@ -585,11 +585,6 @@ export const make = Effect.fn("effect-acp/AcpClient.make")(function* (
585 });585 });
586});586});
587587
588export const layer = (
589 stdio: AcpProtocol.AcpStdio,
590 options: AcpClientOptions = {},
591): Layer.Layer<AcpClient> => Layer.effect(AcpClient, make(stdio, options));
592
593export const layerChildProcess = (588export const layerChildProcess = (
594 handle: ChildProcessSpawner.ChildProcessHandle,589 handle: ChildProcessSpawner.ChildProcessHandle,
595 options: AcpClientOptions = {},590 options: AcpClientOptions = {},
packages/effect-acp/src/errors.ts+5-5
...@@ -3,7 +3,7 @@ import type * as SchemaIssue from "effect/SchemaIssue";...@@ -3,7 +3,7 @@ import type * as SchemaIssue from "effect/SchemaIssue";
33
4import * as AcpSchema from "./_generated/schema.gen.ts";4import * as AcpSchema from "./_generated/schema.gen.ts";
55
6export const AcpRequestOperation = Schema.Literals([6const AcpRequestOperation = Schema.Literals([
7 "decode-extension-request-payload",7 "decode-extension-request-payload",
8 "encode-extension-response",8 "encode-extension-response",
9 "handle-request",9 "handle-request",
...@@ -11,12 +11,12 @@ export const AcpRequestOperation = Schema.Literals([...@@ -11,12 +11,12 @@ export const AcpRequestOperation = Schema.Literals([
11 "receive-response",11 "receive-response",
12 "receive-streaming-response",12 "receive-streaming-response",
13]);13]);
14export type AcpRequestOperation = typeof AcpRequestOperation.Type;14type AcpRequestOperation = typeof AcpRequestOperation.Type;
1515
16export const AcpRequestId = Schema.Union([Schema.String, Schema.Number]);16export const AcpRequestId = Schema.Union([Schema.String, Schema.Number]);
17export type AcpRequestId = typeof AcpRequestId.Type;17export type AcpRequestId = typeof AcpRequestId.Type;
1818
19export const AcpSchemaIssueKind = Schema.Literals([19const AcpSchemaIssueKind = Schema.Literals([
20 "Filter",20 "Filter",
21 "Encoding",21 "Encoding",
22 "Pointer",22 "Pointer",
...@@ -29,9 +29,9 @@ export const AcpSchemaIssueKind = Schema.Literals([...@@ -29,9 +29,9 @@ export const AcpSchemaIssueKind = Schema.Literals([
29 "Forbidden",29 "Forbidden",
30 "OneOf",30 "OneOf",
31]);31]);
32export type AcpSchemaIssueKind = typeof AcpSchemaIssueKind.Type;32type AcpSchemaIssueKind = typeof AcpSchemaIssueKind.Type;
3333
34export interface AcpSchemaIssueDiagnostics {34interface AcpSchemaIssueDiagnostics {
35 readonly issueCount: number;35 readonly issueCount: number;
36 readonly issueKinds: ReadonlyArray<AcpSchemaIssueKind>;36 readonly issueKinds: ReadonlyArray<AcpSchemaIssueKind>;
37 readonly maximumPathDepth: number;37 readonly maximumPathDepth: number;
packages/effect-acp/src/rpc.ts+21-21
...@@ -4,127 +4,127 @@ import * as RpcGroup from "effect/unstable/rpc/RpcGroup";...@@ -4,127 +4,127 @@ import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
4import * as AcpSchema from "./_generated/schema.gen.ts";4import * as AcpSchema from "./_generated/schema.gen.ts";
5import { AGENT_METHODS, CLIENT_METHODS } from "./_generated/meta.gen.ts";5import { 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, {
8 payload: AcpSchema.InitializeRequest,8 payload: AcpSchema.InitializeRequest,
9 success: AcpSchema.InitializeResponse,9 success: AcpSchema.InitializeResponse,
10 error: AcpSchema.Error,10 error: AcpSchema.Error,
11});11});
1212
13export const AuthenticateRpc = Rpc.make(AGENT_METHODS.authenticate, {13const AuthenticateRpc = Rpc.make(AGENT_METHODS.authenticate, {
14 payload: AcpSchema.AuthenticateRequest,14 payload: AcpSchema.AuthenticateRequest,
15 success: AcpSchema.AuthenticateResponse,15 success: AcpSchema.AuthenticateResponse,
16 error: AcpSchema.Error,16 error: AcpSchema.Error,
17});17});
1818
19export const LogoutRpc = Rpc.make(AGENT_METHODS.logout, {19const LogoutRpc = Rpc.make(AGENT_METHODS.logout, {
20 payload: AcpSchema.LogoutRequest,20 payload: AcpSchema.LogoutRequest,
21 success: AcpSchema.LogoutResponse,21 success: AcpSchema.LogoutResponse,
22 error: AcpSchema.Error,22 error: AcpSchema.Error,
23});23});
2424
25export const NewSessionRpc = Rpc.make(AGENT_METHODS.session_new, {25const NewSessionRpc = Rpc.make(AGENT_METHODS.session_new, {
26 payload: AcpSchema.NewSessionRequest,26 payload: AcpSchema.NewSessionRequest,
27 success: AcpSchema.NewSessionResponse,27 success: AcpSchema.NewSessionResponse,
28 error: AcpSchema.Error,28 error: AcpSchema.Error,
29});29});
3030
31export const LoadSessionRpc = Rpc.make(AGENT_METHODS.session_load, {31const LoadSessionRpc = Rpc.make(AGENT_METHODS.session_load, {
32 payload: AcpSchema.LoadSessionRequest,32 payload: AcpSchema.LoadSessionRequest,
33 success: AcpSchema.LoadSessionResponse,33 success: AcpSchema.LoadSessionResponse,
34 error: AcpSchema.Error,34 error: AcpSchema.Error,
35});35});
3636
37export const ListSessionsRpc = Rpc.make(AGENT_METHODS.session_list, {37const ListSessionsRpc = Rpc.make(AGENT_METHODS.session_list, {
38 payload: AcpSchema.ListSessionsRequest,38 payload: AcpSchema.ListSessionsRequest,
39 success: AcpSchema.ListSessionsResponse,39 success: AcpSchema.ListSessionsResponse,
40 error: AcpSchema.Error,40 error: AcpSchema.Error,
41});41});
4242
43export const ForkSessionRpc = Rpc.make(AGENT_METHODS.session_fork, {43const ForkSessionRpc = Rpc.make(AGENT_METHODS.session_fork, {
44 payload: AcpSchema.ForkSessionRequest,44 payload: AcpSchema.ForkSessionRequest,
45 success: AcpSchema.ForkSessionResponse,45 success: AcpSchema.ForkSessionResponse,
46 error: AcpSchema.Error,46 error: AcpSchema.Error,
47});47});
4848
49export const ResumeSessionRpc = Rpc.make(AGENT_METHODS.session_resume, {49const ResumeSessionRpc = Rpc.make(AGENT_METHODS.session_resume, {
50 payload: AcpSchema.ResumeSessionRequest,50 payload: AcpSchema.ResumeSessionRequest,
51 success: AcpSchema.ResumeSessionResponse,51 success: AcpSchema.ResumeSessionResponse,
52 error: AcpSchema.Error,52 error: AcpSchema.Error,
53});53});
5454
55export const CloseSessionRpc = Rpc.make(AGENT_METHODS.session_close, {55const CloseSessionRpc = Rpc.make(AGENT_METHODS.session_close, {
56 payload: AcpSchema.CloseSessionRequest,56 payload: AcpSchema.CloseSessionRequest,
57 success: AcpSchema.CloseSessionResponse,57 success: AcpSchema.CloseSessionResponse,
58 error: AcpSchema.Error,58 error: AcpSchema.Error,
59});59});
6060
61export const PromptRpc = Rpc.make(AGENT_METHODS.session_prompt, {61const PromptRpc = Rpc.make(AGENT_METHODS.session_prompt, {
62 payload: AcpSchema.PromptRequest,62 payload: AcpSchema.PromptRequest,
63 success: AcpSchema.PromptResponse,63 success: AcpSchema.PromptResponse,
64 error: AcpSchema.Error,64 error: AcpSchema.Error,
65});65});
6666
67export const SetSessionModelRpc = Rpc.make(AGENT_METHODS.session_set_model, {67const SetSessionModelRpc = Rpc.make(AGENT_METHODS.session_set_model, {
68 payload: AcpSchema.SetSessionModelRequest,68 payload: AcpSchema.SetSessionModelRequest,
69 success: AcpSchema.SetSessionModelResponse,69 success: AcpSchema.SetSessionModelResponse,
70 error: AcpSchema.Error,70 error: AcpSchema.Error,
71});71});
7272
73export const SetSessionConfigOptionRpc = Rpc.make(AGENT_METHODS.session_set_config_option, {73const SetSessionConfigOptionRpc = Rpc.make(AGENT_METHODS.session_set_config_option, {
74 payload: AcpSchema.SetSessionConfigOptionRequest,74 payload: AcpSchema.SetSessionConfigOptionRequest,
75 success: AcpSchema.SetSessionConfigOptionResponse,75 success: AcpSchema.SetSessionConfigOptionResponse,
76 error: AcpSchema.Error,76 error: AcpSchema.Error,
77});77});
7878
79export const ReadTextFileRpc = Rpc.make(CLIENT_METHODS.fs_read_text_file, {79const ReadTextFileRpc = Rpc.make(CLIENT_METHODS.fs_read_text_file, {
80 payload: AcpSchema.ReadTextFileRequest,80 payload: AcpSchema.ReadTextFileRequest,
81 success: AcpSchema.ReadTextFileResponse,81 success: AcpSchema.ReadTextFileResponse,
82 error: AcpSchema.Error,82 error: AcpSchema.Error,
83});83});
8484
85export const WriteTextFileRpc = Rpc.make(CLIENT_METHODS.fs_write_text_file, {85const WriteTextFileRpc = Rpc.make(CLIENT_METHODS.fs_write_text_file, {
86 payload: AcpSchema.WriteTextFileRequest,86 payload: AcpSchema.WriteTextFileRequest,
87 success: AcpSchema.WriteTextFileResponse,87 success: AcpSchema.WriteTextFileResponse,
88 error: AcpSchema.Error,88 error: AcpSchema.Error,
89});89});
9090
91export const RequestPermissionRpc = Rpc.make(CLIENT_METHODS.session_request_permission, {91const RequestPermissionRpc = Rpc.make(CLIENT_METHODS.session_request_permission, {
92 payload: AcpSchema.RequestPermissionRequest,92 payload: AcpSchema.RequestPermissionRequest,
93 success: AcpSchema.RequestPermissionResponse,93 success: AcpSchema.RequestPermissionResponse,
94 error: AcpSchema.Error,94 error: AcpSchema.Error,
95});95});
9696
97export const ElicitationRpc = Rpc.make(CLIENT_METHODS.session_elicitation, {97const ElicitationRpc = Rpc.make(CLIENT_METHODS.session_elicitation, {
98 payload: AcpSchema.ElicitationRequest,98 payload: AcpSchema.ElicitationRequest,
99 success: AcpSchema.ElicitationResponse,99 success: AcpSchema.ElicitationResponse,
100 error: AcpSchema.Error,100 error: AcpSchema.Error,
101});101});
102102
103export const CreateTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_create, {103const CreateTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_create, {
104 payload: AcpSchema.CreateTerminalRequest,104 payload: AcpSchema.CreateTerminalRequest,
105 success: AcpSchema.CreateTerminalResponse,105 success: AcpSchema.CreateTerminalResponse,
106 error: AcpSchema.Error,106 error: AcpSchema.Error,
107});107});
108108
109export const TerminalOutputRpc = Rpc.make(CLIENT_METHODS.terminal_output, {109const TerminalOutputRpc = Rpc.make(CLIENT_METHODS.terminal_output, {
110 payload: AcpSchema.TerminalOutputRequest,110 payload: AcpSchema.TerminalOutputRequest,
111 success: AcpSchema.TerminalOutputResponse,111 success: AcpSchema.TerminalOutputResponse,
112 error: AcpSchema.Error,112 error: AcpSchema.Error,
113});113});
114114
115export const ReleaseTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_release, {115const ReleaseTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_release, {
116 payload: AcpSchema.ReleaseTerminalRequest,116 payload: AcpSchema.ReleaseTerminalRequest,
117 success: AcpSchema.ReleaseTerminalResponse,117 success: AcpSchema.ReleaseTerminalResponse,
118 error: AcpSchema.Error,118 error: AcpSchema.Error,
119});119});
120120
121export const WaitForTerminalExitRpc = Rpc.make(CLIENT_METHODS.terminal_wait_for_exit, {121const WaitForTerminalExitRpc = Rpc.make(CLIENT_METHODS.terminal_wait_for_exit, {
122 payload: AcpSchema.WaitForTerminalExitRequest,122 payload: AcpSchema.WaitForTerminalExitRequest,
123 success: AcpSchema.WaitForTerminalExitResponse,123 success: AcpSchema.WaitForTerminalExitResponse,
124 error: AcpSchema.Error,124 error: AcpSchema.Error,
125});125});
126126
127export const KillTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_kill, {127const KillTerminalRpc = Rpc.make(CLIENT_METHODS.terminal_kill, {
128 payload: AcpSchema.KillTerminalRequest,128 payload: AcpSchema.KillTerminalRequest,
129 success: AcpSchema.KillTerminalResponse,129 success: AcpSchema.KillTerminalResponse,
130 error: AcpSchema.Error,130 error: AcpSchema.Error,