All paths in the protocol should be absolute
-
Create empty params and output structs in src/client.rs or src/agent.rs under the corresponding section. I'll add the fields myself.
-
If the protocol method name is
noun/verb, useverb_nounfor the user facing methods and structs.Example 1 (
noun/noun): Protocol method:terminal/outputTrait method name:terminal_outputRequest/Response structs:TerminalOutputRequest/TerminalOutputResponseMethod names struct:terminal_output: &'static strExample 2 (
noun/verb): Protocol method:terminal/newTrait method name:new_terminalRequest/Response structs:NewTerminalRequest/NewTerminalResponseMethod names struct:terminal_new: &'static str -
Add constants for the method names
-
Add variants to {Agent|Client}{Request|Response} enums
-
Add the methods to the Client/Agent impl of {Agent|Client}SideConnection in src/acp.rs
-
Handle the new method in the
Side::decode_request/Side::decode_notificationimplementation -
Handle the new request in the blanket impl of MessageHandler<{Agent|Client}Side>
-
Add the method to markdown_generator.rs SideDocs functions
-
Run
npm run generateand fix any issues that appear -
Run
npm run check -
Update the example agents and clients in tests and examples in both libraries
- Update the mintlify docs and guides in the
docsdirectory - Run
npm run checkto make sure the json and zod schemas gets generated properly
Never write readme files related to the conversation unless explicitly asked to.