From 177386801e65af95cc5e87710b9bd8fe589b5320 Mon Sep 17 00:00:00 2001 From: 35C4n0r <70096901+35C4n0r@users.noreply.github.com> Date: Thu, 21 Aug 2025 14:20:35 +0530 Subject: [PATCH 1/3] feat: add support for auggie cli (#63) --- README.md | 2 +- cmd/server/server.go | 2 + cmd/server/server_test.go | 10 +++ lib/msgfmt/msgfmt.go | 3 + lib/msgfmt/msgfmt_test.go | 2 +- .../format/auggie/first_message/expected.txt | 7 ++ .../format/auggie/first_message/msg.txt | 19 +++++ .../format/auggie/first_message/user.txt | 0 .../auggie/multi-line-input/expected.txt | 45 ++++++++++++ .../format/auggie/multi-line-input/msg.txt | 55 +++++++++++++++ .../format/auggie/multi-line-input/user.txt | 7 ++ .../format/auggie/second_message/expected.txt | 60 ++++++++++++++++ .../format/auggie/second_message/msg.txt | 70 +++++++++++++++++++ .../format/auggie/second_message/user.txt | 1 + .../format/auggie/thinking/expected.txt | 48 +++++++++++++ .../testdata/format/auggie/thinking/msg.txt | 54 ++++++++++++++ .../testdata/format/auggie/thinking/user.txt | 1 + 17 files changed, 384 insertions(+), 2 deletions(-) create mode 100644 lib/msgfmt/testdata/format/auggie/first_message/expected.txt create mode 100644 lib/msgfmt/testdata/format/auggie/first_message/msg.txt create mode 100644 lib/msgfmt/testdata/format/auggie/first_message/user.txt create mode 100644 lib/msgfmt/testdata/format/auggie/multi-line-input/expected.txt create mode 100644 lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt create mode 100644 lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt create mode 100644 lib/msgfmt/testdata/format/auggie/second_message/expected.txt create mode 100644 lib/msgfmt/testdata/format/auggie/second_message/msg.txt create mode 100644 lib/msgfmt/testdata/format/auggie/second_message/user.txt create mode 100644 lib/msgfmt/testdata/format/auggie/thinking/expected.txt create mode 100644 lib/msgfmt/testdata/format/auggie/thinking/msg.txt create mode 100644 lib/msgfmt/testdata/format/auggie/thinking/user.txt diff --git a/README.md b/README.md index b64c92f..3f45478 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # AgentAPI -Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), and [Cursor CLI](https://cursor.com/en/cli) with an HTTP API. +Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), [Auggie](https://docs.augmentcode.com/cli/overview), and [Cursor CLI](https://cursor.com/en/cli) with an HTTP API. ![agentapi-chat](https://github.com/user-attachments/assets/57032c9f-4146-4b66-b219-09e38ab7690d) diff --git a/cmd/server/server.go b/cmd/server/server.go index 454030c..acdbc54 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -31,6 +31,7 @@ const ( AgentTypeAmp AgentType = msgfmt.AgentTypeAmp AgentTypeCursorAgent AgentType = msgfmt.AgentTypeCursorAgent AgentTypeCursor AgentType = msgfmt.AgentTypeCursor + AgentTypeAuggie AgentType = msgfmt.AgentTypeAuggie AgentTypeCustom AgentType = msgfmt.AgentTypeCustom ) @@ -44,6 +45,7 @@ var agentTypeMap = map[AgentType]bool{ AgentTypeAmp: true, AgentTypeCursorAgent: true, AgentTypeCursor: true, + AgentTypeAuggie: true, AgentTypeCustom: true, } diff --git a/cmd/server/server_test.go b/cmd/server/server_test.go index 92d75f2..f61d2c0 100644 --- a/cmd/server/server_test.go +++ b/cmd/server/server_test.go @@ -57,6 +57,11 @@ func TestParseAgentType(t *testing.T) { agentTypeVar: "", want: AgentTypeCursor, }, + { + firstArg: "auggie", + agentTypeVar: "", + want: AgentTypeAuggie, + }, { firstArg: "amp", agentTypeVar: "", @@ -102,6 +107,11 @@ func TestParseAgentType(t *testing.T) { agentTypeVar: "cursor", want: AgentTypeCursor, }, + { + firstArg: "claude", + agentTypeVar: "auggie", + want: AgentTypeAuggie, + }, { firstArg: "aider", agentTypeVar: "claude", diff --git a/lib/msgfmt/msgfmt.go b/lib/msgfmt/msgfmt.go index a4b830a..3c88200 100644 --- a/lib/msgfmt/msgfmt.go +++ b/lib/msgfmt/msgfmt.go @@ -233,6 +233,7 @@ const ( AgentTypeAmp AgentType = "amp" AgentTypeCursorAgent AgentType = "cursor-agent" AgentTypeCursor AgentType = "cursor" + AgentTypeAuggie AgentType = "auggie" AgentTypeCustom AgentType = "custom" ) @@ -268,6 +269,8 @@ func FormatAgentMessage(agentType AgentType, message string, userInput string) s return formatGenericMessage(message, userInput, agentType) case AgentTypeCursor: return formatGenericMessage(message, userInput, agentType) + case AgentTypeAuggie: + return formatGenericMessage(message, userInput, agentType) case AgentTypeCustom: return formatGenericMessage(message, userInput, agentType) default: diff --git a/lib/msgfmt/msgfmt_test.go b/lib/msgfmt/msgfmt_test.go index 404371e..c29d6b9 100644 --- a/lib/msgfmt/msgfmt_test.go +++ b/lib/msgfmt/msgfmt_test.go @@ -218,7 +218,7 @@ func TestTrimEmptyLines(t *testing.T) { func TestFormatAgentMessage(t *testing.T) { dir := "testdata/format" - agentTypes := []AgentType{AgentTypeClaude, AgentTypeGoose, AgentTypeAider, AgentTypeGemini, AgentTypeAmp, AgentTypeCodex, AgentTypeCustom} + agentTypes := []AgentType{AgentTypeClaude, AgentTypeGoose, AgentTypeAider, AgentTypeGemini, AgentTypeAmp, AgentTypeCodex, AgentTypeCursorAgent, AgentTypeCursor, AgentTypeAuggie, AgentTypeCustom} for _, agentType := range agentTypes { t.Run(string(agentType), func(t *testing.T) { cases, err := testdataDir.ReadDir(path.Join(dir, string(agentType))) diff --git a/lib/msgfmt/testdata/format/auggie/first_message/expected.txt b/lib/msgfmt/testdata/format/auggie/first_message/expected.txt new file mode 100644 index 0000000..79ece72 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/first_message/expected.txt @@ -0,0 +1,7 @@ + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/first_message/msg.txt b/lib/msgfmt/testdata/format/auggie/first_message/msg.txt new file mode 100644 index 0000000..b5751da --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/first_message/msg.txt @@ -0,0 +1,19 @@ + + + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + + + + +โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ โ€บ Try 'how do I log an error?' or type / for commands โ”‚ +โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + Type / for commands โ€ข โ†‘โ†“ for history โ€ข Esc/Ctrl+C to interrupt ~/Documents/work/agentapi + + diff --git a/lib/msgfmt/testdata/format/auggie/first_message/user.txt b/lib/msgfmt/testdata/format/auggie/first_message/user.txt new file mode 100644 index 0000000..e69de29 diff --git a/lib/msgfmt/testdata/format/auggie/multi-line-input/expected.txt b/lib/msgfmt/testdata/format/auggie/multi-line-input/expected.txt new file mode 100644 index 0000000..0613b88 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/multi-line-input/expected.txt @@ -0,0 +1,45 @@ + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + + + + + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which file has this snippet + func formatCodexMessage(message string, userInput string) string { + message = RemoveUserInput(message, userInput, AgentTypeCodex) + message = removeCodexInputBox(message) + message = trimEmptyLines(message) + return message + } + ยป I'll search for the file containing that specific function snippet. + ยป Codebase search - context engine + โŽฟ Find the file that contains the function "formatCodexMessage" with the exact signature "func formatCodexMessage(message string, userInput string) string" and implementation that calls RemoveUserInput, + removeCodexInputBox, and trimEmptyLines + โŽฟ Found 12 files + lib/msgfmt/testdata/format/codex/multi-line-input/user.txt + lib/msgfmt/testdata/format/codex/multi-line-input/msg.txt + lib/msgfmt/msgfmt.go + lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt + lib/msgfmt/testdata/format/cursor/multi-line-input/user.txt + lib/msgfmt/message_box.go + lib/msgfmt/testdata/format/cursor/multi-line-input/msg.txt + lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt + lib/msgfmt/testdata/format/codex/multi-line-input/expected.txt + lib/msgfmt/testdata/format/cursor/multi-line-input/expected.txt + +2 more lines + + ยป The function formatCodexMessage is located in the file `lib/msgfmt/msgfmt.go` at lines 247-252. + ยป + lib/msgfmt/msgfmt.go (EXCERPT) + func formatCodexMessage(message string, userInput string) string { + ยป message = RemoveUserInput(message, userInput, AgentTypeCodex) + message = removeCodexInputBox(message) + message = trimEmptyLines(message) + return message + } \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt b/lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt new file mode 100644 index 0000000..26eb456 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt @@ -0,0 +1,55 @@ + + + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + + + + + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which file has this snippet + func formatCodexMessage(message string, userInput string) string { + message = RemoveUserInput(message, userInput, AgentTypeCodex) + message = removeCodexInputBox(message) + message = trimEmptyLines(message) + return message + } + ยป I'll search for the file containing that specific function snippet. + ยป Codebase search - context engine + โŽฟ Find the file that contains the function "formatCodexMessage" with the exact signature "func formatCodexMessage(message string, userInput string) string" and implementation that calls RemoveUserInput, + removeCodexInputBox, and trimEmptyLines + โŽฟ Found 12 files + lib/msgfmt/testdata/format/codex/multi-line-input/user.txt + lib/msgfmt/testdata/format/codex/multi-line-input/msg.txt + lib/msgfmt/msgfmt.go + lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt + lib/msgfmt/testdata/format/cursor/multi-line-input/user.txt + lib/msgfmt/message_box.go + lib/msgfmt/testdata/format/cursor/multi-line-input/msg.txt + lib/msgfmt/testdata/format/auggie/multi-line-input/msg.txt + lib/msgfmt/testdata/format/codex/multi-line-input/expected.txt + lib/msgfmt/testdata/format/cursor/multi-line-input/expected.txt + +2 more lines + + ยป The function formatCodexMessage is located in the file `lib/msgfmt/msgfmt.go` at lines 247-252. + ยป + lib/msgfmt/msgfmt.go (EXCERPT) + func formatCodexMessage(message string, userInput string) string { + ยป message = RemoveUserInput(message, userInput, AgentTypeCodex) + message = removeCodexInputBox(message) + message = trimEmptyLines(message) + return message + } + + + + +โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ โ€บ Try 'how do I log an error?' or type / for commands โ”‚ +โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + Type / for commands โ€ข โ†‘โ†“ for history โ€ข Esc/Ctrl+C to interrupt ~/Documents/work/agentapi diff --git a/lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt b/lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt new file mode 100644 index 0000000..e85fa2a --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/multi-line-input/user.txt @@ -0,0 +1,7 @@ +Which file has this snippet +func formatCodexMessage(message string, userInput string) string { + message = RemoveUserInput(message, userInput) + message = removeCodexInputBox(message) + message = trimEmptyLines(message) + return message +} \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/second_message/expected.txt b/lib/msgfmt/testdata/format/auggie/second_message/expected.txt new file mode 100644 index 0000000..3593470 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/second_message/expected.txt @@ -0,0 +1,60 @@ + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which repo is this ? + + ยป I'll help you identify what repository this is by examining the codebase structure and contents. + ยป . - read file + โŽฟ Read 40 lines + ./CHANGELOG.md + ./LICENSE + ./Makefile + ./README.md + ./agentapi + ./chat + ./cmd + ./example.txt + ./forge.yaml + ./go.mod + +30 more lines + + ยป Let me check the README and other key files to identify this repository. + ยป README.md - read file + โŽฟ Read 188 lines + 1 # AgentAPI + 2 + 3 Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), + [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), and [Cursor CLI](https://cursor.com/en/cli) with + an HTTP API. + 4 + 5 ![agentapi-chat](https://github.com/user-attachments/assets/57032c9f-4146-4b66-b219-09e38ab7690d) + 6 + 7 You can use AgentAPI: + 8 + 9 - to build a unified chat interface for coding agents + 10 - as a backend in an MCP server that lets one agent control another coding agent + +178 more lines + + ยป This is the AgentAPI repository by Coder. + + AgentAPI is a tool that provides an HTTP API to control various coding agents including: + โ€ข Claude Code + โ€ข Goose + โ€ข Aider + โ€ข Gemini CLI + โ€ข Sourcegraph Amp + โ€ข Codex + โ€ข Cursor CLI + + The repository is written in Go (as evidenced by the go.mod file) and includes: + โ€ข A server component that runs agents in a terminal emulator + โ€ข A web chat interface (in the /chat directory using Next.js) + โ€ข HTTP endpoints for sending messages and getting conversation history + โ€ข Terminal attachment functionality + + The main purpose is to provide a unified interface for controlling different coding agents programmatically, making it easier to build applications that work with multiple AI coding assistants. \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/second_message/msg.txt b/lib/msgfmt/testdata/format/auggie/second_message/msg.txt new file mode 100644 index 0000000..f965314 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/second_message/msg.txt @@ -0,0 +1,70 @@ + + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which repo is this ? + + ยป I'll help you identify what repository this is by examining the codebase structure and contents. + ยป . - read file + โŽฟ Read 40 lines + ./CHANGELOG.md + ./LICENSE + ./Makefile + ./README.md + ./agentapi + ./chat + ./cmd + ./example.txt + ./forge.yaml + ./go.mod + +30 more lines + + ยป Let me check the README and other key files to identify this repository. + ยป README.md - read file + โŽฟ Read 188 lines + 1 # AgentAPI + 2 + 3 Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), + [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), and [Cursor CLI](https://cursor.com/en/cli) with + an HTTP API. + 4 + 5 ![agentapi-chat](https://github.com/user-attachments/assets/57032c9f-4146-4b66-b219-09e38ab7690d) + 6 + 7 You can use AgentAPI: + 8 + 9 - to build a unified chat interface for coding agents + 10 - as a backend in an MCP server that lets one agent control another coding agent + +178 more lines + + ยป This is the AgentAPI repository by Coder. + + AgentAPI is a tool that provides an HTTP API to control various coding agents including: + โ€ข Claude Code + โ€ข Goose + โ€ข Aider + โ€ข Gemini CLI + โ€ข Sourcegraph Amp + โ€ข Codex + โ€ข Cursor CLI + + The repository is written in Go (as evidenced by the go.mod file) and includes: + โ€ข A server component that runs agents in a terminal emulator + โ€ข A web chat interface (in the /chat directory using Next.js) + โ€ข HTTP endpoints for sending messages and getting conversation history + โ€ข Terminal attachment functionality + + The main purpose is to provide a unified interface for controlling different coding agents programmatically, making it easier to build applications that work with multiple AI coding assistants. + + + + +โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ โ€บ Try 'how do I log an error?' or type / for commands โ”‚ +โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + Type / for commands โ€ข โ†‘โ†“ for history โ€ข Esc/Ctrl+C to interrupt ~/Documents/work/agentapi + diff --git a/lib/msgfmt/testdata/format/auggie/second_message/user.txt b/lib/msgfmt/testdata/format/auggie/second_message/user.txt new file mode 100644 index 0000000..c7d3776 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/second_message/user.txt @@ -0,0 +1 @@ +Which repo is this ? \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/thinking/expected.txt b/lib/msgfmt/testdata/format/auggie/thinking/expected.txt new file mode 100644 index 0000000..c56576d --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/thinking/expected.txt @@ -0,0 +1,48 @@ + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which repo is this ? + + ยป I'll help you identify what repository this is by examining the codebase structure and contents. + ยป . - read file + โŽฟ Read 40 lines + ./CHANGELOG.md + ./LICENSE + ./Makefile + ./README.md + ./agentapi + ./chat + ./cmd + ./example.txt + ./forge.yaml + ./go.mod + +30 more lines + + ยป Let me check the README and other key files to identify this repository. + ยป README.md - read file + โŽฟ Read 188 lines + 1 # AgentAPI + 2 + 3 Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), + [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), and [Cursor CLI](https://cursor.com/en/cli) with + an HTTP API. + 4 + 5 ![agentapi-chat](https://github.com/user-attachments/assets/57032c9f-4146-4b66-b219-09e38ab7690d) + 6 + 7 You can use AgentAPI: + 8 + 9 - to build a unified chat interface for coding agents + 10 - as a backend in an MCP server that lets one agent control another coding agent + +178 more lines + + ยป This is the AgentAPI repository by Coder. + + AgentAPI is a tool that provides an HTTP API to control various coding agents including: + + + โ ž Processing response... (2s โ€ข esc to interrupt) \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/thinking/msg.txt b/lib/msgfmt/testdata/format/auggie/thinking/msg.txt new file mode 100644 index 0000000..a305259 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/thinking/msg.txt @@ -0,0 +1,54 @@ + + Getting started with Auggie by Augment Code + 1. You can ask questions, edit files, or run commands + 2. Your workspace is automatically indexed for best results + 3. Commands will run automatically + + + ๐Ÿ’ก For automation, use 'auggie --print "your task"' + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + โ€บ Which repo is this ? + + ยป I'll help you identify what repository this is by examining the codebase structure and contents. + ยป . - read file + โŽฟ Read 40 lines + ./CHANGELOG.md + ./LICENSE + ./Makefile + ./README.md + ./agentapi + ./chat + ./cmd + ./example.txt + ./forge.yaml + ./go.mod + +30 more lines + + ยป Let me check the README and other key files to identify this repository. + ยป README.md - read file + โŽฟ Read 188 lines + 1 # AgentAPI + 2 + 3 Control [Claude Code](https://github.com/anthropics/claude-code), [Goose](https://github.com/block/goose), [Aider](https://github.com/Aider-AI/aider), + [Gemini](https://github.com/google-gemini/gemini-cli), [Sourcegraph Amp](https://github.com/sourcegraph/amp-cli), [Codex](https://github.com/openai/codex), and [Cursor CLI](https://cursor.com/en/cli) with + an HTTP API. + 4 + 5 ![agentapi-chat](https://github.com/user-attachments/assets/57032c9f-4146-4b66-b219-09e38ab7690d) + 6 + 7 You can use AgentAPI: + 8 + 9 - to build a unified chat interface for coding agents + 10 - as a backend in an MCP server that lets one agent control another coding agent + +178 more lines + + ยป This is the AgentAPI repository by Coder. + + AgentAPI is a tool that provides an HTTP API to control various coding agents including: + + + โ ž Processing response... (2s โ€ข esc to interrupt) + +โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ โ€บ Try 'how do I log an error?' or type / for commands โ”‚ +โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + Type / for commands โ€ข โ†‘โ†“ for history โ€ข Esc/Ctrl+C to interrupt \ No newline at end of file diff --git a/lib/msgfmt/testdata/format/auggie/thinking/user.txt b/lib/msgfmt/testdata/format/auggie/thinking/user.txt new file mode 100644 index 0000000..c7d3776 --- /dev/null +++ b/lib/msgfmt/testdata/format/auggie/thinking/user.txt @@ -0,0 +1 @@ +Which repo is this ? \ No newline at end of file From 809e506031c6580fe8688a7fc63cfb05958703ec Mon Sep 17 00:00:00 2001 From: 35C4n0r <70096901+35C4n0r@users.noreply.github.com> Date: Thu, 21 Aug 2025 14:45:11 +0530 Subject: [PATCH 2/3] chore: bump version to 0.6.0 (#64) --- CHANGELOG.md | 6 ++++++ chat/package.json | 2 +- lib/httpapi/server.go | 2 +- openapi.json | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a820337..f956c6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v0.6.0 + +### Features + +- Adds support for Auggie CLI. + ## v0.5.0 ### Features diff --git a/chat/package.json b/chat/package.json index b8b3110..32b6684 100644 --- a/chat/package.json +++ b/chat/package.json @@ -1,6 +1,6 @@ { "name": "chat", - "version": "0.5.0", + "version": "0.6.0", "private": true, "scripts": { "dev": "next dev --turbopack", diff --git a/lib/httpapi/server.go b/lib/httpapi/server.go index 986d071..fb45ad4 100644 --- a/lib/httpapi/server.go +++ b/lib/httpapi/server.go @@ -188,7 +188,7 @@ func NewServer(ctx context.Context, config ServerConfig) (*Server, error) { }) router.Use(corsMiddleware.Handler) - humaConfig := huma.DefaultConfig("AgentAPI", "0.5.0") + humaConfig := huma.DefaultConfig("AgentAPI", "0.6.0") humaConfig.Info.Description = "HTTP API for Claude Code, Goose, and Aider.\n\nhttps://github.com/coder/agentapi" api := humachi.New(router, humaConfig) formatMessage := func(message string, userInput string) string { diff --git a/openapi.json b/openapi.json index b79f9c9..19c4961 100644 --- a/openapi.json +++ b/openapi.json @@ -307,7 +307,7 @@ "info": { "description": "HTTP API for Claude Code, Goose, and Aider.\n\nhttps://github.com/coder/agentapi", "title": "AgentAPI", - "version": "0.5.0" + "version": "0.6.0" }, "openapi": "3.1.0", "paths": { From 36850720684c5c1be4221f1700b01c8ef1088120 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 21 Aug 2025 11:46:50 +0100 Subject: [PATCH 3/3] chore: document release process (#65) Co-authored-by: Hugo Dutka --- MAINTAINERS.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 MAINTAINERS.md diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 0000000..3fbc5af --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,37 @@ +# Information for Maintainers + +## Release Process + +Before performing a release, perform a local "smoke-test". +If everything seems OK, you can proceed to do the following: + +1. Update the version string in the following places: + - `openapi.json` + - `chat/package.json` + - `lib/httpapi/server.go` +2. Add details in `CHANGELOG.md` on what changed. +3. Create a PR with the subject `chore: update version to X.Y.Z` +4. Once the above PR is approved and merged, create a new git tag `vX.Y.Z` pointing to the commit of the above PR merged to `main`:S + + ```shell + # Fetch existing tags first! + git fetch --tags + git tag -a vX.Y.Z -m 'vX.Y.Z' + ``` + +5. Push the tag: + + ```shell + git push origin tag vX.Y.Z + ``` + +6. Visit `https://github.com/coder/agentapi/releases/tag/vX.Y.Z` and "Create release from tag". + + - Select the tag you pushed previously. + - Select the previous tag and "Generate release notes". Amend as required. + - **IMPORTANT:** un-check "Set as latest release" and check "Set as a pre-release". + - Click "Publish Release". This will trigger a "Build Release Binaries" CI job. + +7. Visit `https://github.com/coder/agentapi/actions/workflows/release.yml` and monitor the status of the job that was created in the previous step. This will upload the built assets to the corresponding release. + +8. Once the updated assets are released, you can now visit `https://github.com/coder/agentapi/releases/tag/vX.Y.Z`, click "Edit" (โœŽ), and check "Set as latest release".